レッスン 10

amsmath のさらなるアライメント環境

amsmath にはメインレッスンで紹介した align* 環境以外にも多数のディスプレイ数式環境を提供しています.そうした環境のうち,主なものとしてはアライメントが不要な複数行に渡るディスプレイ数式用の gather 環境や,長い単一の数式を複数行に切り分ける(最初の行を左に,最後の行を右にアライメントする)ための multline 環境があります.すべての環境について,* を付けるとデフォルトで数式番号の付与が省略されます.

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}

\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 のアライメント環境はカラムのペアを受け取って,それぞれの最初のカラムを右側に,2つ目のカラムを左側にアライメントするように設計されています.このため複数の数式を並べる際に,関係演算子を基準としてアライメントすることが可能です.

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\begin{document}
Aligned equations
\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 の変種です.

\documentclass{article}
\usepackage[T1]{fontenc}
\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}

alignedtabular のものと似た位置指定を行うオプション引数を取ることができます.これはインライン数式を先頭行にアライメントするような場合に便利です.以下のコード例の2項目を比較してみてください.

aligned takes a positional optional argument similar to tabular. This is often useful to align an inline math formula on its top row; compare the items in the list in the following example.

\documentclass{article}
\usepackage[T1]{fontenc}
\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 標準では数式内の記号をボールド体にする方法は2つあります.数式全体をボールド体にする場合は \boldmath コマンドをその数式の記述に入る前に宣言します.また \mathbf コマンドを使用すると独立の文字や単語を立体かつボールドなローマン体にすることができます.

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}

\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$ % bad use of \mathbf
\end{document}

通常の太さの数式の中で太字の記号(\boldmath 宣言時に出力されるもの)を使用したい場合には bm パッケージが提供する \bm コマンドを用いることができます.\bm コマンドは = のような記号やギリシャ文字に対しても効果を発揮します(上のコード例では \mathbf\pi に対しては効果を発揮していないことに注意してください).

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\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 の行列用の環境に各カラムのアライメントを指定するオプションを追加します.

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{mathtools}

\begin{document}

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

\end{document}

数式の Unicode 入力

レッスン14で扱うように,現代では OpenType フォントを扱う拡張 TeX エンジンが存在します.そうしたエンジンでも,デフォルトでは数式フォントについては古典的な TeX の数式フォントを使用します.unicode-math パッケージを使用すると OpenType の数式フォントを利用することができます.このパッケージの詳細はこのチュートリアルの範囲を超えてしまうので,パッケージ文書を参照してください.ここでは小さなコード例を示すに留めます.

% !TEX lualatex
\documentclass[a4paper]{article}
\usepackage{unicode-math}
\setmainfont{TeX Gyre Pagella}
\setmathfont{TeX Gyre Pagella Math}

\begin{document}

One two three
\[
\log \alpha + \log \beta = \log(\alpha\beta)
\]

Unicode Math Alphanumerics
\[A + \symfrak{A}+\symbf{A}+ \symcal{A} + \symscr{A}+ \symbb{A}\]

\end{document}