PostScriptプリンターに直接パイプできるソースファイルの構文が強調表示されたバージョンに対応するPostScriptを生成する簡単な方法を知っている人はいますか?
上記の質問の言い回しがおそらく示唆しているように、私はコマンドラインから実行できるものを探しています。私は次のような相互作用を考えています:
% syntax_highlight <SOURCE_FILE> | lp
...必要に応じてコマンドラインスイッチを使用するなど。
私がこれまでに見つけた最高のものはhighlight
と呼ばれるUnixユーティリティですが、問題があります。最も深刻なのは、PostScriptを直接出力するオプションがないことです。 (highlight
はLaTeX出力をサポートしているので、*。tex => * .dvi => * .psを介してPostScriptファイルを生成するプロセスを自動化するスクリプトにパッチを適用しようとしましたが、最終的な結果はひどく、同じソースコード入力に対してhighlight
が生成するHTMLファイルの場合よりもはるかに悪いです。)
ありがとう!
Vimを使用できます。
vim -c hardcopy -c quit /path/to/file
これにより、ファイルが印刷され、すぐに終了します。デフォルトでは、vimは構文を強調表示して印刷します。
コマンドのstdoutから印刷する必要がある場合は、次のようにすることができます。
cat some_file.c | vim -c hardcopy -c 'quit!' -
後で使用するために.psを保存する場合は、次のように、ハードコピーコマンドにリダイレクトを追加することで保存できます。
vim -c 'hardcopy > /path/to/saved.ps' -c 'quit' /path/to/file
Vimでは印刷関連のオプションをたくさん設定できるので、微調整したい場合は ドキュメント を参照してください。もちろん、 構文の強調表示 オプションもたくさんあります。
Gnomeの標準エディターであるGeditでは、ファイルに印刷し、Postscript(デフォルトのPDF)を選択し、3番目のタブでマークを付けて、強調表示を使用できます。
また、Geditには多くの構文ファイルがあり、HTML、SQL、XML、rcファイルなどの多くのプログラミング言語を提供します。
Shawn J. Goffの答えを拡張する:
次の1行のvimコマンドを使用して、vim内から.psファイルを作成できます。
:hardcopy > %.ps
.pdfファイルが必要な場合は、次の操作を実行できます。
:hardcopy > %.ps | !ps2pdf %.ps && rm %.ps
注意:
%
は現在のファイル名の省略形であるため、HelloWorld.C
はHelloWorld.C.ps
またはHelloWorld.C.pdf
に出力されます。さらに、レンダリングされたフォントを変更するには、printerfont beforeを設定してhardcopyコマンドを実行します。たとえば、Courier8を選択するには:
:set printerfont=Courier:h8
すべてをまとめると、:HardcopyPs
または:HardcopyPdf
コマンド(ファイル内の選択した範囲でも操作できる)を簡単に実行できるように、.vimrcファイルに次のものを入れることにしました。
set printfont=Courier:h8 "select the font to use when printing
command! -range=% HardcopyPs <line1>,<line2> hardcopy > %.ps && echo 'Created: %.ps'
command! -range=% HardcopyPdf <line1>,<line2> hardcopy > %.ps | !ps2pdf %.ps && rm %.ps && echo 'Created: %.pdf'