等式左边距

等式左边距

我在一个环境中有方程,该环境的左边距比主文本大(类似于使用changepage包的adjustwidth环境实现的枚举/逐项化环境)。就像枚举/逐项化中的方程的行为一样,方程相对于整个文本居中,而不仅仅是容器环境的宽度。我想要后一种行为。

我试图通过将所有 display-math 包装在 minipages 中来实现这一点。也就是说,我正在修改环境mathdisplayamsmath.sty如下所示:

\makeatletter
\let\oldmd\mathdisplay
\def\mathdisplay#1{%
  \newline
  \begin{minipage}{\textwidth-\@totalleftmargin}%
    \oldmd{#1}%
}
\let\oldendmd\endmathdisplay
\def\endmathdisplay#1{%
  \oldendmd{#1}%
  \end{minipage}
}
\makeatother

这几乎可以正常工作,但有一些间距问题,我不知道如何修复。以下是经过上述修改后的正常\[ ... \]和编号的外观:\begin{equation} ... \end{equation}

未编号

编号

我最困惑的是为什么编号版本的行为与未编号版本如此不同。但总而言之,我想修复这个问题,以便上下间距像往常一样均匀。任何帮助都非常感谢,谢谢。

编辑:这是一个可编译的示例:

\documentclass{amsart}

\usepackage{lipsum}
\usepackage{calc}
\usepackage{changepage}

\makeatletter
\let\oldmd\mathdisplay
\def\mathdisplay#1{%
  \newline
  \begin{minipage}{\textwidth-\@totalleftmargin}%
    \oldmd{#1}%
}
\let\oldendmd\endmathdisplay
\def\endmathdisplay#1{%
  \oldendmd{#1}%
  \end{minipage}
}
\makeatother

\setlength{\parindent}{0pt}

\begin{document}

\lipsum[1]

\begin{adjustwidth}{20pt}{}
\lipsum[2]
\[
x \mapsto \hom(-,x)
\]

\lipsum[3]
\begin{equation}
  y \mapsto \hom(y,-)
\end{equation}
\lipsum[4]
\end{adjustwidth}

\lipsum[5]

\end{document}

答案1

该类amsart会根据整体边距做出始终居中显示的精确选择,即使在左边距发生偏移的列表中也是如此。

正如您所意识到的,您对的重新定义mathdisplay存在几个缺陷。

解决方案更简单:\fullwidthdisplay从中删除\everydisplay。我还添加了一个align环境来表明它也能正常工作。

\documentclass{amsart}

\usepackage{lipsum}
\usepackage{calc}
\usepackage{changepage}

\renewcommand{\fullwidthdisplay}{}

\begin{document}
\lipsum[1]

\begin{adjustwidth}{20pt}{}
\lipsum*[2]
\begin{align}
x &\mapsto \hom(-,x)\\
z &\mapsto \hom(z,-)
\end{align}
\lipsum*[3]
\begin{equation}
  y \mapsto \hom(y,-)
\end{equation}
\lipsum[4]
\end{adjustwidth}

\lipsum[5]

\end{document}

在此处输入图片描述

相关内容