![incompatibilidade entre a classe tikzposter e o pacote de microtipos](https://rvso.com/image/286362/incompatibilidade%20entre%20a%20classe%20tikzposter%20e%20o%20pacote%20de%20microtipos.png)
Acabei de começar a usar a nova tikzposter
classe (tendo usado anteriormente o fancytikzposter
pacote do mesmo autor) e descobri imediatamente que usar o microtype
pacote causa falha no TeX.
Estou me perguntando se mais alguém se deparou com isso, pois não tenho certeza do que fazer. Meu MWE é:
\documentclass{tikzposter}
\usepackage{microtype}
\begin{document}
%\block{\textls{title}}{text}
\end{document}
A linha comentada no meio é uma das razões para usar microtype
, ou seja, para obter mais controle sobre o espaçamento entre letras. Recebo o mesmo pdftex
e estou usando uma instalação do TeXlive recém-atualizada xetex
.lualatex
O erro que falha é:
! Missing endcsname inserted.
<to be read again>
protect
l.5 \end{document}
?
Responder1
Este foi um tanto complicado... Eu diria que é um bug no tikzposter
.
O problema é que tikzposter
usa \AtBeginDocument
para iniciar um tikzpicture
ambiente, que depois é fechado \AtEndDocument
. Isso significa que qualquer outro código inserido por um pacote (neste caso microtype
) AtBeginDocument
é executado dentro de um grupo, portanto, quaisquer atribuições locais serão desfeitas AtEndDocument
. Especificamente, microtype
desativa alguns comandos que só são permitidos dentro do preâmbulo ABD
, o que desencadeia o erro AED
.
Os clsguide
conselhos:
O
\AtBeginDocument
gancho não deve ser usado para código que faça qualquer composição, pois o resultado da composição seria imprevisível.
Mesmo que a composição tipográfica real tikzposter
não seja o verdadeiro problema aqui, mas sim o grupo que ela abre, eu ainda diria que isso se qualifica como uso impróprio de \AtBeginDocument
. tikzposter
em vez disso, poderia usar o \AfterEndPreamble
comando from etoolbox
(que ele carrega de qualquer maneira).