当我使用时,\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 个。