basic - yarakos95/LaTeX-for-math GitHub Wiki
数式モードのスタイルやシンボルのクラス,フォントを確認しておこう.
数式モードのスタイルには4つの種類がある.
スタイル | ||
---|---|---|
1 | \displaystyle |
別行立て数式 |
2 | \textstyle |
インライン数式 |
3 | \scriptstyle |
添え字 |
4 | \scriptscriptstyle |
添え字の添え字 |
{\XXXstyle \sum_{n=0}^N A_n}
とすることで,それぞれのスタイルを使うこと出来る.
\begin{align*} % いずれも同じ \sum_{n=0}^N A_n を異なるスタイルで表示させる
{\displaystyle \sum_{n=0}^N A_n} \\
{\textstyle \sum_{n=0}^N A_n} \\
{\scriptstyle \sum_{n=0}^N A_n} \\
{\scriptscriptstyle \sum_{n=0}^N A_n}
\end{align*}
数式モードでは以下のような数式に対するクラスとして括られているようだ.このクラスによって,左右に適切な空白を入れる等の効果がある.[^anothermathclass]
[^anothermathclass]: \mathalpha
や\mathinner
もあるようだが,これらのクラスはどうなっているのだろうか.
このような数式シンボルのクラスを$\rm\LaTeX$ ユーザにとって必要な情報なのかは怪しい[^texonlatex]が,知っておくことで数式を作成するときに意味を持った数式の書き方が出来るのではないかと思う.
[^texonlatex]:
Class No. | Mnemonic | コマンド | 種類 | 例 |
---|---|---|---|---|
0 | Ord | \mathord |
通常の記号 | |
1 | Op | \mathop |
大型演算子 | |
2 | Bin | \mathbin |
二項演算子 | |
3 | Rel | \mathrel |
関係演算子 | |
4 | Open | \mathopen |
左デリミタ, 開きデリミタ | |
5 | Close | \mathclose |
右デリミタ, 閉じデリミタ | |
6 | Pun | \mathpunct |
句読点類 |
\mathXXX{<数学記号>}
とすれば,<数学記号>
がXXX
のシンボルクラスと同等の扱いとなる.
例 :
E
という大型演算子を新たに定義する.
\newcommand{\opE}{\mathop{E}} % E をOperator クラスにしている
\begin{equation*}
\opE^\infty_0
\end{equation*}
これでE
が大型演算子\opE
として利用できるようになった.
しかし,この大型演算子はnosumlimits 等のamsmath のオプションを受け付けないようだ.
以下のコマンドがamsmath から提供されている.
コマンド | 例 | |
---|---|---|
上に重ねる | \overset |
\overset{<上側>}{<基準>} |
下に重ねる | \underset |
\underset{<下側>}{<基準>} |
上下に重ねる | \overunderset |
\overunderset{<上側>}{<下側>}{<基準>} |
関係演算子として上に重ねる | \stackrel |
\stackrel{<上側>}{<基準>} |
\overset
, \underset
, \overunderset
はともに<基準>
となる数学記号のシンボルクラスに依存する.特に,*
や^
などのアクセントをつける場合の使用が想定されているのだろう.[^accents]
[^accents]: いくつかのアクセントは$\rm\LaTeX$ で定義されている.「数式アクセント-講座 - PukiWiki」に詳しい.
逆に,\stackrel
では全体を関係演算子とすることが出来る.
A
に=
を上下に重ねてみると以下のようになる.
\XXXset
では通常の記号として扱われているが,\stackrel
では関係演算子として扱われているために前後に間隔が空けられているのが分かる.
このことから,以下のように数学記号を上下に組み合わせた場合,同等の結果が得られる.
\overset{*}{=} % シンボルクラスが"=" に依存する
\stackrel{*}{=} % 基準となる数学記号に依らずに関係演算子のシンボルクラスとなる
同等の結果が得られるが,新たな"等号" の意味で定義するのであれば,\stackrel
で定義する方が意味があるだろう.
実用的な例とすれば,以下のようなものだろうか.
\stackrel{\scriptscriptstyle \mathsf{def}}{=}
amsmath とmathrsfs パッケージを導入しておけば以下のすべてを利用できる. 数学の流派によってさまざまなフォントが使用されるので,どのフォントがどの数学に使用するのかについては言及しない.(把握もしていない)
コマンド | 備考 | |
---|---|---|
デフォルトの数学フォント | \mathnormal |
省略可能 |
ローマン | \mathrm |
本文中のフォント |
イタリック | \mathit |
\mathnormal よりも少し字がつまるようだ |
ボールド | \mathbf |
- |
サンセリフ | \mathsf |
- |
カリグラフィー | \mathcal |
大文字のみ |
等幅フォント | \mathtt |
- |
黒板太字 | \mathbb |
大文字のみ,amsfonts またはamssymb が必要 |
フラクトゥール | \mathfrak |
アルファベットのみ,amsfonts またはamssymb が必要 |
スクリプト | \mathscr |
大文字のみ,mathrsfs が必要 |
euscript パッケージを導入しても\mathscr
を用いることが出来るが,異なるフォントが出力される.
- ブランクとなっている部分は本来の文字が出力されないか,おかしな文字が出力される
- 小文字のアルファベットに対応していない書体が一部ある
- 小文字のギリシャ文字はいずれの書体も対応していない
ギリシャ文字に関してはいずれのコマンドも使用することが出来ない.(ただし,\mathbf
はギリシャ文字の大文字は太字にすることが出来る.)
以下のコマンドを用いると,ギリシャ文字であっても太字にすることが出来る.
ベクトルにはbm パッケージを使う方が容易で確実だろう
ベクトル表記ではボールド体にすることが多い.いくつかの方法があるのでまとめておきたい.
提供 | コマンド | |
---|---|---|
LaTeX | \mathbf |
ボールド |
amsmath パッケージ | \boldsymbol |
bm パッケージと等価 |
LaTeX | \pmb |
poor man's bold |
bm パッケージ[^bm] | \bm |
\boldsymbol とほぼ等価 |
physics パッケージ[^physics] | \vb |
\mathbf と等価 |
physics パッケージ | \vb* |
\boldsymbol と等価 |
[^bm]: bm | CTAN から. [^physics]: physics | CTAN から.
\pmb
は2回(3回?)重ねることで太字を作り出すもので,あまり推奨されない^pmbようだ.実際に出力してみると,文字がダブっているためあまり綺麗ではない.
bm パッケージは\boldsymbol
を踏襲しているようだが,より拡張的に構成されている.
おもしろいところはいくつかあるが,例としては\boldsymbol
ではボールドにすることの出来ない記号をボールドに変換することが出来る点だろう.
physics パッケージにもボールドにするコマンドがある.ボールドの他にもさまざまな機能があるので,パッケージをあまり使用したくない場合にはこちらのベクトル表記を用いても良いだろう.(bm パッケージより少し劣るか?)
他にも以下のような方法で太字にする方法が紹介されているところがあるが,bm パッケージを使用すれば特に必要ないだろう.
\newcommand{\vector}[1]{\mbox{\boldmath $ #1 $}} % \vector として定義した
上のフォントを並べた図は以下のコードから見ることが出来る.
LaTeX Math Fonts Demo Code (折りたたみ)
typeset : upLaTeX + dvipdfmx
\documentclass[uplatex,dvipdfmx,12pt,a4paper]{jsreport}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{upgreek}
\usepackage{mathrsfs}
\usepackage{mathtools}
\usepackage{bm}
\usepackage{physics}
\begin{document}
\newcommand{\mathsymbol}[5]{
&\text{Fonts}& #1 & \text{alph} & #1 & \text{Alph} & #1 & \text{greek} & #1 & \text{Greek} \\
&\text{normal}& & \mathnormal{#2} & & \mathnormal{#3} & & \mathnormal{#4} & & \mathnormal{#5} \\
&\text{mathrm}& & \mathrm{#2} & & \mathrm{#3} & & \mathrm{#4} & & \mathrm{#5} \\
&\text{mathit}& & \mathit{#2} & & \mathit{#3} & & \mathit{#4} & & \mathit{#5} \\
&\text{mathbf}& & \mathbf{#2} & & \mathbf{#3} & & \mathbf{#4} & & \mathbf{#5} \\
&\text{mathsf}& & \mathsf{#2} & & \mathsf{#3} & & \mathsf{#4} & & \mathsf{#5} \\
&\text{mathcal}& & \mathcal{#2} & & \mathcal{#3} & & \mathcal{#4} & & \mathcal{#5} \\
&\text{mathtt}& & \mathtt{#2} & & \mathtt{#3} & & \mathtt{#4} & & \mathtt{#5} \\
&\text{mathbb}& & \mathbb{#2} & & \mathbb{#3} & & \mathbb{#4} & & \mathbb{#5} \\
&\text{mathfrak}& & \mathfrak{#2} & & \mathfrak{#3} & & \mathfrak{#4} & & \mathfrac{#5} \\
&\text{mathscr}& & \mathscr{#2} & & \mathscr{#3} & & \mathscr{#4} & & \mathscr{#5}
}
\newcommand{\mathboldsymbol}[5]{
&\text{Fonts}& #1 & \text{alph} & #1 & \text{Alph} & #1 & \text{greek} & #1 & \text{Greek} \\
&\text{mathbf} & & \mathbf{#2} & & \mathbf{#3} & & \mathbf{#4} & & \mathbf{#5} \\
&\text{vb}& & \vb{#2} & & \vb{#3} & & \vb{#4} & & \vb{#5} \\
&\text{BoldSymbol}& & \boldsymbol{#2} & & \boldsymbol{#3} & & \boldsymbol{#4} & & \boldsymbol{#5} \\
&\text{bm}& & \bm{#2} & & \bm{#3} & & \bm{#4} & & \bm{#5} \\
&\text{vb*}& & \vb*{#2} & & \vb*{#3} & & \vb*{#4} & & \vb*{#5} \\
&\text{pmb}& & \pmb{#2} & & \pmb{#3} & & \pmb{#4} & & \pmb{#5} \\
}
% Math Fonts
\begin{alignat*}{8}
\mathsymbol{\qquad}{afg}{AGZ}{\alpha\lambda\omega}{\Gamma\Delta\Theta}
\end{alignat*}
% Math Fonts for Bold
\begin{alignat*}{8}
\mathboldsymbol{\qquad}{afg}{AGZ}{\alpha\lambda\omega}{\Gamma\Delta\Theta}
\end{alignat*}
\end{document}
今回は出していないが,upgreek に関しても他のギリシャ文字と同様の結果を得た.ぜひ試してみてほしい.
- Short Math Guide for LaTeX [pdf][^shortmathguide]
- 「Short Math Guide for LaTeX」を読んで [pdf]
- チョット数式フォントしてみる話(3) - マクロツイーター
- LaTeX/Mathematics - Wikibooks, open books for an open world
- LaTeX 数式の縦/横の調整(Kodama's tips page)
[^shortmathguide]: $ texdoc short-math-guide
と叩いてもガイドが出すことができる