TikZ
在自定义页面上添加背景图像时,它会TikZ
在文档中留下一个空白区域,代码将在该空白区域内合并。例如,
\documentclass{article}
\usepackage{lipsum}
\usepackage{tikz}
\usetikzlibrary{calc}
\title{Test Title}
\author{A name}
\begin{document}
\maketitle
\tikz[overlay,remember picture]{%
\node [rotate=45] at ($(current page.north west)+(7,-7)$) {\Huge\textcolor{gray}{TikZ}};
}
\section{First}
\lipsum[1]
\section{Second}
\subsection{This is not nice}
\lipsum[1]
\subsection{This is fine}
\lipsum[1]
\end{document}
正如您在下面的示例中看到的,TikZ
代码在文档中留下了痕迹(\maketitle
第一节之后之前的空白区域)。这不是绘制 TikZ 图像的位置(位于边距中),但这是 TikZ 代码融入文档的位置TeX
。
我们如何处理TikZ
代码以避免其在实际文档中留下痕迹?
图 1:无TikZ
代码(第一部分之前没有多余空间)
图 2:包含TikZ
代码(第一部分之前添加了一个额外的空格)
答案1
A tikzpicture
(即使有overlay
)意味着调用\leavevmode
(如果您在示例中使用\leavevmode
而不是,您将获得相同的占用空间)。tikzpicture
要添加tikzpicture
有无overlay
足迹,请将其放在可以退出垂直模式的位置。
示例(段落开头):
\documentclass{article}
\usepackage{lipsum}
\usepackage{tikz}
\usetikzlibrary{calc}
\title{Test Title}
\author{A name}
\begin{document}
\maketitle
\section{First}
\tikz[remember picture,overlay]%
\node [rotate=45] at ($(current page.north west)+(7,-7)$)%
{\Huge\textcolor{gray}{TikZ}};%
\lipsum[1]
\section{Second}
\subsection{This is not nice}
\lipsum[1]
\subsection{This is fine}
\lipsum[1]
\end{document}
答案2
您可以使用atbegshi
包和\AtBeginShipout
或相关命令,例如\AtBeginShipoutNext
。这里,例如,让我们将\AtBeginShipoutFirst
其放在第一页上:
\documentclass{article}
\usepackage{lipsum}
\usepackage{tikz}
\usepackage{atbegshi}
\usetikzlibrary{calc}
\title{Test Title}
\begin{document}
\AtBeginShipoutFirst{\tikz[overlay,remember picture]{
\node at ($(current page.west)+(2,0)$) {\Huge\textcolor{gray}{TEST}};
}}
\maketitle
\section{First}
\lipsum[1]
\section{Second}
\subsection{This is not nice}
\lipsum[1]
\subsection{This is fine}
\lipsum[1]
\end{document}
答案3
我找不到确切的问题,但根据经验法则,我们可能会避免将有趣的项目作为 LaTeX 看到的起始段落、表格单元格等的第一件事。通常它不喜欢这样。
例如,以下内容没有任何效果。
\documentclass{article}
\usepackage{lipsum}
\usepackage{tikz}
\title{Test Title}
\author{authorize}
\begin{document}
\maketitle
\section{First}
My precious sentence which doesn't finish with a par.
\tikz[overlay,remember picture]{
\path[use as bounding box](0,0);
\node [gray,inner sep=0,rotate=45] at ([shift={(7cm,-7cm)}]current page.north west) {\Huge TikZ};
}\lipsum[1]
\section{Second}
\subsection{This is not nice}
\lipsum[1]
\subsection{This is fine}
\lipsum[1]
\end{document}