删除公式和其序列号之间的多余空格

删除公式和其序列号之间的多余空格

我正在处理elsarticle双列格式的文档类,但是在文档中包含方程式时遇到了问题。

以下 MWE 很好地描述了这个问题:

\documentclass[3p,preprint]{elsarticle}

\usepackage{multicol}
\usepackage{amsmath,amssymb}
\begin{document}

\begin{multicols}{2}

\begin{equation}
\hspace*{-.4cm}
E_1=E_2=E_3=E_4=E_5=
\begin{cases}
1, {\rm~if~} 1=1, \\
0, {\rm~if~otherwise} 
\end{cases}
\end{equation}

\end{multicols}

\end{document}

我想将方程式向左移动,以便将方程式编号提升到上一行。如果我使用\hspace*{-.3cm},则不会发生任何变化,而\hspace*{-.4cm}会将方程式向左移动,但在方程式和其序列号之间产生较大的空间。

有什么方法可以删除方程式之后和序列号之前的多余空格,从而使方程式环境对的值敏感\hspace*{}

答案1

如果我理解正确的话,你想删除右侧的空间,而不是左侧的空间(或两侧的空间)

在此处输入图片描述

\documentclass[3p,preprint]{elsarticle}

\usepackage{multicol}
\usepackage{amsmath,amssymb}
\begin{document}

\begin{multicols}{2}

aaa\dotfill aaa
\begin{equation}
E_1=E_2=E_3=E_4=E_5=
\begin{cases}
1, \textrm{ if } 1=1, \\
0, \textrm{ if otherwise} 
\end{cases}
\hspace*{-.35cm}
\end{equation}
bbb\dotfill bbb

bbb\dotfill bbb

bbb\dotfill bbb

bbb\dotfill bbb

bbb\dotfill bbb

bbb\dotfill bbb

bbb\dotfill bbb

bbb\dotfill bbb

\end{multicols}

\end{document}

答案2

老办法(在 TeXbook 中)。如果公式可以完全适合线宽,则无需猜测长度。

\documentclass[3p,preprint]{elsarticle}

\usepackage{multicol}
\usepackage{amsmath,amssymb}

\usepackage{lipsum}

\begin{document}

\begin{multicols}{2}
\lipsum*[1][1-2]
\begin{equation}
\hspace{0pt}
E_1=E_2=E_3=E_4=E_5=
\begin{cases}
1, &\text{if } 1=1, \\
0, &\text{if otherwise} 
\end{cases}
\hspace{1000pt minus 1fil}
\end{equation}
\lipsum[4-8]
\end{multicols}

\end{document}

在此处输入图片描述

末尾的超大空间会让 TeX 认为它必须最大限度地挤压每个柔性胶合并希望获得最佳效果。但是,增加的空间具有无限的可收缩胶合,因此公式不会位于一个过满的框中。要使这一点起作用,需要在左侧有一团胶合。

我修复了环境的语法cases

相关内容