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.c마지막 줄에서 두 번째 줄을 변경하여 C 파일의 실제 경로를 가리키도록 하세요 . 여러 파일을 포함하려면 파일 하나를 추가한 \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로 인쇄할 수 있는 웹 브라우저가 작동합니다.

이것은 언급된 Useless 명령과 유사할 수 있지만 :hardcopy현재 내 시스템에서 확인할 수 없습니다.

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

답변4

네가 물어본 이후로편집하다, Emacs에서 직접 인쇄하는 데 사용할 수 있습니다 ps-print-buffer.

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

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


그럼에도 불구하고 나는 여전히 a2ps, enscript 또는 LaTeX+listings와 같은 적절한 "연마" 도구를 사용하는 것을 권장합니다.

관련 정보