incompatibilidade entre a classe tikzposter e o pacote de microtipos

incompatibilidade entre a classe tikzposter e o pacote de microtipos

Acabei de começar a usar a nova tikzposterclasse (tendo usado anteriormente o fancytikzposterpacote do mesmo autor) e descobri imediatamente que usar o microtypepacote 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 pdftexe 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 tikzposterusa \AtBeginDocumentpara iniciar um tikzpictureambiente, 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, microtypedesativa alguns comandos que só são permitidos dentro do preâmbulo ABD, o que desencadeia o erro AED.

Os clsguideconselhos:

O \AtBeginDocumentgancho 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 tikzposternã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. tikzposterem vez disso, poderia usar o \AfterEndPreamblecomando from etoolbox(que ele carrega de qualquer maneira).

informação relacionada