我正在处理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
。