我正在specialcomment
使用评论包在equation
和align
环境周围。这会导致数学环境后出现不必要的空白行。当仅使用简单的includecomment
-command 时,问题不会显示,当我的特殊注释仅包含“正常”文本时也不会显示。在我的示例中,这看起来并不那么糟糕。但在我的实际文档中还有其他设置,所以它看起来不太好。更改间距\specialcomment{mycomment2}{\color{red}}{\color{black}\vspace{-4ex}}
或类似操作会弄乱正常的注释文本。我该如何解决这个问题?
\documentclass{article}
\usepackage{blindtext}
\usepackage{xcolor}
\usepackage{comment}
\includecomment{mycomment1}
\specialcomment{mycomment2}{\color{red}}{\color{black}}
\begin{document}
\begin{mycomment1}
\begin{equation}
x=y
\end{equation}
\end{mycomment1}
\blindtext
\begin{mycomment2}
\begin{equation}
x=y
\end{equation}
\end{mycomment2}
\blindtext
\begin{mycomment2}
Just some normal text, no problem there.
\end{mycomment2}
\blindtext
\end{document}
编辑:看来我为了使问题尽可能简单而省略的一些代码毕竟是有用的。我关于方程的代码实际上是这样的:
\begin{mycomment2}
\begin{equation}
x=y
\end{equation}
\end{mycomment2}
%
\begin{flushleft}
Text
\end{flushleft}
\blindtext
在这种情况下,即使代码中没有空行,也会有一个额外的空行。
答案1
这实际上不是由comment
包装引起的,而是颜色的变化,正如您从这个例子中看到的那样。
\documentclass{article}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{xcolor}
\begin{document}
\begin{equation}
x=y
\end{equation}
\blindtext
\color{red}
\begin{equation}
x=y
\end{equation}
\color{black}
%
\blindtext
\color{red}
Just some normal text, no problem there.
\color{black}
\blindtext
\end{document}
要消除空行问题,请将其替换\color{black}
为\vskip0pt\color{black}\noindent
。但是,如果出现mycomment2
,而且我不知道有任何通用的解决方案。@David Carlisle 很好地解释了这个问题并给出了解决方法这里。
答案2
如果特殊注释mycomment2
总是构成一个单独的段落,请尝试:
\makeatletter
\specialcomment{mycomment2}{%
\par\begingroup\color{red}%
}{%
\par\global\@tempskipa\lastskip\removelastskip\endgroup\vskip\@tempskipa%
}
\makeatother
不幸的是,使用\color
很容易降低垂直间距。关键的内部宏是\set@color
和\reset@color
。由于它们依赖于驱动程序,因此可能很难找到由它们引起的垂直间距问题的通用解决方案。