TikZ によって生じる空き領域を回避する方法

TikZ によって生じる空き領域を回避する方法

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

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}

ここに画像の説明を入力してください

関連情報