web-dev-qa-db-ja.com

Syntax_highlight <source_file> | lpr

PostScriptプリンターに直接パイプできるソースファイルの構文が強調表示されたバージョンに対応するPostScriptを生成する簡単な方法を知っている人はいますか?

上記の質問の言い回しがおそらく示唆しているように、私はコマンドラインから実行できるものを探しています。私は次のような相互作用を考えています:

% syntax_highlight <SOURCE_FILE> | lp

...必要に応じてコマンドラインスイッチを使用するなど。

私がこれまでに見つけた最高のものはhighlightと呼ばれるUnixユーティリティですが、問題があります。最も深刻なのは、PostScriptを直接出力するオプションがないことです。 (highlightはLaTeX出力をサポートしているので、*。tex => * .dvi => * .psを介してPostScriptファイルを生成するプロセスを自動化するスクリプトにパッチを適用しようとしましたが、最終的な結果はひどく、同じソースコード入力に対してhighlightが生成するHTMLファイルの場合よりもはるかに悪いです。)

ありがとう!

10
kjo

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では印刷関連のオプションをたくさん設定できるので、微調整したい場合は ドキュメント を参照してください。もちろん、 構文の強調表示 オプションもたくさんあります。

13
Shawn J. Goff

さまざまなプログラミング言語をPostscriptにプリティプリントするプログラムがいくつかあり、サードパーティのソフトウェアを実行する必要はありません。

LaTeXを経由する場合は、さらに多くのオプションがあります。 LaTeXを経由することは、同じドキュメントにコードと他の何かを含めたい場合に最も役立ちます。そうでなければそれはやり過ぎです。

Gnomeの標準エディターであるGeditでは、ファイルに印刷し、Postscript(デフォルトのPDF)を選択し、3番目のタブでマークを付けて、強調表示を使用できます。

また、Geditには多くの構文ファイルがあり、HTML、SQL、XML、rcファイルなどの多くのプログラミング言語を提供します。

3
user unknown

Shawn J. Goffの答えを拡張する:

次の1行のvimコマンドを使用して、vim内から.psファイルを作成できます。

:hardcopy > %.ps

.pdfファイルが必要な場合は、次の操作を実行できます。

:hardcopy > %.ps | !ps2pdf %.ps && rm %.ps

注意:

  • %は現在のファイル名の省略形であるため、HelloWorld.CHelloWorld.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'
0
arr_sea