Q&A 마당은 텍 관련 질문/답변을 위해 만들었습니다.

  • 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
  • 질문 전에 아래를 읽어 보세요. 좋은 질문이 좋은 답을 받을 수 있는 좋은 방법입니다.
    • 질문에 맞는 제목을 붙이세요. 질문의 내용과 관련없는 "고수님", "긴급질문", "도와주세요"와 같은 제목은 답이 잘 올라오지 않습니다. 이 게시판에 올라오는 모든 글은 질문입니다. 굳이 [질문], [Q]를 적으실 필요도 없습니다.
    • 내용을 충실히 적어 주시고, 같은 상황을 재현할 수 있는 최소한의 예제가 같이 있어야 합니다.
    • 최소 예제는 "Minimal working example"을 읽어 보세요.
  • 파일을 첨부하실 때에는 가능한 압축하여 파일 크기를 줄여서 올려주시길 바랍니다.
  • 개인적으로 사용하신 글꼴이 들어 있는 경우, preparefont.sty에 관한 답변을 참조하세요.
  • 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
    • 금지어에서 stackexchange, stackoverflow, ctan, overleaf, , github, google.com, gmail.com, .org, .io, sil.org, wiki.com, tistory.com등은 해제하였습니다.
  • MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
  • 사용하는 편집기는 CKeditor입니다.
    • 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한 줄을 비웁니다.
    • 글줄만 바꾸려면 [shift-enter]를 누르면 <BR> 태그가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
    • 수식를 문서내에 삽입하시려면 에디터를 툴바에서 [소스]를 눌러 HTML로 입력할 수 있게 바꾸신 후 <pre> </pre> tag를 사용하셔서 <pre> 여러 줄의 수식 </pre>처럼 입력하시면 좋습니다.

Progress

소스 코드 하이라이팅에 관한 패키지는 많이 있습니다.

여기서는 listnigs 패키지를 잠깐 소개합니다.

> texdoc listings

listings 패키지는 다양한 프로그래밍 랭귀지에 대해 소스 코드 하이라이팅을 제공합니다.

source_code_highligting.png



\lstinputlisting 명령은 외부에 있는 stack.java 파일을 직접 넣을 때 사용합니다.

그리고 소스코드마다 줄번호를 표기하고, 본문에 언급할 때는 해당 줄번호를 참고하라는 식으로 처리하면 어떨까 싶습니다.

지금 줄번호는 2줄마다(stepnumber=2) 소스코드의 왼쪽에(numbers=left) 아주 작은 모노폰트로(numberstyle=\tiny\ttfamily) 매기게 해놨습니다.


\documentclass[a4paper]{oblivoir}

\usepackage[svgnames]{xcolor}

\usepackage{listings}
\lstset{
  basicstyle=\small\ttfamily,
  keywordstyle=\color{MidnightBlue},
  stringstyle=\color{DarkRed},
  commentstyle=\color{DarkGreen},
  showspaces=false,
  columns=fullflexible,
  breaklines=true,
  numbers=left,
  numberstyle=\tiny\ttfamily,
  stepnumber=2,
}

\begin{document}

\lstinputlisting[%
language=Java,
]{Stack.java}

\end{document}


===


최근에 보았던 것은 에드님이 소개해주신 python과 pygmentize를 이용하는 방법이었고요. 이게 좀더 listings 패키지보다 유연할 수도 있겠다는 생각도 들었습니다. 이는 verbments 패키지를 얹고 하이라이팅은 잠깐  python에 맡긴 다음 이를 다시 호출하여 텍 문서에 삽입하는 방법으로 컴파일할 때 --shell-escape 옵션을 주어야합니다.
(자세한 것은 http://www.ktug.org/xe/index.php?document_srl=175643 참고)

또 pygmentex 이라는 패키지도 최근에 개발된 것으로 알고 있습니다.
http://wiki.ktug.org/wiki/wiki.php/pygmentex




XE Login