他人のソースコードだったりを読むときに普段 iPad Pro に PDF としてダウンロードし、書き込んだりマークしたりして読むことが多い。
これまでは Windows でこの変換(というか印刷)を行っていたが、Linux を常用するようになったので Linux でも簡単にできるようにしてみた。
enscript
これはソースコードを PostScript や html に変換してくれるパッケージである。
Arch Linux であれば Pacman でインストールする。
何ができるかというと、行番号表示やソースコードのシンタックスハイライトが可能になる。
例えば、C++のソースコードを PS ととして出力するには、
$ enscript --highlight=cpp --color -C -H1 main.cpp -o main.cpp.ps
とすればよい。
--highlight=**
でソースコードの言語を指定することができる
どの言語が使えるかは、
$ enscript --help-highlight
で調べることができる(普段使いしそうな言語は殆ど網羅されている感じである)。
-C
は左側に行番号を表示してくれる。
ps2pdf
PS を PDF に変換するには、このパッケージを使う。
使い方は簡単で、
$ ps2pdf main.cpp.ps
とするとmain.cpp.pdf
というファイルが生成される。
おまけ
これらを組み合わせた、引数に C++のソースコードを指定すれば PDF が出力される単純なシェルスクリプト。
#!/bin/bash
if [ $# -eq 1 ]; then
filename=$1
enscript --highlight=cpp --color -C -H1 $filename -o $filename.ps
ps2pdf $filename.ps
fi