好奇 TikZ [记住图片,叠加] 间距

好奇 TikZ [记住图片,叠加] 间距

当我使用时,\tikz[remember picture,overlay]在使用命令的任何地方都会插入垂直空间,如下所示:

\documentclass{article}

\usepackage{tikz}
\usepackage{lipsum}

\begin{document}

\tikz[remember picture,overlay]\node[rectangle, minimum size=5cm,fill=lightgray] 
    (X) at (current page.center) {};

\lipsum[1]

\tikz[remember picture,overlay]\node[rectangle, minimum size=5cm,fill=lightgray]
    (X) at (current page.center) {};

%% Fixes the problem:
% \kern-\baselineskip

\lipsum[2]

\end{document}

在第一段之前以及第一段和第二段之间有一个基线跳过。我在文档中找不到任何暗示这一点的内容。事实上,在第 248 页(版本 3.0.1a 手册)中有这样一段话overlay:“此选项的效果是,在计算当前图片的边界框时,不会考虑当前范围内的所有内容。”这让我相信该选项对间距没有影响。

我正在使用最新更新的 MacTeX2015。

欢迎见解。

答案1

问题不在于tikz。而是\tikz宏和后续\lipsum宏之间的空行。LaTeX 将空行视为段落分隔符。只需在适当位置放置几个%符号即可解决此问题。

\documentclass{article}

\usepackage{tikz}
\usepackage{lipsum}

\begin{document}

\tikz[remember picture,overlay]\node[rectangle, minimum size=5cm,fill=lightgray] 
    (X) at (current page.center) {};%
%
\lipsum[1]

\tikz[remember picture,overlay]\node[rectangle, minimum size=5cm,fill=lightgray]
    (X) at (current page.center) {};
%
%% Fixes the problem:
% \kern-\baselineskip
%
\lipsum[2]

\end{document}

在此处输入图片描述

这个问题相当于

x

\mbox{}

x

尽管\mbox{}没有打印任何内容,但产生了 2 个段落分隔符,而不是 1 个。

相关内容