問題
VerbatimOut
「fancyvrb」パッケージの は、UTF-8 文字ではうまく機能しません。
最小限の実例:
\documentclass{minimal}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fancyvrb}
\begin{document}
\begin{VerbatimOut}{\jobname.test}
é
\end{VerbatimOut}
\input{\jobname.test}
\end{document}
エラーメッセージ
を使用してコンパイルするpdflatex mini
と、エラーが発生します
の使用をスキャン中にファイルが終了し
\UTFviii@three@octets
ました。
上記の唯一の発生がé
別のものに置き換えられると、別のエラーが発生しé */
ます。
パッケージ inputenc エラー: Unicode 文字
\u8:###
が LaTeX で使用するように設定されていません。
– この場合、LaTeX はマルチバイト UTF-8 文字の読み取りに成功しますが、それをどう処理すればよいかわかりません (つまり、文字が間違っている) ことを示しています。
実際、生成された.test
ファイルを手動で開くと、文字が含まれていますé
が、Latin-1 エンコーディングでは!
証明: 16 進エディタでファイルを開くと、次のようになります。
- 元のファイル:
C3 A9
(UTF-8 の LATIN SMALL LETTER E WITH ACUTE に対応) - 書き込みファイル:
E9
(é
Latin-1 の に対応)
質問
VerbatimOut
正しく設定するには?
filecontents*
(「filecontents」から)それが機能することを示しています。残念ながら、どちらのコードも理解できないので、filecontents から手動でロジックを複製して fancyvrb のコードを修正することはできません。
前者は a 内で機能しませんが、後者は機能するため、filecontents*
代わりに使用することもできません。VerbatimOut
\newenvironment
(ちなみに、バニラVerbatim
ではなく、期待どおりに動作します。逐語的な入力を読み取るときではなくVerbatimOut
、ファイルを書き込むときにエラーが発生するようです)