tikzposter 類別和 microtype 套件之間不相容

tikzposter 類別和 microtype 套件之間不相容

我剛開始使用新tikzposter類別(之前使用過fancytikzposter同一作者的套件),並立即發現使用該microtype套件會導致 TeX 失敗。

我想知道是否有其他人遇到過這種情況,因為我不知道該怎麼做。我的 MWE 是:

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

中間的註解行是使用 的原因之一microtype,即更好地控製字母間距。我在 中得到了相同的結果pdftexxetex並且lualatex我正在使用新更新的 TeXlive 安裝。

失敗的錯誤是:

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

?

答案1

這是一個相當棘手的問題......我認為這是tikzposter.

問題是tikzposter用於\AtBeginDocument啟動tikzpicture環境,然後關閉環境\AtEndDocument。這表示套件(在本例中microtype)插入的任何其他代碼AtBeginDocument都在群組內執行,因此任何本地分配都將被撤銷AtEndDocument。具體來說,microtype禁用一些僅在前導碼內允許的命令ABD,這會觸發錯誤AED

clsguide建議:

\AtBeginDocument鉤子不應用於進行任何排版的程式碼,因為排版結果是不可預測的。

儘管實際的排版tikzposter並不是這裡真正的問題,而是它打開的組,但我仍然會說這屬於對\AtBeginDocument.tikzposter可以改為使用\AfterEndPreamble命令etoolbox(無論如何都會載入)。

相關內容