C++ 코드 인쇄용 텍스트 편집기

C++ 코드 인쇄용 텍스트 편집기

(종이에) C++ 코드를 인쇄할 편집기를 찾고 있습니다. 저는 현재 공과대학에 다니고 있는데 강사가 종이에 코드를 제출하라고 요청했습니다.

그는 이름 + 성, 학급 번호(헤더), 하단의 페이지 번호, 모든 페이지에 굵게 표시된 예약어를 원합니다!

Windows에서는 notepadd++. 하지만 저는 Linux를 사용하고 있으며 작동하는 IDE나 텍스트 편집기를 찾지 못했습니다. (이미 SCITE, gedit, 및 을 시도했습니다 Syntaxic)

답변1

글쎄, 더 많은 노력을 기울이고 싶다면 LaTeX에서 수행하고 전문가 수준의 PDF 파일을 제공하십시오. 배포판에 대해 언급하지 않았으므로 데비안 기반 시스템에 대한 지침을 제공하겠습니다. 그러나 모든 Linux에서 동일한 기본 아이디어를 수행할 수 있습니다.

  1. LaTeX 시스템 및 필요한 패키지 설치

    sudo apt-get install texlive-latex-extra latex-xcolor texlive-latex-recommended
    
  2. 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.cC 파일의 실제 경로를 가리키도록 끝에서 두 번째 줄을 변경했는지 확인하세요 . 포함할 파일이 두 개 이상인 경우 다른 파일에 대해 \newpage새 파일을 추가합니다.\lstinputlisting

  3. PDF 컴파일(이렇게 하면 report.pdf)

    pdflatex report.tex    
    

내가 찾은 예제 파일을 사용하여 내 시스템에서 이것을 테스트했습니다.여기그러면 다음과 같은 PDF가 생성됩니다.

생성된 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로 인쇄할 수 있는 웹 브라우저가 작동합니다.

이는 아마도 :hardcopyUseless에서 언급한 명령과 유사할 것입니다. 그러나 지금은 시스템에서 확인할 수 없습니다.

또 다른 가능성은 QtCreator에서 인쇄하는 것이지만 머리글/바닥글을 설정하는 방법은 없는 것 같습니다.

답변4

당신이 요청한 이후로편집자, 를 사용하여 Emacs에서 직접 인쇄할 수 있습니다 ps-print-buffer.

머리글과 바닥글은 라는 사용자 정의 그룹에 있습니다 ps-print-headers.

글꼴 잠금을 사용한다고 가정하면 아마도 필요한 구문 강조가 있을 것입니다. 필요한 경우 기능을 사용하여 조정할 수 있습니다 ps-extend-face.


그럼에도 불구하고 a2ps, enscript 또는 LaTeX+listings와 같은 적절한 '연마' 도구를 사용하는 것이 좋습니다.

관련 정보