무슨 일인지 설명해 주실 수 있나요?
저는 최신 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}