何が起こっているのか説明していただけますか?
私は最新の MiKTeX 2.9.6960 64 ビット バージョン (昨日インストールしたばかり) を使用しています。
inputenc パッケージを使用せずに、キリル文字のテキストを別のファイルに書き込もうとしています。
\documentclass{article}
\begin{document}
\newwrite\testwrite
\immediate\openout\testwrite=testwrite.txt
\immediate\write\testwrite{Ббббббббббббб}
\immediate\closeout\testwrite
\end{document}
しかし、LaTeX はエンコードに問題があるとは言わず、代わりに内部コマンドの一部が未定義であると伝えます。以下は対応するログ ファイルの一部です。
! Undefined control sequence.
\GenericError ...
#4 \errhelp \@err@ ...
l.9 \immediate\write\testwrite{Ббббббббббббб}
?
! Undefined control sequence.
\GenericError ...
\let \@err@ ...
l.9 \immediate\write\testwrite{Ббббббббббббб}
?
! Undefined control sequence.
\GenericError ...
\@empty \def \MessageBreak...
l.9 \immediate\write\testwrite{Ббббббббббббб}
?
! Undefined control sequence.
\GenericError ...
\endgroup
l.9 \immediate\write\testwrite{Ббббббббббббб}
?
! Undefined control sequence.
\GenericError ...
#4 \errhelp \@err@ ...
l.9 \immediate\write\testwrite{Ббббббббббббб}
?
! Undefined control sequence.
\GenericError ...
\let \@err@ ...
l.9 \immediate\write\testwrite{Ббббббббббббб}
?
! Undefined control sequence.
\GenericError ...
\@empty \def \MessageBreak...
l.9 \immediate\write\testwrite{Ббббббббббббб}
等々。
それはバグですか、それとも何が起こっているのですか?
ご回答ありがとうございます。
答え1
アクティブな文字は、タイプセットの指示(または文字が設定されていないことを示すエラー メッセージ)に展開するように設定されています。テキストをそのまま記述するだけです。
\documentclass{article}
\begin{document}
\newwrite\testwrite
\immediate\openout\testwrite=testwrite.txt
\immediate\write\testwrite{\detokenize{Ббббббббббббб}}
\immediate\closeout\testwrite
\end{document}
答え2
inputencを使用しない場合は、以下を追加してください\UseRawInputEncoding
\UseRawInputEncoding
\documentclass{article}
\begin{document}
\newwrite\testwrite
\immediate\openout\testwrite=testwrite.txt
\immediate\write\testwrite{Ббббббббббббб}
\immediate\closeout\testwrite
\end{document}