![incompatibilidad entre la clase tikzposter y el paquete microtipo](https://rvso.com/image/286362/incompatibilidad%20entre%20la%20clase%20tikzposter%20y%20el%20paquete%20microtipo.png)
Recién comencé a usar la nueva tikzposter
clase (habiendo usado previamente el fancytikzposter
paquete del mismo autor) e inmediatamente descubrí que usar el microtype
paquete 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 pdftex
y 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 tikzposter
se utiliza \AtBeginDocument
para iniciar un tikzpicture
entorno, que luego se cierra \AtEndDocument
. Esto significa que cualquier otro código que microtype
inserte un paquete (en este caso) AtBeginDocument
se ejecuta dentro de un grupo, por lo tanto, cualquier asignación local se deshará AtEndDocument
. En concreto, microtype
desactiva algunos comandos que sólo están permitidos dentro del preámbulo ABD
, lo que desencadena el error AED
.
Los clsguide
consejos:
El
\AtBeginDocument
gancho 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 tikzposter
lo 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
. tikzposter
en su lugar, podría usar el \AfterEndPreamble
comando desde etoolbox
(que se carga de todos modos).