Как сделать так, чтобы изображение tikz отображалось на каждой странице документа

Как сделать так, чтобы изображение tikz отображалось на каждой странице документа

Я относительно новичок в Latex и испытываю трудности с использованием пакета tikzpicture.

Я хочу создать цветную колонку на левой стороне каждой страницы моего документа. В настоящее время я использую следующий код для этого.

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

Проблема в том, что этот код создает цветную полосу только на первой странице моего документа и не распространяет ее на несколько страниц.

Поэтому мой вопрос заключается в том, как мне реализовать этот tikzpicture на нескольких страницах моего документа?. Есть ли у кого-нибудь идеи, как решить эту проблему.

Примечание: я не пытаюсь создать верхний или нижний колонтитул.

С уважением.

Спасибо!

решение1

  • Пакет atbegshi— это возможность вставки материала на каждую страницу в определённой позиции.

  • Пакет xsaveboxпомогает уменьшить размер конечного PDF-файла при многократной вставке одного и того же контента.


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

решение2

Просто ради забавы, что-то с использованием eso-pic. Node, в котором я сделал имена ваших узлов уникальными, добавив номер страницы.

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

решение3

Используйте пакет 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}
}

Связанный контент