mathtoolsset - yarakos95/LaTeX-for-math GitHub Wiki
cf. The mathtools Package, §3 Tools for mathematical typesetting
一覧にはされていなかったので,手動で検索して集めてみたが,以下のようなオプションがあった.(数え漏れの可能性有)
- showonlyrefs
- showmanualtags
- original-intertext
- original-shortintertext
- centercolon
- mathic
- prescript-sup-format=\mathit
- prescript-sub-format=\mathbf
- prescript-arg-format=\mathrm
これらをmathtoolsset
を使うことで,さまざまなタイプセッティングを行うことが出来る.
基本的には,以下のように使用する.
\mathtoolsset{
showonlyrefs,
mathic % or mathic = true
}
各コマンドはtrue
or false
で行う.
cf. The mathtools Package, §3.2.2 Showing only referenced tags
さて,参照している式番号のみに式番号を付与することのできるものですが,さまざまなバグがある.以下に紹介しておきたい.
手動の\tag*
を使用してタグを作成する方程式は,通常の\eqref
で参照しないでください.これは,現在のタグ形式に従ってフォーマットするためです.
一方,\tag*
の引数は常に方程式で直立した形で設定され,斜体のテキストで参照している可能性があるため,\ref
だけを使用することも良い解決策ではない場合があります.
以下の例では,コマンド\refeq
を使用して,タグフォントの形状が直立したイタリック体と非常に異なる場合に混乱を招く可能性を回避しています.
(ここでは例でPalatino に切り替えます):
\begin{quote}\renewcommand*\rmdefault{ppl}\normalfont\itshape
\begin{equation*}
a = b \label{eq:example} \tag*{Q\&A}
\end{equation*}
See \ref{eq:example} or is it better with \refeq{eq:example} ?
\end{quote}
時々直面する別の問題は,実際に参照される方程式のみの方程式番号を表示する必要があることです.
mathtoolsでは,\mathtoolsset
を使用してキーshowonlyrefs
をtrue またはfalse に設定することでこれを行うことができます.
オプションshowmanualtags
をtrue またはfalse に設定することにより,\tag
または\tag*
で指定された手動タグを表示するかどうかを選択することもできます.[^5]
[^5]: showmanualtags
をtrue に設定することをお勧めします.そうでない場合,\tag
を使用するという考え全体が実際に意味をなさないのでしょうか.
どちらのキーでも,次の例に示すように,名前を入力するだけでtrue が選択されます.
\mathtoolsset{showonlyrefs,showmanualtags}
\usetagform{brackets}
\begin{gather}
a = a \label{eq:a} \\
b = b \label{eq:b} \tag{**}
\end{gather}
This should refer to the equation containing $a=a$: \eqref{eq:a}.
Then a switch of tag forms.
\usetagform{default}
\begin{align}
c & = c \label{eq:c} \\
d & = d \label{eq:d}
\end{align}
This should refer to the equation containing $d=d$: \eqref{eq:d}.
\begin{equation}
e=e
\end{equation}
Back to normal. \mathtoolsset{showonlyrefs=false}
\begin{equation}
f=f
\end{equation}
この機能は,方程式を参照するために\eqref
または\refeq
を使用する場合にのみ機能することに注意してください. showonlyrefs
を使用する場合,直接参照せずに実際にいくつかの数式番号を追加できると便利な場合があります.
\noeqref{<label,label,. . . >}
構文は,\nocite
に似ています. リスト内のラベルが定義されていない場合,\ref
と同じ方法で警告をスローします.
-
BUG1: 残念ながら,
showonlyrefs
を使用すると,数式と方程式番号のamsmathの組版にバグが発生します.このバグは,数式を数式番号の近くまたはそれ以上にタイプセットできるようにすることで明らかになります.現在のところ,一般的な修正方法はわかっていません.ただし,数式が数式番号に触れるほど長くないことを確認する以外は,長い話を簡単に言うと,amsmathはその数学環境を2回タイプセットします.1回は測定用で,もう1回は実際の組版用です.測定部分では,式番号の幅が記録され,式または式番号が組版部分で(必要に応じて)移動できるようになります.showonlyrefs
が有効な場合,数式番号の幅は,この番号が参照されるかどうかによって異なります.これを決定するには,現在のラベルを知る必要があります.しかし,現在のラベルは測定段階では不明です.したがって,測定された幅は常に0であり(ラベルがないため参照されないため),組版フェーズでは方程式番号は考慮されません. -
BUG2: ntheorem オプション
thmmarks
がアクティブな場合,showonlyrefs
とntheorem
パッケージの間にバグがあります. 表示されている数式の数値が間違っている可能性があります(2倍されるようです). または,表示された数式でプルーフが終了し,その数式が参照されない場合,エンドマーカーが間違った場所に配置されることがあります. これには2つの解決策があり,どちらもempheq を含みます. 最も簡単な修正は,次の行を追加することです.
\usepackage[overload,ntheorem]{empheq}
ntheorem をロードする前. しかし,もちろん,オーバーロードオプションは,\intertext
や\shotintertext
などを無効にします. もう1つ試すのは,次のように,overload
オプションを削除して,最後の式を強調することです.
\begin{empheq}{align}
A & = B \label {eq:32} \\
& = 1. \label{eq:31}
\end{empheq}
\end{proof}
empheq パッケージはntheorem のいくつかの問題を修正し,mathtools が方程式番号に正しくアクセスできるようにします.
a:= b
のように代入演算を表示しようとすると,コロンが等号として数学軸の中央に配置されておらず,奇妙に見える出力になっていることにすぐに気付きます.
コマンド\vcentcolon
は,垂直方向に中央揃えされたコロンの省略形であり,$ a \vcentcolon = b $のように使用でき,目的の出力が得られます.
今のところ,\vcentcolon
を毎回入力するのはかなり面倒なので,代わりにキーのcentercolon
を使用してコロンをアクティブにすることができます.
\mathtoolsset{centercolon}
\[
a := b
\]
この場合,\ordinarycolon
コマンドはをタイプセットします. . . 普通のコロン(なんと驚き).
Warning:
centercolon
は,アクティブなコロンを使用する言語,特にフランス語では機能しません. 悲しいことに,アクティブな文字に関しては,babel パッケージはテキストと数学を区別しません. また,数学を処理するためのフックも提供していません. したがって,現在,この問題に対する一般的な解決策はありません.
フォントパッケージtxfonts およびpxfonts は,垂直方向に中央揃えされたコロンを含むが間隔が狭いさまざまなシンボルを提供します. たとえば,:=
の代わりに:=
とタイプセットする記号\coloneqq
として,:=
の組み合わせが存在します. これらのフォントを使用することの主な欠点は,サポートパッケージがamsmath (およびmathtools )をサポートしていないことです. 例については,[4]を参照してください. これらのフォントを使用していない場合は,mathtools が記号を提供します. 以下にいくつかの例を示します.
- The mathtools package [pdf]