这是我的 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}