So lassen Sie auf jeder Seite eines Dokuments ein Tikz-Bild erscheinen

So lassen Sie auf jeder Seite eines Dokuments ein Tikz-Bild erscheinen

Ich bin relativ neu bei Latex und habe Probleme mit der Verwendung des Tikzpicture-Pakets.

Ich möchte auf jeder Seite meines Dokuments eine farbige Spalte auf der linken Seite erstellen. Derzeit verwende ich dafür den folgenden Code.

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

Das Problem ist, dass dieser Code nur auf der ersten Seite meines Dokuments einen farbigen Balken erzeugt und diesen nicht auf mehrere Seiten ausdehnt.

Meine Frage ist daher, wie ich dieses Tikz-Bild auf mehreren Seiten in meinem Dokument implementiere. Hat jemand eine Idee, wie man dieses Problem lösen kann?

Hinweis: Ich versuche nicht, eine Kopf- oder Fußzeile zu erstellen.

Mit freundlichen Grüße.

Danke!

Antwort1

  • Paket atbegshiist eine Option zum Einfügen von Material auf jeder Seite an einer absoluten Position.

  • Das Paket xsaveboxhilft dabei, die endgültige PDF-Größe zu reduzieren, wenn der gleiche Inhalt wiederholt eingefügt wird.


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

Antwort2

Nur zum Spaß eso-pichabe ich mithilfe von .Node Ihre Knotennamen durch Hinzufügen der Seitennummer eindeutig gemacht.

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

Antwort3

Verwenden Sie das atbegshi-Paket.

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

verwandte Informationen