藤小僧の写真ブログ

街と花とK20Dと私

LyXで日英混じりのソースコードをリスティングする

写真ブログとして6年ほど続けてきた当プログだが,一番アクセス数が多いのはコンピュータ関連の記事なので,リニューアルを考えても良い時期かもしれない。
毎年紅葉を撮りに行こうと思いつつも行けていないので,今年こそは...



私は(面倒くさがりなので)LyX を介して pLaTeX を使っているが,日英混じりのプログラムのソースコードpLaTeX 上で listings を使って記述すると,日本語と英語の順序がめちゃくちゃになってしまう。これはよく知られたことらしく,グーグル先生に尋ねてみると jlisting.sty か plistings.sty を使う方法が数多くヒットする。自分も試してみたところ,確かに日本語と英語の順序が入れ替わる現象はなくなる。しかし,代わりに日本語の文章の字間が妙に間延びしてしまっていて,見ていてなんだかモヤモヤする出来になっていた。

日 本 語 日 本 語 。


そもそも環境ごとに jlisting か plistings をいちいちダウンロードして mktexlsr するのも面倒だし,なんとかして listings だけでうまいこと出来ないかと試行錯誤していたが,全角文字と半角文字の間に半角スペースを入れると,順序が入れ替わらなくなることに気づいた。

...
[]
...


これでpdf化すると ℃[] と出力されてしまうが,

...
[]
...


とすることで,[ ℃ ] と出力することができた。少し不格好だけど,全角文字が連続するところで字間が間延びする現象はなくなったので,自分はこれで妥協することにした。もしかすると jlisting や plistings で自分好みに表示させる方法もあるかもしれないけど,よくわからなかった。もしご存じの方がいらっしゃったらご教示ください。

環境

texlive 2016 + LyX 2.2.2