Como fazer uma imagem tikz aparecer em todas as páginas do documento

Como fazer uma imagem tikz aparecer em todas as páginas do documento

Sou relativamente novo no Latex e estou tendo dificuldades para usar o pacote tikzpicture.

O que quero fazer é criar uma coluna colorida no lado esquerdo de cada página do meu documento. Atualmente estou usando o seguinte código para isso.

    \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}

O problema é que esse código só produz uma barra colorida na primeira página do meu documento e não a estende para várias páginas.

Minha pergunta é, portanto, como faço para implementar esta imagem tikz em várias páginas do meu documento? Alguém tem alguma idéia de como resolver esse problema.

Nota: não estou tentando criar um cabeçalho ou rodapé.

Atenciosamente.

Obrigado!

Responder1

  • Package atbegshié uma opção para inserir material em cada página em posição absoluta.

  • O pacote xsaveboxajuda a reduzir o tamanho final do PDF ao inserir repetidamente o mesmo conteúdo.


\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}

Responder2

Apenas por diversão, algo usando eso-pic. Nó que tornei seus nomes de nó exclusivos adicionando o número da 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}

Responder3

Use o pacote 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}
}

informação relacionada