为什么覆盖的 tikzpicture 会在一个部分之前引入多余的垂直间距?

为什么覆盖的 tikzpicture 会在一个部分之前引入多余的垂直间距?

这是我的 MWE:

\documentclass[10pt]{article}

\usepackage{showframe}
\usepackage{geometry}
\usepackage{tikz}
\usepackage{titlesec}

\titlespacing*{\section}{0pt}{0pt}{0pt}

\begin{document}%
\definecolor{sidebar}{RGB}{220,62,136}%
% \begin{tikzpicture}[overlay,remember picture]%
%     \fill[sidebar] (current page.north west) rectangle ([xshift=2cm]current page.south west);%
% \end{tikzpicture}%
\section*{Title}%
\end{document}

这与预期一致:

在此处输入图片描述

但是,如果我取消注释,tikzpicture我会得到以下结果:

在此处输入图片描述

为什么会section被推倒?我该如何防止这种情况发生?

答案1

正如评论中提到的那样这里,atikzpicture创建了一个小框并调用 a \leavevmode。在选项处于活动状态时,框本身不占用任何空间overlay,但模式更改会占用空间。但是,文本等其他内容会引起相同的模式更改。因此,为了解决这个问题,请将图片放在已经要添加内容的位置。下面的示例说明了这一点。

每张图片中都添加了彩色节点,以说明框的位置以及它如何不影响或干扰文本。

\documentclass[10pt]{article}

\usepackage{showframe}
\usepackage{geometry}
\usepackage{tikz}
\usepackage{titlesec}

\titlespacing*{\section}{0pt}{0pt}{0pt}
\definecolor{sidebar}{RGB}{220,62,136}%

\begin{document}%
    \section*{Title} % section without text, without tikz
    \section*{Title} % section with text, without tikz
        text
    \section*{Title} % section without tikz, with text
        \begin{tikzpicture}[overlay, remember picture]%
        %\node[fill=green,inner sep=2cm] (n2) {};
        \node[fill=red] {};
        \fill[sidebar] (current page.north west) rectangle ([xshift=2cm]current page.south west);%
        \end{tikzpicture}%
    \section*{Title} % section with tikz, with text (= same)
        \begin{tikzpicture}[overlay, remember picture]%
        \node[fill=blue] {};
        \fill[sidebar] (current page.north west) rectangle ([xshift=2cm]current page.south west);%
        \end{tikzpicture}%
        text
    \section*{Title} % final section
\end{document}

诱导离开模式

相关内容