![如何让 tikz 图片出现在文档的每一页上](https://linux22.com/image/370549/%E5%A6%82%E4%BD%95%E8%AE%A9%20tikz%20%E5%9B%BE%E7%89%87%E5%87%BA%E7%8E%B0%E5%9C%A8%E6%96%87%E6%A1%A3%E7%9A%84%E6%AF%8F%E4%B8%80%E9%A1%B5%E4%B8%8A.png)
我对 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}
}