キリル文字のテキストをファイルに書き込む

キリル文字のテキストをファイルに書き込む

何が起こっているのか説明していただけますか?

私は最新の 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}

関連情報