在科学技术文档撰写中,LaTeX因其卓越的数学排版能力而广受青睐。其中,公式的居中显示是确保文档专业性和可读性的一个基础且重要的方面。本篇文章将围绕“LaTeX公式居中”这一核心主题,深入探讨其“是什么”、“为什么”、“如何实现”、“在哪里使用”、“常见问题及解决方案”等多个维度,旨在提供一份全面而实用的指南。

什么是LaTeX公式居中?

LaTeX公式居中,顾名思义,是指在LaTeX文档中,将独立的数学公式(通常称为“显示公式”或“独立公式”)水平地排列在当前文本行的中心位置。这与“行内公式”形成对比,行内公式(如 $E=mc^2$)是嵌在文本段落中的,随文本流左对齐。而居中显示的公式,则通常占据其自身的行,并有额外的垂直空间将其与周围的文本隔开,以提高其视觉显著性。

默认情况下,LaTeX及其扩展包amsmath为大多数用于显示数学的命令和环境提供了自动居中功能。

为什么需要居中显示LaTeX公式?

公式的居中排版并非仅仅是一种审美偏好,它具有多方面的实际意义:

  • 提高可读性与清晰度: 复杂的数学表达式或多行公式如果与普通文本混杂或左对齐,会显得拥挤和难以辨认。居中显示能使公式从文本中“跳”出来,形成一个独立的视觉单元,便于读者快速定位、理解和吸收其中的数学信息。
  • 专业性与规范性: 在学术论文、技术报告、教科书等专业文档中,居中显示是显示数学公式的标准排版约定。遵循这一约定,能够提升文档的整体专业度和规范性。
  • 优化视觉平衡: 居中排版有助于在页面上创建视觉平衡,尤其是在包含大量数学内容的文档中。它使得页面布局看起来更加整洁、有序。

  • 强调重要信息: 居中显示的公式通常承载着重要的推导、定义或结果,这种排版方式能够自然地引导读者的注意力,强调这些核心的数学内容。

在哪里实现LaTeX公式的居中?

LaTeX公式的居中功能主要应用于文档的“显示数学”环境中。这些环境通常在文档的正文区域内使用,用于呈现需要独立展示的数学表达式。具体来说,以下场景是公式居中排版的常见应用地点:

  • 文档主体: 这是最常见的地方,无论是论文、报告、书籍章节,当需要展示一个独立的数学公式时,都会采用居中排版。
  • 定理、引理、命题等环境内部: 虽然这些环境本身有自己的编号和格式,但它们内部包含的显示公式通常仍需居中显示。
  • 列表项内部(特殊情况): 极少数情况下,如果一个列表项包含一个复杂的、需要独立展示的公式,也可以在列表项内部使用显示数学环境,公式仍会居中。但通常推荐将此类复杂公式置于列表项外部或重新组织内容。

需要注意的是,公式居中不适用于图表标题、脚注、页眉页脚等非主体文本区域,在这些地方通常只使用行内公式或直接文本。

如何实现LaTeX公式的居中?

LaTeX提供了多种命令和环境来实现公式的居中,并满足不同的排版需求。通常,在使用这些功能之前,建议在文档导言区加载amsmath宏包,它极大地增强了LaTeX的数学排版能力:

\usepackage{amsmath}

1. 单行公式居中

a. 无编号单行公式

这是最简单的居中方式,适用于不需要编号的单个公式。

方法一:使用\[ ... \]

这是LaTeX推荐的用于无编号显示数学的命令。它会自动将公式居中,并提供适当的垂直间距。

这是一个示例文本,后面将展示一个居中且无编号的公式:
\[
    E = mc^2
\]
公式下方继续示例文本。

方法二:使用equation*环境

equation*环境是amsmath宏包提供的一种无编号显示公式的方式,功能与\[ ... \]类似,但有时在某些复杂场景下表现更稳定。

\begin{equation*}
    a^2 + b^2 = c^2
\end{equation*}


不推荐的方法:使用$$ ... $$
虽然$$ ... $$也能实现无编号公式居中,但它是Plain TeX的语法,在LaTeX中已被废弃。使用它可能会导致不一致的垂直间距或与某些宏包冲突。强烈建议使用\[ ... \]equation*

b. 带编号单行公式

当公式需要被引用时,就需要进行编号。

方法:使用equation环境

equation环境是标准且推荐的用于带编号的单行公式居中显示的方法。它会自动为公式编号,并支持交叉引用。

根据爱因斯坦的质能方程,我们可以得到:
\begin{equation}
    E = mc^2 \label{eq:mass_energy}
\end{equation}
其中,E 是能量,m 是质量,c 是光速。如公式~\eqref{eq:mass_energy} 所示。

编号通常默认出现在公式的右侧(对于从左到右的语言)。如果需要将编号放在左侧,可以通过文档类选项或amsmath宏包的选项(如leqno)来设置。

2. 多行公式居中与对齐

当一个数学表达式过长需要分成多行,或者需要将多个相关公式按照特定点(如等号)对齐时,amsmath宏包提供了强大的环境。这些环境同样会默认将整体居中。

a. align 环境:多行公式按特定点对齐

align环境是最常用的多行公式对齐环境。它允许你指定一个对齐点(通常是等号&),所有行的公式都会在该点对齐,并且每行都会自动编号(除非使用\nonumber)。

\begin{align}
    f(x) &= (x+1)^2 \\
         &= x^2 + 2x + 1 \label{eq:quadratic}
\end{align}
公式~\eqref{eq:quadratic} 展示了一个展开式。


如果要创建多列对齐,可以在align环境中使用多个&符号,奇数列为右对齐,偶数列为左对齐。

\begin{align}
    A &= B       & C &= D \\
    E &= F + G   & H &= I + J
\end{align}

align*align的无编号版本。

b. gather 环境:多行公式独立居中

gather环境用于将多行公式独立居中,每行公式之间没有任何对齐关系。每行公式都会自动编号(除非使用\nonumber)。

\begin{gather}
    x^2 + y^2 = r^2 \\
    \int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2}
\end{gather}

gather*gather的无编号版本。

c. multline 环境:长公式首行左对齐,末行右对齐

multline环境适用于非常长的单行公式,需要将其拆分成多行显示。它会将第一行左对齐,最后一行右对齐,中间的所有行(如果有的话)居中。整个公式作为一个整体,只生成一个编号(通常在最后一行)。

\begin{multline}
    (x+y+z+w)^4 = x^4+y^4+z^4+w^4 + 4(x^3y+x^3z+x^3w+xy^3+\dots \\
    \dots + zw^3) + 6(x^2y^2+x^2z^2+x^2w^2+y^2z^2+y^2w^2+z^2w^2) + \dots \\
    \dots + 12(x^2yz+x^2yw+x^2zw+xy^2z+xy^2w+xz^2y+xz^2w+xw^2y+xw^2z+\dots \\
    \dots + y^2zw+yz^2w+yzw^2) + 24xyzw
\end{multline}

multline*multline的无编号版本。

d. split 环境:在一个编号下分割长公式并对齐

split环境必须嵌入到equationalign等环境中,它用于将一个长公式在保持一个单一编号的前提下,分割成多行并按指定点对齐。编号会居中于整个split块的高度。

\begin{equation}
\begin{split}
    V &= \int_0^{2\pi} \int_0^\pi \int_0^R \rho^2 \sin\phi \, d\rho \, d\phi \, d\theta \\
      &= \int_0^{2\pi} \int_0^\pi \left[ \frac{\rho^3}{3} \right]_0^R \sin\phi \, d\phi \, d\theta \\
      &= \frac{R^3}{3} \int_0^{2\pi} \int_0^\pi \sin\phi \, d\phi \, d\theta
\end{split}
\end{equation}

请注意,split环境本身不提供编号,编号由其外部的equationalign环境提供。

e. cases 环境:分段函数

cases环境用于排版分段函数。虽然它内部的表达式有自己的对齐规则(通常是左对齐条件,右对齐结果),但整个cases块会作为一个整体在其外部环境中居中显示。

\begin{equation}
    f(x) =
    \begin{cases}
        x^2, & \text{if } x \ge 0 \\
        -x^2, & \text{if } x < 0
    \end{cases}
\end{equation}

cases环境通常也嵌套在equationequation*中。

3. 强制居中(不推荐用于标准显示公式)

有时,人们可能会尝试使用通用的居中命令来居中数学公式。虽然在某些极少数非标准情况下可能有用,但对于标准的显示数学公式,强烈不建议使用以下方法,因为它们可能导致错误的间距、编号问题或与amsmath宏包冲突。

  • \begin{center} ... \end{center}: 这个环境通常用于居中文本块。如果将数学模式(如$...$\[...\])放在其中,它会将数学内容居中,但可能会引入不必要的垂直间距,且无法正确编号。

    \begin{center}
        $E = mc^2$ % 这不是标准的显示数学用法
    \end{center}
  • \centerline{...}: 这是一个低级的居中命令,同样不推荐用于数学模式。

    \centerline{$a^2+b^2=c^2$} % 不推荐

重要提示: 对于任何形式的显示数学公式,请始终使用amsmath宏包提供的专用环境(如equation, align, gather, \[ ... \]等)。它们不仅能正确居中,还能处理间距、编号、对齐等所有细节,确保排版质量。

常见问题:公式未居中或表现异常?

尽管LaTeX通常会自动居中显示公式,但有时用户可能会遇到公式没有居中或排版异常的情况。以下是一些常见问题及其排查思路:

1. 公式左对齐而非居中

  • 原因:文档类或宏包选项设置: 某些文档类(如article, report, book)或amsmath宏包可以接受fleqn选项。如果使用了这个选项,所有显示公式都会左对齐,而不是居中。

    \documentclass[fleqn]{article} % 导致公式左对齐
    \usepackage[fleqn]{amsmath} % 同样导致公式左对齐

    解决方案: 检查文档的导言区,移除或注释掉fleqn选项,或者将其修改为默认设置。

  • 原因:自定义宏包或本地配置: 某些不常用的宏包或用户自定义的排版设置可能会意外地更改公式的默认对齐方式。
    解决方案: 逐步注释掉文档中加载的宏包,找出导致问题的宏包,然后查阅其文档或寻找替代方案。

2. 垂直间距异常或水平位置微调

  • 原因:手动换行或空白字符:\[ ... \]equation环境内部,不应在公式内容的前后添加空行或过多的空白字符(除了公式内部的数学语法所需的空格)。这些可能会影响自动间距。
    解决方案: 确保公式环境内部只包含数学内容。空行通常表示段落结束,这在数学环境中是不需要的。
  • 原因:使用了不推荐的$$ ... $$ 如前所述,$$ ... $$可能导致不一致的垂直间距。
    解决方案: 替换为\[ ... \]
  • 原因:过度使用\centering或其他文本居中命令: 将数学环境嵌套在文本居中环境(如\begin{center})中可能会导致奇怪的间距,因为它们的设计目的不同。
    解决方案: 避免将标准的显示数学环境(equation, align, \[ \]等)包裹在center环境中。这些数学环境自身就处理居中。
  • 高级调整(慎用): 如果确实需要对公式的水平位置进行微调(通常不建议,因为破坏了排版规范性),可以使用\hspace{}\quad等命令,但通常只在非常特殊和有充分理由的情况下才考虑。

    \[
        \hspace{1cm} E = mc^2 % 将公式向右移动1cm
    \]

    这种方法会强制移动公式,而不是基于文本宽度自动居中。

3. 公式编号位置问题

  • 原因:默认设置: amsmath默认将编号放在右侧。
    解决方案: 如果需要左侧编号,可以在文档类选项中添加leqno,或在使用amsmath时指定\usepackage[leqno]{amsmath}
  • 原因:行内公式使用了编号环境: 不应尝试给行内公式编号。行内公式使用$...$,本身就不能编号。
    解决方案: 如果需要编号,将其改为显示公式,并使用equation环境。

多少种方式实现公式居中?

从“多少种”的角度来看,实现LaTeX公式居中的方式可以总结为以下几类,每类又包含具体环境或命令:

  1. 单行无编号居中:

    • \[ ... \] (推荐)
    • \begin{equation*} ... \end{equation*} (推荐)
    • $$ ... $$ (不推荐)
  2. 单行带编号居中:

    • \begin{equation} ... \end{equation} (推荐)
  3. 多行居中(自动编号或手动\nonumber):

    • 按特定点对齐: \begin{align} ... \end{align} (及其无编号版本align*)
    • 每行独立居中: \begin{gather} ... \end{gather} (及其无编号版本gather*)
    • 长公式分行(首左末右中居中): \begin{multline} ... \end{multline} (及其无编号版本multline*)
  4. 多行居中但只有一个编号:

    • 在一个equation内分割和对齐: \begin{equation}\begin{split} ... \end{split}\end{equation}
    • 分段函数: \begin{equation}\begin{cases} ... \end{cases}\end{equation}

选择哪种方式,取决于公式的复杂性、是否需要编号、以及多行公式之间的对齐关系。在绝大多数情况下,使用amsmath宏包提供的环境是最佳实践。

总结与最佳实践

掌握LaTeX公式的居中排版是撰写高质量科技文档的关键一环。通过本文的探讨,我们可以得出以下重要结论和最佳实践:

  • 始终加载amsmath宏包: 它是LaTeX数学排版的基石,提供了所有高级且灵活的公式环境。
  • 选择正确的环境:

    • 单行无编号:\[ ... \]
    • 单行带编号:\begin{equation} ... \end{equation}
    • 多行对齐:\begin{align} ... \end{align}
    • 多行独立居中:\begin{gather} ... \end{gather}
    • 长公式分行:\begin{multline} ... \end{multline}\begin{equation}\begin{split} ... \end{split}\end{equation}
  • 避免使用废弃命令: 远离$$ ... $$,它可能导致意外的排版问题。
  • 避免滥用文本居中命令: 不要将数学环境嵌套在\begin{center}等文本居中命令中。数学环境自身会处理居中。
  • 关注文档整体设置: 如果公式意外左对齐,检查文档类或amsmathfleqn选项。

通过遵循这些原则,您将能够轻松地在LaTeX文档中实现专业、清晰且符合规范的数学公式居中排版。


latex公式居中