课程 十

更多amsmath对齐

除了主课程中展示的align*环境外,amsmath还有几个其他的数学显示结构,特别是gather用于不需要对齐的多行显示,以及multline用于将较大的单个表达式分成多行,将第一行左对齐,最后一行右对齐。在所有情况下,带*的形式默认省略方程编号。

% !TEX program=lualatex

\documentclass{ctexart}


\usepackage{amsmath}

\begin{document}

Gather环境
\begin{gather}
  P(x)=ax^{5}+bx^{4}+cx^{3}+dx^{2}+ex +f\\
  x^2+x=10
\end{gather}

Multline环境
\begin{multline*}
   (a+b+c+d)x^{5}+(b+c+d+e)x^{4} \\
    +(c+d+e+f)x^{3}+(d+e+f+a)x^{2}+(e+f+a+b)x\\
    + (f+a+b+c)
\end{multline*}
\end{document}

数学对齐中的列

amsmath的对齐环境设计为每对列的第一列右对齐,第二列左对齐。这允许显示多个方程,每个方程都围绕其关系符号对齐。

% !TEX program=lualatex

\documentclass{ctexart}

\usepackage{amsmath}
\begin{document}
对齐的方程
\begin{align*}
a &= b+1   &  c &= d+2  &  e &= f+3   \\
r &= s^{2} &  t &=u^{3} &  v &= w^{4}
\end{align*}

\end{document}

此外,还有以ed结尾的显示环境变体,用于在更大的显示中制作子项。 例如,alignedgathered分别是aligngather的变体。

% !TEX program=lualatex

\documentclass{ctexart}

\usepackage{amsmath}
\begin{document}
Aligned:
\[
\left.\begin{aligned}
a&=b\\
c&=d
\end{aligned}\right\}
\Longrightarrow
\left\{\begin{aligned}
b&=a\\
d&=c
\end{aligned}\right.
\]
\end{document}

aligned接受类似于tabular的位置可选参数。 这在对齐内联数学公式的顶行时经常有用; 比较下面示例中列表中的项目。

% !TEX program=lualatex

\documentclass{ctexart}

\usepackage{amsmath}
\begin{document}
\begin{itemize}
\item 
$\begin{aligned}[t]
a&=b\\
c&=d
\end{aligned}$
\item 
$\begin{aligned}
a&=b\\
c&=d
\end{aligned}$
\end{itemize}
\end{document}

数学加粗

标准 LaTeX 有两种方法使数学符号加粗。要使整个表达式加粗,在进入表达式前使用\boldmath。命令\mathbf也可用于将单个字母或单词设置为直立粗体罗马字体。

% !TEX program=lualatex

\documentclass{ctexart}


\begin{document}


$(x+y)(x-y)=x^{2}-y^{2}$

{\boldmath $(x+y)(x-y)=x^{2}-y^{2}$ $\pi r^2$}

$(x+\mathbf{y})(x-\mathbf{y})=x^{2}-{\mathbf{y}}^{2}$
$\mathbf{\pi} r^2$ % 错误使用\mathbf
\end{document}

如果你想在普通权重表达式中访问粗体符号(就像\boldmath使用的那样),可以使用bm宏包中的命令\bm。注意\bm也适用于=和希腊字母等符号。(注意在上面的示例中,\mathbf\pi没有效果。)

% !TEX program=lualatex

\documentclass{ctexart}

\usepackage{bm}

\begin{document}

$(x+\mathbf{y})(x-\mathbf{y})=x^{2}-{\mathbf{y}}^{2}$

$(x+\bm{y})(x-\bm{y}) \bm{=} x^{2}-{\bm{y}}^{2}$

$\alpha + \bm{\alpha} < \beta + \bm{\beta}$

\end{document}

Mathtools

mathtools宏包加载amsmath并添加了一些额外功能,比如amsmath矩阵环境的变体,允许指定列对齐方式。

% !TEX program=lualatex

\documentclass{ctexart}

\usepackage{mathtools}

\begin{document}

\[
\begin{pmatrix*}[r]
  10&11\\
   1&2\\
  -5&-6
\end{pmatrix*}
\]

\end{document}

Unicode数学

第14课所述,有一些变体 TeX 引擎使用 OpenType 字体。默认情况下,这些引擎仍然使用经典的 TeX 数学字体,但你可以使用unicode-math宏包来使用 OpenType 数学字体。这个宏包的细节超出了本课程的范围,我们建议你参考宏包文档。 但是,我们在这里给出一个小示例。

% !TEX program=lualatex

\documentclass{ctexart}

\usepackage{unicode-math}
\setmainfont{TeX Gyre Pagella}
\setmathfont{TeX Gyre Pagella Math}

\begin{document}

一二三
\[
\log \alpha + \log \beta = \log(\alpha\beta)
\]

Unicode 数学字母数字符号
\[A + \symfrak{A}+\symbf{A}+ \symcal{A} + \symscr{A}+ \symbb{A}\]

\end{document}