Cómo hacer que aparezca una imagen tikz en cada página del documento

Cómo hacer que aparezca una imagen tikz en cada página del documento

Soy relativamente nuevo en Latex y estoy teniendo problemas con el uso del paquete tikzpicture.

Lo que quiero hacer es crear una columna de color en el lado izquierdo de cada página de mi documento. Actualmente estoy usando el siguiente código para esto.

    \begin{tikzpicture}[remember picture,overlay]
    \node [rectangle, fill=sidecolor, anchor=north, minimum width=9cm, minimum height=\paperheight+1cm] (box) at (-5cm,0.5cm){};
    \end{tikzpicture}

El problema es que este código sólo produce una barra de color en la primera página de mi documento y no la extiende a varias páginas.

Por lo tanto, mi pregunta es: ¿cómo implemento este tikzpicture en varias páginas de mi documento? ¿Alguien tiene alguna idea sobre cómo abordar este problema?

Nota: No estoy intentando crear un encabezado o pie de página.

Atentamente.

¡Gracias!

Respuesta1

  • El paquete atbegshies una opción para insertar material en cada página en una posición absoluta.

  • El paquete xsaveboxayuda a reducir el tamaño del PDF final al insertar repetidamente el mismo contenido.


\documentclass{article}

\usepackage{tikz}
\usepackage{xsavebox} %save content for repeated use
\usepackage{atbegshi} %insert material on every page

\usepackage{kantlipsum} %bla, bla

\xsavebox{PageBGPicture}{%
  \begin{tikzpicture}
  \node [rectangle, fill=yellow, minimum width=9cm, minimum height=\paperheight] (box) {};
  \end{tikzpicture}
}

%position background picture absolutely (w.r.t. upper left page corner) on every page
\AtBeginShipout{
  \AtBeginShipoutUpperLeft{\raisebox{-\height}{\xusebox{PageBGPicture}}}
}

\begin{document}
\kant[1-10]
\end{document}

Respuesta2

Sólo por diversión, algo que usa eso-pic. Nodo en el que hice que sus nombres de nodo fueran únicos agregando el número de página.

\documentclass{article}
\usepackage{tikzpagenodes}
\usepackage{lipsum}
\usepackage{eso-pic}
\begin{document}
 \AddToShipoutPicture{%
\begin{tikzpicture}[remember picture,overlay]
 \node [rectangle, fill=blue, anchor=west, minimum width=9cm, minimum height=\paperheight+1cm] 
 (box\thepage) at 
 (current page text area.west){};
\end{tikzpicture}}
\lipsum[1-8]
\end{document}

Respuesta3

Utilice el paquete atbegshi.

\usepackage{atbegshi}

\AtBeginShipout
{
    \begin{tikzpicture}[remember picture,overlay]
    \node [rectangle, fill=sidecolor, anchor=north, minimum width=9cm, minimum height=\paperheight+1cm] (box) at (-5cm,0.5cm){};
    \end{tikzpicture}
}

información relacionada