Python 코드와 출력이 혼합된 minted 사용

Python 코드와 출력이 혼합된 minted 사용

저는 mintedPython에서 코드를 강조 표시하는 데 사용하고 있습니다. 어떤 경우에는 사용자가 보게 될 출력과 코드를 혼합하고 싶습니다. 예를 들어 다음과 같은 빨간색 구문 오류 상자가 표시됩니다.

여기에 이미지 설명을 입력하세요

때로는 오류가 발생하지 않지만 강조 표시(두 번째 줄)를 끄고 싶습니다.

여기에 이미지 설명을 입력하세요

그래서 몇 줄의 강조 표시를 끄면서 동시에 줄 번호 매기기 및 배경과 같은 옵션을 유지할 수 있는지 알고 싶습니다.

MWE:

\documentclass{article}

\usepackage{minted}
\definecolor{bg}{rgb}{0.95,0.95,0.95}
\newminted{python3}{bgcolor=bg, linenos=true, tabsize=4}

\begin{document}

I want lines 2 and 4 not to be highlighted but still keep the background and line numbering.

\begin{python3code}
>>> type(3.14)
<class 'float'>
>>> print(name)
NameError: name 'name' is not defined
\end{python3code}

\end{document}

편집하다:명확히 하기 위해: 로 시작하는 강조 표시하려는 줄이 있고 >>>로 시작하지 않는 강조 표시하려는 줄이 있습니다 >>>. 강조하고 싶지 않은 라인도 있습니다. 따라서 기본값은 해당 줄을 강조 표시하는 것이지만 일부 줄에는 예외를 추가할 수 있습니다.

답변1

짧고 긴 것은 특별한 어휘 분석기를 작성하는 것입니다. 하지만 운이 좋으면 이미 존재합니다. 그냥 pycon언어로 사용하세요.

\newminted{pycon}{bgcolor=bg, linenos=true, tabsize=4}

답변2

#문제에 대한 매우 간단한 해결책은 a로 시작하지 않는 각 줄 앞에 를 추가하여 코드를 사전 처리하는 것입니다 >>>. 이는 Python 콘솔 출력의 완벽한 복사본이 아니더라도 적어도 괜찮아 보일 것입니다. 이는 regex 옵션을 사용하거나 sedUnix에서 다른 도구(예:)를 사용하여 많은 편집기로 수행할 수 있습니다 .

그래도 선두는 >>>여전히 Python 어휘 분석기를 버릴 수 있습니다. 어떤 경우에는 해당 항목을 삭제할 수 있습니다(원본에 대한 충실도가 떨어지지만 출력이 주석처럼 보이기 때문에 읽을 수 있습니다).

답변3

minted의 문서를 잠깐 살펴보면 패키지가 해당 기능을 지원하지 않는 것 같습니다. 어느 쪽이든 특정 줄 번호를 지정하는 것은 정말 보기 흉한 방법인 것 같습니다.

pygmentize하지만 백엔드로 사용 하고 원하는 라인을~ 아니다매우 구체적인 패턴에 맞게 무시하면 모두 로 시작하므로 >>>프로그래밍 방식으로 쉽게 감지하고 무시할 수 있어야 합니다.

보고자신만의 어휘 분석기 작성에 관한 pygments 문서, 일부 패턴(정규식)의 경우 다른 어휘 분석기가 문자열을 처리하도록 지정할 수 있는 것 같습니다. 그런 다음 로 시작하지 않는 줄을 처리 >>>하고 로 시작하지 않는 줄을 >>>일반 Python 어휘 분석기에 전달할 수 있습니다.

관련 정보