listings で 1 行目がレンダリングされないことがある
試してみましたが,どうも lstlisting な環境の引数に和文文字が含まれていると起こるみたいです. 以下の Warning が出ています:
Package Listings Warning: Text dropped after begin of listing on input line 15.
白筋の問題(チケット #27098)と共に,確認しました.
LuaTeX-ja の
という仕様が裏目にでているようです.
とりあえず,こちらでは,
\begin{env}% {p問} #!/bin/bash : \end{env}のように,引数の直前で(%つきで)するとうまくいっている感じがします.
JAchar (とグループ境界文字の連続)で終わる行には,改行によって空白が入ることを防ぐために,末尾にコメント文字 U+FFFFF を付加する
ああ,なるほど.和文文字が「含まれていると」ではなくて「末尾にあると」が正しいのですね. 失礼しました.
コメントありがとうございます。こちらの場合、とりあえずの回避策(「\begin行の途中で改行」も含む)がわかっていたので、優先度は低めにしておいた方が良かったかも知れません。
Package Listings Warning: Text dropped after begin of listing on input line 15.
同様の警告が
\begin{lstlisting}{hoge}a 1st line 2nd line \end{lstlisting}でも出ていることから,よくわかりませんが,次のようになっていると予想します.
コメント文字が付加された結果を見ると,
\begin{lstlisting}{problem; 1st line not rendered --- 問題}(U+FFFFF) 1st line 2nd line \end{lstlisting}となりますが,ここで,U+FFFFF はコメント文字なので(?),実際には
\begin{lstlisting}{problem; 1st line not rendered --- 問題}1st line 2nd line \end{lstlisting}と同じことになっている→「1st line」はいわば「同じ行」扱いになってしまうため出力されない.
U+FFFFF をコメント文字にしなければいいと思うので,次の hook を加えてみたところ,うまく動いている気がします:
\lst@AddToHook{PreSet}{\catcode"FFFFF=9 }
U+FFFFF をコメント文字にしなければいいと思うので,次の hook を加えてみたところ,うまく動いている気がします:
ありがとうございます。当面はこの方法を使うことにします。
kitagawa_test ブランチ (snapshot (.tgz)) において, listings へのパッチを再設計してみました.
ロードに数秒程度かかり,メモリも余計に使ってしまいますが,こちらに入れ替えてみるとどうなるでしょうか?
お手数かけます。
この件は解決しましたが、別の問題が発生したようです。
ここには、単にログを貼ります。 https://gist.github.com/1574793#file_a_1jalua.log.luatexja_dc4f10c.nkf_w 後でチケットを発行します。
とりあえず落ち着いたようなので,完了とします.
listings を使って、
のようにすると、1st line がレンダリングされない。詳細な再現条件を、https://gist.github.com/1574793 に残した。