incompatibilidad entre la clase tikzposter y el paquete microtipo

incompatibilidad entre la clase tikzposter y el paquete microtipo

Recién comencé a usar la nueva tikzposterclase (habiendo usado previamente el fancytikzposterpaquete del mismo autor) e inmediatamente descubrí que usar el microtypepaquete hace que TeX falle.

Me pregunto si alguien más se ha encontrado con esto porque no estoy seguro de qué hacer. Mi MWE es:

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

La línea comentada en el medio es una de las razones para usar microtype, es decir, para tener más control sobre el espaciado entre letras. Obtengo lo mismo pdftexy estoy usando una instalación de TeXlive recién actualizada xetex.lualatex

El error que falla es:

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

?

Respuesta1

Este fue bastante complicado... Yo diría que es un error en tikzposter.

El problema es que tikzposterse utiliza \AtBeginDocumentpara iniciar un tikzpictureentorno, que luego se cierra \AtEndDocument. Esto significa que cualquier otro código que microtypeinserte un paquete (en este caso) AtBeginDocumentse ejecuta dentro de un grupo, por lo tanto, cualquier asignación local se deshará AtEndDocument. En concreto, microtypedesactiva algunos comandos que sólo están permitidos dentro del preámbulo ABD, lo que desencadena el error AED.

Los clsguideconsejos:

El \AtBeginDocumentgancho no debe usarse para código que realice algún tipo de composición, ya que el resultado de la composición sería impredecible.

Aunque la composición tipográfica real que tikzposterlo hace no es el verdadero problema aquí sino más bien el grupo que abre, todavía diría que esto califica como un uso inadecuado de \AtBeginDocument. tikzposteren su lugar, podría usar el \AfterEndPreamblecomando desde etoolbox(que se carga de todos modos).

información relacionada