Snow Flower Text の軽量マークアップでは、数式は LatexMath と AsciiMath の2つのどちらかのテキスト形式で簡単に表現できます。 数式レイアウトは学術論文の組版で標準的に使用されているドナルドクヌースの TeX に基づいて出版品質を実現しています。
Snow Flower Text の数式表現は次のような特徴を持っています。
- HiDPI サポート
数式表現はベクトル形式で扱われます。どんな表示サイズに拡大しても縮小しても鮮明にレンダリングされます。この特徴はプレビューだけでなく、エクスポートしたPDFや、HTML、EPUB にも引き継がれます。
- AsciiDoc と MarkDown の軽量マークアップを自由に選択
Snow Flower Text は軽量マークアップ の違いを出来るかぎり少なくするようにデザインしており、 AsciiDoc と MarkDown で共通の数式プロセッサを使用します。数式プロセッサの LatexMath 対応状況の差異を気にせず軽量マークアップ形式を選ぶことが出来ます。
- LatexMath と AsciiMath 形式を自由に選択
LatexMath と AsciiMath で共通のレイアウトエンジンを使用しています。 これによって、レイアウト品質の差異を気にせず形式を選ぶことが出来ます。
1. 使用方法
1.1. LatexMath の使用方法
LatexMath の数式の表示方法は大きくインラインとディスプレイの二つにモードに分類されます。インラインモードはインライン要素として数式を埋め込み文章中の一部として扱われます。ディスプレイモードはブロック要素として数式の前後で改行して中央配置になります。
1.1.1. インライン要素として記述する
- AsciiDoc での記述方法
latexmath インラインマクロ(
latexmath:[…]
)を使用します。This is an inline equation: latexmath:[e=mc^2].
- Markdown での記述方法
\\( … \\)
で囲みます。This is an inline equation: \\( e=mc^2 \\)
上記のコードは次のようにレンダリングされます。
This is an inline equation: \(e=mc^2\).
1.1.2. ブロック要素として記述する
- AsciiDoc での記述方法
latexmath ブロックマクロを使用します。
[latexmath]
++++
x = \frac{-b \pm \sqrt{ b^2-4ac }}{2a}
++++- Markdown での記述方法
$$ … $$
で囲みます。$$ x = \frac{-b \pm \sqrt{ b^2-4ac }}{2a} $$
上記のコードは次のようにレンダリングされます。
1.2. AsciiMath の使用方法
ほとんどの AsciiMathシンボルは、見た目をテキストで模倣した記述になります。LatexMath と比較して表現できる範囲は減りますが簡潔に記述できます。
1.2.1. インライン要素として記述する
- AsciiDoc での記述方法
asciimath インラインマクロ(
asciimath:[…]
)を使用します。asciimath:[x=(-b +- sqrt(b^2 – 4ac))/(2a)]
- Markdown での記述方法
\\$ … \\$
で囲みます。\\$ x=(-b +- sqrt(b^2 – 4ac))/(2a) \\$
上記のコードは次のようにレンダリングされます。
\$x=(-b +- sqrt(b^2 – 4ac))/(2a)\$
1.2.2. ブロック要素として記述する
- AsciiDoc での記述方法
asciimath ブロックを使用します。
[asciimath]
++++
x=(-b +- sqrt(b^2 – 4ac))/(2a)
++++
上記のコードは次のようにレンダリングされます。
\$x=(-b +- sqrt(b^2 – 4ac))/(2a)\$
2. LatexMath 資料
2.1. シンボル一覧
コード | 表示 |
---|---|
| \(+\) |
| \(-\) |
| \(\pm\) |
| \(\times \) |
| \(\div \) |
| \(\setminus \) |
| \(\ast \) |
| \(\star \) |
| \(\cap \) |
| \(\bigcap \) |
| \(\cup \) |
| \(\bigcup \) |
| \(\sum \) |
| \(\prod \) |
| \(\coprod \) |
| \(\int \) |
| \(\iint \) |
| \(\iiint \) |
| \(\oint \) |
| \(\intop \) |
| \(\smallint \) |
| \(\wedge \) |
| \(\bigwedge \) |
| \(\vee \) |
| \(\bigvee \) |
| \(\sqcup \) |
| \(\bigsqcup \) |
| \(\otimes\) |
| \(\bigotimes\) |
| \(\oplus \) |
| \(\bigoplus \) |
| \(\odot \) |
| \(\bigodot \) |
| \(\uplus \) |
| \(\biguplus \) |
コード | 表示 |
---|---|
vfrac{2}{3} | \(\frac{2}{3}\) |
2^3 | \(2^3\) |
\sqrt x | \(\sqrt x\) |
\sqrt[3] x | \(\sqrt[3] x\) |
コード | 表示 |
---|---|
| \(= \) |
| \(\ne \) |
| \(< \) |
| \(> \) |
| \(\le \) |
| \(\ge \) |
| \(\prec \) |
| \(\preceq \) |
| \(\succ \) |
| \(\succeq \) |
| \(\ll \) |
| \(\gg \) |
| \(\leqslant \) |
| \(\geqslant \) |
| \(\leqq \) |
| \(\geqq \) |
| \(\in \) |
| \(\notin \) |
| \(\subset \) |
| \(\supset \) |
| \(\subseteq \) |
| \(\supseteq \) |
| \(\equiv \) |
| \(\cong \) |
| \(\approx \) |
| \(\propto \) |
コード | 表示 |
---|---|
| \(\neg \) |
| \(\implies \) |
| \(\iff \) |
| \(\forall \) |
| \(\exists \) |
| \(\bot \) |
| \(\top \) |
| \(\vdash \) |
| \(\models \) |
コード | 表示 |
---|---|
| \(( \) |
| \() \) |
| \([ \) |
| \(] \) |
| \(\{ \) |
| \(\} \) |
| \(\langle \) |
| \(\rangle \) |
| \(|x| \) |
コード | 表示 |
---|---|
| \(\Downarrow \) |
| \(\Downarrow \) |
| \(\downarrow \) |
| \(\gets \) |
| \(\hookleftarrow \) |
| \(\hookrightarrow \) |
| \(\leadsto \) |
| \(\Leftarrow \) |
| \(\leftarrow \) |
| \(\leftharpoondown\) |
| \(\leftharpoonup \) |
| \(\Leftrightarrow \) |
| \(\leftrightarrow \) |
| \(\Longleftarrow \) |
| \(\longleftarrow \) |
| \(\Longleftrightarrow \) |
| \(\longleftrightarrow \) |
| \(\longmapsto \) |
| \(\Longrightarrow \) |
| \(\longrightarrow \) |
| \(\mapsto \) |
| \(\nearrow \) |
| \(\nwarrow \) |
| \(\Rightarrow \) |
| \(\rightarrow \) |
| \(\rightharpoondown \) |
| \(\rightharpoonup \) |
| \(\rightleftharpoons\) |
| \(\searrow \) |
| \(\swarrow \) |
| \(\to \) |
| \(\Uparrow \) |
| \(\uparrow \) |
| \(\Updownarrow \) |
| \(\updownarrow \) |
コード | 表示 |
---|---|
| \(a’\) |
| \(a”\) |
| \(a^{\prime}\) |
| \(\acute{a}\) |
| \(\bar{y}\) |
| \(\breve{a}\) |
| \(\check{a}\) |
| \(\dot{a}\) |
| \(\ddot{a}\) |
| \(\grave{a}\) |
| \(\hat{\theta}\) |
| \(\widehat{ac}\) |
| \(\tilde{a}\) |
| \(\widetilde{ac}\) |
| \(\vec{F}\) |
| \(\overline{AB}\) |
| \(\underline{AB}\) |
| \(\overleftarrow{AB}\) |
| \(\underleftarrow{AB}\) |
| \(\overleftrightarrow{AB}\) |
| \(\underleftrightarrow{AB}\) |
| \(\overrightarrow{AB}\) |
| \(\underrightarrow{AB}\) |
| \(\overbrace{AB}\) |
| \(\underbrace{AB}\) |
コード | 表示 |
---|---|
| \(\alpha\) |
| \(\beta\) |
| \(\gamma\) |
| \(\Gamma\) |
| \(\delta\) |
| \(\Delta\) |
| \(\epsilon\) |
| \(\varepsilon\) |
| \(\zeta\) |
| \(\eta\) |
| \(\theta\) |
| \(\vartheta\) |
| \(\Theta\) |
| \(\iota\) |
| \(\kappa\) |
| \(\lambda\) |
| \(\Lambda\) |
| \(\mu\) |
| \(\nu\) |
| \(\xi\) |
| \(\Xi\) |
| \(\omicron\) |
| \(\pi\) |
| \(\Pi\) |
| \(\rho\) |
| \(\sigma\) |
| \(\Sigma\) |
| \(\tau\) |
| \(\upsilon\) |
| \(\phi\) |
| \(\Phi\) |
| \(\varphi\) |
| \(\chi\) |
| \(\psi\) |
| \(\omega\) |
| \(\Omega\) |
2.2. フォント
2.2.1. フォントファミリー
LatexMath は デフォルトでイタリック体が使われるため、元素記号や単 位などを書く場合などでは \mathrm コマンドでフォントを変更する方が良いでしょう。
[latexmath]
++++
\mathrm{H_2+\frac{1}{2}O_2 = H_2O(l)+268kJ}
++++
コード | サンプル | 説明 |
---|---|---|
| \(\mathrm{ABCDEF\ abcdef\ 123456}\) | Serif |
| \(\mathbf{ABCDEF\ abcdef\ 123456}\) | Bold font |
| \(\mathit{ABCDEF\ abcdef\ 123456}\) | Italic font |
| \(\mathsf{ABCDEF\ abcdef\ 123456}\) | Sans-serif |
| \(\mathtt{ABCDEF\ abcdef\ 123456}\) | Monospace |
| \(\textrm{ABCDEF abcdef 123456}\) | |
| \(\textbf{ABCDEF abcdef 123456}\) | |
| \(\textit{ABCDEF abcdef 123456}\) | |
| \(\textsf{ABCDEF abcdef 123456}\) | |
| \(\texttt{ABCDEF abcdef 123456}\) | |
| \(\rm{ABCDEF}\) | |
| \(\bf{ABCDEF}\) | |
| \(\it{ABCDEF}\) | |
| \(\sf{ABCDEF}\) | |
| \(\tt{ABCDEF\ abcdef\ 123456}\) | |
| \(\Bbb{ABCDEF}\) | |
| \(\mathcal{ABCDEF}\) | Calligraphy |
| \(\frak{ABCDEF\ abcdef\ 123456}\) | Fraktur |
| \(\boldsymbol{ABCDEF}\) | |
| \(\mathbb{ABCDEF}\) | Blackboard bold |
| \(\mathscr{ABCDEF}\) | Script |
| \(\mathfrak{ABCDEF\ abcdef\ 123456}\) | Fraktur |
2.2.2. フォントサイズ
[latexmath]
++++
\Huge Lorem Ipsum
++++
これは次のように描画されます。
コード | 表示 |
---|---|
| \(\Huge{Lorem\ Ipsum}\) |
| \(\huge{Lorem\ Ipsum}\) |
| \(\LARGE{Lorem\ Ipsum}\) |
| \(\Large{Lorem\ Ipsum}\) |
| \(\Large{Lorem\ Ipsum}\) |
| \(\normalsize{Lorem\ Ipsum}\) |
| \(\small{Lorem\ Ipsum}\) |
| \(\scriptsize{Lorem\ Ipsum}\) |
| \(\tiny{Lorem\ Ipsum}\) |
2.3. レイアウト
2.3.1. 括弧の高さの調整
括弧内の数式にあわせて自動的に括弧の大きさを拡大して調節したい場合に、\left と \right コマンドで高さを自動調整することができます。
例えばカッコ内の式が分数の場合に括弧の高さが足りなくなります。
\begin{align}
[\frac{3}{5} ] \\
(\frac{3}{5} ) \\
\{\frac{x+1}{y^2}\}
\end{align}
次のように \left と \right コマンドを使用することで高さが調整されます。
\begin{align}
\left[ \frac{3}{5} \right] \\
\left( \frac{3}{5} \right) \\
\left\{\frac{x+1}{y^2}\right\}
\end{align}
2.3.2. 修飾記号の高さの調整
\mathstrut
コマンドは修飾記号の高さを揃えます。
次の例では、文字の高さに依存してルート記号の高さがまちまちになります。
\sqrt{a} + \sqrt{b} + \sqrt{c} + \sqrt{d}
\mathstrut
コマンドを使うことで次のように高さが揃います。
\sqrt{\mathstrut a} + \sqrt{\mathstrut b} + \sqrt{\mathstrut c} + \sqrt{\mathstrut d}
2.3.3. テキストの開始位置の調整
f(n) = \left\{
\begin{array}{l l}
n/2 \quad \text{if $n$ is even}\\
-(n+1)/2 \quad \text{if $n$ is odd}\\
\end{array}
\right.
f(n) = \left\{
\begin{array}{l l}
n/2 & \quad \text{if $n$ is even}\\
-(n+1)/2 & \quad \text{if $n$ is odd}\\
\end{array}
\right.
テキストの開始位置が揃いました。
2.3.4. インラインで ブロックモードに変更する
\sum_{k=1}^{n}k^2
\(\sum_{k=1}^{n}k^2\)
\displaystyle \sum_{k=1}^{n}k^2
\(\displaystyle \sum_{k=1}^{n}k^2\)
2.3.5. 式番号
\frac{3}{5} \tag{5}
3. LatexMath サンプル
\begin{align}
\dot{x} & = \sigma(y-x) \\
\dot{y} & = \rho x - y - xz \\
\dot{z} & = -\beta z + xy
\end{align}
\left( \sum_{k=1}^n a_k b_k \right)^{\!\!2} \leq
\left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)
\mathbf{V}_1 \times \mathbf{V}_2 =
\begin{vmatrix}
\mathbf{i} & \mathbf{j} & \mathbf{k} \\
\frac{\partial X}{\partial u} & \frac{\partial Y}{\partial u} & 0 \\
\frac{\partial X}{\partial v} & \frac{\partial Y}{\partial v} & 0 \\
\end{vmatrix}
1 + \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots =
\prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})},
\quad\quad \text{for $|q|<1$}.
\frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} =
1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}}
{1+\frac{e^{-8\pi}} {1+\ldots} } } }
4. AsciiMath サンプル
x=(-b +- sqrt(b^2 – 4ac))/(2a)