C++コード印刷用のテキストエディタ

C++コード印刷用のテキストエディタ

(紙に)C ++コードを印刷するエディタを探しています。私は現在工科大学に通っていますが、先生に紙コードを提出するように言われました。

彼は名前+姓、学番(タイトルにあります)、一番下のページ番号、各ページに太字で表示された予約語が欲しい!

Windowsでは動作しますnotepadd++。しかし、私はLinuxを使用しており、利用可能なIDEやテキストエディタを見つけることができませんでした。 (私はSCITE、、、とgeditしようとしましたSyntaxic

答え1

さらに進みたい場合は、LaTeXで行い、専門家レベルのPDFファイルを提供してください。ディストリビューションについて言及していないので、Debian ベースのシステムに関するガイダンスを提供します。ただし、同じ基本的なアイデアはすべての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最後の行から2行目を変更して、Cファイルの実際のパスを指すようにします。複数のファイルを含めるには、1つのファイルを追加してから、\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

スタートになります。これにより PostScript 出力が作成されるため、output.ps設定を変更するときにプレビューして上書きでき、満足すれば印刷できます。より広範なオプションについては、マニュアルページを参照してください。

編集するフッターを正しく機能させることは、scriptを使用する際の少しの痛みです。必要ないから全然気づかなかった。保存するとこのファイル~/.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で印刷できるWebブラウザが機能します。

これは上記のUselessコマンドと似ていますが、:hardcopy現在私のシステムでは確認できません。

もう1つの可能性はQtCreatorで印刷することですが、ヘッダー/フッターを設定する方法がないようです。

答え4

あなたが尋ねた後編集する、Emacsから直接印刷するために使用できますps-print-buffer

ヘッダーとフッターは、名前付きのカスタムグループにありますps-print-headers

フォントロックを使用すると仮定すると、必要な構文の強調があります。必要に応じてこのps-extend-face機能を使用して調整できます。


それにもかかわらず、私はまだa2ps、enscript、またはLaTeX + listingsなどの適切な「研磨」ツールを使用することをお勧めします。

関連情報