在自訂頁面上新增背景圖像時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
into 範例,您將獲得相同的足跡)。
若要新增不含足跡的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}