我有一个参数方程,它由 begin{equation} 环境自动编号。我的问题是,数字出现在方程下方的下一行。由于拆分方程的第二行有足够的空间,我希望方程编号出现在那里。有人知道我该怎么做吗?
这与之前的一些问题类似,但我尝试过他们的解决方案,即使用 \notag 作为顶行,并使用负 \hspace,但这两种方法都不起作用,我想是因为我使用了数组。我的代码如下:
\documentclass[a4paper,twoside,12pt]{article}
\usepackage{multicol}
\begin{document}
\begin{multicols*}{2}
Using Poisson's equation for gravity,
\begin{equation} \label{eq: phi}
\Phi(r) = \left\{
\begin{array}{lr}
\frac{GM_{tot}}{Rvir}[\ln\left(\frac{r}{R_{vir}}\right) - 1] : r < R_{vir} \\
\\
\frac{-GM_{tot}}{r} : r > R_{vir} .
\end{array}
\right.
\end{equation}
\end{multicols*}
\end{document}
提前致谢!
编辑:我无法使用不同的文档格式(例如 [twocolumn]),因为我的报告部分内容是在单列中完成的。我不希望 r < Rvir 出现在不同的行上。我理想情况下认为我可以沿着 r > Rvir 子句移动,这样方程编号就可以与第二个方程一致,因为那一行有空间。有人能做到这一点吗?
答案1
使用单列数组:
\documentclass[]{article}
\usepackage{amsmath}
\usepackage{multicol}
\newcommand{\tsub}[1]{_{\mathrm{#1}}}
\begin{document}
\begin{multicols*}{2}
Using Poisson's equation for gravity,
\begin{equation} \label{eq: phi}
\Phi(r) =
\left\{
\begin{array}{@{}r@{}}
\dfrac{GM\tsub{tot}}{R\tsub{vir}}
\biggl[\ln\biggl(\frac{r}{R\tsub{vir}}\biggr) - 1\biggr]
\\
r < R\tsub{vir}
\\[2ex]
\dfrac{-GM\tsub{tot}}{r} \hfill r > R\tsub{vir} .
\end{array}
\right.
\end{equation}
\end{multicols*}
\end{document}
文本下标应为直立类型,因此我设置了它们。
另一方面,使用该twocolumn
选项可以使文本宽度更宽,您可以使用更好的方法。
\documentclass[twocolumn]{article}
\usepackage{amsmath,mathtools}
\newcommand{\tsub}[1]{_{\mathrm{#1}}}
\begin{document}
Using Poisson's equation for gravity,
\begin{equation} \label{eq: phi}
\Phi(r) =
\begin{dcases}
\dfrac{GM\tsub{tot}}{R\tsub{vir}}
\biggl[\ln\biggl(\frac{r}{R\tsub{vir}}\biggr) - 1\biggr]
&
r < R\tsub{vir}
\\
\dfrac{-GM\tsub{tot}}{r} & r > R\tsub{vir} .
\end{dcases}
\end{equation}
\end{document}
答案2
我建议 (a) 使用cases
环境和 (b) 将条件信息 ( r<R_{vir}
) 单独放在一行上。我也不会自动调整括号的大小。
\documentclass[a4paper,twoside,12pt]{article}
\usepackage{multicol,amsmath}
\begin{document}
\begin{multicols*}{2}
Using Poisson's equation for gravity,
\begin{equation} \label{eq:phi}
\Phi(r) =
\begin{cases}
\frac{\textit{GM}_{\textit{tot}}}{R_{\textit{vir}}}\bigl[
\ln\bigl(\frac{r}{R_{\textit{vir}}}\bigr) - 1\bigr],\\
\qquad\qquad r < R_{\textit{vir}} \\[2ex]
\frac{-\textit{GM}_{\textit{tot}}}{r},
\quad r > R_{\textit{vir}}
\end{cases}
\end{equation}
\end{multicols*}
\end{document}
附录:如果你可以不用方程编号,那么让条件信息与相关公式在同一行上就不是太难了。(我只是不明白如何才能将公式、条件信息、和公式编号全部位于文本块宽度之内。
(与上面的代码相比,下面显示的代码实现了@MassimoOrtolano 提出的修正,即“G”和“M”代表单独的变量......)
\documentclass[a4paper,twoside,12pt]{article}
\usepackage{multicol,amsmath}
\begin{document}
\begin{multicols*}{2}
Using Poisson's equation for gravity,
\begin{equation*} \label{eq:phi}
\Phi(r) {=} \!
\begin{cases}
\frac{GM_{\textit{tot}}}{R_{\textit{vir}}}
\bigl[\ln\bigl(\frac{r}{R_{\textit{vir}}}\bigr) - 1\bigr] :
r < R_{\textit{vir}} \\[2ex]
\frac{-GM_{\textit{tot}}}{r} :
r > R_{\textit{vir}}
\end{cases}
\end{equation*}
\end{multicols*}
\end{document}
答案3
这是不是答案,因为使用您发布的代码,我无法重现您报告的问题(我得到的方程式编号相对于方程式垂直居中),而只是一条不符合允许字符数的注释。请考虑按如下方式重写您的代码:
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{mathtools}
\begin{document}
Using Poisson's equation for gravity,
%
\begin{equation} \label{eq: phi}
\Phi(r) =
\begin{dcases*}
\frac{GM_{\mathrm{tot}}}{R_{\mathrm{vir}}}
\biggl[\ln\Bigl(\frac{r}{R_{\mathrm{vir}}}\Bigr) - 1\biggr]
& if \( r < R_{\mathrm{vir}} \), \\[2\jot]
\frac{-GM_{\mathrm{tot}}}{r}
& if \( r > R_{\mathrm{vir}} \).
\end{dcases*}
\end{equation}
\end{document}
这是我获得的输出: