tikzposter 클래스와 microtype 패키지 간의 비호환성

tikzposter 클래스와 microtype 패키지 간의 비호환성

나는 방금 새 클래스를 사용하기 시작했고 (이전에 동일한 작성자의 패키지를 tikzposter사용한 적이 있음 ) 패키지를 사용하면 TeX이 실패한다는 것을 즉시 발견했습니다.fancytikzpostermicrotype

어떻게 해야할지 모르기 때문에 다른 사람이 이 문제를 접했는지 궁금합니다. 내 MWE는 다음과 같습니다.

\documentclass{tikzposter}
\usepackage{microtype}
\begin{document}
%\block{\textls{title}}{text}
\end{document}

중간에 주석 처리된 줄은 을 사용하는 이유 중 하나입니다 microtype. 즉, 문자 간격을 더 잘 제어할 수 있습니다. 나는 같은 것을 얻었고 새로 pdftex업데이트 된 TeXlive 설치를 사용하고 있습니다.xetexlualatex

실패한 오류는 다음과 같습니다.

! Missing endcsname inserted.
<to be read again>
                   protect
l.5 \end{document}

?

답변1

이것은 다소 까다로운 문제였습니다. tikzposter.

문제는 환경을 시작한 다음 닫히는 데 tikzposter사용된다는 것입니다 . 이는 패키지(이 경우 )가 삽입하는 다른 코드가 그룹 내에서 실행되므로 모든 로컬 할당이 취소된다는 것을 의미합니다 . 특히 오류를 유발하는 프리앰블 내부에서만 허용되는 일부 명령을 비활성화합니다 .\AtBeginDocumenttikzpicture\AtEndDocumentmicrotypeAtBeginDocumentAtEndDocumentmicrotypeABDAED

다음 clsguide과 같이 조언합니다.

\AtBeginDocument조판 결과를 예측할 수 없으므로 조판을 수행하는 코드에는 후크를 사용하면 안 됩니다 .

실제 조판이 tikzposter여기서의 실제 문제가 아니라 그것이 열리는 그룹에 의한 것이지만, 나는 여전히 이것이 의 부적절한 사용에 해당한다고 말하고 싶습니다 \AtBeginDocument. 대신 (어쨌든 로드되는) 명령 tikzposter을 사용할 수 있습니다 .\AfterEndPreambleetoolbox

관련 정보