VerbatimOut環境でのTABの扱い(platexとlualatexでの違い)

VerbatimOut環境でのTABの扱い(platexとlualatexでの違い)

- 陽二郎 若座 の投稿
返信数: 4

下記のソースをplatexとlualatexでコンパイルするときの動作が異なることに気がつきました.

TABの前の空白文字はTABに変えてテストしてください.

動作環境はmacOS上のTeXLive2026のTeXShopです.

```

\documentclass{article}
\usepackage{fancyvrb}
\begin{document}
Test VerbatimOut.
\begin{VerbatimOut}[codes={\catcode009=12\relax}]{output.txt}
    SPACE
 TAB
\end{VerbatimOut}
\end{document}

```

platex ではoutput.txtに`^^I`が入ってしまいますが, lualatexではTABのままです.

行頭のTABを消すのがLaTeXのverbatim環境の使用だったと思いますが, fancyvrbパッケージは考え方を変えて, TABを通すようになっているように見えます. そこは理解できるのですが, `^^I`がファイルに出力されると, 出力ファイルが使いツールで使いにくくなってしまいます.

他の環境でもこのような現象があるのでしょうか?

陽二郎 若座 への返信

Re: VerbatimOut環境でのTABの扱い(platexとlualatexでの違い)

- 和田 勇 の投稿

原因解明ではなく、現時点での現象を報告します。

output.txt に出力されるイメージが違う とのことなので platex lualatex のほか、uplatex pdflatex でも試してみました。

結果は、platex と uplatex 、lualatex と pdflatex はそれぞれ同じ結果になりました。

それぞれで生成された output.txt の sha1sum ハッシュ値

0d73d14be81940c5cf0140c345f5a64875515d17  lualatex/output.txt
0d73d14be81940c5cf0140c345f5a64875515d17  pdflatex/output.txt
b30eeae3874dec52567decdda32638932f83cc44  platex/output.txt
b30eeae3874dec52567decdda32638932f83cc44  uplatex/output.txt

それぞれで生成された output.txt のヘキサダンプ


% od -xc lualatex/output.txt 0000000 2020 2020 5053 4341 0a45 5409 4241 000a S P A C E \n \t T A B \n 0000017 % od -xc pdflatex/output.txt 0000000 2020 2020 5053 4341 0a45 5409 4241 000a S P A C E \n \t T A B \n 0000017 % od -xc platex/output.txt 0000000 2020 2020 5053 4341 0a45 5e5e 5449 4241 S P A C E \n ^ ^ I T A B 0000020 000a \n 0000021 % od -xc uplatex/output.txt 0000000 2020 2020 5053 4341 0a45 5e5e 5449 4241 S P A C E \n ^ ^ I T A B 0000020 000a \n 0000021
和田 勇 への返信

Re: VerbatimOut環境でのTABの扱い(platexとlualatexでの違い)

- はやて (h20y6m) の投稿
Unicode TeXではすべてのUnicode文字がそのまま(UTF-8で?)出力されるようですが、
レガシーなTeXは初期状態では制御文字や文字コード128以上の印刷不可能な文字は^^表記で出力されるようになっています。
ただしTeX Liveのlatex, pdflatexではフォーマット作成時に-translate-file=cp227.tcxが指定されていて0x09 (HT; 水平タブ), 0x0a (LF; 改行), 0x0b (VT; 垂直タブ)の3文字と128以上の文字はそのまま出力されるようです。
platex, uplatexでも実行時のコマンド引数に-translate-file=cp227.tcxを付ければlatex, pdflatexと同じ動作になります。
はやて (h20y6m) への返信

Re: VerbatimOut環境でのTABの扱い(platexとlualatexでの違い)

- 陽二郎 若座 の投稿
早速の解決, 助かります.
私の方でも-translate-file=cp227.tcx を使う方法を試しまして, 動作の確認もできました.