图片

图片

我已经找到了解决方案,可以定义一个新环境,而无需在段落上方留出额外空间。但是为什么“普通”定义方法不起作用呢?

图片

在此处输入图片描述

平均能量损失

\documentclass[
fontsize=11pt,
DIV=12,
paper=a4,
]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{amsmath}

%%% the GOOD definition
\newenvironment{goodgood}{\ignorespaces\par\centering\begin{minipage}{0.8\linewidth}\small\sffamily}{\end{minipage}\par\ignorespacesafterend}

%%% the PROBLEMATIC definition
\newenvironment{asdf}{\begin{center}\begin{minipage}{0.8\linewidth}\small\sffamily}{\end{minipage}\end{center}}

\begin{document}

ABC
\begin{asdf}
    bad vertical spacing
\end{asdf}

DEF
\begin{goodgood}
    GOOD VERTICAL SPACING
\end{goodgood}

AAA
\end{document}

答案1

正如解释的那样何时应使用 \begin{center} 而不是 \centering? \begin{center}...\end{center}通过列表()实现\trivlist,并在居中文本之前和之后造成垂直空间。\centering另一方面不会添加额外的垂直空间。

这意味着您的asdf环境会获得显示环境的“通常”垂直间距,同时goodgood仅获得移动到下一段时获得的间距(由于\par)。

您不需要在:\ignorespaces开头使用,正如 David Carlisle 在评论中指出的那样。由于环境以 结尾,因此我也不认为是必需的。goodgood\ignorespaces\par\par\par\ignorespacesafterend

相关内容