新环境中公式的间距问题

新环境中公式的间距问题

我经常写一些等距物体居中的方程式,比如

\begin{equation*}
\hphantom{ \hspace{1cm} {(x\in X)} }
     f(x) = Ax + B 
\hspace{1cm} {(x\in X)}
\end{equation*}

运行良好。但是,我尝试\newenvironment以自然的方式为此设置定义一个,并遇到了一些错误(无论是否编译)。我想到最接近的解决方案是

\newenvironment{eqspaced}[1]{
\begin{center}
    $\hphantom{\hspace{1.5cm} {#1}}
    \displaystyle
}{
    \hspace{1.5cm} {#1}$
\end{center}
}

但没有成功。当应用上面的宏时,我得到 在此处输入图片描述

这个宏有什么问题?我原本想为间距添加第二个参数,但它似乎让 pdflatex 更加恼火。

答案1

你会遇到错误,对吧?当出现错误时,TeX 会尽力退出,但输出可能会有误。

问题是您不能#1在的最后部分使用\newenvironment

解决方案:使用(如果运行的是 2020-10-01 之前发布的旧版本的 LaTeX,则\NewDocumentEnvironment可能需要这样做)。\usepackage{xparse}

使用可选参数可以设置间距;如果未使用可选参数指定,则默认值为 1cm。

\documentclass{article}
\usepackage{amsmath}

\NewDocumentEnvironment{eqspaced}{O{1cm}m}
 {\begin{equation*}\hphantom{\hspace{#1}#2}}
 {\hspace{#1}#2\end{equation*}\ignorespacesafterend}

\begin{document}

\begin{eqspaced}{(x\in X)}
f(x)=Ax+B
\end{eqspaced}
Let's verify the centering
\begin{equation*}
f(x)=Ax+B
\end{equation*}
With the optional argument
\begin{eqspaced}[3cm]{(x\in X)}
f(x)=Ax+B
\end{eqspaced}

\end{document}

在此处输入图片描述

注意:之前提供的代码(参见答案历史)解决了 LaTeX 内核中的一个错误,现在该错误已得到解决LaTeX2e <2021-11-15> patch level 1(确保拥有最新的发行版)。

相关内容