定理・証明と高度な数式
amsthm で定理・補題・定義の環境を定義し、proof で証明を組版します。amsmath と amssymb は、よく使う演算子、集合用の書体、数学記号を提供します。
EasyLaTeX のコンパイラー設定:LuaLaTeX + ltjsarticle。amsmath、amsthm、amssymb を読み込みます。
定理環境を定義する
プリアンブルで \newtheorem を使って環境を宣言します。次の例では節ごとに番号を付け、「定理 1.1」のように表示します。
\usepackage{amsthm}
\renewcommand{\proofname}{証明}
\newtheorem{theorem}{定理}[section]
\newtheorem{lemma}[theorem]{補題}
\theoremstyle{definition}
\newtheorem{definition}[theorem]{定義}
[section] は \section ごとに番号をリセットし、[theorem] は補題や定義で定理と同じ番号列を共有する指定です。文書の要件に合わせて一貫した方式を選び、途中で不用意に混在させないでください。
定理・補題・定義
宣言後は本文で対応する環境を使います。
\begin{theorem}[三平方の定理]
直角三角形では、直角を挟む2辺の平方の和は斜辺の平方に等しい。
\end{theorem}
\begin{definition}
集合 \(A\) の要素数が有限なら、 \(A\) を有限集合と呼びます。
\end{definition}
角括弧内の定理名は省略可能です。amsthm の definition スタイルは通常、本文を立体で表示し、定義・例・注意書きに適しています。
証明環境
amsthm の proof 環境は、末尾に証明終了記号を自動で追加します。
\begin{proof}
仮定より \(a=b\) の両辺に \(c\) を加えると \(a+c=b+c\)。
\end{proof}
証明が別行立ての数式で終わる場合、記号を数式内に明示的に置くことがあります。
\begin{proof}
\[
(a+b)^2 = a^2 + 2ab + b^2. \qedhere
\]
\end{proof}
\qedhere を使うと、記号を別の行に送らず数式の行末に配置できます。
よく使う演算子と集合
演算子名を斜体の文字列として入力せず、組み込みのコマンドを使います。
\[
\sin x + \log y = \lim_{n \to \infty} a_n.
\]
標準的な数の集合には \mathbb を使えます。
\[
\mathbb{N} \subset \mathbb{Z} \subset \mathbb{Q} \subset \mathbb{R} \subset \mathbb{C}.
\]
\mathbb は amssymb で利用できます。確率・期待値・階数など、表記が一意に定まらない概念は、初出時に意味を定義してください。
独自の演算子
繰り返し使う複数文字の演算子は、プリアンブルで \DeclareMathOperator により定義します。
\DeclareMathOperator{\rank}{rank}
\DeclareMathOperator*{\argmax}{arg\,max}
星付きの形式では、別行立ての数式で添字が演算子の真下・真上に配置されます。
\[
\argmax_{x \in \mathbb{R}} f(x).
\]
\mathrm{rank} を繰り返して演算子を代用しないでください。本来の演算子とは空きや添字の配置が異なります。
よくある問題
環境が未定義になる
Environment theorem undefined や Environment proof undefined が出たら、プリアンブルで \usepackage{amsthm} を読み込み、本文の開始前に \newtheorem を宣言しているか確認します。
定理の見出しがテンプレートに合わない
大学や出版社のテンプレートと標準出力を比較してください。テンプレートに定理環境がある場合は同名で再定義せず、既存の名前と番号規則を使います。日本語の見出し名も例のように明示できます。
\mathbb が未定義になる
\usepackage{amssymb} を読み込みます。記号やコマンドが未定義の場合は、未知の設定をまとめてコピーせず、提供元のパッケージを調べてください。
完全な例
\documentclass[a4paper,12pt]{ltjsarticle}
\usepackage{amsmath}
\usepackage{amsthm}
\renewcommand{\proofname}{証明}
\usepackage{amssymb}
\newtheorem{theorem}{定理}[section]
\theoremstyle{definition}
\newtheorem{definition}[theorem]{定義}
\DeclareMathOperator{\rank}{rank}
\begin{document}
\section{例}
\begin{definition}
もし \(A \subseteq \mathbb{R}\) なら、 \(A\) は実数の集合の部分集合です。
\end{definition}
\begin{theorem}
任意の実数 \(a\) と \(b\) について、 \((a+b)^2=a^2+2ab+b^2\)。
\end{theorem}
\begin{proof}
展開すると \((a+b)(a+b)\) より
\[
(a+b)^2 = a^2 + 2ab + b^2. \qedhere
\]
\end{proof}
\end{document}