我注意到\color
与enumerate
环境结合时存在奇怪的垂直间距问题。基本上,似乎{(line break)}
根据其在\color
和 extra 中的包装方式, 占用了不同数量的水平空间{...}
,导致分配了额外的行(垂直空间):
\documentclass{article}
\usepackage{color}
\newcommand{\red}[1]{{\color{red}{#1}}}
\newcommand{\var}[1]{\color{red}{#1}}
\begin{document}
\begin{enumerate}
\item \hspace*{320pt}\red{
}
\end{enumerate}
This line is way too far down!
\begin{enumerate}
\item \hspace*{320pt}{\color{red}{
}}
\end{enumerate}
Same here! But compare to the next ones:
\begin{enumerate}
\item \hspace*{318pt}\red{
}
\end{enumerate}
Less hspace - not as far down (interestingly: overfull hbox!)
\begin{enumerate}
\item \hspace*{320pt}\var{
}
\end{enumerate}
One less level of curly braces - not as far down
\begin{enumerate}
\item \hspace*{320pt}\red{%
}
\end{enumerate}
Line break commented - not as far down
\begin{enumerate}
\item \hspace*{320pt}\red{}
\end{enumerate}
No line break in colored text - not as far down
\begin{enumerate}
\item \hspace*{320pt}{{
}}
\end{enumerate}
No color - not as far down
\begin{enumerate}
\item \hspace*{320pt}
\end{enumerate}
Standard case - not as far down
\end{document}
说实话,我真的不知道我的问题是什么:我遇到过 latexdiff 导致的这个问题(它在\DIFadd
构造末尾引入了额外的换行符 - 因此有标签),但它实际上只在非常满的行末尾才相关,而且很容易被忽略。我通过缩短句子解决了这个问题(是的,我做到了),所以我认为最相关的问题是,这是为什么? 从总体上来说我能做些什么来防止这种情况发生吗?