\specialcomment-command 和 equation/align-environments 的问题

\specialcomment-command 和 equation/align-environments 的问题

我正在specialcomment使用评论包equationalign环境周围。这会导致数学环境后出现不必要的空白行。当仅使用简单的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。由于它们依赖于驱动程序,因此可能很难找到由它们引起的垂直间距问题的通用解决方案。

相关内容