
(종이에) C++ 코드를 인쇄할 편집기를 찾고 있습니다. 저는 현재 공과대학에 다니고 있는데 강사가 종이에 코드를 제출하라고 요청했습니다.
그는 이름 + 성, 학급 번호(헤더), 하단의 페이지 번호, 모든 페이지에 굵게 표시된 예약어를 원합니다!
Windows에서는 notepadd++
. 하지만 저는 Linux를 사용하고 있으며 작동하는 IDE나 텍스트 편집기를 찾지 못했습니다. (이미 SCITE
, gedit
, 및 을 시도했습니다 Syntaxic
)
답변1
글쎄, 더 많은 노력을 기울이고 싶다면 LaTeX에서 수행하고 전문가 수준의 PDF 파일을 제공하십시오. 배포판에 대해 언급하지 않았으므로 데비안 기반 시스템에 대한 지침을 제공하겠습니다. 그러나 모든 Linux에서 동일한 기본 아이디어를 수행할 수 있습니다.
LaTeX 시스템 및 필요한 패키지 설치
sudo apt-get install texlive-latex-extra latex-xcolor texlive-latex-recommended
report.tex
다음 내용을 포함하는 새 파일을 만듭니다( 이름 지정 ).\documentclass{article} \usepackage{fancyhdr} \pagestyle{fancy} %% Define your header here. %% See http://texblog.org/2007/11/07/headerfooter-in-latex-with-fancyhdr/ \fancyhead[CO,CE]{John Doe, Class 123} \usepackage[usenames,dvipsnames]{color} %% Allow color names %% The listings package will format your source code \usepackage{listings} \lstdefinestyle{customasm}{ belowcaptionskip=1\baselineskip, xleftmargin=\parindent, language=C++, breaklines=true, %% Wrap long lines basicstyle=\footnotesize\ttfamily, commentstyle=\itshape\color{Gray}, stringstyle=\color{Black}, keywordstyle=\bfseries\color{OliveGreen}, identifierstyle=\color{blue}, xleftmargin=-8em, showstringspaces=false } \begin{document} \lstinputlisting[style=customasm]{/path/to/your/code.c} \end{document}
/path/to/your/code.c
C 파일의 실제 경로를 가리키도록 끝에서 두 번째 줄을 변경했는지 확인하세요 . 포함할 파일이 두 개 이상인 경우 다른 파일에 대해\newpage
새 파일을 추가합니다.\lstinputlisting
PDF 컴파일(이렇게 하면
report.pdf
)pdflatex report.tex
내가 찾은 예제 파일을 사용하여 내 시스템에서 이것을 테스트했습니다.여기그러면 다음과 같은 PDF가 생성됩니다.
대상 폴더에서 모든 .c 파일을 자동으로 찾아 별도의 섹션에 각각 색인된 PDF 파일을 생성하는 보다 포괄적인 예를 보려면 내 답변을 참조하세요.여기.
답변2
나는 보통 enscript를 사용합니다.
$ enscript --highlight=cpp
--header='|Real Name|Class 101'
--footer='|Page $% of $=|'
-poutput.ps *.cpp
시작이 될 것입니다. 이것은 포스트스크립트 출력을 에 기록하므로 output.ps
구성을 수정하는 동안 이를 미리 보고 덮어쓸 수 있으며 만족스러우면 인쇄할 수 있습니다. 보다 광범위한 옵션을 보려면 매뉴얼 페이지를 참조하십시오.
편집하다바닥글이 올바르게 작동하도록 하는 것은 enscript를 사용하는 데 있어서 약간의 고통입니다. 저는 그것을 요구한 적이 없기 때문에 전혀 눈치 채지 못했습니다. 저장하면이 파일~/.enscript/so.hdr
(디렉토리를 만들어야 할 수도 있음) 실제로 다음을 사용하여 필요한 출력을 얻을 수 있습니다 .
$ enscript --highlight=cpp
--header='|Real Name|Class 101'
--footer='|Page $% of $=|'
--fancy-header=so
-poutput.ps *.cpp
기부
대충,
- LaTeχ는 품질이 가장 좋고 설정에 가장 많은 노력이 필요하며,
- enscript 또는 a2ps는 품질과 작업면에서 중간 수준입니다.
- vim의
:hardcopy
명령은 쉽지만 그다지 유연하지는 않습니다. - 코드를 인식하지 못하는 편집기에서 수동으로 구문 강조를 수행하는 것은 좋지 않은 결과를 초래하는 많은 노력입니다.
답변3
vim에서 명령을 사용할 수 있습니다 :TOhtml
. 이는 여러분이 보는 것(예: 구문 강조)을 html로 렌더링합니다. 여기서는 일반적으로 머리글/바닥글 내용을 사용자 정의할 수 있으므로 PDF로 인쇄할 수 있는 웹 브라우저가 작동합니다.
이는 아마도 :hardcopy
Useless에서 언급한 명령과 유사할 것입니다. 그러나 지금은 시스템에서 확인할 수 없습니다.
또 다른 가능성은 QtCreator에서 인쇄하는 것이지만 머리글/바닥글을 설정하는 방법은 없는 것 같습니다.
답변4
당신이 요청한 이후로편집자, 를 사용하여 Emacs에서 직접 인쇄할 수 있습니다 ps-print-buffer
.
머리글과 바닥글은 라는 사용자 정의 그룹에 있습니다 ps-print-headers
.
글꼴 잠금을 사용한다고 가정하면 아마도 필요한 구문 강조가 있을 것입니다. 필요한 경우 기능을 사용하여 조정할 수 있습니다 ps-extend-face
.
그럼에도 불구하고 a2ps, enscript 또는 LaTeX+listings와 같은 적절한 '연마' 도구를 사용하는 것이 좋습니다.