options ASMmathAndMatotools - yarakos95/LaTeX-for-math GitHub Wiki
amsmath とmathtools を使う際に,数式に対していくつかのオプションを課すことが出来る.把握しておこう.
これらのパッケージオプションのいずれかを使用するには,\usepackage
コマンドのオプション引数を入れる.以下のようにして,オプション名を入れる.
\usepackage[intlimits]{amsmath}
AMS ドキュメントクラスと,amsmath が読み込まれているクラスでは,必要なオプションは\documentclass
に以下のように特定する.[^rare]
[^rare]: jscalasses やBXjsclasses ではamsmath を読み込まないので,これらを使用する際には無視してよい.
\documentclass[intlimits,tbtags,reqno]{amsart}
cf. The mathtools Package, §2 Package loading
mathtools はamsmath を自動的に読み込むため,以下のようにamsmath のオプションを設定することも可能だ.
\usepackage[fleqn,tbtags]{mathtools}
これは以下と同様である.
\usepackage[fleqn,tbtags]{amsmath}
\usepackage{mathtools}
しかし,他のパッケージも使用することを思えば,明示的に読み込んでおいた方が良いだろう.
デフォルトでは右側に式番号を置くようになっている.
Option | |
---|---|
leqno | 数式番号を左に置く |
reqno | 数式番号を右に置く |
Option | |
---|---|
fleqn | 数式の配置を文章幅の左右中央ではなく,左から一定の字下げの後で行う |
split 環境での式番号の出力場所を指定する.
Option | |
---|---|
centertags (デフォルト) | split 環境に含まれる数式の高さの中央に配置する |
tbtags ("Top-or-bottom tags") | 式番号を右に置く時は最後の式の行に,式番号を左に置くときは最初の式の行に配置する |
ディスプレイスタイルの数式における総和記号や積分記号などの上限,下限を指定するような記号に対するオプション.
Option | 積分記号 | 積分以外の記号 |
---|---|---|
sumlimits (デフォルト) | ||
nosumlimits | ||
intlimits | ||
nointlimits (デフォルト) |
nointlimits がsumlimits と同一の出力になっているが,何が異なるのか分からない.
コマンド | |
---|---|
右側から上下に変更する | \limits |
上下から右側に変更する | \nolimits |
% amsmath オプションはsumlimits(デフォルト)
\begin{equation*}
\int\limits^\infty_0, \qquad % インテグラルの上下に
\sum\nolimits_X % 総和記号の右側に
\end{equation*}
cf. The amdmath Package, 7.2 The \sideset command
上のようにしたい場合には\sideset
を使おう.
\sideset{}{^A}\sum_{i > 0}^N A_i
\sideset
の仕様は以下のようになっている.
\sideset{^1_2}{^3_4}\sum
このほかにもmathtools から提供されている\mathclap
や\smashoperator
を用いることで同様の結果を得られるようだがここでは紹介しない.
\det
,\inf
,\lim
,\max
,\min
など[^operator]では,通常,下側に下付き文字を配置する.これを変更するオプションを紹介する.
[^operator]: \DeclareMathOperator
で定義されているコマンドを指しているようだ.
Option | 演算子 |
---|---|
namelimits (デフォルト) | |
nonamelimits |
ただし,\log
はこのオプションの影響を受けない.
これらの演算子に関しては,「amsmath+mathtools と仲良くなろう#-自作で演算子を定義したい - Qiita」を参照するといいだろう.
aligned と gathered 環境の左に空白を制御するための3つのオプションが追加された.[^thishistory]
[^thishistory]: 2017年以前には,これらの構造の左側には空白が追加されてたが,右側には追加されていなかったようだ.これは実装したときの偶発的な機能であると思われており,通常,環境の先頭に\!
を付けることで逐次修正していたようだ.
新しいデフォルトの振る舞いは,ほとんどの場合,環境に細い空白が追加されないようにすることを目的としている.既存の文章に対しては,\!\begin{aligned}
とすることで,前と同じように結果になる.
オプション | |
---|---|
alignedleftspaceyesifneg (デフォルト) | 環境が負の空白で調整されているときに限り\, を入れる |
alignedleftspaceyes | 常に\, を aligned と gathered の左に入れる |
alignedleftspaceno |
\, を aligned と gathered の左に入れない |
amsmath のバグ修正のみのようだ.これらのバグは修正されるべきバグなので,デフォルトのバグ修正を有効にしておいた方が良いと思われる. 以下で,どのようなバグを修正するのかを把握しておこう.
cf. The mathtools Package, §2.1 Special mathtools options
- fixamsmath (デフォルト)
- donotfixamsmathbugs
オプションfixamsmath (デフォルト)は,amsmath の2つのバグ[^amsmathbugs]を修正する.
[^amsmathbugs]: LaTeX バグデータベースから,AMS-$\rm\LaTeX$ のバグレポート3591および3614を参照.
この2つのバグは,amsmath をfleqn
, leqno
の2つのオプションを同時に使用すると以下のような結果を得てしまうというものだ.
何らかの理由でこれらのバグを修正したくない場合 (タイプミスなしで実行できる場合)はオプションdonotfixamsmathbugs
を追加する. ^donotfixamsmathbugs
- disallowspaces (デフォルト)
- allowspaces
以下のような
\begin{equation}
\begin{gathered}
[p] = 100 \\
[v] = 200
\end{gathered}
\end{equation}
このとき,"[p]" は意図せずに消えてしまう.これは,amsmath 内で"[p]" を引数だと判断して,"[c]" として判断したためである.(t,b 等の引数を付与するとこの現象はなくなる)
このバグ修正は"aligned", "gathered", "multlined", 拡張マトリックス環境に適応される.(あれ? "alignedat" 環境は?)
- amsmathパッケージユーザガイド (Version 2.1) [pdf]
- User’s Guide for the amsmath Package (Version 2.1) [pdf]
- The mathtools package [pdf]
- syntax - How to use limits and nolimits together? - TeX - LaTeX Stack Exchange
- 2020/09/15 : 「limits とnolimits を両方同時に利用したい」を追加しました.