Tengo un formato que usa repetidamente TikImágenes Z en el fondo de determinadas páginas. Debido a que estas imágenes requieren remember picture, overlay
, no pueden exteriorizarse. Para controlar el tiempo de compilación, guardo las imágenes que necesito repetidamente en cuadros al principio del documento y luego uso esos cuadros en las páginas donde las necesito.
Esto funciona bien. El único problema es que obtengo etiquetas definidas varias veces. El problema no es tanto que LaTeX me advierta sobre estos, sino que hay muchos y ahogan las advertencias que me interesan. En particular, quiero saber si otras etiquetas se definen varias veces, porque eso arruinaría mis referencias cruzadas.
Por eso estoy tratando de reducir la cantidad de advertencias falsas que recibo. He progresado un poco en el caso de las imágenes exteriorizadas (al redefinir una macro pageslts
solo cuando se exterioriza), pero necesito hacer algo diferente (si es posible) para las imágenes que estoy encajonando.
Aquí hay un ejemplo mínimo que demuestra el problema.
\documentclass{article}
\usepackage{tikz,everypage,kantlipsum}
\newsavebox\mybox
\begin{document}
\sbox\mybox{%
\begin{tikzpicture}[remember picture, overlay]
\shade [top color=blue!50!black, bottom color=blue!50!black, middle color=blue!50!cyan] (current page.north west) rectangle (current page.south east);
\end{tikzpicture}%
}%
\AddThispageHook{\usebox\mybox}
\kant[1-8]
\AddThispageHook{\usebox\mybox}
\kant[9-10]
\end{document}
Entonces el punto aquí es que la imagen se genera una vez y se guarda en \mybox
. Este cuadro luego se coloca en segundo plano en la página 1. Luego se coloca en segundo plano en la página 3. El resultado es bueno.
El problema es que genera una etiqueta de advertencia definida varias veces.
LaTeX Warning: Label `pgfid1' multiply defined.
porque el .aux
archivo contiene
\pgfsyspdfmark {pgfid1}{4736286}{47362867}
\pgfsyspdfmark {pgfid1}{4736286}{47362867}
¿Hay alguna ayuda para esto? Obviamente, la advertencia es espuria en el sentido de que no perjudica nada. Pero mi lista de advertencias está siendo inundada por advertencias espurias de las que no puedo deshacerme y se está volviendo casi imposible encontrar las que necesito identificar, especialmente cuando tengo prisa.
EDITAR
Solo para aclarar, sé que remember picture
es responsable de escribir las etiquetas en el .aux
archivo que activan las advertencias. Pero eliminar esto no es una opción porque overlay
lo requiere:
Respuesta1
Como mencioné en los comentarios, creo que una solución real sería no usar el mecanismo de recuerdo de tikz, ya que aquí no es necesario guardar ninguna coordenada actual ya que estás colocando el tikz en una posición fija en la página.
Sin embargo, a partir de aquí, lo más fácil es ignorar todas las configuraciones después de la primera escribiendo un comando en el archivo auxiliar que descarte la configuración.
\documentclass{article}
\usepackage{tikz,everypage,kantlipsum}
\newsavebox\mybox
\makeatletter
\def\eatpgfmark{\write\@auxout{\string\@gobblefour}}
\makeatother
\begin{document}
\sbox\mybox{%
\begin{tikzpicture}[remember picture, overlay]
\shade [top color=blue!50!black, bottom color=blue!50!black, middle color=blue!50!cyan] (current page.north west) rectangle (current page.south east);
\end{tikzpicture}%
}%
\AddThispageHook{\usebox\mybox}
\kant[1-8]
\AddThispageHook{\eatpgfmark\usebox\mybox}
\kant[9-10]
\end{document}
que produce un archivo auxiliar
\relax
\pgfsyspdfmark {pgfid1}{4736286}{47362867}
\@gobblefour
\pgfsyspdfmark {pgfid1}{4736286}{47362867}
por lo que el segundo \pgfsysmark
se descarta.