NewTCBListingにおいて、1行目のみ出力がおかしい

Re: NewTCBListingにおいて、1行目のみ出力がおかしい

- Z. R. の投稿
返信数: 1

tcolorboxのマニュアルにおいて、\NewTCBListing の解説の少し後(最新版だとp.339)に注意書きがあり、そこでは
「引数仕様の末尾※にオプション引数(Oやo)を置きたい場合は“!”を付けろ」
と言っています。
※正確には「最後の必須引数より後」。

この“!”は「オプション引数は空白を置かずに直後に書く」という仕様を強制するものです。“!”無しの既定動作では、オプション引数(#3や#4)の存在を調べるために空白を飛ばして先を読もうとするので、ここで「本来verbatimで読み取るべき文字列(環境の中身の先頭の \newtcblisting など)を非verbatim状態で読み取ってしまう」という不都合な動作が生じるわけです。
※詳細は usrguide の2.6節を参照。

これに従うと、問題のlstlistingTest環境の定義は

\NewTCBListing{lstlistingTest}{ m m !o !O{black} }{%

となるべきで、実際にこれなら所望通りの出力が得られています。

Z. R. への返信

Re: NewTCBListingにおいて、1行目のみ出力がおかしい

- KK TeX の投稿

確かに望んでいた出力を得られました!その部分は見落としていました。ありがとうございます。