LaTex / LyX에 프로그래밍 코드 추가


10

어쩌면 나는 두껍지 만 모든 들여 쓰기 정보 (파이썬에 중요한 것)를 잃지 않고 단순히 (파이썬) 코드를 라텍스에 붙여 넣는 합리적인 방법을 찾을 수 없습니다.

누구든지 밝은 아이디어가 있습니까? 구문 강조에 대해 걱정하지 않습니다. 탭 키만 있으면됩니다.

답변:


13

이에 대한 나의 마음에 드는 환경을 발행 년도 . 다음과 같은 전체 소스 파일을 입력하는 데 사용합니다.

\inputminted[linenos,fontsize=\scriptsize]{python}{script.py}

또한 파일을 inputing없이 사용하고, 더 중요한 것은 얼마나 많은 들여 쓰기를 정의 할 수 있습니다 먹는다 번 붙여 :

\newminted{python}{gobble=4,linenos,fontsize=\scriptsize}
\begin{pythoncode}
    print('I am a Python script')
\end{pythoncode}

그렇게하면 LaTeX가 여전히 잘 들여 쓰기되지만 축약어 코드는 아닙니다. 또한 구문 강조 표시 기능을 제공하므로 관심이 없다고 언급했습니다. 언어를 정의하지 마십시오.


4

축약 형 환경을 사용하려고합니다. http://web.mit.edu/vogt/www/latex/ltx-79.html

붙여 넣을 때 즉시 문제가 발생하는 경우 ... IDE를 사용하여 문서를 작성하고 있습니까? gedit 또는 notepad와 같은 일반 텍스트 편집기에서 파일을 열어보십시오.


2

minted피델 리가 제안한대로 함께 갈 것입니다 . 그러나 패키지에 대해 알고있는 것이 좋습니다. listings패키지 는 문제가 아닌 순수한 라텍스 솔루션입니다.

mintedPython으로 작성된 소스 하이 라이터Pygments 에서 파생됩니다 . minted라텍스 다리 coimes는, 기반 \write18패키지는 Pygments 하나 제공합니다. 내가 아는 피그먼트와 비교할 때 단점은 없습니다 . 어쩌면 두 개가 어느 시점에 병합 될 것입니다.texmentsminted


1

리스팅 패키지를 사용하려면 패키지를 포함하고 프리앰블에 필요한 언어를로드해야합니다.

\usepackage{listings}
\lstloadlanguages{Python}

문서 안에 몇 가지 옵션을 설정하십시오.

\lstset{language=Python,tabsize=2}

... 그리고 스 니펫을 인라인으로 제공 할 수 있습니다.

\begin{lstlisting}
  print ("Hello, World!")
\end{lstlisting}

... 또는 파일에서 읽습니다.

\lstinputlisting[firstline=10,lastline=20]{Hello.py}

... 또는 코드를 인라인으로 작성하십시오. \lstinline!print ("Hello, World!")!


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.