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
atbegshi
es una opción para insertar material en cada página en una posición absoluta.El paquete
xsavebox
ayuda 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}
}