C ++コードを(紙に)印刷するエディターを探しています。私は現在工学学校にいますが、インストラクターはコードを紙で提出するように私たちに依頼しました。
彼は、名前+姓、クラス番号(ヘッダー上)、下部のページ数、およびすべてのページに太字の予約語が必要です!
Windowsでは、で実行できますnotepadd++
。しかし、私はLinuxを使用していますが、動作するIDEやテキストエディターが見つかりません。(私はすでに試したSCITE
、gedit
とSyntaxic
)
C ++コードを(紙に)印刷するエディターを探しています。私は現在工学学校にいますが、インストラクターはコードを紙で提出するように私たちに依頼しました。
彼は、名前+姓、クラス番号(ヘッダー上)、下部のページ数、およびすべてのページに太字の予約語が必要です!
Windowsでは、で実行できますnotepadd++
。しかし、私はLinuxを使用していますが、動作するIDEやテキストエディターが見つかりません。(私はすでに試したSCITE
、gedit
とSyntaxic
)
回答:
さて、あなたが余分な距離を行きたいなら、LaTeXでそれをして、プロレベルのPDFファイルを提供してください。ディストリビューションについては言及していませんので、Debianベースのシステムの手順を説明します。しかし、同じ基本的な考え方はどの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
最後から2行目を変更して、Cファイルの実際のパスを指すようにしてください。含めるファイルが複数ある場合は、a \newpage
を追加してから\lstinputlisting
、もう一方のファイルに新しいファイルを追加します。
PDFをコンパイルします(これによりが作成されますreport.pdf
)
pdflatex report.tex
ここで見つけたサンプルファイルを使用してシステムでこれをテストすると、次のようなPDFが作成されます。
ターゲットフォルダー内のすべての.cファイルを自動的に検索し、それぞれ個別のセクションでインデックス付きPDFファイルを作成するより包括的な例については、こちらの回答を参照してください。
私は通常enscriptを使用します:のようなもの
$ enscript --highlight=cpp
--header='|Real Name|Class 101'
--footer='|Page $% of $=|'
-poutput.ps *.cpp
開始点です-これはにポストスクリプト出力を書き込むoutput.ps
ので、設定をいじりながらそれをプレビューして上書きし、満足したら印刷できます。より広範なオプションについては、manページを参照してください。
フッターを正しく機能させるための編集は、enscriptを使用すると少し苦痛になります。フッターを必要としなかったので、気づいたことはありませんでした。このファイルを保存する場合~/.enscript/so.hdr
(おそらくディレクトリを作成する必要があります)、実際に必要な出力を取得します
$ enscript --highlight=cpp
--header='|Real Name|Class 101'
--footer='|Page $% of $=|'
--fancy-header=so
-poutput.ps *.cpp
与える
大体、
:hardcopy
コマンドは簡単ですが、それほど柔軟ではありません。emscript
。たくさんのオプションがあり、非常に良い結果が得られます。
完全を期すため、またその解決策はお勧めしませんが、lp
プログラムには-o prettyprint
構文の強調表示を行うオプションがあります。
たとえば、次のように使用できます。
lp -t "Name Surname | Class" -o document-format=application/x-csource -o prettyprint path/to/code.cpp
ここでは、-t
(タイトル)オプションを使用してヘッダーを設定しました。フッターは変更できません(ただし、ページ番号は上部に表示されます)。オプションを使用してファイルタイプを設定できます-o document-format
(許容値のリストはである/usr/share/cups/mime/mime.types
か、またはである可能性/etc/cups/mime/mime.types
があります)が、ファイルの拡張子が正しい場合は必要ありません。また、構文の強調表示は完璧にはほど遠いです。
LibreOffice Writerが必要です。
C / C ++コードを貼り付けます。
単語を見つけて、すべてのC ++キーワードを太字にします。
ここで見つけることができます:http : //en.cppreference.com/w/cpp/keyword
単語を検索するにはCtrl + Fを押します。[大文字と小文字を区別する]を選択し、[すべて検索]をクリックします(スクリーンショットを参照)。
その後、名前とページ番号を含むヘッダーとフッターが必要です。
EDIT: (クリストフStrobbeは次のようにコメント)
コードの色付けのためのLibreOffice拡張機能、Code Colorizer Formatterがあります。(まだテストしていません。)