LaTeX에서 소스 코드를 텍스트로 작성

LaTeX에서 소스 코드를 텍스트로 작성

LaTeX의 소스 코드를 텍스트로 허용하는 패키지가 있습니까? listings코드가 너무 많은 공간을 차지하기 때문에 패키지를 사용하지 않는 것이 좋습니다 . 복사/붙여넣기는 공백이 유지되지 않기 때문에 지루합니다.

답변1

실험을 시작하기 위한 패키지 및 도구에 대한 몇 가지 팁을 드릴 수 있습니다. 과거에 여러 도구를 사용해 보았습니다.

  • 나는 TeX의 환경을 좋아 verbatim합니다 verbatim*. 이는 코드의 작은 부분을 즉시 조판하는 쉽고 간단한 방법입니다. 그러나 줄 바꿈은 할 수 없습니다.

  • fancyvrb얼마전부터 패키지를 사용하고 있었는데 ,http://ctan.org/pkg/fancyvrb. 이는 소스 코드 줄 번호에 대한 상호 참조가 (전혀) 가능하다는 것을 알아차린 첫 번째 패키지였습니다. 설명서의 14페이지와 15페이지를 참조하세요.

  • listings패키지를 자주 이용하는데 ,http://ctan.org/pkg/listings. 다소 복잡한 패키지이지만 내 요구 사항, 특히 외부 파일 형식 지정 옵션( \lstinputlisting명령)을 충족합니다. 또한 줄을 래핑하고 해당 줄에 열기 및 닫기 기호를 추가할 수도 있습니다. VBA 언어(Visual Basic for Application)에 대한 자체 필터를 만들었던 것을 기억하며, 이를 시도해 보는 것은 재미있었습니다. UTF-8 코드 문자를 다룰 때 새로운 패키지가 있습니다. 패키지를 참조하세요 listingsutf8.http://ctan.org/pkg/listingsutf8. 나는 listings특정 문제를 해결하기 위해 이스케이프 시퀀스를 사용하고 있었습니다 . 나는 내 소스 코드에 CJKV(중국어, 일본어, 한국어, 베트남어)를 조판하고 있었습니다.사요나라!일본어로는 그렇죠안녕히 가세요!영어로). 한번은 PF 엽서 준비 과정을 발표하고 있었습니다.

  • 코드 를 다루는 경우 R요즘에는 작업할 수 있는 훌륭한 도구가 있습니다 knitr.http://yihui.name/knitr/) 그리고 이름이 다소 오래된 도구 Sweave(http://www.stat.uni-muenchen.de/~leisch/Sweave/).

  • 코드를 다루고 계시다면 Sage스타일을 한번 시험해 보시기 바랍니다 SageTeX.http://ctan.org/pkg/sagetex. 이 프로그램은 제가 한 번 직접 만난 사람이자 개발자인 체코 브르노 출신의 Robert Mařík이 프로그래밍했습니다.:-)

  • 나는 또한 Highlight프로그램을 사용합니다 (http://www.andre-simon.de/). 하나의 소스 코드에 여러 언어를 혼합하여 강조 표시할 수 있는 옵션이 있습니다(LaTeX+Lua, HTML+CSS 등). 파일 내 중첩된 언어의 형식화 및 인식이라고 합니다. 저는 LuaTeX가 탄생했을 때 그 기능을 요청했는데 그렇게 한 것이 자랑스럽습니다. 두 프로그램(이 프로그램과 Pygments) 모두 다른 언어에 대한 내보내기 옵션으로 LaTeX 형식을 제공합니다. 스타일은 문서의 나머지 부분과 별도의 파일로 추출될 수 있습니다.

  • 언급할만한 가치가 있는 도구는 Pygments(http://pygments.org/). 명령줄에서 직접 사용하고 있습니다(또는 Python 내 라이브러리로). 게다가 TeX 세계에는 변환을 더 쉽게 해주는 패키지가 (적어도) 두 개 있습니다 TeXments.http://ctan.org/pkg/textments) 그리고 Minted(http://ctan.org/pkg/minted). Python에 관해서는 이라는 패키지도 있습니다 PythonTeX.http://ctan.org/pkg/pythontex. 시도 해봐!

  • 최근에 도구에 대해 알게 되었는데 pandoc,http://johnmacfarlane.net/pandoc/. 오히려 형식 간 변환기이지만 시도해 볼 가치가 있습니다. 모든 주요 운영 체제에 대한 자체 실행 파일 외에도 온라인 버전이 있습니다.http://johnmacfarlane.net/pandoc/try/. LaTeX 형식은 변환기의 입력 및 출력 측에 대한 옵션입니다. 이 도구는 미래에서 온 것 같습니다!

소스 코드 조판에 행운이 있기를 바랍니다!

답변2

다음은 학생들(TeX를 배우는)에게 숙제의 소스 코드를 제공하여 수학을 작성할 때 공부하고 편집할 수 있도록 하는 관용구입니다.

\documentclass{article}
\usepackage{verbatim}

\begin{document}

Homework exercises here \ldots 

\newpage

Here is the \LaTeX{} source for this document. You can cut it from the
pdf and use it to start your answers. I used the \verb!\jobname! macro
for the source file name, so you can call your file by any name you like.

\verbatiminput{\jobname}

\end{document}

답변3

verbatimbox크기를 줄여 상자에 넣는 데 사용됩니다 . 를 사용하면 상자 크기를 더욱 줄일 수 있습니다 \scalebox. 상자가 페이지 경계를 넘어가지 않는 반면, 패키지는 페이지를 넘어가는 일부 매크로의 "nobox" 버전도 제공합니다. 그러나 박스형 기능은 그림, 표에 축어적으로 포함하고 선에서 바로 이동하거나 중앙에 배치하는 데 유용합니다.

이 MWE에서는 명확성을 위해 모든 축어 상자 주위에 인클로저를 수동으로 추가했지만 \fbox축어 상자의 일부는 아닙니다.

\documentclass{article}
\usepackage{verbatimbox}
\usepackage{graphicx}
\parskip 1ex
\parindent 0in
\begin{document}
With verbatimbox, you can tell the macro to make the code ``footnotesize.''\par
\begin{verbbox}[\footnotesize]
Here is my input code text
Line two of my $%& code text
Done now.
\end{verbbox}
\fbox{\theverbbox}\par
If it is from a file, I can do that, too, this time \verb|\scriptsize|:\par
\verbfilebox[\scriptsize]{junk.tex}
\fbox{\theverbbox}\par
Alternately, you could shrink it further with a \verb|\scalebox|:\par
\fbox{\scalebox{.5}{\theverbbox}}\par
If you have need to break across pages, the package offers ``nobox'' versions
of some of its macros.
\end{document}

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

또한numberedblock다음과 같은 방식으로 작은 코드 블록의 형식을 지정할 수 있는 패키지(참고: 패키지 문서에서 가져온 이미지):

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

답변4

문자 그대로의 문제는 긴 코드 줄을 깨지 않는다는 것이므로 spverbatim대신 패키지를 사용합니다.

샘플 출력

\documentclass{article}

\usepackage{spverbatim}

\begin{document}

\begin{spverbatim}
code
code with a very long line that does not fit on the page and so needs to be broken or wrapped
code
\end{spverbatim}

\end{document}

관련 정보