タブでインデントしたプログラムをLatexで適切に表示する方法

Emacsなどで作成したプログラムは、タブを利用してインデントづけされている。この場合、それをそのままLatexファイルのverbatim環境内に貼り付けると、インデントがおかしくなってしまう(verbatimはタブを無視するので)。よって、タブをスペースに変換する必要がある。


Emacsを使っているなら、リージョンを選択したのち M-x untabify すると、リージョンの内部のタブをスペースに変換できる。これを使うと、verbatim環境内のプログラムを適切にインデントした状態でLatexコンパイルできる。

Emacsでは C-x h でバッファ全体をリージョンとする(正確には、カーソルをバッファの先頭に置き、マークをバッファの末尾に置く)ことができるので、 C-x h M-x untabify とすれば、テキスト全体のタブを一気にスペースに変換できる。


ほかにも、タブをスペースに変換する機能をもつエディタ*1を利用する、文字列置換プログラムを使う*2、などやり方はたくさんあると思う。

*1:OTBEditなど。

*2:ただしこの方法だと、変換語のスペースの個数の問題が生じてしまう。untabifyだと、変換後のスペースの長さはウィンドウ上の表示に合わせたものになる。