交叉引用标签影响垂直间距

交叉引用标签影响垂直间距

考虑注释掉的代码\label{L}(位于第二个 tikzpicture 正上方):

\documentclass[12pt]{book}
\usepackage[paperwidth=5.5in,paperheight=8.25in]{geometry}
\textwidth=4in \textheight=6.40in \voffset -7pt \evensidemargin=-10pt

\usepackage{cleveref,lipsum}
\crefname{page}{p.}{pp.}
\usepackage[tracking=true]{microtype}  
\usepackage{tikz}
\usepackage{color}
\definecolor{someblue}{RGB}{197,213,255}
\usepackage{idxlayout}
\usepackage{mathptmx} 

\begin{document}
\thispagestyle{empty}

\begin{center}
\begin{tikzpicture}[pencildraw/.style={ %
    decorate,
    decoration={random steps,segment length=4pt,amplitude=2.5pt}
    } %
]
\node[preaction={fill=black,opacity=.7,transform canvas={xshift=1mm,yshift=-1mm}},
%pencildraw,
draw,fill=someblue,text width=0.85\textwidth,inner sep=4mm]
{\begin{minipage}{3.42in} \footnotesize
\selectfont \textbf{\lipsum[1]} \vskip -6pt \hfill \textbf{\emph{Lorem Ipsum}} 
\end{minipage}};
\end{tikzpicture}
\end{center}

%\label{L}
\begin{center}
\begin{tikzpicture}[pencildraw/.style={ %
    decorate,
    decoration={random steps,segment length=4pt,amplitude=2.5pt}
    } %
]
\node[preaction={fill=black,opacity=.7,transform canvas={xshift=1mm,yshift=-1mm}},
%pencildraw,
draw,fill=someblue,text width=0.85\textwidth,inner sep=4mm]
{\begin{minipage}{3.42in} \footnotesize
\selectfont \textbf{\lipsum[2]} \vskip -6pt \hfill \textbf{\emph{Lorem Ipsum}} 
\end{minipage}};
\end{tikzpicture}
\end{center}

%\newpage
%\noindent Why does the label command add additional vertical space on \cpageref{L}?
\end{document}

产生

在此处输入图片描述

现在,如果我再次运行代码(这次没有\label{L}注释掉),两个 tikzpicture 之间的垂直空间就会增加:

在此处输入图片描述

在此处输入图片描述

问题:为什么该\label命令会影响两个 tikzpictures 之间的垂直间距;如果可能的话,我该如何防止这种情况发生?

谢谢。

答案1

\label如果在垂直模式下使用,会影响间距。如果您有一个 center 环境,效果会较小,或者如果它紧跟在第一个 之后,效果会完全消失\end{tikzpicture},因此:\end{tikzpicture}\label{L}

center随着在中心块前后添加垂直空间,空间也会增加,但与大多数乳胶显示结构一样,它会检查任何紧接在前面的空间,并将使用的垂直空间安排为现有空间和即将添加的空间中的最大值。标签会生成一个\write节点,以防止第二个节点center查找并看到第一个节点添加的空间,因此您会得到一个双倍空间,第一个节点末尾的空间,center然后是\label节点,然后是第二个节点开头的空间center

除了影响空间之外,由于其他原因,这是一个糟糕的标签位置。由于没有可引用的计数器,这可能是因为,\pageref但标签前后都有分页符位置,因此您可以获得对任一页面的引用。\end{tikzpicture}\label{L}如果您想标记第一个 tikzpicture 的结尾,则应使用;\leavevmode\label{L}\begin{tikzpicture}如果您想标记第二个 tikzpicture 的开头,则应使用。

相关内容