LaTeX之公式及编号

转载自:https://www.cnblogs.com/parrynee/archive/2010/04/09/1708153.html

LaTeX之公式及编号
LaTeX的数学公式有两种,即行中公式和独立公式。行中公式放在正文中间,独立公式单独成行。
行中公式可以用如下这三 种方法表示:\begin{math}xn+yn=z^n\end{math} ,或者 (xn+yn=z^n) ,或者 x n + y n = z n x^n+y^n=z^n xn+yn=zn

单行的独立公式可以用如下三种方法表示:

\begin{displaymath}xn+yn=z^n\end{displaymath}
[xn+yn=z^n]
x n + y n = z n x^n+y^n=z^n xn+yn=zn

其 中最后一种格式还可以指定公式的编号,比如

KaTeX parse error: Undefined control sequence: \eqno at position 13: x^n+y^n=z^n \̲e̲q̲n̲o̲{(1)}

另 外也可以用如下方式给公式自动编号:

\begin{equation}xn+yn=z^n\end{equation}

至于多行的独立公式,可以用如下方式撰写:

\begin{eqnarray*}
xn+yn &=& z^n \
x+y &=& z
\end{eqnarray*}

其 中两个&号之间的是公式间对齐的位置,用\隔开各行公式。上面输出的公式是没有编号的,如果需要自动编号,可以将eqnarray*改为 eqnarray 。

<think>好的,用户想了解如何在LaTeX中对换行公式进行编号。首先,我需要回忆相关的LaTeX知识。记得处理多行公式时,常用的是amsmath宏包中的环境,比如align、aligned、split等。用户提到的引用资料里提到了使用equation结合aligned,以及用\nonumber来抑制编号。 用户的问题可能涉及到两种情况:整个多行公式一个编号,或者某些行有编号,某些没有。比如,示例中的equation环境包裹aligned,这样整个公式块只有一个编号,出现在中间还是末尾呢?根据引用[2],示例中的公式有三个行,但编号可能出现在最后一行。而如果使用align环境,每行都可能会有编号,但可以用\nonumber来取消特定行的编号。 需要明确用户的具体需求。他们可能希望多行公式作为一个整体编号,或者部分行有编号。比如,在equation环境中使用aligned,这样整个公式块共享一个编号。如果使用align,并配合\nonumber,可以控制哪些行显示编号。例如: \begin{align} a &= b + c \nonumber \\ &= d + e \end{align} 这里第二行会有编号,而第一行没有。或者,如果整个多行公式只需要一个编号,放在最后一行,可以这样写: \begin{align} a &= b + c \nonumber \\ &= d + e \nonumber \\ &= f + g \label{eq:example} \end{align} 不过,这样可能不如使用equation和aligned更方便。例如: \begin{equation} \begin{aligned} a &= b + c \\ &= d + e \\ &= f + g \end{aligned} \end{equation} 此时整个公式只有一个编号,通常出现在中间,但实际测试可能会发现编号在aligned环境的正中。这可能需要调整,或者用户希望编号在最后一行。这时候可能需要用split环境或者其他方法。 另外,用户可能对编号的位置有具体要求,比如希望编号在最后一行右侧。根据引用[1],在aligned环境中,如果某一行末尾有\nonumber,可以抑制该行的编号。但若在equation环境中使用aligned,整个公式块只有一个编号,通常出现在公式的垂直居中位置,这可能不是用户想要的。例如,引用[1]的例子中,第二个行用了\nonumber,但整个公式块仍然有一个编号,因为equation环境本身会产生一个编号,而aligned内部的分行不会各自编号。所以可能需要用align环境来实现每行独立编号,或者使用split环境在equation中,并手动控制编号的位置。 总结可能的解决方案: 1. 使用equation包裹aligned环境,整个公式块一个编号,位置可能在中间。 2. 使用align环境,每行可以单独编号,用\nonumber取消不需要的行。 3. 使用split环境在equation中,将多行公式拆分为一个整体,编号在中间或末尾,取决于split的对齐方式。 可能需要具体示例来展示不同情况下的编号效果。例如,当用户希望多行公式共享一个编号,并且编号在最后一行,可能需要将split或aligned环境与\tag命令结合使用,或者调整位置。但标准的做法可能是在equation环境中使用split,这样编号会垂直居中,而使用aligned的话可能也是如此。如果用户希望编号在最后一行,可能需要一些技巧,比如在最后一行使用\label或者手动调整,但通常LaTeX会自动处理编号的位置。 因此,回答中需要分情况讨论,并给出不同方法及其效果,同时指出如何引入amsmath宏包。同时,用户提到的引用中的例子显示,在aligned环境中,使用\nonumber可以抑制某行的编号,但在equation环境中整个块只有一个编号,所以可能需要注意这一点。比如,在引用[1]的例子中,equation内的aligned环境,两行公式,但第二个行用了\nonumber,但整个公式仍然有一个编号。不过,实际测试可能显示,这里的\nonumber可能不起作用,因为equation环境本身会给整个块一个编号,而aligned内部的行并不会单独编号。可能用户引用中的例子有误,或者需要进一步验证。 需要检查引用内容是否正确。引用[1]中的示例: \begin{equation} \begin{aligned} E&=\frac{1}{2}\sum_{j=1}^{2}(z_j-f_j(x_k))^2 \\ &=\frac{1}{2}(z_1-f_1(x_k))^2+\frac{1}{2}(z_2-f_2(x_k))^2\nonumber \end{aligned} \end{equation} 这个例子中,第二个行末尾有\nonumber,但整个equation环境会生成一个编号。可能这里的\nonumber是无效的,因为aligned环境中的每一行并不单独编号,而是整个equation有一个编号。所以可能用户引用中的例子是想在align环境中使用,而不是equation。例如,在align环境中,每行默认有编号,所以用\nonumber可以取消某行的编号。这时候,正确的做法是: \begin{align} E&=\frac{1}{2}\sum_{j=1}^{2}(z_j-f_j(x_k))^2 \nonumber \\ &=\frac{1}{2}(z_1-f_1(x_k))^2+\frac{1}{2}(z_2-f_2(x_k))^2 \end{align} 这样,第一行有\nonumber,不显示编号,第二行有编号。但整个align环境中的每个等式默认都有编号,除非用\nonumber禁止。 因此,用户可能混淆了equation+aligned和align环境的使用。因此,在回答中需要明确不同环境的使用场景: - equation + aligned:整体一个编号,通常垂直居中。 - align:每行一个编号,可用\nonumber取消。 - split:在equation中使用,将多行公式拆分为一个整体,编号位置可能居中。 因此,正确的方法应该是根据需求选择环境: 1. 多行公式整体一个编号,使用equation和aligned或split。 2. 某些行需要编号,某些不需要,使用align环境配合\nonumber。 另外,用户可能遇到的问题是,如何让编号出现在最后一行。例如,在equation环境中使用aligned,编号默认在中间。如果希望编号在最后一行,可能需要使用align环境,并对前几行使用\nonumber,最后一行保留编号。例如: \begin{align} E &= \text{...} \nonumber \\ &= \text{...} \nonumber \\ &= \text{...} \end{align} 这样,只有最后一行会有编号。或者,如果希望整个公式块有一个编号,在最后一行右侧,可能需要使用IEEEeqnarray环境(需要加载IEEEtrantools宏包),但可能超出用户当前的知识范围。因此,建议用户使用align环境并控制每行的编号。 总结回答结构: 1. 使用align环境,通过\nonumber控制每行的编号。 2. 使用equation+aligned环境,整体一个编号。 3. 说明引入amsmath宏包的必要性。 4. 示例代码展示不同情况。</think>在LaTeX中对换行公式进行编号时,主要通过`amsmath`宏包提供的多行公式环境实现。以下是不同场景下的方法及示例: --- ### 1. **多行公式整体编号** 使用`equation`嵌套`aligned`环境,公式块共享一个编号,默认垂直居中显示: ```latex \begin{equation} \begin{aligned} E &= \frac{1}{2}\sum_{j=1}^{2}(z_j-f_j(x_k))^2 \\ &= \frac{1}{2}(z_1-f_1(x_k))^2 + \frac{1}{2}(z_2-f_2(x_k))^2 \end{aligned} \end{equation} ``` 效果: $$ \begin{equation} \begin{aligned} E &= \frac{1}{2}\sum_{j=1}^{2}(z_j-f_j(x_k))^2 \\ &= \frac{1}{2}(z_1-f_1(x_k))^2 + \frac{1}{2}(z_2-f_2(x_k))^2 \end{aligned} \end{equation} $$ --- ### 2. **特定行添加编号** 使用`align`环境,通过`\nonumber`控制编号显示: ```latex \begin{align} a &= b + c \nonumber \\ &= d + e \\ &= f + g \nonumber \end{align} ``` 效果: $$ \begin{align} a &= b + c \nonumber \\ &= d + e \\ &= f + g \nonumber \end{align} ``` --- ### 3. **编号位置调整** 若需编号在最后一行,需手动抑制前几行的编号: ```latex \begin{align} a &= b + c \nonumber \\ &= d + e \nonumber \\ &= f + g \end{align} ``` 效果: $$ \begin{align} a &= b + c \nonumber \\ &= d + e \nonumber \\ &= f + g \end{align} $$ --- ### 关键点 - **引入宏包**:在导言区添加`\usepackage{amsmath}`[^1]。 - **对齐符号**:使用`&`对齐等号或其他位置。 - **编号控制**:`\nonumber`用于取消某行编号,`\tag{自定义编号}`可手动设置标签[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值