将两个相邻的带数字的方程式垂直对齐,水平对齐

将两个相邻的带数字的方程式垂直对齐,水平对齐

因此,我在对齐两个想要标记/编号的方程式时遇到了问题。我希望将方程式彼此相邻放置,水平方向上等距(在方程式和页面最大值之间),并且对齐,使得两个方程式的等号在水平方向上处于同一作用线上。向您展示可能会更容易...

到目前为止,这是我的三个不充分的解决方案:

解决方案1):

\begin{minipage}[t]{.48\linewidth}
  \begin{equation}
    \vec{B}_{trap}(\vec{J}_c, \vec{r}) = k \mu_o \vec{J}_c \ \vec{\hat{r}}
  \end{equation}\break
\end{minipage}%
\begin{minipage}[t]{.48\linewidth}
  \begin{equation}
    k = \frac{t}{2a}{\rm{ln}}\left ( \frac{a}{t} + \sqrt{1 + \left ( \frac{a}{t}\right )^{2}} \right )
  \end{equation}
\end{minipage}

解决方案2):

\begin{align*}
    \vec{B}_{trap}(\vec{J}_c, \vec{r}) = k \mu_o \vec{J}_c \ \vec{\hat{r}} \label{eq:btrap}
   & & k = \frac{t}{2a}{\rm{ln}}\left ( \frac{a}{t} + \sqrt{1 + \left ( \frac{a}{t}\right )^{2}} \right ) \\
\end{align*}

解决方案3):

\begin{multicols}{2}
  \begin{equation}
    \vec{B}_{trap}(\vec{J}_c, \vec{r}) = k \mu_o \vec{J}_c \ \vec{\hat{r}}
  \end{equation}
  \begin{equation}
    k = \frac{t}{2a}{\rm{ln}}\left ( \frac{a}{t} + \sqrt{1 + \left ( \frac{a}{t}\right )^{2}} \right )
  \end{equation}
\end{multicols}

排版如下:

图像表示上面概述的三种方法;首先利用 <code>minipage</code>,其次利用 <code>align</code>,第三利用 <code>multicols</code>。

如您所见,方法 1 和 3 生成了我需要的编号和引用方程式,因为它们都支持方程式环境,但它们在水平面上也没有对齐 - 等号在水平方向上不共享相同的作用线。虽然该align方法允许这种水平对齐,但我无法引用多个方程式,因为它只能处理一个\ref{eq1}。我需要避免使用tabular或,array因为我的论文文档会将这些方程式作为表格并将它们列在文档的“表格”部分。我认为到目前为止最好的方法是对齐*,但我无法用该方法生成参考和编号方程式(再次强调,必须将其视为方程式,否则我的“方程式”页面将不会列出它们)

有什么想法吗?谢谢!

答案1

第一个基于 的解决方案之所以会出错,minipage是因为宽度选择不当。另外,不要使用位置[t]说明符来表示minipage环境——你需要两个方程式垂直居中在符号上=,对吗?

另请注意,我{\rm{ln}}用替换了\ln

在此处输入图片描述

\documentclass{article}
\renewcommand\vec[1]{\mathbf{#1}}
\usepackage{amsmath} % for "\numberwithin" macro
\numberwithin{equation}{section} % optional

\begin{document}
\setcounter{section}{2} % just for this example

\noindent % <-- new
\begin{minipage}{.4\linewidth} % <-- new
\begin{equation}
\vec{B}_{\mathrm{trap}}(\vec{J}_c, \vec{r}) = 
    k \mu_o \vec{J}_c \hat{\vec{r}}
\end{equation}
\end{minipage}\hfill
\begin{minipage}{.5\linewidth}
\begin{equation}
k = \frac{t}{2a}\ln\biggl( \frac{a}{t} + 
    \sqrt{1 + \Bigl( \frac{a}{t}\Bigr)^{\!2}}\, \biggr)
\end{equation}
\end{minipage}
\end{document}

答案2

如果不添加不需要的空格并且不具备数学显示的所有功能,做到这一点并不容易。

halfequation这是一个相当通用的版本。 (default )的可选参数0.5是方程式保留的宽度的分数。

在这种特殊情况下,似乎最好为更大的方程保留更多。

\documentclass{article}
\usepackage{amsmath,array}

\usepackage{lipsum} % for context

\newenvironment{halfequation}[1][0.5]
 {\vcenter\bgroup
  \hsize=#1\displaywidth
  \setlength{\abovedisplayskip}{0pt}
  \setlength{\abovedisplayshortskip}{0pt}
  \setlength{\belowdisplayskip}{0pt}
  \setlength{\belowdisplayshortskip}{0pt}
  \begin{equation}}
 {\end{equation}\egroup}

\begin{document}

\lipsum*[4]
\[
\begin{halfequation}[0.4]\label{a}
  \vec{B}_{\mathrm{trap}}(\vec{J}_c, \vec{r}) = k \mu_o \vec{J}_c \, \vec{\hat{r}}
\end{halfequation}
\begin{halfequation}[0.6]\label{b}
  k = \frac{t}{2a}\ln\left ( \frac{a}{t} + \sqrt{1 + \left ( \frac{a}{t}\right )^{2}} \right )
\end{halfequation}
\]
\lipsum*[5]

\clearpage

\lipsum*[4]
  \begin{equation}
    k = \frac{t}{2a}\ln\left ( \frac{a}{t} + \sqrt{1 + \left ( \frac{a}{t}\right )^{2}} \right )
  \end{equation}
\lipsum*[5]

\end{document}

我添加了另一页来显示垂直间距相同。

在此处输入图片描述

相关内容