個々の LaTeX 項の下に短い矢印と説明文を配置するには、\underset と amsmath の2行構成の \substack を組み合わせます。このガイドでは、Mac のデスクトップ環境で使える完全な文書と、式が詰まっている場合の間隔調整方法を紹介します。
amsmath で注釈を作成する
基本の配置は3段構成です。代数項、その下の上向き矢印、さらに矢印の下の短いラベルです。矢印は、説明対象の項を指します。amsmath のガイドでは、基準となる要素の下に内容を配置する \underset と、複数行を積み重ねる \substack が解説されています。これらを組み合わせて、ここで使う注釈を作成します。amsmath パッケージのユーザーガイド
Mac に動作する LaTeX 環境がない場合、LaTeX Project は TeX システムと文書エディターを含む MacTeX を推奨しています。すでに LaTeX 文書を問題なくコンパイルできる場合は、その環境を使ってください。LaTeX の入手
以下の完全な文書を LaTeX エディターで annotations.tex として保存します。pdfLaTeX でコンパイルし、生成された PDF を確認してください。ラベルと式はすべて説明用の例です。
\documentclass{article}
\usepackage{amsmath}
% First argument: mathematical term.
% Second argument: short text label.
\newcommand{\termnote}[2]{%
\underset{\substack{\uparrow\\\text{#2}}}{#1}%
}
\begin{document}
\[
F(x)=
\termnote{ax^2}{quadratic}
+\termnote{bx}{linear}
+\termnote{c}{constant}.
\]
\end{document}
この例では、ax^2、bx、c にそれぞれ別の注釈を付けています。プラス記号はコマンドの引数の外側に置かれているため、各説明がどの項にかかるのかが明確です。かっこで囲んだ式全体に注釈を付けるには、その式を第1引数として渡します。
\termnote は、この文書内で定義した独自のコマンド名であり、パッケージに組み込まれているコマンドではありません。その定義では、文書化された要素を組み合わせています。\text コマンドは数式内に通常のテキストを配置し、周囲の数式スタイルに合わせてサイズを調整します。amstext パッケージ
引数の順序を理解する
\termnote{bx}{linear} は「項 bx にラベル linear を付けて注釈する」と読みます。定義内では、\underset に下側の内容を先に渡し、次に基準となる要素を渡します。\\ は矢印の行とラベルの行を区切ります。
一度だけ注釈を付ける場合は、次のように数式モード内の断片を使えば、コマンド呼び出しと同じ結果になります。これは上記の完全な文書にある数式表示の区切り記号の内側に置きます。
\underset{\substack{\uparrow\\\text{linear}}}{bx}
文書全体で矢印の向きを統一してください。上向き矢印は、上にある項を説明していることを示します。式から説明へ向かう読み方にしたい場合は、コマンド定義内の \uparrow を \downarrow に置き換えます。
説明に合ったレイアウトを選ぶ
パッケージを追加する前に、矢印で何を結び付けるのかを決めます。1つの項を示す注釈、式に沿って伸びる矢印、式の行間の変化を説明する矢印では、それぞれ異なる構成が必要です。
| 意図する結果 | 適した構成 | 配置場所 |
|---|---|---|
| 1つの項の下に短い縦向きの矢印とテキストを置く | \underset、\substack、\text を組み合わせた独自構成 |
数式の中 |
| 式の下に横向き矢印を置く | amsmath の \underrightarrow、\underleftarrow、または \underleftrightarrow |
矢印を付ける式の周囲 |
| 矢印の線の上または下にテキストを付けた横向き矢印を置く | amsmath の \xrightarrow または \xleftarrow |
数式オブジェクトの間 |
| 連続する数式の行の横に説明用の矢印を置く | witharrows の WithArrows または DispWithArrows |
パッケージの数式整列環境内 |
amsmath のガイドでは、式を装飾する下付き矢印と、ラベルを付けるために長さを調整できる矢印が区別されています。どちらも、最初の例にある縦方向の3段注釈を自動的に作成するものではありません。amsmath パッケージのユーザーガイド
witharrows パッケージの説明によると、WithArrows は aligned に似た整列用コンポーネントで、DispWithArrows は align に似たディスプレイ環境です。主なレイアウトでは、数式の行の右側に説明用の矢印を配置します。個々の項のすぐ下にラベルを付けるには最初の例を使い、行間の手順を説明するには witharrows を選びます。plain-TeX および LaTeX 用 witharrows パッケージ
衝突を起こさずにラベルの幅を調整する
まず最初の文書を使い、間隔を変える前に見た目を確認します。constant のようなラベルは、対応する項 c よりかなり幅が広いことがあります。その余分な幅によって短い式が間延びして見える一方、説明を入れる余裕が生まれます。
項同士の間隔を詰めたままにしたい場合、mathtools は \mathclap を提供します。中身を幅として報告しないボックスの中央に配置する機能です。このパッケージは amsmath を読み込むため、修正版の文書で必要なのは \usepackage{mathtools} だけです。mathtools パッケージ、第2節および第3.1.1節
比較用に、2つ目の完全な文書を示します。ラベルの幅だけを隠し、矢印は注釈全体の測定幅に含めたままにします。
\documentclass{article}
\usepackage{mathtools}
\newcommand{\compacttermnote}[2]{%
\underset{%
\substack{\uparrow\\\mathclap{\text{#2}}}%
}{#1}%
}
\begin{document}
\[
F(x)=
\compacttermnote{ax^2}{quadratic}
\quad+\quad
\compacttermnote{bx}{linear}
\quad+\quad
\compacttermnote{c}{constant}.
\]
\end{document}
幅がゼロと報告されても、テキストが見えなくなるわけではありません。ラベルは中央から左右に伸びます。そのため、式が行内に十分収まっていても、隣り合うラベルが重なることがあります。この例のレイアウトでは、\quad で明示的に間隔を空けています。自分の式を見て調整してください。
次の手順で検討してください。まずラベルを短くし、次に通常版とコンパクト版を比較し、それから必要に応じて意図的に間隔を空けます。それでも説明に一文が必要なら、その文を周囲の文章に移し、項の下には短い識別用の文言だけを残します。こうすれば、通常の文字サイズでも注釈を読みやすく保てます。
注釈付きの式を適切な環境に置く
番号なしの式を1つ表示する場合は、上記のように \[ ... \] を使います。複数の行を揃える場合は、文書本文で align* を使います。一方、aligned 環境は、それを囲む数式環境の内側に置くものです。こうした境界は amsmath のガイドで説明されています。amsmath パッケージのユーザーガイド、第3節
次の例は、最初の文書で置き換えに使う数式表示の断片です。既存の \termnote 定義を使います。開始と終了の区切り記号を含め、元の数式表示全体を置き換えてください。
\begin{align*}
F(x) &= ax^2+bx+c \\
&= \termnote{ax^2}{quadratic}
+\termnote{bx}{linear}
+\termnote{c}{constant}.
\end{align*}
注釈を付けた行を、その次の段落や数式と合わせて確認します。ラベルは数式のベースラインの下に高さを加えるため、単独ではバランスが取れて見える配置でも、長い導出の中では窮屈に感じられることがあります。複数の項に説明が必要な場合は、これらの注釈をディスプレイ数式に配置してください。
よくある問題の診断
- 独自コマンドが未定義と表示される:
\newcommand定義を\begin{document}より前に記述してください。 - パッケージのコマンドが未定義と表示される: 対応するパッケージが読み込まれているか確認してください。コンパクト版では、
\mathclapにmathtoolsが必要です。 - 意図しない箇所に注釈が付く: 第1引数を囲む波かっこを確認してください。係数と指数を含めるには
\termnote{ax^2}{quadratic}を使います。 - ラベルが重なる: 通常の幅の版に戻す、文言を短くする、または注釈を付けた項の間隔を広げてください。
- 整列時に入れ子のエラーが発生する:
align*を別の数式表示の内側に置くのではなく、上記の完全な環境構成を使ってください。
このコマンドでは、ここに示した通常の代数項を基準となる要素として扱い、その下に説明を付けます。amsmath の実装では、基準となる要素が二項演算子または関係演算子に分類される場合、その分類も維持されます。ただし、演算子に注釈を付ける場合は間隔について追加の考慮が必要です。まずは項そのものに注釈を付けてください。amsmath パッケージ、第12節
例は文書化されたコマンドに基づいて確認しましたが、調査環境ではコンパイルしていません。コマンドを大きな原稿に組み込む前に、Mac の環境で完全な文書をコンパイルしてください。
まずは通常の幅の版を使ってください。それぞれの矢印が対応する項を明確に示し、各ラベルが読みやすい状態になったら、表示されるテキストを置く十分な余裕がある箇所に限ってコンパクト版を使います。
出典
- LaTeX の入手 — LaTeX Project。
- amsmath パッケージのユーザーガイド — American Mathematical Society および LaTeX Project。
- amstext パッケージ — LaTeX Project、CTAN 経由。
- mathtools パッケージ — Morten Høgholm、Lars Madsen、および LaTeX3 Project、CTAN 経由。
- plain-TeX および LaTeX 用 witharrows パッケージ — F. Pantigny、CTAN 経由。
- amsmath パッケージ — LaTeX Project、CTAN 経由.