(종이에) 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로 인쇄할 수 있는 웹 브라우저가 작동합니다.
이것은 언급된 Useless 명령과 유사할 수 있지만 :hardcopy
현재 내 시스템에서 확인할 수 없습니다.
또 다른 가능성은 QtCreator에서 인쇄하는 것이지만 머리글/바닥글을 설정할 방법이 없는 것 같습니다.
답변4
네가 물어본 이후로편집하다, Emacs에서 직접 인쇄하는 데 사용할 수 있습니다 ps-print-buffer
.
머리글과 바닥글은 이름이 지정된 사용자 정의 그룹에 있습니다 ps-print-headers
.
글꼴 잠금을 사용한다고 가정하면 필요한 구문 강조가 있을 것입니다. 필요한 경우 이 ps-extend-face
기능을 사용하여 조정할 수 있습니다.
그럼에도 불구하고 나는 여전히 a2ps, enscript 또는 LaTeX+listings와 같은 적절한 "연마" 도구를 사용하는 것을 권장합니다.