Не могли бы вы объяснить, что происходит?
Я использую последнюю 64-битную версию MiKTeX 2.9.6960 (установлена только вчера).
Я пытаюсь записать кириллический текст в отдельный файл без использования пакета 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}