![Inkompatibilität zwischen Tikzposter-Klasse und Microtype-Paket](https://rvso.com/image/286362/Inkompatibilit%C3%A4t%20zwischen%20Tikzposter-Klasse%20und%20Microtype-Paket.png)
Ich habe gerade mit der Verwendung der neuen tikzposter
Klasse begonnen (nachdem ich zuvor das fancytikzposter
Paket desselben Autors verwendet hatte) und sofort festgestellt, dass die Verwendung des microtype
Pakets zum Absturz von TeX führt.
Ich frage mich, ob das schon jemandem passiert ist, da ich nicht sicher bin, was ich tun soll. Mein MWE ist:
\documentclass{tikzposter}
\usepackage{microtype}
\begin{document}
%\block{\textls{title}}{text}
\end{document}
Die auskommentierte Zeile in der Mitte ist einer der Gründe für die Verwendung von microtype
, nämlich um mehr Kontrolle über den Buchstabenabstand zu erhalten. Dasselbe passiert mir in pdftex
, xetex
und lualatex
und ich verwende eine frisch aktualisierte TeXlive-Installation.
Der Fehler lautet:
! Missing endcsname inserted.
<to be read again>
protect
l.5 \end{document}
?
Antwort1
Das war ziemlich knifflig ... ich würde behaupten, es ist ein Fehler in tikzposter
.
Das Problem besteht darin, dass zum Starten einer Umgebung tikzposter
verwendet wird , die dann geschlossen wird . Dies bedeutet, dass jeglicher anderer Code, den ein Paket (in diesem Fall ) einfügt, innerhalb einer Gruppe ausgeführt wird, wodurch alle lokalen Zuweisungen rückgängig gemacht werden . Insbesondere werden einige Befehle deaktiviert, die nur innerhalb der Präambel zulässig sind , was den Fehler auslöst .\AtBeginDocument
tikzpicture
\AtEndDocument
microtype
AtBeginDocument
AtEndDocument
microtype
ABD
AED
Der clsguide
Rat:
Der
\AtBeginDocument
Hook sollte nicht für Code verwendet werden, der einen Schriftsatz durchführt, da das Satzergebnis unvorhersehbar wäre.
Auch wenn tikzposter
nicht der eigentliche Schriftsatz das wirkliche Problem ist, sondern die Gruppe, die er öffnet, würde ich dennoch sagen, dass dies als unsachgemäße Verwendung von gilt \AtBeginDocument
. Man könnte stattdessen den Befehl von tikzposter
verwenden (den es sowieso lädt).\AfterEndPreamble
etoolbox