MathJax, KaTeX 総覧

2021/12/04 山田 泰司
[MathJax] [MathJax v2] [KaTeX] / [MathJax 実験場] [MathJax v2 実験場] [KaTeX 実験場]

本稿は MathJax, KaTeX における数式および数式中のテキストの表現能力を確かめることを目的とし、何か完成を目的としたものではない。

また、拙作「TeX コマンド・チートシート」にて紙幅の関係で記せなかった注意事項を漏れなく書き留めておく目的もあり、それは達成されている。もっとも、より進んだ挑戦的な使い方に踏み込んだ文書が「Pages などにおける TeX コマンドのコツ」にてメモとして記してあるが、一部は現状あまり実用的ではないので注意すること。

[2021/11/30] 先ほど MathJax の拡張 mathtools, textmacros を有効にしておく決断に至った。

[2021/12/17] 先ほど KaTeX の拡張 mhchem を常に導入しておく決断に至った。

Contents

CMS(Content Management System) 併用時の注意事項

一つめ、CMS では $E = mc^2$ や $$e^{i\theta} = \cos\theta + i\sin\theta$$ のような「$」「$$」ドル記号を数式の開始・終了位置に使うのは、意図しない事態を招きかねないので避けるべきであるし、一端の LaTeX 使いもこのような数式範囲を検索しにくい記号は避けているはずである。よって、これらを設定にて無効化し、かつ、有効化しないようにすべきである。MathJax, MathJax v2, KaTeX では「$$」が既定で有効なようである。

KaTeX と CMS 併用時の注意事項

二つめ、CMS では記事の投稿者がブラウザのコンソールに慣れているとは限らない。よって、数式に誤りがあったり、意図せず数式として識別されてしまったときに、エラーをコンソールではなくウインドウに表されていなければならない。KaTeX では既定値ではそうはならないので、throwOnError オプションfalse に指定しておくことは必須となるだろう。

三つめ、CMS には WordPress のように、記事を編集した後に自動的に br タグや p タグを挿入するものも存在する。数式を LaTeX のノリで HTML に記述する場合、CMS そのものはそういった事態を想定していないので問題が生じやすい。以下の例を用いて試験環境の整備と解説を行う。

すべての素数の積がゼロになるとき

すべての素数から1減じた値の総積は、\(p\) をすべての素数として以下のように表される。

\[
\prod_p(p - 1) = 0.
\]

この \(
\prod_p(p - 1)
\) はリーマン球面 \(\RiemannSphere\) 上の解析接続とリーマンゼータ関数 \(\zeta(s)\) の特殊値
\[\zeta(1) = \infty\] から得られる。

この数式を含む段落は以下のように記述されている。

すべての素数の積がゼロになるとき
<p>すべての素数から1減じた値の総積は、\(p\) をすべての素数として以下のように表される。</p>
\[<br/>
\prod_p(p - 1) = 0<br>
\]
<p>この
\(<br>
\prod_p(p - 1)<br/>
\)
はリーマン球面 \(\RiemannSphere\) 上の解析接続と<a href="https://en.wikipedia.org/wiki/Riemann_zeta_function"
>リーマンゼータ関数</a> \(\zeta(s)\) の特殊値 <br/>\[\zeta(1) = \infty\] から得られる。</p>

見ての通り、数式のつもりの文字列の中に意図せず HTML のタグが混入してしまっている、という状況をここで用意している。

TeX と HTML の書式を混ぜたときの規則などは未定義であるし、そのようなものは物事を複雑にするだけである。よって、MathJax では HTML タグは無視して処理を行うようである(すべてのタグが無視されるわけではないようだ)。

しかし、KaTeX ではまったく異なる結果となり、結論を言えば数式が無視される。

詳しくカラクリを述べれば、HTML タグの DOM ツリーによって数式開始と数式終了の記号が別々のノードに分断され、KaTeX には数式を意図した文字列として認識されなくなるのである。

よって、以上のような、書き手には数式を意図した文字列は、なんら KaTeX のエラーも生じず、無視されるのである。

対処方法

CMS に意図しない br や p タグを挿入しないように修正を施すのも一考だが、そもそも MathJax では数式内の HTML タグは無視するので、KaTeX でも同様な仕様にしてしまってもよいだろう。以下のような KaTeX の renderMathInElement のラッパー関数を用意して、それを代わりに呼び出せばよい。

function preprocessMathInElementForCMS(e)
{
  /*
    Note that "[\s\S]" is used instead of "." because 's' flag of the
    regular expression is not supported by SeaMonkey.
  */
  const ra = [
    [ /<(br|\/?p)\b[^>]*?>/img, '' ],
    [ /[“”]/g, '"' ],
  ];
  e.innerHTML = e.innerHTML.replace(/\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\]/img, m=>{
    ra.forEach(a=>{
      m = m.replace(a[0], a[1]);
    });
    return m;
  });
}
function renderMathInElementForCMS(e, options)
{ // requires processMathInElementForCMS.js
  preprocessMathInElementForCMS(e);
  renderMathInElement(e, { ...options, throwOnError: false, });
}

MathJax でもこのような方策が必要となる場面があるようである。

[2021/12/21 追記] ダブルククオートを開きと閉じダブルクオートに変換するようなこともするので、数式内ではそれを元に戻すようなことも追加した。本来なら CMS でそういったことを抑止する仕組みを導入すべきであろう。

ギリシャ小文字 delta の確認

Unicode: 𝛅𝐓 𝛿𝑇 𝜹𝑻 𝝳𝗧 𝞭𝙏 ẟ𝖳 (𝛅𝐓 𝛿𝑇 𝜹𝑻 𝝳𝗧 𝞭𝙏 ẟ𝖳)

MathJax or KaTeX: \(\displaystyle\mathit{\delta T}\ \mathrm{\delta T}\ \mathbf{\delta T}\ \mathsf{\delta T}\ \mathtt{\delta T}\ \mathcal{\delta T}\ \mathfrak{\delta T}\ \mathbb{\delta T}\)
\(\mathit{\delta T}\ \mathrm{\delta T}\ \mathbf{\delta T}\ \mathsf{\delta T}\ \mathtt{\delta T}\ \mathcal{\delta T}\ \mathfrak{\delta T}\ \mathbb{\delta T}\)

ちなみに、KaTeX ではサロゲートペアの Unicode 直接入力には問題があり、\char コマンドで回避することもできない。

\boldsymbol の確認

KaTeX の \bm コマンドは \boldsymbol であるようで、さらに MathJax では \bm コマンドは未サポートを謳っているので、\boldsymbol のみを考慮することにする。以下に適当な例をあげておくので太字になるグリフの例として参考にされたい。

ASCII
\( { ! " \# \$ \% \& ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \\ ] \_ ` a b c d e f g h i j k l m n o p q r s t u v w x y z \{ | \} } \)
ASCII と \boldsymbol
\( \boldsymbol{ ! " \# \$ \% \& ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \\ ] \_ ` a b c d e f g h i j k l m n o p q r s t u v w x y z \{ | \} } \)
コマンド
\( { \dots \cdots \ddots \vdots \| \hbar \hslash \nabla \partial \infty \emptyset \varnothing \top \bot \diagdown \diagup \imath \jmath \Re \Im \wp \Finv \Game \aleph \beth \gimel \daleth \rightangle \angle \measuredangle \sphericalangle \leftarrow \rightarrow \leftrightarrow \downarrow \uparrow \updownarrow \Gamma \Delta \Theta \Lambda \Xi \Pi \Sigma \Upsilon \Phi \Psi \Omega \alpha \beta \gamma \delta \epsilon \varepsilon \zeta \eta \theta \vartheta \iota \kappa \varkappa \lambda \mu \nu \xi \pi \varpi \rho \varrho \sigma \varsigma \tau \upsilon \phi \varphi \chi \psi \omega \digamma \mho \eth \ell \S \P \maltese \And \yen \checkmark \Box \qed } \)
コマンドと \boldsymbol
\( \boldsymbol{ \dots \cdots \ddots \vdots \| \hbar \hslash \nabla \partial \infty \emptyset \varnothing \top \bot \diagdown \diagup \imath \jmath \Re \Im \wp \Finv \Game \aleph \beth \gimel \daleth \rightangle \angle \measuredangle \sphericalangle \leftarrow \rightarrow \leftrightarrow \downarrow \uparrow \updownarrow \Gamma \Delta \Theta \Lambda \Xi \Pi \Sigma \Upsilon \Phi \Psi \Omega \alpha \beta \gamma \delta \epsilon \varepsilon \zeta \eta \theta \vartheta \iota \kappa \varkappa \lambda \mu \nu \xi \pi \varpi \rho \varrho \sigma \varsigma \tau \upsilon \phi \varphi \chi \psi \omega \digamma \mho \eth \ell \S \P \maltese \And \yen \checkmark \Box \qed } \)
Unicode
\( { … ⋯ ⋱ ⋮ ∥ ħ ħ ∇ ∂ ∞ ∅ Ø ⊤ ⊥ ⟍ ⟋ ı 𝚥 R I ℘ Ⅎ ⅁ א ב ג ד ∟ ∠ ∡ ∢ ← → ↔ ↓ ↑ ↕ Γ Δ Θ Λ Ξ Π Σ Υ Φ Ψ Ω α β γ δ ε ε ζ η θ θ ι κ κ λ μ ν ξ π π ρ ρ σ ς τ υ φ φ χ ψ ω ϝ ℧ ð l § ¶ ✠ / ¥ ✓ □ ∎ } \)
Unicode と \boldsymbol
\( \boldsymbol{ … ⋯ ⋱ ⋮ ∥ ħ ħ ∇ ∂ ∞ ∅ Ø ⊤ ⊥ ⟍ ⟋ ı 𝚥 R I ℘ Ⅎ ⅁ א ב ג ד ∟ ∠ ∡ ∢ ← → ↔ ↓ ↑ ↕ Γ Δ Θ Λ Ξ Π Σ Υ Φ Ψ Ω α β γ δ ε ε ζ η θ θ ι κ κ λ μ ν ξ π π ρ ρ σ ς τ υ φ φ χ ψ ω ϝ ℧ ð l § ¶ ✠ / ¥ ✓ □ ∎ } \)

TeX の \text 書体

Pages 他だと受理はするが何の効果もない \text 内及び \text* コマンドを MathJax と KaTeX で記しておく。 \[ \begin{array}{ll} \text{\rm TeX の text 内の書体コマンド、及び、$E=mc^2$ テキスト内数式} &\qquad{\scriptsize\verb|\rm|} \\ \text{\it TeX の text 内の書体コマンド、及び、$E=mc^2$ テキスト内数式} &\qquad{\scriptsize\verb|\it|} \\ \text{\bf TeX の text 内の書体コマンド、及び、$E=mc^2$ テキスト内数式} &\qquad{\scriptsize\verb|\bf|} \\ \text{\sf TeX の text 内の書体コマンド、及び、$E=mc^2$ テキスト内数式} &\qquad{\scriptsize\verb|\sf|} \\ \text{\tt TeX の text 内の書体コマンド、及び、$E=mc^2$ テキスト内数式} &\qquad{\scriptsize\verb|\tt|} \\ \end{array} \] \[ \begin{array}{ll} \textup{TeX の text 書体コマンド、及び、$E=mc^2$ テキスト内数式} &\qquad{\scriptsize\verb|\textup|} \\ \textrm{TeX の text 書体コマンド、及び、$E=mc^2$ テキスト内数式} &\qquad{\scriptsize\verb|\textrm|} \\ \textit{TeX の text 書体コマンド、及び、$E=mc^2$ テキスト内数式} &\qquad{\scriptsize\verb|\textit|} \\ \textsl{TeX の text 書体コマンド、及び、$E=mc^2$ テキスト内数式} &\qquad\color{steelblue}{\scriptsize\verb|\textsl|} \\ \textbf{TeX の text 書体コマンド、及び、$E=mc^2$ テキスト内数式} &\qquad{\scriptsize\verb|\textbf|} \\ \textmd{TeX の text 書体コマンド、及び、$E=mc^2$ テキスト内数式} &\qquad\color{royalblue}{\scriptsize\verb|\textmd|} \\ \textsf{TeX の text 書体コマンド、及び、$E=mc^2$ テキスト内数式} &\qquad{\scriptsize\verb|\textsf|} \\ \textsc{TeX の text 書体コマンド、及び、$E=mc^2$ テキスト内数式} &\qquad\color{steelblue}{\scriptsize\verb|\textsc|} \\ \texttt{TeX の text 書体コマンド、及び、$E=mc^2$ テキスト内数式} &\qquad{\scriptsize\verb|\texttt|} \\ \end{array} \]

実のところ \textsl, \textsc, \textmd (MathJax) は未サポートなのだが以下の定義で(欠点はあるものの)使えるようになる。但し、ブラウザと閲覧環境の依存性が高い。

% for MathJax
\newcommand{\textsc}{\style{ font-variant-caps: small-caps; }{\text{#1}}}
\newcommand{\textsl}{\style{ font-style: italic; }{\text{#1}}}
\newcommand{\textup}{\style{ font-style: normal; }{\text{#1}}}
\newcommand{\textmd}{\style{ font-weight: normal; }{\text{#1}}}
% for KaTeX
\newcommand{\textsc}{\htmlStyle{ font-variant-caps: small-caps; }{\text{#1}}}
\newcommand{\textsl}{\htmlStyle{ font-style: oblique; }{\text{#1}}}
\newcommand{\textup}{\htmlStyle{ font-style: normal; }{\text{#1}}}
\newcommand{\textmd}{\htmlStyle{ font-weight: normal; }{\text{#1}}}

それ以外は MathJax, KaTeX ともに問題はない。

長さの単位の確認

MathJax と KaTeX の長さの単位は既定の設定ではまったく異なる。また、サポートされている単位も KaTeX の方が多い。ここでの例は KaTeX を標準として作成したので MathJax との違いがわかるだろう。

以下では、\(\text{–}\rule{1em}{1em}\text{—}\) \text{–}\rule{1em}{1em}\text{—} のように縦横の長さの単位指定による矩形フィルを EN ダーシと EM ダーシで挟んだ様子を、各長さ単位にて 10pt フォントサイズのもと一覧にしている。

mu
18 mu
(18 mu = 1 em)

\( \text{–}\rule{18mu}{18mu}\text{—} \)
em
1 em

\( \text{–}\rule{1em}{1em}\text{—} \)
ex
2.32 ex

\( \text{–}\rule{2.32ex}{2.32ex}\text{—} \)
in
10/72.27 (≒0.13837) in
(1 in = 2.54 cm)

\( \text{–}\rule{0.138370001in}{0.138370001in}\text{—} \)
cm
2.54*10/72.27 (≒0.35146) cm
(0.1 cm = 1 mm)

\( \text{–}\rule{0.351459804cm}{0.351459804cm}\text{—} \)
cc
1157*10/14856 (≒0.77881) cc
(1 cc = 14856/1157 pt)

\( \text{–}\rule{0.778809908cc}{0.778809908cc}\text{—} \)
nc
107*10/1370 (≒0.78102) nc
(1nc = 1370/107 pt)

\( \text{–}\rule{0.781021898nc}{0.781021898nc}\text{—} \)
pc
10/12 (≒0.83333) pc
(1 pc = 12 pt)

\( \text{–}\rule{0.833333333pc}{0.833333333pc}\text{—} \)
mm
2.54*100/72.27 (≒3.5146) mm
(1 mm = 0.1 cm)

\( \text{–}\rule{3.51459804mm}{3.51459804mm}\text{—} \)
dd
1157*10/1238 (≒9.3457) dd
(1 dd = 1238/1157 pt)

\( \text{–}\rule{9.34571890dd}{9.34571890dd}\text{—} \)
nd
642*10/685 (≒9.3723) nd
(1nd = 685/642 pt)

\( \text{–}\rule{9.37226277nd}{9.37226277nd}\text{—} \)
bp
72*10/72.27 (≒9.9626) bp
(72 bp = 1 in)

\( \text{–}\rule{9.96264010bp}{9.96264010bp}\text{—} \)
pt
10 pt
(72.27 pt = 1 in)

\( \text{–}\rule{10pt}{10pt}\text{—} \)
sp
65536*10 (=655360) sp
(65536 sp = 1 pt)

\( \text{–}\rule{655360sp}{655360sp}\text{—} \)

KaTeX だと相対サイズ mu, em, ex 以外の単位も CSS の font-size によってスケーリングされるとのこと(それだと絶対サイズの意味がないと思うが)。

関数定義のコツ

TeX で単に \mathrm{atan} とする (\(a\mathrm{atan}x\)) と左右にアキがないので、\operatorname{atan} とするとよい。 \[ a\operatorname{atan}x \] しかし、名前に空白があるとき \mathrm{local min} とする (\(a\mathrm{local min}x\)) と空白が削られてしまうので、\operatorname{local\ min} とするとよい。 \[ a\operatorname{local\ min}x \] しかし、加えて太字にもしたいとなるとこれらは(例は示さないが)両立しないので、自前でアキを実現 \,\mathbf{local\ min}\, しなくてはならない。 \[ a\,\mathbf{local\ min}\,x \] よりエレガントには \mathop{\mathbf{local\ min}} とすると用途が明確で好ましい。 \[ a\mathop{\mathbf{local\ min}}x \]

数式クラスの実際

MathJax の数式クラスは、アキの効果は含まないようである。KaTeX と Pages 他などは \mathpunct からアキが広くなっていく。KaTeX では \mathop の積み重ねが未サポートなので注意。

演算子名の実際

\newcommand{\operatornamewithlimits}[1]{\operatorname{#1}\limits}	% for MathJax

一方で、MathJax では \operatornamewithlimits が未サポートであるので、上記のように \operatornamewithlimits を定義しておけば MathJax と KaTeX の両立した記述は可能である。

\mathinner の使用例)

\Bbb{C}\setminus \Bbb{A}=\left\{a\in\Bbb{C}\bigmid 0\ne \forall p(x)\in\Bbb{Q}[x],\ p(a)\ne 0\right\} \[ \newcommand{\bigmid}{\mathinner{\big|}} \newcommand{\Bigmid}{\mathinner{\Big|}} \newcommand{\bigggmid}{\mathinner{\bigg|}} \newcommand{\Bigggmid}{\mathinner{\Bigg|}} \Bbb{C}\setminus \Bbb{A}=\left\{a\in\Bbb{C}\bigmid 0\ne \forall p(x)\in\Bbb{Q}[x],\ p(a)\ne 0\right\} \] ここで \(\Bbb{A}\) は代数的数の集合、\(\Bbb{Q}\) は有理数係数多項式の集合。さておき、ここで使用している以下の定義が便利かと思われる。

\newcommand{\bigmid}{\mathinner{\big|}}
\newcommand{\Bigmid}{\mathinner{\Big|}}
\newcommand{\bigggmid}{\mathinner{\bigg|}}
\newcommand{\Bigggmid}{\mathinner{\Bigg|}}

もっとも、\left, \middle, \right コマンドの \middle が使えれば大きさ指定は以下のように不要である。

\Bbb{C}\setminus \Bbb{A}=\left\{a\in\Bbb{C}\;\middle\vert\;0\ne \forall p(x)\in\Bbb{Q}[x],\ p(a)\ne 0\right\} \[ \Bbb{C}\setminus \Bbb{A}=\left\{a\in\Bbb{C}\;\middle\vert\;0\ne \forall p(x)\in\Bbb{Q}[x],\ p(a)\ne 0\right\} \]

Pages 他では \middle は未サポートである。

KaTeX には定義されているが MathJax, Pages 他にない便利なコマンド

本稿では現状、以下の例に限定しておくが、便利なコマンドが MathJax, Pages 他にはない傾向にある。よって、以下のように定義してしまおう。

%\newcommand{\stackrel}[2]{\mathrel{\overset{#1}{#2}}}	% only for Pages
\newcommand{\coloneq}{\mathrel{:-}}
\newcommand{\Coloneq}{\mathrel{::-}}
\newcommand{\coloneqq}{\mathrel{:=}}
\newcommand{\Coloneqq}{\mathrel{::=}}
\newcommand{\colonsim}{\mathrel{:\sim}}
\newcommand{\Colonsim}{\mathrel{::\sim}}
\newcommand{\colonapprox}{\mathrel{:\approx}}
\newcommand{\Colonapprox}{\mathrel{::\approx}}
\newcommand{\eqcolon}{\mathrel{-:}}
\newcommand{\Eqcolon}{\mathrel{-::}}
\newcommand{\eqqcolon}{\mathrel{=:}}
\newcommand{\Eqqcolon}{\mathrel{=::}}
\newcommand{\simcolon}{\mathrel{\sim:}}
\newcommand{\Simcolon}{\mathrel{\sim::}}
\newcommand{\approxcolon}{\mathrel{\approx:}}
\newcommand{\Approxcolon}{\mathrel{\approx::}}
\[ %\newcommand{\stackrel}[2]{\mathrel{\overset{#1}{#2}}} \begin{array}{cl|cl} a\coloneq b &\verb|\coloneq| & a\Coloneq b &\verb|\Coloneq| \\ a\coloneqq b &\verb|\coloneqq| & a\Coloneqq b &\verb|\Coloneqq| \\ a\colonsim b &\verb|\colonsim| & a\Colonsim b &\verb|\Colonsim| \\ a\colonapprox b &\verb|\colonapprox| & a\Colonapprox b &\verb|\Colonapprox| \\ a\stackrel{\mathrm{def}}{=}b &\verb|\stackrel{\mathrm{def}}{=}| & a\stackrel{\mathrm{m}}{=}b &\verb|\stackrel{\mathrm{m}}{=}| \\ a\eqcolon b &\verb|\eqcolon| & a\Eqcolon b &\verb|\Eqcolon| \\ a\eqqcolon b &\verb|\eqqcolon| & a\Eqqcolon b &\verb|\Eqqcolon| \\ a\simcolon b &\verb|\simcolon| & a\Simcolon b &\verb|\Simcolon| \\ a\approxcolon b &\verb|\approxcolon| & a\Approxcolon b &\verb|\Approxcolon| \\ a\stackrel{\mathrm{!}}{=}b &\verb|\stackrel\{\mathrm{!}}{=}| & a\stackrel{\mathrm{?}}{=}b &\verb|\stackrel\{\mathrm{?}}{=}| \\ \end{array} \]

実はこの中の
「≔」colon equals 「\(\coloneqq\)」 \coloneqq,
「≝」equal to by definition 「\(\eqdef\)」 \eqdef,
「≞」measured by 「\(\measeq\)」 \measeq,
「⩴」double colon equal 「\(\Coloneqq\)」 \Coloneqq,
「∹」excess 「\(\eqcolon\)」 \eqcolon,
「≕」equals colon 「\(\eqqcolon\)」 \eqqcolon,
「≟」questioned equal to 「\(\questeq\)」 \questeq,
などは Unicode として定義されているのだが、どのフォントのデザインもあまり美しくないのである。ゆえに需要はあるのだろう。

\stackrel は流石に MathJax, KaTeX では定義されているのでコメントアウトしてある。Pages ではそれを使えばよいだろう。

[2021/11/30] これらの一部は mathtools パッケージ由来らしく、MathJax でも使用可能。

確認しておきたい数式コマンド

\substack の使用例)

トーシェント関数 \varphi(n)=\sum_{\substack{1\le m\le n\\(m,n)=1}}1 \[ \varphi(n)=\sum_{\substack{1\le m\le n\\(m,n)=1}}1 \]

\newcommand の \text 内での使用例)

MathJax, KaTeX ではフォントに対する配慮は必要だが Unicode が使えるので、以下のようなことも可能である。

\newcommand{\mathvisiblespace}{\mathord{␣}}
\newcommand{\textvisiblespace}{␣}
\[ (\mathvisiblespace)\quad\text{␣: \textvisiblespace} \qquad\verb|(\mathvisiblespace)\quad\text{␣: \textvisiblespace}| \]

MathJax では \text 内では \textvisiblespace のようなコマンド一般は展開されないので注意、むしろそのまま書けばよい。[2021/11/30] textmacros で有効になるので、極めて便利なので強くお勧めする。

\overbrace, \underbrace の使用例)

Pages 他では縦方向にアキ過ぎの \underbrace について。

\[ \begin{array}{ll} \overbrace{x\cdots y}^z_w &\verb|\overbrace{x\cdots y}^z_w| \\ \underbrace{x\cdots y}_z^w &\verb|\underbrace{x\cdots y}_z^w| \\ \end{array} \]

KaTeX では \overbrace では添字が誤る、\underbrace では上付きが印字されないので注意。もし \overbrace には下付き, \underbrace には上付きを添えたければ以下のようにした方が無難である。

\[ \begin{array}{ll} \displaystyle\mathop{\overbrace{x\cdots y}^z}_w &\verb|\mathop{\overbrace{x\cdots y}^z}_w| \\ \displaystyle\mathop{\underbrace{x\cdots y}_z}^w &\verb|\mathop{\underbrace{x\cdots y}_z}^w| \\ \end{array} \]

\hbox, \text の使用例)

Pages 他では挙動が同じ \hbox, \text について。

\hbox \[ \left(\vcenter{\hbox{$\tfrac{\frac x y}z$}}\right),\quad \left(\vcenter{\hbox{$\frac{\frac x y}z$}}\right),\quad \left(\vcenter{\hbox{$\dfrac{\frac x y}z$}}\right). \] \text \[ \left(\vcenter{\text{$\tfrac{\frac x y}z$}}\right),\quad \left(\vcenter{\text{$\frac{\frac x y}z$}}\right),\quad \left(\vcenter{\text{$\dfrac{\frac x y}z$}}\right). \]

MathJax において \text 内は \displaystyle が既定のようだ。

\text 内でのアクセントの使用例)

Pages 他ではそもそも未対応のアクセントについて。

\[ \begin{array}{llllllllllll} \text{\'{a}} &\'{a} &\verb|\'{a}| & \text{\~{a}} &\~{a} &\verb|\~{a}| & \text{\.{a}} &\.{a} &\verb|\.{a}| & \text{\H{a}} &\H{a} &\verb|\H{a}| \\ \text{\`{a}} &\`{a} &\verb|\`{a}| & \text{\={a}} &\={a} &\verb|\={a}| & \text{\"{a}} &\"{a} &\verb|\"{a}| & \text{\v{a}} &\v{a} &\verb|\v{a}| \\ \text{\^{a}} &\^{a} &\verb|\^{a}| & \text{\u{a}} &\u{a} &\verb|\u{a}| & \text{\r{a}} &\r{a} &\verb|\r{a}| & \end{array} \]

\text 内のアクセントは MathJax ではこれは未サポートである。一方で KaTeX では数式内でも有効となっている。

\small, \large その他の使用例)

Pages 他では未対応のフォントサイズ指定について。

MathJax では \footnotesize が効かず、KaTeX では \Tiny が効かないが、実は \sixptsize として定義されている。

\color, \colorbox の使用例)

{\color{Black}Black} 及び \colorbox{Black}{{\color{White}Black}} について。

\color, \colorbox TeX 色名表 \[ \begin{array}{ll} {\color{Black}\text{Black}} &\colorbox{Black}{{\color{White}Black}} \\ \colorbox{black}{\color{White}White} &\colorbox{White}{White} \\ {\color{GreenYellow}\text{GreenYellow}} &\colorbox{GreenYellow}{GreenYellow} \\ {\color{Yellow}\text{Yellow}} &\colorbox{Yellow}{Yellow} \\ {\color{Goldenrod}\text{Goldenrod}} &\colorbox{Goldenrod}{Goldenrod} \\ {\color{Dandelion}\text{Dandelion}} &\colorbox{Dandelion}{Dandelion} \\ {\color{Apricot}\text{Apricot}} &\colorbox{Apricot}{Apricot} \\ {\color{Peach}\text{Peach}} &\colorbox{Peach}{Peach} \\ {\color{Melon}\text{Melon}} &\colorbox{Melon}{Melon} \\ {\color{YellowOrange}\text{YellowOrange}} &\colorbox{YellowOrange}{YellowOrange} \\ {\color{Orange}\text{Orange}} &\colorbox{Orange}{Orange} \\ {\color{BurntOrange}\text{BurntOrange}} &\colorbox{BurntOrange}{BurntOrange} \\ {\color{Bittersweet}\text{Bittersweet}} &\colorbox{Bittersweet}{Bittersweet} \\ {\color{RedOrange}\text{RedOrange}} &\colorbox{RedOrange}{RedOrange} \\ {\color{Mahogany}\text{Mahogany}} &\colorbox{Mahogany}{Mahogany} \\ {\color{Maroon}\text{Maroon}} &\colorbox{Maroon}{Maroon} \\ {\color{BrickRed}\text{BrickRed}} &\colorbox{BrickRed}{BrickRed} \\ {\color{Red}\text{Red}} &\colorbox{Red}{Red} \\ {\color{OrangeRed}\text{OrangeRed}} &\colorbox{OrangeRed}{OrangeRed} \\ {\color{RubineRed}\text{RubineRed}} &\colorbox{RubineRed}{RubineRed} \\ {\color{WildStrawberry}\text{WildStrawberry}} &\colorbox{WildStrawberry}{WildStrawberry} \\ {\color{Salmon}\text{Salmon}} &\colorbox{Salmon}{Salmon} \\ {\color{CarnationPink}\text{CarnationPink}} &\colorbox{CarnationPink}{CarnationPink} \\ {\color{Magenta}\text{Magenta}} &\colorbox{Magenta}{Magenta} \\ {\color{magenta}\text{magenta}} &\colorbox{magenta}{magenta} \\ {\color{VioletRed}\text{VioletRed}} &\colorbox{VioletRed}{VioletRed} \\ {\color{Rhodamine}\text{Rhodamine}} &\colorbox{Rhodamine}{Rhodamine} \\ {\color{Mulberry}\text{Mulberry}} &\colorbox{Mulberry}{Mulberry} \\ {\color{RedViolet}\text{RedViolet}} &\colorbox{RedViolet}{RedViolet} \\ {\color{Fuchsia}\text{Fuchsia}} &\colorbox{Fuchsia}{Fuchsia} \\ {\color{Lavender}\text{Lavender}} &\colorbox{Lavender}{Lavender} \\ {\color{Thistle}\text{Thistle}} &\colorbox{Thistle}{Thistle} \\ {\color{Orchid}\text{Orchid}} &\colorbox{Orchid}{Orchid} \\ {\color{DarkOrchid}\text{DarkOrchid}} &\colorbox{DarkOrchid}{DarkOrchid} \\ {\color{Purple}\text{Purple}} &\colorbox{Purple}{Purple} \\ {\color{Plum}\text{Plum}} &\colorbox{Plum}{Plum} \\ {\color{Violet}\text{Violet}} &\colorbox{Violet}{Violet} \\ {\color{RoyalPurple}\text{RoyalPurple}} &\colorbox{RoyalPurple}{RoyalPurple} \\ {\color{BlueViolet}\text{BlueViolet}} &\colorbox{BlueViolet}{BlueViolet} \\ {\color{Periwinkle}\text{Periwinkle}} &\colorbox{Periwinkle}{Periwinkle} \\ {\color{CadetBlue}\text{CadetBlue}} &\colorbox{CadetBlue}{CadetBlue} \\ {\color{ABC}\text{ABC}} &\colorbox{ABC}{ABC} \\ {\color{ABCDEF}\text{ABCDEF}} &\colorbox{ABCDEF}{ABCDEF} \\ {\color{#ABC}\text{\#ABC}} &\colorbox{#ABC}{\#ABC} \\ {\color{#ABCDEF}\text{\#ABCDEF}} &\colorbox{#ABCDEF}{\#ABCDEF} \\ \end{array} \]

\color, \colorbox については MathJax は LaTeX の色名が揃っている。

KaTeX では MathJax ともに以下の W3C カラーならば揃って定義されている。

\color, \colorbox W3C 色名表 \[ \begin{array}{ll} \colorbox{black}{\color{white}white} &\colorbox{white}{white} \\ {\color{whitesmoke}\text{whitesmoke}} &\colorbox{whitesmoke}{whitesmoke} \\ {\color{ghostwhite}\text{ghostwhite}} &\colorbox{ghostwhite}{ghostwhite} \\ {\color{aliceblue}\text{aliceblue}} &\colorbox{aliceblue}{aliceblue} \\ {\color{lavender}\text{lavender}} &\colorbox{lavender}{lavender} \\ {\color{azure}\text{azure}} &\colorbox{azure}{azure} \\ {\color{lightcyan}\text{lightcyan}} &\colorbox{lightcyan}{lightcyan} \\ {\color{mintcream}\text{mintcream}} &\colorbox{mintcream}{mintcream} \\ {\color{honeydew}\text{honeydew}} &\colorbox{honeydew}{honeydew} \\ {\color{ivory}\text{ivory}} &\colorbox{ivory}{ivory} \\ {\color{beige}\text{beige}} &\colorbox{beige}{beige} \\ {\color{lightyellow}\text{lightyellow}} &\colorbox{lightyellow}{lightyellow} \\ {\color{lightgoldenrodyellow}\text{lightgoldenrodyellow}} &\colorbox{lightgoldenrodyellow}{lightgoldenrodyellow} \\ {\color{lemonchiffon}\text{lemonchiffon}} &\colorbox{lemonchiffon}{lemonchiffon} \\ {\color{floralwhite}\text{floralwhite}} &\colorbox{floralwhite}{floralwhite} \\ {\color{oldlace}\text{oldlace}} &\colorbox{oldlace}{oldlace} \\ {\color{cornsilk}\text{cornsilk}} &\colorbox{cornsilk}{cornsilk} \\ {\color{papayawhip}\text{papayawhip}} &\colorbox{papayawhip}{papayawhip} \\ {\color{blanchedalmond}\text{blanchedalmond}} &\colorbox{blanchedalmond}{blanchedalmond} \\ {\color{bisque}\text{bisque}} &\colorbox{bisque}{bisque} \\ {\color{snow}\text{snow}} &\colorbox{snow}{snow} \\ {\color{linen}\text{linen}} &\colorbox{linen}{linen} \\ {\color{antiquewhite}\text{antiquewhite}} &\colorbox{antiquewhite}{antiquewhite} \\ {\color{seashell}\text{seashell}} &\colorbox{seashell}{seashell} \\ {\color{lavenderblush}\text{lavenderblush}} &\colorbox{lavenderblush}{lavenderblush} \\ {\color{mistyrose}\text{mistyrose}} &\colorbox{mistyrose}{mistyrose} \\ {\color{gainsboro}\text{gainsboro}} &\colorbox{gainsboro}{gainsboro} \\ {\color{lightgray}\text{lightgray}} &\colorbox{lightgray}{lightgray} \\ {\color{lightsteelblue}\text{lightsteelblue}} &\colorbox{lightsteelblue}{lightsteelblue} \\ {\color{lightblue}\text{lightblue}} &\colorbox{lightblue}{lightblue} \\ {\color{lightskyblue}\text{lightskyblue}} &\colorbox{lightskyblue}{lightskyblue} \\ {\color{powderblue}\text{powderblue}} &\colorbox{powderblue}{powderblue} \\ {\color{paleturquoise}\text{paleturquoise}} &\colorbox{paleturquoise}{paleturquoise} \\ {\color{skyblue}\text{skyblue}} &\colorbox{skyblue}{skyblue} \\ {\color{mediumaquamarine}\text{mediumaquamarine}} &\colorbox{mediumaquamarine}{mediumaquamarine} \\ {\color{aquamarine}\text{aquamarine}} &\colorbox{aquamarine}{aquamarine} \\ {\color{palegreen}\text{palegreen}} &\colorbox{palegreen}{palegreen} \\ {\color{lightgreen}\text{lightgreen}} &\colorbox{lightgreen}{lightgreen} \\ {\color{khaki}\text{khaki}} &\colorbox{khaki}{khaki} \\ {\color{palegoldenrod}\text{palegoldenrod}} &\colorbox{palegoldenrod}{palegoldenrod} \\ {\color{moccasin}\text{moccasin}} &\colorbox{moccasin}{moccasin} \\ {\color{navajowhite}\text{navajowhite}} &\colorbox{navajowhite}{navajowhite} \\ {\color{peachpuff}\text{peachpuff}} &\colorbox{peachpuff}{peachpuff} \\ {\color{wheat}\text{wheat}} &\colorbox{wheat}{wheat} \\ {\color{pink}\text{pink}} &\colorbox{pink}{pink} \\ {\color{lightpink}\text{lightpink}} &\colorbox{lightpink}{lightpink} \\ {\color{thistle}\text{thistle}} &\colorbox{thistle}{thistle} \\ {\color{plum}\text{plum}} &\colorbox{plum}{plum} \\ {\color{silver}\text{silver}} &\colorbox{silver}{silver} \\ {\color{darkgray}\text{darkgray}} &\colorbox{darkgray}{darkgray} \\ {\color{lightslategray}\text{lightslategray}} &\colorbox{lightslategray}{lightslategray} \\ {\color{slategray}\text{slategray}} &\colorbox{slategray}{slategray} \\ {\color{slateblue}\text{slateblue}} &\colorbox{slateblue}{slateblue} \\ {\color{steelblue}\text{steelblue}} &\colorbox{steelblue}{steelblue} \\ {\color{mediumslateblue}\text{mediumslateblue}} &\colorbox{mediumslateblue}{mediumslateblue} \\ {\color{royalblue}\text{royalblue}} &\colorbox{royalblue}{royalblue} \\ {\color{blue}\text{blue}} &\colorbox{blue}{blue} \\ {\color{dodgerblue}\text{dodgerblue}} &\colorbox{dodgerblue}{dodgerblue} \\ {\color{cornflowerblue}\text{cornflowerblue}} &\colorbox{cornflowerblue}{cornflowerblue} \\ {\color{deepskyblue}\text{deepskyblue}} &\colorbox{deepskyblue}{deepskyblue} \\ {\color{cyan}\text{cyan}} &\colorbox{cyan}{cyan} \\ {\color{aqua}\text{aqua}} &\colorbox{aqua}{aqua} \\ {\color{turquoise}\text{turquoise}} &\colorbox{turquoise}{turquoise} \\ {\color{mediumturquoise}\text{mediumturquoise}} &\colorbox{mediumturquoise}{mediumturquoise} \\ {\color{darkturquoise}\text{darkturquoise}} &\colorbox{darkturquoise}{darkturquoise} \\ {\color{lightseagreen}\text{lightseagreen}} &\colorbox{lightseagreen}{lightseagreen} \\ {\color{mediumspringgreen}\text{mediumspringgreen}} &\colorbox{mediumspringgreen}{mediumspringgreen} \\ {\color{springgreen}\text{springgreen}} &\colorbox{springgreen}{springgreen} \\ {\color{lime}\text{lime}} &\colorbox{lime}{lime} \\ {\color{limegreen}\text{limegreen}} &\colorbox{limegreen}{limegreen} \\ {\color{yellowgreen}\text{yellowgreen}} &\colorbox{yellowgreen}{yellowgreen} \\ {\color{lawngreen}\text{lawngreen}} &\colorbox{lawngreen}{lawngreen} \\ {\color{chartreuse}\text{chartreuse}} &\colorbox{chartreuse}{chartreuse} \\ {\color{greenyellow}\text{greenyellow}} &\colorbox{greenyellow}{greenyellow} \\ {\color{yellow}\text{yellow}} &\colorbox{yellow}{yellow} \\ {\color{gold}\text{gold}} &\colorbox{gold}{gold} \\ {\color{orange}\text{orange}} &\colorbox{orange}{orange} \\ {\color{darkorange}\text{darkorange}} &\colorbox{darkorange}{darkorange} \\ {\color{goldenrod}\text{goldenrod}} &\colorbox{goldenrod}{goldenrod} \\ {\color{burlywood}\text{burlywood}} &\colorbox{burlywood}{burlywood} \\ {\color{tan}\text{tan}} &\colorbox{tan}{tan} \\ {\color{sandybrown}\text{sandybrown}} &\colorbox{sandybrown}{sandybrown} \\ {\color{darksalmon}\text{darksalmon}} &\colorbox{darksalmon}{darksalmon} \\ {\color{lightcoral}\text{lightcoral}} &\colorbox{lightcoral}{lightcoral} \\ {\color{salmon}\text{salmon}} &\colorbox{salmon}{salmon} \\ {\color{lightsalmon}\text{lightsalmon}} &\colorbox{lightsalmon}{lightsalmon} \\ {\color{coral}\text{coral}} &\colorbox{coral}{coral} \\ {\color{tomato}\text{tomato}} &\colorbox{tomato}{tomato} \\ {\color{orangered}\text{orangered}} &\colorbox{orangered}{orangered} \\ {\color{red}\text{red}} &\colorbox{red}{red} \\ {\color{deeppink}\text{deeppink}} &\colorbox{deeppink}{deeppink} \\ {\color{hotpink}\text{hotpink}} &\colorbox{hotpink}{hotpink} \\ {\color{palevioletred}\text{palevioletred}} &\colorbox{palevioletred}{palevioletred} \\ {\color{violet}\text{violet}} &\colorbox{violet}{violet} \\ {\color{orchid}\text{orchid}} &\colorbox{orchid}{orchid} \\ {\color{magenta}\text{magenta}} &\colorbox{magenta}{magenta} \\ {\color{fuchsia}\text{fuchsia}} &\colorbox{fuchsia}{fuchsia} \\ {\color{mediumorchid}\text{mediumorchid}} &\colorbox{mediumorchid}{mediumorchid} \\ {\color{darkorchid}\text{darkorchid}} &\colorbox{darkorchid}{darkorchid} \\ {\color{darkviolet}\text{darkviolet}} &\colorbox{darkviolet}{darkviolet} \\ {\color{blueviolet}\text{blueviolet}} &\colorbox{blueviolet}{blueviolet} \\ {\color{mediumpurple}\text{mediumpurple}} &\colorbox{mediumpurple}{mediumpurple} \\ {\color{gray}\text{gray}} &\colorbox{gray}{gray} \\ {\color{mediumblue}\text{mediumblue}} &\colorbox{mediumblue}{mediumblue} \\ {\color{darkcyan}\text{darkcyan}} &\colorbox{darkcyan}{darkcyan} \\ {\color{cadetblue}\text{cadetblue}} &\colorbox{cadetblue}{cadetblue} \\ {\color{darkseagreen}\text{darkseagreen}} &\colorbox{darkseagreen}{darkseagreen} \\ {\color{mediumseagreen}\text{mediumseagreen}} &\colorbox{mediumseagreen}{mediumseagreen} \\ {\color{teal}\text{teal}} &\colorbox{teal}{teal} \\ {\color{forestgreen}\text{forestgreen}} &\colorbox{forestgreen}{forestgreen} \\ {\color{seagreen}\text{seagreen}} &\colorbox{seagreen}{seagreen} \\ {\color{darkkhaki}\text{darkkhaki}} &\colorbox{darkkhaki}{darkkhaki} \\ {\color{peru}\text{peru}} &\colorbox{peru}{peru} \\ {\color{crimson}\text{crimson}} &\colorbox{crimson}{crimson} \\ {\color{indianred}\text{indianred}} &\colorbox{indianred}{indianred} \\ {\color{rosybrown}\text{rosybrown}} &\colorbox{rosybrown}{rosybrown} \\ {\color{mediumvioletred}\text{mediumvioletred}} &\colorbox{mediumvioletred}{mediumvioletred} \\ {\color{dimgray}\text{dimgray}} &\colorbox{dimgray}{dimgray} \\ {\color{black}\text{black}} &\colorbox{black}{black} \\ {\color{midnightblue}\text{midnightblue}} &\colorbox{midnightblue}{midnightblue} \\ {\color{darkslateblue}\text{darkslateblue}} &\colorbox{darkslateblue}{darkslateblue} \\ {\color{darkblue}\text{darkblue}} &\colorbox{darkblue}{darkblue} \\ {\color{navy}\text{navy}} &\colorbox{navy}{navy} \\ {\color{darkslategray}\text{darkslategray}} &\colorbox{darkslategray}{darkslategray} \\ {\color{green}\text{green}} &\colorbox{green}{green} \\ {\color{darkgreen}\text{darkgreen}} &\colorbox{darkgreen}{darkgreen} \\ {\color{darkolivegreen}\text{darkolivegreen}} &\colorbox{darkolivegreen}{darkolivegreen} \\ {\color{olivedrab}\text{olivedrab}} &\colorbox{olivedrab}{olivedrab} \\ {\color{olive}\text{olive}} &\colorbox{olive}{olive} \\ {\color{darkgoldenrod}\text{darkgoldenrod}} &\colorbox{darkgoldenrod}{darkgoldenrod} \\ {\color{chocolate}\text{chocolate}} &\colorbox{chocolate}{chocolate} \\ {\color{sienna}\text{sienna}} &\colorbox{sienna}{sienna} \\ {\color{saddlebrown}\text{saddlebrown}} &\colorbox{saddlebrown}{saddlebrown} \\ {\color{firebrick}\text{firebrick}} &\colorbox{firebrick}{firebrick} \\ {\color{brown}\text{brown}} &\colorbox{brown}{brown} \\ {\color{maroon}\text{maroon}} &\colorbox{maroon}{maroon} \\ {\color{darkred}\text{darkred}} &\colorbox{darkred}{darkred} \\ {\color{darkmagenta}\text{darkmagenta}} &\colorbox{darkmagenta}{darkmagenta} \\ {\color{purple}\text{purple}} &\colorbox{purple}{purple} \\ {\color{indigo}\text{indigo}} &\colorbox{indigo}{indigo} \\ \end{array} \]

但し、MathJax は白抜きは実現できないようなので注意。

ドット関係

いくつかは重複名となりえる未定義なので、別名で定義すればすむ。p という接尾辞は「積 (product)」 という意味のようで、演算子として調整されている。

合字ではないドット

\[ \begin{array}{llllllllll} x\cdot y &\verb|x\cdot y| & x\cdotp y &\verb|x\cdotp y| & x\cdots y &\verb|x\cdots y| & x\centerdot y &\verb|x\centerdot y| \\ x\ddots y &\verb|x\ddots y| & x\dotp y &\verb|x\dotp y| & x\dots y &\verb|x\dots y| & x\dotsb y &\verb|x\dotsb y| \\ x\dotsc y &\verb|x\dotsc y| & x\dotsi y &\verb|x\dotsi y| & x\dotsm y &\verb|x\dotsm y| & x\dotso y &\verb|x\dotso y| \\ x\ldotp y &\verb|x\ldotp y| & x\ldots y &\verb|x\ldots y| & x\sdot y &\verb|x\sdot y| & x\vdots y &\verb|x\vdots y| \\ \end{array} \]

合字によるドット

\[ %%\newcommand{\dot}[1]{#1\char"0308} % already defined %%\newcommand{\ddot}[1]{#1\char"0309} % already defined %\newcommand{\dddot}[1]{#1\char"20DB} %\newcommand{\ddddot}[1]{#1\char"20DC} \begin{array}{llllllllll} \dot{x} &\verb|\dot{x}| & \ddot{x} &\verb|\ddot{x}| & \dddot{x} &\verb|\dddot{x}| & \ddddot{x} &\verb|\ddddot{x}| \\ \dot{xy} &\verb|\dot{xy}| & \ddot{xy} &\verb|\ddot{xy}| & \dddot{xy} &\verb|\dddot{xy}| & \ddddot{xy} &\verb|\ddddot{xy}| \\ \end{array} \]

\dddot, \ddddot は MathJax のみサポートで代替方法が不明につき保留。KaTeX の \newcommand によるマクロ定義では Unicode 文字列の処理の問題で実現はできないのだが、Javascript による設定で以下と同趣旨のマクロを定義すれば実現は可能である。但し、Unicode の合字の仕組みに依存するため、その品質はあまり期待できないかもしれない(末尾の一文字にしか合字されない等)。

%\newcommand{\dot}[1]{#1̇}	% already defined
%\newcommand{\ddot}[1]{#1̈}	% already defined
\newcommand{\dddot}[1]{#1⃛}
\newcommand{\ddddot}[1]{#1⃜}

ちなみに、KaTeX であれば以下のような書き方もでき、意味は同じである。

%\newcommand{\dot}[1]{#1\char"0308}	% already defined
%\newcommand{\ddot}[1]{#1\char"0309}	% already defined
\newcommand{\dddot}[1]{#1\char"20DB}
\newcommand{\ddddot}[1]{#1\char"20DC}

しかし、KaTeX では後述するように、執筆時点では Unicode 文字列サロゲートペア処理が不十分である。

剰余関係

以下はいずれも定義されているようだ。

\[ \begin{array}{ll} a \bmod b &\verb|a \bmod b| \\ a \mod b &\verb|a \mod b| \\ a \pmod b &\verb|a \pmod b| \\ a \pod b &\verb|a \pod b| \\ \end{array} \]

\stackrel の動作確認

x\stackrel{!}{=}y \[ %\newcommand{\stackrel}[2]{\mathrel{\overset{#1}{#2}}} x\stackrel{!}{=}y \] x\mathrel{\overset{!}{=}}y \[ x\mathrel{\overset{!}{=}}y \]

Pages 他では \stackrel が未サポートなので以下を再度提案しておく。

\newcommand{\stackrel}[2]{\mathrel{\overset{#1}{#2}}}
x\stackrel{!}{=}y

定義済み関数と関数定義

よく使われる関数は TeX と同様に定義済みである。稀に略語が慣習と異なるので以下のように定義してもよいだろう。

\newcommand{\cosec}{\operatorname{cosec}}	% original here
\newcommand{\cotan}{\operatorname{cotan}}	% original here
\newcommand{\vers}{\operatorname{vers}}		% original here
\newcommand{\versin}{\operatorname{versin}}	% original here
\newcommand{\covers}{\operatorname{covers}}	% original here
\newcommand{\coversin}{\operatorname{coversin}}	% original here
\newcommand{\sech}{\operatorname{sech}}		% original here
\newcommand{\csch}{\operatorname{csch}}		% original here
\newcommand{\cosech}{\operatorname{cosech}}	% original here
\newcommand{\sgn}{\operatorname{sgn}}		% original here
\newcommand{\rad}{\operatorname{rad}}		% original here
\newcommand{\argmax}{\mathop{\mathrm{arg\ max}}}
\newcommand{\argmin}{\mathop{\mathrm{arg\ min}}}

以下に確認用に関数一覧を表示しておく。但し、末尾に詳しく再録してある。

\operatornamewithlimits は MathJax では未サポートであるので注意。代わりに、\mathop{\operatorname{…}} を使えばよい。

数式モードとテキストモード

数式モードでは、 \( \# \$ \% \& \{\} \_ \tilde{} \backslash \) は、バックスラッシュでエスケープするか、 \tilde{}, \backslash というコマンドが必要である。

テキストモードでは、 \( \text{ \# \$ \% \& \{\} \_ }\) \(\text{ \textasciitilde \textbackslash \textasciicircum } \) は、同様にバックスラッシュでエスケープするか、 \textasciitilde, \textbackslash, \textasciicircum というコマンドが必要である。

しかし、MathJax ではテキストモードでのコマンドは効かずにやはり不便である。[2021/11/30] textmacros パッケージで便利になる。

文字修飾

\[ \begin{array}{llll} x' &\verb|x'| & x'' &\verb|x''| \\ \acute{xy} &\verb|\acute{xy}| & \bar{xy} &\verb|\bar{xy}| \\ \breve{xy} &\verb|\breve{xy}| & \check{xy} &\verb|\check{xy}| \\ \dot{xy} &\verb|\dot{xy}| & \ddot{xy} &\verb|\ddot{xy}| \\ \grave{xy} &\verb|\grave{xy}| & \hat{xy} &\verb|\hat{xy}| \\ \widehat{xy} &\verb|\widehat{xy}| & \tilde{xy} &\verb|\tilde{xy}| \\ \widetilde{xy} &\verb|\widetilde{xy}| & \vec{xy} &\verb|\vec{xy}| \\ \overline{xy} &\verb|\overline{xy}| & \underline{xy} &\verb|\underline{xy}| \\ \overleftarrow{xy} &\verb|\overleftarrow{xy}| & \overleftrightarrow{xy} &\verb|\overleftrightarrow{xy}| \\ \overrightarrow{xy} &\verb|\overrightarrow{xy}| & \underleftarrow{xy} &\verb|\underleftarrow{xy}| \\ \underleftrightarrow{xy} &\verb|\underleftrightarrow{xy}| & \underrightarrow{xy} &\verb|\underrightarrow{xy}| \\ \overbrace{xy} &\verb|\overbrace{xy}| & \underbrace{xy} &\verb|\underbrace{xy}| \\ \xleftarrow[ab]{xy} &\verb|\xleftarrow[ab]{xy}| & \xrightarrow[ab]{xy} &\verb|\xrightarrow[ab]{xy}| \\ \end{array} \]

MathJax, KaTeX ともに問題はない。但し、KaTeX での \overbrace, \underbrace の上付き、下付きには前述のように十分に注意すること。

字体

\[ \begin{array}{llll} {xy} &\verb|{xy}| & \boldsymbol{xy} &\verb|\boldsymbol{xy} | \\ {\it xy} &\verb|{\it xy}| & {\rm xy} &\verb|{\rm xy}| \\ {\bf xy} &\verb|{\bf xy} | & {\sf xy} &\verb|{\sf xy}| \\ {\tt xy} &\verb|{\tt xy}| & {\cal XY} &\verb|{\cal XY} | \\ \mathit{xy} &\verb|\mathit{xy}| & \mathrm{xy} &\verb|\mathrm{xy} | \\ \mathbf{xy} &\verb|\mathbf{xy}| & \mathsf{xy} &\verb|\mathsf{xy} | \\ \mathtt{xy} &\verb|\mathtt{xy}| & \mathcal{XY} &\verb|\mathcal{XY} | \\ \mathfrak{xy} &\verb|\mathfrak{xy}| & \mathbb{XY} &\verb|\mathbb{XY}| \\ \end{array} \]

MathJax, KaTeX ともに問題はない。

括弧

\[ \begin{array}{llll} \left(xy\right) &\verb|\left(xy\right)| & \lbrace xy\rbrace &\verb|\lbrace xy\rbrace| \\ \langle xy\rangle &\verb|\langle xy\rangle| & \lvert xy\rvert &\verb|\lvert xy\rvert| \\ \lVert xy\rVert &\verb|\lVert xy\rVert| & \lceil xy\rceil &\verb|\lceil xy\rceil| \\ \lfloor xy\rfloor &\verb|\lfloor xy\rfloor| & \lmoustache xy\rmoustache &\verb|\lmoustache xy\rmoustache| \\ \left(xy\right. &\verb|\left(xy\right.| & \lgroup xy\rgroup &\verb|\lgroup xy\rgroup| \\ \ulcorner xy\urcorner &\verb|\ulcorner xy\urcorner| & \llcorner xy\lrcorner &\verb|\llcorner xy\lrcorner| \\ (\big(\Big(\bigg(\Bigg(xy &\verb|(\big(\Big(\bigg(\Bigg(xy| & \Bigg)\bigg)\Big)\big)) &\verb|\Bigg)\bigg)\Big)\big))| \\ \end{array} \]

MathJax, KaTeX ともに問題はない。

括弧付き数式

\[ \begin{array}{lll} \displaystyle\binom{x}{y} &\text{二項係数} &\verb|\binom{x}{y}| \\ \displaystyle{x\choose y} &\text{〃} &\verb|{x\choose y}| \\ \displaystyle{x\brace y} &\text{第2種スターリング数} &\verb|{x\brace y}| \\ \displaystyle{x\brack y} &\text{第1種スターリング数} &\verb|{x\brack y}| \\ \displaystyle\genfrac{(}{]}{}{}{x}{y} & &\verb|\genfrac{(}{]}{}{}{x}{y}| \\ \end{array} \]

数式の典型例

\[ \begin{array}{llll} \displaystyle\sqrt{x} &\text{平方根} &\verb|\sqrt{x}| \\ \displaystyle\sqrt[y]{x} &\text{冪根} &\verb|\sqrt[y]{x}| \\ \displaystyle a\bmod b &\text{剰余} &\verb|a\bmod b| \\ \displaystyle a\mod b &\text{〃} &\verb|a\mod b| \\ \displaystyle a\pmod b &\text{〃} &\verb|a\pmod b| \\ \displaystyle\sum_{n=1}^\infty\frac1n &\text{総和} &\verb|\sum_{n=1}^\infty\frac1n| \\ \displaystyle\prod_p\frac1{1-\frac1p} &\text{総積} &\verb|\prod_p\frac1{1-\frac1p}| \\ \displaystyle\int_1^x\frac{\mathrm{d}t}t &\text{積分} &\verb|\int_1^x\frac{\mathrm{d}t}t| \\ \displaystyle\tan(x) &\text{関数} &\verb|\tan(x)| \\ \displaystyle\operatorname{atan}(x) &\text{〃} &\verb|\operatorname{atan}(x)| \\ \displaystyle\mathop{\operatorname{atan}}\limits_y(x) &\text{〃} &\verb|\mathop{\operatorname{atan}}\limits_y(x)| \\ \displaystyle\left\{z\in\Bbb{C}\mathinner{\big|}\lvert z\rvert=1\right\} &\text{内包} &\verb$\left\{z\in\Bbb{C}\mathinner{\big|}\lvert z\rvert=1\right\} % for Pages etc.$ \\ \displaystyle\left\{z\in\Bbb{C}\;\middle|\;\lvert z\rvert=1\right\} &\text{内包} &\verb$\left\{z\in\Bbb{C}\;\middle|\;\lvert z\rvert=1\right\}$ \\ \displaystyle\left\{z\in\Bbb{C}\,\middle|\,\lvert z\rvert=1\right\} &\text{内包} &\verb$\left\{z\in\Bbb{C}\,\middle|\,\lvert z\rvert=1\right\}$ \\ \displaystyle x\mathbin\star y &\text{演算子} &\verb|x\mathbin\star y| \\ \displaystyle\mathop\star_x^y &\text{〃} &\verb|\mathop\star_x^y| \\ \displaystyle\cancel{xy} &\text{〃} &\verb|\cancel{xy}| \\ \displaystyle\lim\limits_x &\text{極限} &\verb|\lim\limits_x| \\ \displaystyle\lim\nolimits_x &\text{〃} &\verb|\lim\nolimits_x| \\ \displaystyle\varliminf\limits_x &\text{〃} &\verb|\varliminf\limits_x| \\ \displaystyle\varlimsup\limits_x &\text{〃} &\verb|\varlimsup\limits_x| \\ \displaystyle\varinjlim\limits_x &\text{〃} &\verb|\varinjlim\limits_x| \\ \displaystyle\varprojlim\limits_x &\text{〃} &\verb|\varprojlim\limits_x| \\ \displaystyle\projlim\limits_x &\text{〃} &\verb|\projlim\limits_x| \\ \end{array} \]

上付き・下付き・積み重ね

\[ \begin{array}{llllll} \displaystyle x_y^z &\text{添字と冪乗} &\verb|x_y^z| & \displaystyle\substack{x\\y\\z} &\text{} &\verb|\substack{x\\y\\z}| \\ \displaystyle\overset{!}{=} &\text{} &\verb|\overset{!}{=}| & \displaystyle\underset{!}{=} &\text{} &\verb|\underset{!}{=}| \\ \displaystyle{x\atop y} &\text{} &\verb|{x\atop y}| & \displaystyle{x\over y} &\text{} &\verb|{x\over y}| \\ \displaystyle\frac{x}{y} &\text{分数} &\verb|\frac{x}{y}| & \displaystyle\tfrac{x}{y} &\text{インライン分数} &\verb|\tfrac{x}{y}| \\ \displaystyle\dfrac{x}{y} &\text{ディスプレイ分数} &\verb|\dfrac{x}{y}| & \displaystyle\cfrac{x}{y} &\text{連分数} &\verb|\cfrac{x}{y}| \\ \end{array} \]

連分数の例

e = 2 + \cfrac{2}{2 + \cfrac{3}{3 + \cfrac{4}{4 + \cfrac{5}{5 + \cfrac{6}{6 + \cfrac{7}{7 + \cfrac{8}{8 + \cfrac{9}{9 + \cfrac{10}{10 + \ddots}}}}}}}}} \[ e = 2 + \cfrac{2}{2 + \cfrac{3}{3 + \cfrac{4}{4 + \cfrac{5}{5 + \cfrac{6}{6 + \cfrac{7}{7 + \cfrac{8}{8 + \cfrac{9}{9 + \cfrac{10}{10 + \ddots}}}}}}}}} \] これを \cfrac ではなく \dfrac にしてしまうと以下のようになる。 \[ e = 2 + \dfrac{2}{2 + \dfrac{3}{3 + \dfrac{4}{4 + \dfrac{5}{5 + \dfrac{6}{6 + \dfrac{7}{7 + \dfrac{8}{8 + \dfrac{9}{9 + \dfrac{10}{10 + \ddots}}}}}}}}} \] MathJax の方が意図した上下ツメになっているようである。

e = 2 + \frac{2}{2}{\atop +}\frac{3}{3}{\atop +}\frac{4}{4}{\atop +}\frac{5}{5}{\atop +}\frac{6}{6}{\atop +}\frac{7}{7}{\atop +}\frac{8}{8}{\atop +}\frac{9}{9}{\atop +}\frac{10}{10}{\atop +\cdots}

紙幅の関係で以下のように表すこともある。

\[ e = 2 + \frac{2}{2}{\atop +}\frac{3}{3}{\atop +}\frac{4}{4}{\atop +}\frac{5}{5}{\atop +}\frac{6}{6}{\atop +}\frac{7}{7}{\atop +}\frac{8}{8}{\atop +}\frac{9}{9}{\atop +}\frac{10}{10}{\atop +\cdots} \]

大型演算子

\[ \begin{array}{llllll} \displaystyle\sum_x^yz &\text{和} &\verb|\sum_x^yz| & \displaystyle\biguplus_x^yz &\text{} &\verb|\biguplus_x^yz| \\ \displaystyle\prod_x^yz &\text{積} &\verb|\prod_x^yz| & \displaystyle\coprod_x^yz &\text{余積} &\verb|\coprod_x^yz| \\ \displaystyle\bigoplus_x^yz &\text{直和} &\verb|\bigoplus_x^yz| & \displaystyle\bigvee_x^yz &\text{最大} &\verb|\bigvee_x^yz| \\ \displaystyle\bigcup_x^yz &\text{和集合} &\verb|\bigcup_x^yz| & \displaystyle\bigsqcup_x^yz &\text{非交和} &\verb|\bigsqcup_x^yz| \\ \displaystyle\bigotimes_x^yz &\text{直積} &\verb|\bigotimes_x^yz| & \displaystyle\bigwedge_x^yz &\text{最小} &\verb|\bigwedge_x^yz| \\ \displaystyle\bigcap_x^yz &\text{積集合} &\verb|\bigcap_x^yz| & \displaystyle\bigodot_x^yz &\text{アダマール積} &\verb|\bigodot_x^yz| \\ \displaystyle\int_x^yz &\text{積分} &\verb|\int_x^yz| & \displaystyle\iint_x^yz &\text{二重積分} &\verb|\iint_x^yz| \\ \displaystyle\iiint_x^yz &\text{三重積分} &\verb|\iiint_x^yz| & \displaystyle\iiiint_x^yz &\text{四重積分} &\verb|\iiiint_x^yz| \\ % \displaystyle\oint_x^yz &\text{周回積分} &\verb|\oint_x^yz| & \displaystyle\oiint_x^yz &\text{周回二重積分} &\verb|\oiint_x^yz| \\ \displaystyle\oiiint_x^yz &\text{周回三重積分} &\verb|\oiiint_x^yz| & \displaystyle\smallint_x^yz &\text{} &\verb|\smallint_x^yz| \\ \displaystyle\Bbbsum_x^yz &\text{} &\verb|\Bbbsum_x^yz| & \displaystyle\Bbbprod_x^yz &\text{} &\verb|\Bbbprod_x^yz| \\ \displaystyle\bigcupdot_x^yz &\text{} &\verb|\bigcupdot_x^yz| \\ \displaystyle\bigtimes_x^yz &\text{} &\verb|\bigtimes_x^yz| & \displaystyle\bigominus_x^yz &\text{} &\verb|\bigominus_x^yz| \\ \displaystyle\bigoslash_x^yz &\text{} &\verb|\bigoslash_x^yz| & \displaystyle\bigsqcap_x^yz &\text{} &\verb|\bigsqcap_x^yz| \\ % \displaystyle\sumint_x^yz &\text{} &\verb|\sumint_x^yz| & \displaystyle\bigtalloblong_x^yz &\text{} &\verb|\bigtalloblong_x^yz| \\ \displaystyle\biginterleave_x^yz &\text{} &\verb|\biginterleave_x^yz| \\ \displaystyle\intclockwise_x^yz &\text{} &\verb|\intclockwise_x^yz| & \displaystyle\varointclockwise_x^yz &\text{} &\verb|\varointclockwise_x^yz| \\ \displaystyle\ointctrclockwise_x^yz &\text{} &\verb|\ointctrclockwise_x^yz| \\ \displaystyle\intbar_x^yz &\text{有限部分積分} &\verb|\intbar_x^yz| & \displaystyle\intBar_x^yz &\text{} &\verb|\intBar_x^yz| \\ \displaystyle\fint_x^yz &\text{} &\verb|\fint_x^yz| & \displaystyle\cirfnint_x^yz &\text{} &\verb|\cirfnint_x^yz| \\ \displaystyle\awint_x^yz &\text{} &\verb|\awint_x^yz| & \displaystyle\rppolint_x^yz &\text{} &\verb|\rppolint_x^yz| \\ \displaystyle\scpolint_x^yz &\text{} &\verb|\scpolint_x^yz| & \displaystyle\npolint_x^yz &\text{} &\verb|\npolint_x^yz| \\ \displaystyle\pointint_x^yz &\text{} &\verb|\pointint_x^yz| & \displaystyle\sqint_x^yz &\text{四元数積分} &\verb|\sqint_x^yz| \\ \displaystyle\intlarhk_x^yz &\text{} &\verb|\intlarhk_x^yz| & \displaystyle\intx_x^yz &\text{} &\verb|\intx_x^yz| \\ \displaystyle\intcap_x^yz &\text{} &\verb|\intcap_x^yz| & \displaystyle\intcup_x^yz &\text{} &\verb|\intcup_x^yz| \\ \displaystyle\upint_x^yz &\text{} &\verb|\upint_x^yz| & \displaystyle\lowint_x^yz &\text{} &\verb|\lowint_x^yz| \\ % \displaystyle\leftouterjoin_x^yz &\text{} &\verb|\leftouterjoin_x^yz| & \displaystyle\rightouterjoin_x^yz &\text{} &\verb|\rightouterjoin_x^yz| \\ \displaystyle\fullouterjoin_x^yz &\text{} &\verb|\fullouterjoin_x^yz| \\ \displaystyle\bigbot_x^yz &\text{} &\verb|\bigbot_x^yz| & \displaystyle\bigtop_x^yz &\text{} &\verb|\bigtop_x^yz| \\ \displaystyle\xsol_x^yz &\text{} &\verb|\xsol_x^yz| & \displaystyle\xbsol_x^yz &\text{} &\verb|\xbsol_x^yz| \\ \displaystyle\conjquant_x^yz &\text{二重論理積} &\verb|\conjquant_x^yz| & \displaystyle\disjquant_x^yz &\text{二重論理和} &\verb|\disjquant_x^yz| \\ \displaystyle\modtwosum_x^yz &\text{排他的論理和} &\verb|\modtwosum_x^yz| & \displaystyle\Join_x^yz &\text{} &\verb|\Join_x^yz| \\ \displaystyle\bigtriangleleft_x^yz &\text{} &\verb|\bigtriangleleft_x^yz| & \displaystyle\zcmp_x^yz &\text{} &\verb|\zcmp_x^yz| \\ \displaystyle\zpipe_x^yz &\text{} &\verb|\zpipe_x^yz| & \displaystyle\zproject_x^yz &\text{} &\verb|\zproject_x^yz| \\ \end{array} \]

\oiint, \oiiint は MathJax は未サポート。\iiiint は KaTeX で未サポート。また、\Bbbsum 以降のすべては Unicode に存在するので本稿で独自に定義したもので、いずれにしても通常は未対応。

表示形式

font-size: default;
\[ \begin{array}{ll} {\scriptscriptstyle\sum_x^yz} &\verb|{\scriptscriptstyle\sum_x^yz}| \\ {\scriptstyle\sum_x^yz} &\verb|{\scriptstyle\sum_x^yz}| \\ {\textstyle\sum_x^yz} &\verb|{\textstyle\sum_x^yz}| \\ {\displaystyle\sum_x^yz} &\verb|{\displaystyle\sum_x^yz}| \\ \end{array} \]
font-size: 10pt;
\[ \begin{array}{ll} {\scriptscriptstyle\sum_x^yz} &\verb|{\scriptscriptstyle\sum_x^yz}| \\ {\scriptstyle\sum_x^yz} &\verb|{\scriptstyle\sum_x^yz}| \\ {\textstyle\sum_x^yz} &\verb|{\textstyle\sum_x^yz}| \\ {\displaystyle\sum_x^yz} &\verb|{\displaystyle\sum_x^yz}| \\ \end{array} \]

MathJax, KaTeX ともに問題はない。

演算子

\[ \begin{array}{llllll} \displaystyle\forall x &\text{全称量化} &\verb|\forall x| & \displaystyle\exists x &\text{存在量化} &\verb|\exists x| \\ \displaystyle\complement x &\text{補集合} &\verb|\complement x| & \displaystyle\lnot x &\text{否定} &\verb|\lnot x| \\ \displaystyle\pm x &\text{正負} &\verb|\pm x| & \displaystyle\mp x &\text{負正} &\verb|\mp x| \\ \displaystyle\#x &\text{濃度} &\verb|\#x| & \displaystyle x! &\text{階乗} &\verb|x!| \\ \displaystyle x!! &\text{二重階乗} &\verb|x!!| & \displaystyle x^\top &\text{転置} &\verb|x^\top| \\ \displaystyle x+y &\text{加法} &\verb|x+y| & \displaystyle x\cup y &\text{和集合} &\verb|x\cup y| \\ \displaystyle x\Cup y &\verb|\doublecup| &\verb|x\Cup y| & \displaystyle x\lor y &\text{論理和、選言} &\verb|x\lor y| \\ \displaystyle x\veebar y &\text{排他的論理和} &\verb|x\veebar y| & \displaystyle x\curlyvee y &\text{} &\verb|x\curlyvee y| \\ \displaystyle x\sqcup y &\text{} &\verb|x\sqcup y| & \displaystyle x\oplus y &\text{直和、デカルト積} &\verb|x\oplus y| \\ \displaystyle x\boxplus y &\text{} &\verb|x\boxplus y| & \displaystyle x\dotplus y &\text{} &\verb|x\dotplus y| \\ \displaystyle x\uplus y &\text{} &\verb|x\uplus y| & \displaystyle x-y &\text{減法} &\verb|x-y| \\ \displaystyle x\setminus y &\text{差集合} &\verb|x\setminus y| & \displaystyle x\smallsetminus y &\text{} &\verb|x\smallsetminus y| \\ \displaystyle x\ominus y &\text{} &\verb|x\ominus y| & \displaystyle x\circleddash y &\text{} &\verb|x\circleddash y| \\ \displaystyle x\boxminus y &\text{} &\verb|x\boxminus y| & \displaystyle xy &\text{乗法} &\verb|xy| \\ \displaystyle x\cdot y &\text{内積} &\verb|x\cdot y| & \displaystyle x\circ y &\text{} &\verb|x\circ y| \\ \displaystyle x\bullet y &\text{} &\verb|x\bullet y| & \displaystyle x\ast y &\text{自由積} &\verb|x\ast y| \\ \displaystyle x\times y &\text{直積} &\verb|x\times y| & \displaystyle x\amalg y &\text{融合積} &\verb|x\amalg y| \\ \displaystyle x\cap y &\text{積集合} &\verb|x\cap y| & \displaystyle x\Cap y &\verb|\doublecap| &\verb|x\Cap y| \\ \displaystyle x\land y &\text{論理積、連言} &\verb|x\land y| & \displaystyle x\barwedge y &\text{} &\verb|x\barwedge y| \\ \displaystyle x\curlywedge y &\text{} &\verb|x\curlywedge y| & \displaystyle x\doublebarwedge y &\text{} &\verb|x\doublebarwedge y| \\ \displaystyle x\sqcap y &\text{} &\verb|x\sqcap y| & \displaystyle x\odot y &\text{} &\verb|x\odot y| \\ \displaystyle x\otimes y &\text{テンソル積} &\verb|x\otimes y| & \displaystyle x\circledast y &\text{} &\verb|x\circledast y| \\ \displaystyle x\circledcirc y &\text{} &\verb|x\circledcirc y| & \displaystyle x\bigcirc y &\text{} &\verb|x\bigcirc y| \\ \displaystyle x\boxdot y &\text{} &\verb|x\boxdot y| & \displaystyle x\boxtimes y &\text{} &\verb|x\boxtimes y| \\ \displaystyle x\ltimes y &\text{半直積} &\verb|x\ltimes y| & \displaystyle x\rtimes y &\text{} &\verb|x\rtimes y| \\ \displaystyle x\leftthreetimes y &\text{} &\verb|x\leftthreetimes y| & \displaystyle x\rightthreetimes y &\text{} &\verb|x\rightthreetimes y| \\ \displaystyle x/y &\text{商集合} &\verb|x/y| & \displaystyle x\div y &\text{除法} &\verb|x\div y| \\ \displaystyle x\oslash y &\text{} &\verb|x\oslash y| & \displaystyle x\divideontimes y &\text{} &\verb|x\divideontimes y| \\ \displaystyle x\parallel y &\text{平行} &\verb|x\parallel y| & \displaystyle x\perp y &\text{垂直} &\verb|x\perp y| \\ \displaystyle x=y &\text{等号} &\verb|x=y| & \displaystyle x\ne y &\text{不等号} &\verb|x\ne y| \\ \displaystyle x\equiv y &\text{同等} &\verb|x\equiv y| & \displaystyle x\sim y &\text{相似} &\verb|x\sim y| \\ \displaystyle x\simeq y &\text{} &\verb|x\simeq y| & \displaystyle x\cong y &\text{合同} &\verb|x\cong y| \\ \displaystyle x\approx y &\text{近似} &\verb|x\approx y| & \displaystyle x\asymp y &\text{漸近} &\verb|x\asymp y| \\ \displaystyle x < y &\text{小なり} &\verb|x < y| & \displaystyle x\le y &\text{} &\verb|x\le y| \\ \displaystyle x\leqq y &\text{} &\verb|x\leqq y| & \displaystyle x\ll y &\text{非常に小} &\verb|x\ll y| \\ \displaystyle x\lessdot y &\text{} &\verb|x\lessdot y| & \displaystyle x>y &\text{大なり} &\verb|x>y| \\ \displaystyle x\ge y &\text{} &\verb|x\ge y| & \displaystyle x\geqq y &\text{} &\verb|x\geqq y| \\ \displaystyle x\gg y &\text{非常に大} &\verb|x\gg y| & \displaystyle x\gtrdot y &\text{} &\verb|x\gtrdot y| \\ \displaystyle x\subset y &\text{包摂} &\verb|x\subset y| & \displaystyle x\subseteq y &\text{部分集合} &\verb|x\subseteq y| \\ \displaystyle x\supset y &\text{包含} &\verb|x\supset y| & \displaystyle x\supseteq y &\text{上位集合} &\verb|x\supseteq y| \\ \displaystyle x\succ y &\text{} &\verb|x\succ y| & \displaystyle x\succeq y &\text{} &\verb|x\succeq y| \\ \displaystyle x\prec y &\text{} &\verb|x\prec y| & \displaystyle x\preceq y &\text{} &\verb|x\preceq y| \\ \displaystyle x\lhd y &\text{正規部分群} &\verb|x\lhd y| & \displaystyle x\unlhd y &\text{} &\verb|x\unlhd y| \\ \displaystyle x\rhd y &\text{} &\verb|x\rhd y| & \displaystyle x\unrhd y &\text{} &\verb|x\unrhd y| \\ \displaystyle x\vdash y &\text{推論} &\verb|x\vdash y| & \displaystyle x\Vdash y &\text{真} &\verb|x\Vdash y| \\ \displaystyle x\vDash y &\text{帰結} &\verb|x\vDash y| & \displaystyle x\mid y &\text{} &\verb|x\mid y| \\ \displaystyle x\wr y &\text{輪積} &\verb|x\wr y| & \displaystyle x\intercal y &\text{} &\verb|x\intercal y| \\ \displaystyle x\propto y &\text{比例} &\verb|x\propto y| & \displaystyle x\varpropto y &\text{} &\verb|x\varpropto y| \\ \displaystyle x\in y &\text{属する} &\verb|x\in y| & \displaystyle x\owns y &\text{含む} &\verb|x\owns y| \\ \displaystyle x\gets y &\text{} &\verb|x\gets y| & \displaystyle x\to y &\text{} &\verb|x\to y| \\ \displaystyle x\mapsto y &\text{写像} &\verb|x\mapsto y| & \displaystyle x\multimap y &\text{} &\verb|x\multimap y| \\ \displaystyle x\implies y &\text{内含} &\verb|x\implies y| & \displaystyle x\iff y &\text{同値} &\verb|x\iff y| \\ \end{array} \]

その他の定義済み演算子

以下の演算子も定義されている。

\[ \begin{array}{llllllll} \backepsilon &\verb|\backepsilon| & \backsim &\verb|\backsim| & \backsimeq &\verb|\backsimeq| & \because &\verb|\because| \\ \between &\verb|\between| & \bigtriangledown &\verb|\bigtriangledown| & \bigtriangleup &\verb|\bigtriangleup| & \blacktriangleleft &\verb|\blacktriangleleft| \\ \blacktriangleright &\verb|\blacktriangleright| & \bowtie &\verb|\bowtie| & \Bumpeq &\verb|\Bumpeq| & \bumpeq &\verb|\bumpeq| \\ \circeq &\verb|\circeq| & \dagger &\verb|\dagger| & \dashv &\verb|\dashv| & \ddagger &\verb|\ddagger| \\ \diamond &\verb|\diamond| & \doteqdot &\verb|\doteqdot| & \downdownarrows &\verb|\downdownarrows| & \eqcirc &\verb|\eqcirc| \\ \fallingdotseq &\verb|\fallingdotseq| & \ggg &\verb|\ggg| & \gtrapprox &\verb|\gtrapprox| & \gtrless &\verb|\gtrless| \\ \gtrsim &\verb|\gtrsim| & \Join &\verb|\Join| & \leadsto &\verb|\leadsto| & \lessapprox &\verb|\lessapprox| \\ \lessgtr &\verb|\lessgtr| & \lesssim &\verb|\lesssim| & \lll &\verb|\lll| & \models &\verb|\models| \\ \pitchfork &\verb|\pitchfork| & \restriction &\verb|\restriction| & \risingdotseq &\verb|\risingdotseq| & \shortmid &\verb|\shortmid| \\ \smallfrown &\verb|\smallfrown| & \smallsmile &\verb|\smallsmile| & \star &\verb|\star| & \therefore &\verb|\therefore| \\ \thicksim &\verb|\thicksim| & \triangleleft &\verb|\triangleleft| & \triangleright &\verb|\triangleright| & \upuparrows &\verb|\upuparrows| \\ \end{array} \]

これら Unicode を添えて一部印字してみるが、
「\(\backepsilon\)」\backepsilon 「∍」small contains as member
「\(\because\)」\because 「∵」because
「\(\between\)」\between 「≬」between
「\(\bowtie, \Join\)」\bowtie, \Join 「⋈」 bowtie
「\(\Bumpeq\)」\Bumpeq 「≎」geometrically equivalent to
「\(\bumpeq\)」\bumpeq 「≏」difference between
「\(\doteqdot\)」\doteqdot 「≑」geometrically equal to
「\(\fallingdotseq\)」\fallingdotseq 「≒」approximately equal to or the image of
「\(\models\)」\models 「⊨」true
「\(\risingdotseq\)」\risingdotseq 「≓」image of or approximately equal to
「\(\shortmid\)」\shortmid 「∣」divides
「\(\smallfrown\)」\smallfrown 「⌢」frown
「\(\smallsmile\)」\smallsmile 「⌣」smile
「\(\therefore\)」\therefore 「∴」therefore
は Unicde での意味づけと TeX のコマンド名から推測される意味と、一致しているものと一致していないものがある。グリフの形状を表した説明やコマンド名なら形で判断できるが、何らかの意味づけがなされているとなると TeX と Unicode での用法が異なるものがあると混乱の元であろうが、概ね一致していると思われる。一つだけ、\backepsilon のみコマンド名にグリフのデザインが引っ張られてしまった例かもしれない。

否定演算子

詳しくは後述するが、まずは既定の否定演算子を列挙しておく。

\[ \begin{array}{llllllll} \not= &\verb|\not=| & \ne &\verb|\ne| & \neq &\verb|\neq| & \nsim &\verb|\nsim| \\ \ncong &\verb|\ncong| & \nvdash &\verb|\nvdash| & \nvDash &\verb|\nvDash| & \nVDash &\verb|\nVDash| \\ \nmid &\verb|\nmid| & \nparallel &\verb|\nparallel| & \nless &\verb|\nless| & \ngtr &\verb|\ngtr| \\ \nleqslant &\verb|\nleqslant| & \ngeqslant &\verb|\ngeqslant| & \lneq &\verb|\lneq| & \gneq &\verb|\gneq| \\ \nleq &\verb|\nleq| & \ngeq &\verb|\ngeq| & \nleqq &\verb|\nleqq| & \ngeqq &\verb|\ngeqq| \\ \lneqq &\verb|\lneqq| & \gneqq &\verb|\gneqq| & \lvertneqq &\verb|\lvertneqq| & \gvertneqq &\verb|\gvertneqq| \\ \lnsim &\verb|\lnsim| & \gnsim &\verb|\gnsim| & \lnapprox &\verb|\lnapprox| & \gnapprox &\verb|\gnapprox| \\ \notin &\verb|\notin| & \notni &\verb|\notni| & \nsubseteq &\verb|\nsubseteq| & \nsupseteq &\verb|\nsupseteq| \\ \subsetneq &\verb|\subsetneq| & \supsetneq &\verb|\supsetneq| & \varsubsetneq &\verb|\varsubsetneq| & \varsupsetneq &\verb|\varsupsetneq| \\ \nsubseteqq &\verb|\nsubseteqq| & \nsupseteqq &\verb|\nsupseteqq| & \subsetneqq &\verb|\subsetneqq| & \supsetneqq &\verb|\supsetneqq| \\ \varsubsetneqq &\verb|\varsubsetneqq| & \varsupsetneqq &\verb|\varsupsetneqq| & \nprec &\verb|\nprec| & \nsucc &\verb|\nsucc| \\ \npreceq &\verb|\npreceq| & \nsucceq &\verb|\nsucceq| & \precneqq &\verb|\precneqq| & \succneqq &\verb|\succneqq| \\ \precnsim &\verb|\precnsim| & \succnsim &\verb|\succnsim| & \precnapprox &\verb|\precnapprox| & \succnapprox &\verb|\succnapprox| \\ \ntriangleleft &\verb|\ntriangleleft| & \ntriangleright &\verb|\ntriangleright| & \ntrianglelefteq &\verb|\ntrianglelefteq| & \ntrianglerighteq &\verb|\ntrianglerighteq| \\ \end{array} \]

\notni が MathJax ではサポートされない。しかし、演算子への否定は \not と合字されるので、以下のようにすればよい。

\newcommand{\notni}{\not\ni}

しかし、上記のように \not= が MathJax では \ne にならないので注意を要する。

記号と文字

MathJax, KaTeX のために以下を定義している。

\renewcommand{\P}{\mathord{¶}}		% MathJax
\newcommand{\qed}{\rule{1ex}{1.5ex}}
\newcommand{\rightangle}{\mathbin{∟}}
\[ \begin{array}{llllllll} \dots &\verb|\dots| & \cdots &\verb|\cdots| & \ddots &\verb|\ddots| & \vdots &\verb|\vdots| \\ \| &\verb$\|$ & \hbar &\verb|\hbar| & \hslash &\verb|\hslash| & \nabla &\verb|\nabla| \\ \partial &\verb|\partial| & \infty &\verb|\infty| & \emptyset &\verb|\emptyset| & \varnothing &\verb|\varnothing| \\ \top &\verb|\top| & \bot &\verb|\bot| & \diagdown &\verb|\diagdown| & \diagup &\verb|\diagup| \\ \imath &\verb|\imath| & \jmath &\verb|\jmath| & \Re &\verb|\Re| & \Im &\verb|\Im| \\ \wp &\verb|\wp| & \Finv &\verb|\Finv| & \Game &\verb|\Game| & \aleph &\verb|\aleph| \\ \beth &\verb|\beth| & \gimel &\verb|\gimel| & \daleth &\verb|\daleth| & \rightangle &\verb|\rightangle| \\ \angle &\verb|\angle| & \measuredangle &\verb|\measuredangle| & \sphericalangle &\verb|\sphericalangle| & \leftarrow &\verb|\leftarrow| \\ \rightarrow &\verb|\rightarrow| & \leftrightarrow &\verb|\leftrightarrow| & \uparrow &\verb|\uparrow| & \downarrow &\verb|\downarrow| \\ \updownarrow &\verb|\updownarrow| & \And &\verb|\And| & \Bbb{N} &\verb|\Bbb{N}| & \Bbb{Z} &\verb|\Bbb{Z}| \\ \Bbb{Q} &\verb|\Bbb{Q}| & \Bbb{R} &\verb|\Bbb{R}| & \Bbb{C} &\verb|\Bbb{C}| & \Bbb{H} &\verb|\Bbb{H}| \\ \Bbb{O} &\verb|\Bbb{O}| & \Bbb{S} &\verb|\Bbb{S}| & \Bbbk &\verb|\Bbbk| & \Gamma &\verb|\Gamma| \\ \Delta &\verb|\Delta| & \Theta &\verb|\Theta| & \Lambda &\verb|\Lambda| & \Xi &\verb|\Xi| \\ \Pi &\verb|\Pi| & \Sigma &\verb|\Sigma| & \Upsilon &\verb|\Upsilon| & \Phi &\verb|\Phi| \\ \Psi &\verb|\Psi| & \Omega &\verb|\Omega| & \alpha &\verb|\alpha| & \beta &\verb|\beta| \\ \gamma &\verb|\gamma| & \delta &\verb|\delta| & \epsilon &\verb|\epsilon| & \varepsilon &\verb|\varepsilon| \\ \zeta &\verb|\zeta| & \eta &\verb|\eta| & \theta &\verb|\theta| & \vartheta &\verb|\vartheta| \\ \iota &\verb|\iota| & \kappa &\verb|\kappa| & \varkappa &\verb|\varkappa| & \lambda &\verb|\lambda| \\ \mu &\verb|\mu| & \nu &\verb|\nu| & \xi &\verb|\xi| & \pi &\verb|\pi| \\ \varpi &\verb|\varpi| & \rho &\verb|\rho| & \varrho &\verb|\varrho| & \sigma &\verb|\sigma| \\ \varsigma &\verb|\varsigma| & \tau &\verb|\tau| & \upsilon &\verb|\upsilon| & \phi &\verb|\phi| \\ \varphi &\verb|\varphi| & \chi &\verb|\chi| & \psi &\verb|\psi| & \omega &\verb|\omega| \\ \digamma &\verb|\digamma| & \omicron &\verb|\omicron| & \mho &\verb|\mho| & \ell &\verb|\ell| \\ \eth &\verb|\eth| & \S &\verb|\S| & \P &\verb|\P| & \maltese &\verb|\maltese| \\ \checkmark &\verb|\checkmark| & \yen &\verb|\yen| & \Box &\verb|\Box| & \qed &\verb|\qed| \\ \end{array} \]

MathJax では \P が未サポート、これは頂けない。他にも多くの演算子が TeX パッケージ等で定義されているので、Symbols defined by unicode-math が参考になるだろう。

\hbar \(\hbar\) ついては \hslash \(\hslash\) が MathJax, KaTeX ともに定義されているが Pages 他にはない。Unicode としては ℎ U+210E がプランク定数であり、ℏ U+210F は換算プランク定数(ディラック定数)である。

字送り

\[ \begin{array}{rll} \text{-5/18em} &x\negthickspace y &\verb|x\negthickspace y| \\ \text{-4/18em} &x\negmedspace y &\verb|x\negmedspace y| \\ \text{-3/18em} &x\!y &\verb|x\!y| \\ \text{-3/18em} &x\negthinspace y &\verb|x\negthinspace y| \\ \text{0} &xy &\verb|xy| \\ \text{3/18em} &x\,y &\verb|x\,y| \\ \text{3/18em} &x\thinspace y &\verb|x\thinspace y| \\ \text{4/18em} &x\:y &\verb|x\:y| \\ \text{4/18em} &x\>y &\verb|x\>y| \\ \text{4/18em} &x\medspace y &\verb|x\medspace y| \\ \text{5/18em} &x\;y &\verb|x\;y| \\ \text{5/18em} &x\thickspace y &\verb|x\thickspace y| \\ \text{1ex} &x\ y &\verb|x\ y| \\ \text{1ex} &x\space y &\verb|x\space y| \\ \text{1ex} &x~y &\verb|x~y| \\ \text{1ex} &x\nobreakspace y &\verb|x\nobreakspace y| \\ \text{1em} &x\quad y &\verb|x\quad y| \\ \text{2em} &x\qquad y &\verb|x\qquad y| \\ \text{5ex} &x\phantom{xxxxx}y &\verb|x\phantom{xxxxx}y| \\ \end{array} \]

MathJax では \medspace, \thickspace は未サポート。Pages では負の字送りが実現できていないようなので、不用意な使用は現時点では控えた方がいいだろう。

定義済み関数

ここでは以下を追加で定義している。

\newcommand{\cosec}{\operatorname{cosec}}	% original here
\newcommand{\cotan}{\operatorname{cotan}}	% original here
\newcommand{\vers}{\operatorname{vers}}		% original here
\newcommand{\versin}{\operatorname{versin}}	% original here
\newcommand{\covers}{\operatorname{covers}}	% original here
\newcommand{\coversin}{\operatorname{coversin}}	% original here
\newcommand{\sech}{\operatorname{sech}}		% original here
\newcommand{\csch}{\operatorname{csch}}		% original here
\newcommand{\cosech}{\operatorname{cosech}}	% original here
\newcommand{\sgn}{\operatorname{sgn}}		% original here
\newcommand{\rad}{\operatorname{rad}}		% original here
\[ \begin{aligned} \min &\quad\hbox{最小} &\max &\quad\hbox{最大} &\gcd &\quad\hbox{最大公約数} \\ \cos &\quad\hbox{余弦関数} &\sin &\quad\hbox{正弦関数} &\tan &\quad\hbox{正接関数} \\ \csc &\quad\hbox{余割関数} &\sec &\quad\hbox{正割関数} &\cot &\quad\hbox{余接関数} \\ \cosec &\quad\hbox{〃} & & &\cotan &\quad\hbox{〃} \\ & & & &\cotg &\quad\hbox{〃} \\ & & & &\ctg &\quad\hbox{〃} \\ \coversin &\quad\hbox{余矢関数} &\versin &\quad\hbox{正矢関数} & & \\ \covers &\quad\hbox{〃} &\vers &\quad\hbox{〃} & & \\ \arccos &\quad\hbox{逆余弦関数} &\arcsin &\quad\hbox{逆正弦関数} &\arctan &\quad\hbox{逆正接関数} \\ & & & &\arctg &\quad\hbox{〃} \\ & & & &\arcctg &\quad\hbox{逆余接関数} \\ \cosh &\quad\hbox{双曲線余弦関数} &\sinh &\quad\hbox{双曲線正弦関数} &\tanh &\quad\hbox{双曲線正接関数} \\ \ch &\quad\hbox{〃} &\sh &\quad\hbox{〃} &\th &\quad\hbox{〃} \\ \csch &\quad\hbox{双曲線余割関数} &\sech &\quad\hbox{双曲線正割関数} &\coth &\quad\hbox{双曲線余接関数} \\ \cosech &\quad\hbox{〃} & & &\cth &\quad\hbox{〃} \\ \exp &\quad\hbox{指数関数} &\arg &\quad\hbox{偏角} \\ \lg &\quad\hbox{常用対数関数} &\ln &\quad\hbox{自然対数関数} &\log &\quad\hbox{対数関数} \\ \dim &\quad\hbox{次元} &\hom &\quad\hbox{準同型} &\ker &\quad\hbox{核} \\ \det &\quad\hbox{行列式} &\Pr &\quad\hbox{確率} &\sgn &\quad\hbox{符号関数} \\ \sup &\quad\hbox{上限} &\inf &\quad\hbox{下限} &\lim &\quad\hbox{極限} \\ \limsup &\quad\hbox{上極限} &\liminf &\quad\hbox{下極限} \\ \varlimsup &\quad\hbox{〃} &\varliminf &\quad\hbox{〃} \\ \injlim &\quad\hbox{帰納極限} &\projlim &\quad\hbox{射影極限} \\ \varinjlim &\quad\hbox{〃} &\varprojlim &\quad\hbox{〃} &\rad &\quad\hbox{根基} \\ \end{aligned} \]

行列・複数行の数式・場合分け

\(\displaystyle \begin{matrix} a&b\\ c&d \end{matrix}\verb| {matrix} | \) \(\displaystyle \begin{pmatrix} a&b\\ c&d \end{pmatrix}\verb| {pmatrix} | \) \(\displaystyle \begin{vmatrix} a&b\\ c&d \end{vmatrix}\verb| {vmatrix} | \) \(\displaystyle \begin{Vmatrix} a&b\\ c&d \end{Vmatrix}\verb| {Vmatrix} | \) \(\displaystyle \begin{Bmatrix} a&b\\ c&d \end{Bmatrix}\verb| {Bmatrix} | \) \(\displaystyle \begin{bmatrix} a&b\\ c&d \end{bmatrix}\verb| {bmatrix} | \)
\(\displaystyle \begin{smallmatrix} a&b\\ c&d \end{smallmatrix}\verb| {smallmatrix} | \) \(\displaystyle x=\begin{cases} a&\text{if }b\\ c&\text{otherwise} \end{cases}\verb| {cases} | \)

\[ \begin{split} a&=b\\ &=c \end{split}\verb| {split} | \] \[ \begin{align*} a&=b\\ &=c \end{align*}\verb| {align*} | \]

以下は Pages 他で未サポート。

\(\displaystyle \begin{matrix*}[r] -a&b \\ c&-d \end{matrix*}\verb| {matrix*}[r] | \) \(\displaystyle \def\arraystretch{1.2} \begin{array}{r|c:c} &z&w\\\hline x&a&b\\\hdashline y&c&d \end{array}\verb$ {array}{r|c:c} $ \) \(\displaystyle %\newenvironment{rcases}{\left.\begin{array}{ll}}{\end{array}\right\}} \begin{rcases} a&\text{if }b\\ c&\text{otherwise} \end{rcases}\implies x\verb| {rcases} | \) \(\displaystyle \sum_{ \begin{subarray}{l} i\in\Bbb{N}\\ j\in\Bbb{N}_0 \end{subarray}}^\infty\frac{j}{i}\verb| {subarray}{l} | \)
\[ \begin{gather*} a=b\\ c=d+e \end{gather*}\verb| {gather*} | \] \[ \begin{alignat*}{2} 10&x+&20&y=30\\ &x+&2&y=3 \end{alignat*}\verb| {alignat*}{2} | \] \[ \begin{CD} A @>x>> B \\ @VyVV @AAzA\\ C @= D \end{CD}\verb| {CD} | \]

MathJax, KaTeX ともに基本的には問題ないが、KaTeX 独自のものなのか、{matrix*}{rcases}MathJax で未対応 だったが mathtools パッケージの導入で対応できた。必要なら以下の定義で事足りる。

\newenvironment{rcases}{\left.\begin{array}{ll}}{\end{array}\right\}}

マクロ定義

ここでは以下をマクロ定義している。\bra, \ket は定義済みなのでコメントアウトされている (MathJax v2 では定義)。

\newcommand{\heiko}{\mathbin{∥}}
\newcommand{\nheiko}{\mathbin{∦}}
%\newcommand{\bra}[1]{\langle #1\rvert}
%\newcommand{\ket}[1]{\lvert #1\rangle}

平行 \vec{A}\heiko\vec{B}\quad\vec{A}\nheiko\vec{B}

\[ \newcommand{\heiko}{\mathbin{∥}} \newcommand{\nheiko}{\mathbin{∦}} \vec{A}\heiko\vec{B}\quad\vec{A}\nheiko\vec{B} \]

Schrödinger 方程式 i\hbar\frac{\mathrm d}{\mathrm dt}\ket{\psi(t)}=\hat{H}\ket{\psi(t)}

\[ %\newcommand{\ket}[1]{\lvert #1\rangle} i\hbar\frac{\mathrm d}{\mathrm dt}\ket{\psi(t)}=\hat{H}\ket{\psi(t)} \]

MathJax, KaTeX ともに問題ないのだが、ここで意図しているのは「平行」の記号を「日本式の斜め」にすることである。そのような対処には以下の方法がある。但し、KaTeX では trust オプションtrue にする必要はある。

% for MathJax
\newcommand{\heiko}{\mathbin{\style{font-family: 'Noto Serif CJK JP', 'Yu Mincho', 'YuMincho', 'Hiragino Mincho ProN';}{\text{∥}}}}
\newcommand{\nheiko}{\mathbin{\style{font-family: 'Noto Serif CJK JP', 'Yu Mincho', 'YuMincho', 'Hiragino Mincho ProN';}{\text{∦}}}}
% for KaTeX
\newcommand{\heiko}{\mathbin{\htmlStyle{font-family: 'Noto Serif CJK JP', 'Yu Mincho', 'YuMincho', 'Hiragino Mincho ProN';}{\text{∥}}}}
\newcommand{\nheiko}{\mathbin{\htmlStyle{font-family: 'Noto Serif CJK JP', 'Yu Mincho', 'YuMincho', 'Hiragino Mincho ProN';}{\text{∦}}}}
\[ \renewcommand{\heiko}{\mathbin{\htmlStyle{font-family: 'Noto Serif CJK JP', 'Yu Mincho', 'YuMincho', 'Hiragino Mincho ProN';}{\text{∥}}}} \renewcommand{\nheiko}{\mathbin{\htmlStyle{font-family: 'Noto Serif CJK JP', 'Yu Mincho', 'YuMincho', 'Hiragino Mincho ProN';}{\text{∦}}}} \vec{A}\heiko\vec{B}\quad\vec{A}\nheiko\vec{B} \]

左側・右側 ⊗ 上付き・下付き

多段の左側・右側の上付き・下付きの TeX の書き方は、特に左側に関して、悩まれる方はいるのでは無いだろうか。以下に纏めておくのでちょっと混乱したときの助けとしたい。

\[ \newcommand{\UCadots}{\text{⋰}} %\newcommand{\UCddots}{\text{⋱}} \begin{array}{l|ccc} \text{Command\String}&\text{Latin}&\text{Symbol}&\text{Unicode}&\\\hline {\scriptsize\verb|x^{y^{z}}|} & a^{b^c} & & a^{b^\UCadots} \\ {\scriptsize\verb|x^{y^{z^{w}}}|} & a^{b^{c^d}} & & a^{b^{c^\UCadots}} \\ {\scriptsize\verb|{}^{{}^xy}z|} & {}^{{}^ab}c & {}^{{}^{\ddots}a}b & {}^{{}^{\UCddots}a}b \\ {\scriptsize\verb|{}^{{}^{{}^xy}z}w|} & {}^{{}^{{}^ab}c}d & {}^{{}^{{}^{\ddots}a}b}c & {}^{{}^{{}^{\UCddots}a}b}c \\\hline {\scriptsize\verb|x_{y_z}|} & a_{b_c} & a_{b_{\scriptsize\mathstrut\ddots}} & a_{b_{\scriptsize\mathstrut\UCddots}} \\ {\scriptsize\verb|x_{y_{z_w}}|} & a_{b_{c_d}} & a_{b_{c_{\scriptsize\mathstrut\ddots}}} & a_{b_{c_{\scriptsize\mathstrut\UCddots}}} \\ {\scriptsize\verb|{}_{{}_xy}z|} & {}_{{}_ab}c & & {}_{{}_{\scriptsize\mathstrut\UCadots}a}b \\ {\scriptsize\verb|{}_{{}_{{}_xy}z}w|} & {}_{{}_{{}_ab}c}d & & {}_{{}_{{}_{\scriptsize\mathstrut\UCadots}a}b}c \\\hline {\scriptsize\verb|\presupsubscript{{{}^xy}}{{{}_ab}}{W^{i^j}_{p_q}}|} & \presupsubscript{{{}^xy}}{{{}_ab}}{W^{i^j}_{p_q}} & \presupsubscript{{{}^{\ddots}x}}{{{}_{\lower{1ex}{\scriptsize\mathstrut\iddots}}a}}{W^{i^{\scriptsize\mathstrut\iddots}}_{p_{\scriptsize\mathstrut\ddots}}} & \presupsubscript{{{}^{\UCddots}x}}{{{}_{\lower{1ex}{\scriptsize\mathstrut\UCadots}}a}}{W^{i^{\UCadots}}_{p_{\scriptsize\mathstrut\UCddots}}} &\\ {\scriptsize\verb|\presupsubscript{{{}^{{}^xy}z}}{{{}_{{}_ab}c}}{W^{i^{j^k}}_{p_{q_r}}}|} & \presupsubscript{{{}^{{}^xy}z}}{{{}_{{}_ab}c}}{W^{i^{j^k}}_{p_{q_r}}} & \presupsubscript{{{}^{{}^{\ddots}x}y}}{{{}_{{}_{\lower{1ex}{\scriptsize\mathstrut\iddots}}a}b}}{W^{i^{j^{\scriptsize\iddots}}}_{p_{q_{\scriptsize\mathstrut\ddots}}}} & \presupsubscript{{{}^{{}^{\UCddots}x}y}}{{{}_{{}_{\lower{1ex}{\scriptsize\mathstrut\UCadots}}a}b}}{W^{i^{j^{\UCadots}}}_{p_{q_{\scriptsize\mathstrut\UCddots}}}} & \end{array} \]

下付き省略記号の前には \mathstrut コマンドを入れて不自然さを避けているが、MathJax ではそれでよいとして、KaTeX ではそれでも足りない印象ではある。

そして、左側上付き下付きをいちどきに配置するには多少工夫を要する。ここでは拙作 \presupsubscript を使用しているが、本来以下のように左側上付き下付きを右寄せにするための工夫である。

\newcommand{\presupsubscript}[3]{\phantom{{}^{#1}_{#2}}{}^{\mathllap{#1}}_{\mathllap{#2}}#3}
\[ \begin{split} {}^\top_{(i,j)}{W}_t^{(x,y)} &\qquad{\scriptsize\verb|{}^\top_{(i,j)}{W}_t^{(x,y)}|} \\ \presupsubscript\top{(i,j)}{W}_t^{(x,y)} &\qquad{\scriptsize\verb|\presupsubscript\top{(i,j)}{W}_t^{(x,y)}|} \end{split} \]

mathtools パッケージには \prescript コマンドがサポートされている。

mathtools パッケージの \prescript について

MathJax での閲覧環境を前提にして、この \prescript の優れたところをみてみよう。

\[\large \prescript{m}n{\mathrm{C}}^k_l \quad \presupsubscript{m}n{\mathrm{C}}^k_l \qquad{\scriptsize\verb|\prescript vs. \presupsubscript|} \] \[\LARGE \prescript{}{n}{\mathrm{C}}_k \quad \presupsubscript{}{n}{\mathrm{C}}_k \quad {}_n\mathrm{C}_k \qquad{\scriptsize\verb|\prescript vs. \presupsubscript vs. {}_n\mathrm{C}_k|} \]

拙作 \presupsubscript だと上付き・下付きをいちどきに配置するときは問題はないが、下付きしかない場合に下付きの \(n\) が基線から下がってしまう欠点がある。流石に私がちょっと思いついただけのマクロは敵わない。しかし、そもそも左側の上付き・下付きをいちどきに配置しようという趣旨なので使い方が間違っているとも言える。同時に、このコマンドには書きやすいとは言い難い左側の上付き・下付きを簡単に書けるという利点がある。よって、以下のマクロを用意した。

\newcommand{\presupscript}[2]{{}^{#1}#2}
\newcommand{\presubscript}[2]{{}_{#1}#2}
\[ \prescript{}n{\mathrm{C}}_k \quad \presupsubscript{}n{\mathrm{C}}_k \quad \presubscript{n}{\mathrm{C}}_k \qquad{\scriptsize\verb|\prescript vs. \presupsubscript vs. \presubscript|} \] \[ \prescript{n}{}{\mathrm{C}}^k \quad \presupsubscript{n}{}{\mathrm{C}}^k \quad \presupscript{n}{\mathrm{C}}^k \qquad{\scriptsize\verb|\prescript vs. \presupsubscript vs. \presupscript|} \] \[ \prescript{14}2{\mathbf{C}}^{5+}_2 \quad \presupsubscript{14}2{\mathbf{C}}^{5+}_2 \qquad{\scriptsize\verb|\prescript vs. \presupsubscript|} \]

こういった用途の発展で tensor パッケージなるものもあるらしい。

右下がり省略記号 \ddots に対する右上がり省略記号 \iddots\adots については後述している

Unicode と否定演算子

Unicode, TeX, コマンド名の順で「否定」に関する演算子を列挙する。

\({≠}\quad \ne \qquad{\scriptsize\verb|\ne|} \) \({≁}\quad \nsim \qquad{\scriptsize\verb|\nsim|} \) \({≇}\quad \ncong \qquad{\scriptsize\verb|\ncong|} \) \({⊬}\quad \nvdash \qquad{\scriptsize\verb|\nvdash|} \)
\({⊭}\quad \nvDash \qquad{\scriptsize\verb|\nvDash|} \) \({⊯}\quad \nVDash \qquad{\scriptsize\verb|\nVDash|} \) \({∤}\quad \nmid \qquad{\scriptsize\verb|\nmid|} \) \({∦}\quad \nparallel \qquad{\scriptsize\verb|\nparallel|} \)
\({≮}\quad \nless \qquad{\scriptsize\verb|\nless|} \) \({≯}\quad \ngtr \qquad{\scriptsize\verb|\ngtr|} \) \({⪇}\quad \lneq \qquad{\scriptsize\verb|\lneq|} \) \({⪈}\quad \gneq \qquad{\scriptsize\verb|\gneq|} \)
\({≰}\quad \nleq \qquad{\scriptsize\verb|\nleq|} \) \({≱}\quad \ngeq \qquad{\scriptsize\verb|\ngeq|} \) \({≨}\quad \lneqq \qquad{\scriptsize\verb|\lneqq|} \) \({≩}\quad \gneqq \qquad{\scriptsize\verb|\gneqq|} \)
\({≨}\quad \lvertneqq \qquad{\scriptsize\verb|\lvertneqq|} \) \({≩}\quad \gvertneqq \qquad{\scriptsize\verb|\gvertneqq|} \) \({⋦}\quad \lnsim \qquad{\scriptsize\verb|\lnsim|} \) \({⋧}\quad \gnsim \qquad{\scriptsize\verb|\gnsim|} \)
\({⪉}\quad \lnapprox \qquad{\scriptsize\verb|\lnapprox|} \) \({⪊}\quad \gnapprox \qquad{\scriptsize\verb|\gnapprox|} \) \({∉}\quad \notin \qquad{\scriptsize\verb|\notin|} \) \({∌}\quad \notni \qquad{\scriptsize\verb|\notni|} \)
\({⊈}\quad \nsubseteq \qquad{\scriptsize\verb|\nsubseteq|} \) \({⊉}\quad \nsupseteq \qquad{\scriptsize\verb|\nsupseteq|} \) \({⊊}\quad \subsetneq \qquad{\scriptsize\verb|\subsetneq|} \) \({⊋}\quad \supsetneq \qquad{\scriptsize\verb|\supsetneq|} \)
\({⊊}\quad \varsubsetneq \qquad{\scriptsize\verb|\varsubsetneq|} \) \({⊋}\quad \varsupsetneq \qquad{\scriptsize\verb|\varsupsetneq|} \) \({⫋}\quad \subsetneqq \qquad{\scriptsize\verb|\subsetneqq|} \) \({⫌}\quad \supsetneqq \qquad{\scriptsize\verb|\supsetneqq|} \)
\({⫋}\quad \varsubsetneqq \qquad{\scriptsize\verb|\varsubsetneqq|} \) \({⫌}\quad \varsupsetneqq \qquad{\scriptsize\verb|\varsupsetneqq|} \) \({⊀}\quad \nprec \qquad{\scriptsize\verb|\nprec|} \) \({⊁}\quad \nsucc \qquad{\scriptsize\verb|\nsucc|} \)
\({⪵}\quad \precneqq \qquad{\scriptsize\verb|\precneqq|} \) \({⪶}\quad \succneqq \qquad{\scriptsize\verb|\succneqq|} \) \({⋨}\quad \precnsim \qquad{\scriptsize\verb|\precnsim|} \) \({⋩}\quad \succnsim \qquad{\scriptsize\verb|\succnsim|} \)
\({⪹}\quad \precnapprox \qquad{\scriptsize\verb|\precnapprox|} \) \({⪺}\quad \succnapprox \qquad{\scriptsize\verb|\succnapprox|} \) \({⋪}\quad \ntriangleleft \qquad{\scriptsize\verb|\ntriangleleft|} \) \({⋫}\quad \ntriangleright \qquad{\scriptsize\verb|\ntriangleright|} \)
\({⋬}\quad \ntrianglelefteq \qquad{\scriptsize\verb|\ntrianglelefteq|} \) \({⋭}\quad \ntrianglerighteq \qquad{\scriptsize\verb|\ntrianglerighteq|} \)
\(\verb|⩽̸|\quad \nleqslant \qquad{\scriptsize\verb|\nleqslant|} \) \(\verb|⩾̸|\quad \ngeqslant \qquad{\scriptsize\verb|\ngeqslant|} \) \(\verb|≦̸|\quad \nleqq \qquad{\scriptsize\verb|\nleqq|} \) \(\verb|≧̸|\quad \ngeqq \qquad{\scriptsize\verb|\ngeqq|} \)
\(\verb|⫅̸|\quad \nsubseteqq \qquad{\scriptsize\verb|\nsubseteqq|} \) \(\verb|⫆̸|\quad \nsupseteqq \qquad{\scriptsize\verb|\nsupseteqq|} \) \(\verb|⪯̸|\quad \npreceq \qquad{\scriptsize\verb|\npreceq|} \) \(\verb|⪰̸|\quad \nsucceq \qquad{\scriptsize\verb|\nsucceq|} \)

表の末尾に集めておいた Unicode「⩽̸⩾̸≦̸≧̸⫅̸⫆̸⪯̸⪰̸」は KaTeX では、そのままでも \text 内でもエラーになってしまう。原因は U+0338 (combining long solidus overlay) にあるようで、\verb 内ならエラーにはならないが合字になっていない上にタイプライタ体になってしまう。MathJax にはそういった問題はないが、そもそもグリフや意味合いが異なっているものもある。つまり、TeX にあって Unicode に無いものを合字で表す際に若干の齟齬が生じている。

以下はすべて Unicode で TeX コマンド名が定義されている否定演算子である。先の例とグリフが同一に見えるもの (\UC*) もあるが、前者は TeX 由来のフォント、後者は Unicode 由来のフォントである。

\({\lnot}\quad \lnot \qquad{\scriptsize\verb|\lnot|} \) \({⌐}\quad \invnot \qquad{\scriptsize\verb|\invnot|} \) \({⌙}\quad \turnednot \qquad{\scriptsize\verb|\turnednot|} \) \({⍀}\quad \APLnotbackslash \qquad{\scriptsize\verb|\APLnotbackslash|} \)
\({↚}\quad \UCnleftarrow \qquad{\scriptsize\verb|\UCnleftarrow|} \) \({↛}\quad \UCnrightarrow \qquad{\scriptsize\verb|\UCnrightarrow|} \) \({↮}\quad \UCnleftrightarrow \qquad{\scriptsize\verb|\UCnleftrightarrow|} \) \({⇍}\quad \UCnLeftarrow \qquad{\scriptsize\verb|\UCnLeftarrow|} \)
\({⇎}\quad \UCnLeftrightarrow \qquad{\scriptsize\verb|\UCnLeftrightarrow|} \) \({⇏}\quad \UCnRightarrow \qquad{\scriptsize\verb|\UCnRightarrow|} \) \({⇷}\quad \nvleftarrow \qquad{\scriptsize\verb|\nvleftarrow|} \) \({⇸}\quad \nvrightarrow \qquad{\scriptsize\verb|\nvrightarrow|} \)
\({⇹}\quad \nvleftrightarrow \qquad{\scriptsize\verb|\nvleftrightarrow|} \) \({⇺}\quad \nVleftarrow \qquad{\scriptsize\verb|\nVleftarrow|} \) \({⇻}\quad \nVrightarrow \qquad{\scriptsize\verb|\nVrightarrow|} \) \({⇼}\quad \nVleftrightarrow \qquad{\scriptsize\verb|\nVleftrightarrow|} \)
\({∉}\quad \UCnotin \qquad{\scriptsize\verb|\UCnotin|} \) \({∌}\quad \nni \qquad{\scriptsize\verb|\nni|} \) \({∤}\quad \UCnmid \qquad{\scriptsize\verb|\UCnmid|} \) \({∦}\quad \UCnparallel \qquad{\scriptsize\verb|\UCnparallel|} \)
\({≁}\quad \UCnsim \qquad{\scriptsize\verb|\UCnsim|} \) \({≄}\quad \nsime \qquad{\scriptsize\verb|\nsime|} \) \({≄}\quad \nsimeq \qquad{\scriptsize\verb|\nsimeq|} \) \({≇}\quad \UCncong \qquad{\scriptsize\verb|\UCncong|} \)
\({≉}\quad \napprox \qquad{\scriptsize\verb|\napprox|} \) \({≠}\quad \UCne \qquad{\scriptsize\verb|\UCne|} \) \({≢}\quad \nequiv \qquad{\scriptsize\verb|\nequiv|} \) \({≨}\quad \UClneqq \qquad{\scriptsize\verb|\UClneqq|} \)
\({≩}\quad \UCgneqq \qquad{\scriptsize\verb|\UCgneqq|} \) \({≭}\quad \nasymp \qquad{\scriptsize\verb|\nasymp|} \) \({≮}\quad \UCnless \qquad{\scriptsize\verb|\UCnless|} \) \({≯}\quad \UCngtr \qquad{\scriptsize\verb|\UCngtr|} \)
\({≰}\quad \UCnleq \qquad{\scriptsize\verb|\UCnleq|} \) \({≱}\quad \UCngeq \qquad{\scriptsize\verb|\UCngeq|} \) \({≴}\quad \nlesssim \qquad{\scriptsize\verb|\nlesssim|} \) \({≵}\quad \ngtrsim \qquad{\scriptsize\verb|\ngtrsim|} \)
\({≸}\quad \nlessgtr \qquad{\scriptsize\verb|\nlessgtr|} \) \({≹}\quad \ngtrless \qquad{\scriptsize\verb|\ngtrless|} \) \({⊀}\quad \UCnprec \qquad{\scriptsize\verb|\UCnprec|} \) \({⊁}\quad \UCnsucc \qquad{\scriptsize\verb|\UCnsucc|} \)
\({⊄}\quad \nsubset \qquad{\scriptsize\verb|\nsubset|} \) \({⊅}\quad \nsupset \qquad{\scriptsize\verb|\nsupset|} \) \({⊈}\quad \UCnsubseteq \qquad{\scriptsize\verb|\UCnsubseteq|} \) \({⊉}\quad \UCnsupseteq \qquad{\scriptsize\verb|\UCnsupseteq|} \)
\({⊊}\quad \UCsubsetneq \qquad{\scriptsize\verb|\UCsubsetneq|} \) \({⊋}\quad \UCsupsetneq \qquad{\scriptsize\verb|\UCsupsetneq|} \) \({⊬}\quad \UCnvdash \qquad{\scriptsize\verb|\UCnvdash|} \) \({⊭}\quad \UCnvDash \qquad{\scriptsize\verb|\UCnvDash|} \)
\({⊮}\quad \UCnVdash \qquad{\scriptsize\verb|\UCnVdash|} \) \({⊯}\quad \UCnVDash \qquad{\scriptsize\verb|\UCnVDash|} \) \({⋠}\quad \npreccurlyeq \qquad{\scriptsize\verb|\npreccurlyeq|} \) \({⋡}\quad \nsucccurlyeq \qquad{\scriptsize\verb|\nsucccurlyeq|} \)
\({⋢}\quad \nsqsubseteq \qquad{\scriptsize\verb|\nsqsubseteq|} \) \({⋣}\quad \nsqsupseteq \qquad{\scriptsize\verb|\nsqsupseteq|} \) \({⋤}\quad \sqsubsetneq \qquad{\scriptsize\verb|\sqsubsetneq|} \) \({⋥}\quad \sqsupsetneq \qquad{\scriptsize\verb|\sqsupsetneq|} \)
\({⋨}\quad \UCprecnsim \qquad{\scriptsize\verb|\UCprecnsim|} \) \({⋩}\quad \UCsuccnsim \qquad{\scriptsize\verb|\UCsuccnsim|} \) \({⋪}\quad \nvartriangleleft \qquad{\scriptsize\verb|\nvartriangleleft|} \) \({⋫}\quad \nvartriangleright \qquad{\scriptsize\verb|\nvartriangleright|} \)
\({⌿}\quad \APLnotslash \qquad{\scriptsize\verb|\APLnotslash|} \) \({¬}\quad \UCneg \qquad{\scriptsize\verb|\UCneg|} \) \({⋬}\quad \UCntrianglelefteq \qquad{\scriptsize\verb|\UCntrianglelefteq|} \) \({⋭}\quad \UCntrianglerighteq \qquad{\scriptsize\verb|\UCntrianglerighteq|} \)
\({⪇}\quad \UClneq \qquad{\scriptsize\verb|\UClneq|} \) \({⪈}\quad \UCgneq \qquad{\scriptsize\verb|\UCgneq|} \) \({⪉}\quad \UClnapprox \qquad{\scriptsize\verb|\UClnapprox|} \) \({⪊}\quad \UCgnapprox \qquad{\scriptsize\verb|\UCgnapprox|} \)
\({⪱}\quad \precneq \qquad{\scriptsize\verb|\precneq|} \) \({⪲}\quad \succneq \qquad{\scriptsize\verb|\succneq|} \) \({⪵}\quad \UCprecneqq \qquad{\scriptsize\verb|\UCprecneqq|} \) \({⪶}\quad \UCsuccneqq \qquad{\scriptsize\verb|\UCsuccneqq|} \)
\({⪹}\quad \UCprecnapprox \qquad{\scriptsize\verb|\UCprecnapprox|} \) \({⪺}\quad \UCsuccnapprox \qquad{\scriptsize\verb|\UCsuccnapprox|} \) \({⫋}\quad \UCsubsetneqq \qquad{\scriptsize\verb|\UCsubsetneqq|} \) \({⫌}\quad \UCsupsetneqq \qquad{\scriptsize\verb|\UCsupsetneqq|} \)
\({⫝}\quad \forksnot \qquad{\scriptsize\verb|\forksnot|} \) \({⫬}\quad \Not \qquad{\scriptsize\verb|\Not|} \) \({⫭}\quad \bNot \qquad{\scriptsize\verb|\bNot|} \) \({⫮}\quad \revnmid \qquad{\scriptsize\verb|\revnmid|} \)
\({⫲}\quad \nhpar \qquad{\scriptsize\verb|\nhpar|} \) \({⬴}\quad \nvtwoheadleftarrow \qquad{\scriptsize\verb|\nvtwoheadleftarrow|} \) \({⬵}\quad \nVtwoheadleftarrow \qquad{\scriptsize\verb|\nVtwoheadleftarrow|} \) \({⬹}\quad \nvleftarrowtail \qquad{\scriptsize\verb|\nvleftarrowtail|} \)
\({⬺}\quad \nVleftarrowtail \qquad{\scriptsize\verb|\nVleftarrowtail|} \) \({⬻}\quad \twoheadleftarrowtail \qquad{\scriptsize\verb|\twoheadleftarrowtail|} \) \({⬼}\quad \nvtwoheadleftarrowtail \qquad{\scriptsize\verb|\nvtwoheadleftarrowtail|} \) \({⬽}\quad \nVtwoheadleftarrowtail \qquad{\scriptsize\verb|\nVtwoheadleftarrowtail |} \)

こちらは合字には無関係なので MathJax はもとより KaTeX でも特に問題はない。

体裁を整えるコマンド

\phantom は「幻影 (phantom)」で引数が存在するかのように処理するが表示はしないコマンドである。以下の例を取り上げる。 \[ \sum_{n=1}^\infty n^{-s} = \zeta(s) \qquad \sum_{n=1}^\infty\frac{\mu(n)}{n^s} = \frac{1}{\zeta(s)} \] \phantom は縦横のボックスの幅と高さを配置する。 \(1\) と \(s\) を \phantom にしてみる。 \[ \sum_{n=\phantom1}^\infty n^{-\phantom{s}} = \zeta(\phantom{s}) \qquad \sum_{n=\phantom1}^\infty\frac{\mu(n)}{n^{\phantom{s}}} = \frac{\phantom1}{\zeta(\phantom{s})} \] \hphantom は縦横のボックスの幅だけを配置する。 \(1\) と \(s\) を \hphantom にしてみる。 \[ \sum_{n=\phantom1}^\infty n^{-\hphantom{s}} = \zeta(\hphantom{s}) \qquad \sum_{n=\phantom1}^\infty\frac{\mu(n)}{n^{\hphantom{s}}} = \frac{\phantom1}{\zeta(\hphantom{s})} \] \vphantom は縦横のボックスの高さだけを配置する。 \(1\) と \(s\) を \vphantom にしてみる。 \[ \sum_{n=\phantom1}^\infty n^{-\vphantom{s}} = \zeta(\vphantom{s}) \qquad \sum_{n=\phantom1}^\infty\frac{\mu(n)}{n^{\vphantom{s}}} = \frac{\phantom1}{\zeta(\vphantom{s})} \]

\smash は「スマッシュ (smash)」で引数は表示するものの、引数の幅で高さと深さが零のボックスを配置する。 \mathstrut は高さと深さが「()」と同じボックスを配置する。 \strut は「突っ張り (strut)」で高さが 8.6 pt で深さが 3pt 固定のボックスを配置する。 \smash[t] は深さは残す、\smash[b] は高さは残すボックスを配置する。 KaTeX は \smash[t] は未サポートのようである(\rule[-3pt]{0pt}{3pt} で代用可能)。

\[ \sqrt{\bigtriangleup} \quad{\scriptsize\verb|\sqrt{\bigtriangleup}|} \;\leftrightarrow\; \sqrt{\smash{\bigtriangleup}} \quad{\scriptsize\verb|\sqrt{\smash{\bigtriangleup}}|} \] \[ \sqrt{.} \quad{\scriptsize\verb|\sqrt{.}|} \;\leftrightarrow\; \sqrt{\mathstrut.} \quad{\scriptsize\verb|\sqrt{\mathstrut.}|} \;\leftrightarrow\; \sqrt{\vphantom{(}.} \quad{\scriptsize\verb|\sqrt{\vphantom{(}.}|} \] \[ \sqrt{\strut.} \quad{\scriptsize\verb|\sqrt{\strut.}|} \;\leftrightarrow\; \sqrt{\rule[-3pt]{0pt}{11.6pt}.} \quad{\scriptsize\verb|\sqrt{\rule[-3pt]{0pt}{11.6pt}.}|} \] \[ \sqrt{\smash[t]{\strut.}} \quad{\scriptsize\verb|\sqrt{\smash[t]{\strut.}}|} \;\leftrightarrow\; \sqrt{\rule[-3pt]{0pt}{3pt}.} \quad{\scriptsize\verb|\sqrt{\rule[-3pt]{0pt}{3pt}.}|} \] \[ \sqrt{\smash[b]{\strut.}} \quad{\scriptsize\verb|\sqrt{\smash[b]{\strut.}}|} \;\leftrightarrow\; \sqrt{\rule[0pt]{0pt}{8.6pt}.} \quad{\scriptsize\verb|\sqrt{\rule[0pt]{0pt}{8.6pt}.}|} \]

これらはベクトルや根号の屋根の高さを揃えるためによく使われる。以下の例が高さを揃えるために小技である。

\[ \vec{a} + \vec{b} \quad{\scriptsize\verb|\vec{a} + \vec{b}|} \implies \vec{\mathstrut a} + \vec{\mathstrut b} \quad{\scriptsize\verb|\vec{\mathstrut a} + \vec{\mathstrut b}|} \] \[ \sqrt{a} + \sqrt{b} \quad{\scriptsize\verb|\sqrt{a} + \sqrt{b}|} \implies \sqrt{\mathstrut a} + \sqrt{\mathstrut b} \quad{\scriptsize\verb|\sqrt{\mathstrut a} + \sqrt{\mathstrut b}|} \] \[ \sqrt{\mathstrut g} + \sqrt{\mathstrut h} \quad{\scriptsize\verb|\sqrt{\mathstrut g} + \sqrt{\mathstrut h}|} \implies \sqrt{\smash[b]{\mathstrut g}} + \sqrt{\smash[b]{\mathstrut h}} \quad{\scriptsize\verb|\sqrt{\smash[b]{\mathstrut g}} + \sqrt{\smash[b]{\mathstrut h}}|} \]

\mathllap, \mathrlap, \mathclap は「重なり (lap)」で引数は表示するものの、引数の高さと深さで幅が零のボックスを配置する。その際、 \mathllap は右寄せ、 \mathrlap は左寄せ、 \mathclap は中央揃えで表示する。以下に実用例を示す。

\[ \overbrace{abcd}^{a,b,c,d\in\Z} + \underbrace{xyzw}_{x,y,z,w\in\R} \]\[ {\scriptsize\verb|\overbrace{abcd}^{a,b,c,d\in\Z} + \underbrace{xyzw}_{x,y,z,w\in\R}|} \] \[ \overbrace{abcd}^{\mathllap{a,b,c,d\in\Z}} + \underbrace{xyzw}_{\mathrlap{x,y,z,w\in\R}} \]\[ {\scriptsize\verb|\overbrace{abcd}^{\mathllap{a,b,c,d\in\Z}} + \underbrace{xyzw}_{\mathrlap{x,y,z,w\in\R}}|} \] \[ \overbrace{abcd}^{\mathclap{a,b,c,d\in\Z}} + \underbrace{xyzw}_{\mathclap{x,y,z,w\in\R}} \]\[ {\scriptsize\verb|\overbrace{abcd}^{\mathclap{a,b,c,d\in\Z}} + \underbrace{xyzw}_{\mathclap{x,y,z,w\in\R}}|} \]

MathJax では要 mathtools パッケージ。

\vcenter は引数の縦方向を中央揃えで配置する。

\[ \left(\frac{x + y}{\dfrac{a}{b}}\right) \quad{\scriptsize\verb|\left(\frac{x + y}{\dfrac{a}{b}}\right)|} \implies \left(\vcenter{\frac{x + y}{\dfrac{a}{b}}}\right) \quad{\scriptsize\verb|\left(\vcenter{\frac{x + y}{\dfrac{a}{b}}}\right)|} \]

以下の節はフォントサイズを意図して 10 pt にしてある。

ボックス

MathJax の \hbox はスタイルモードを維持しない。逆に、 KaTeX の \text は数式のスタイルモードを維持しない。 MathJax の \mathmbox はスタイルモードも数式のスタイルモードも維持される。 よって、KaTeX では拙作の \mathmbox でスタイルモードも数式のスタイルモードも維持するようにした。

MathJax の \raisebox はスタイルモードを維持する。しかし、 KaTeX の \raisebox はスタイルモードを維持しない。 よって、KaTeX では拙作の \raise で MathJax の \raise と同様にスタイルモードを維持するようにした。 しかし、長さの単位 em, ex, mu がスタイルモードやフォントサイズに依存していないので使用に難が残されている。

MathJax の \fbox はスタイルモードを維持する。しかし、 KaTeX の \fbox はスタイルモードを維持しない。 よって、KaTeX では拙作の \mathfbox でスタイルモードを維持するようにした。

MathJax と KaTeX の \boxed はいずれも数式のスタイルモードを維持しない。 よって、双方とも拙作の \mathboxed で数式のスタイルモードを維持するようにした。

表示形式\コマンド x\text{y$z$}w x\hbox{y$z$}w x\mathmbox{y\text{z}}w x\raisebox{9mu}{y$\raisebox{.5em}{z}$}w x\raise{9mu}{y\raise{.5em}{z}}w x\lower{9mu}{y\lower{.5em}{z}}w x\fbox{y$z$}w x\mathfbox{y\text{z}}w x\boxed{y}w x\mathboxed{y\text{z}}w
\scriptscriptstyle \(\scriptscriptstyle x\text{y$z$}w\) \(\scriptscriptstyle x\hbox{y$z$}w\) \(\scriptscriptstyle x\mathmbox{y\text{z}}w\) \(\scriptscriptstyle x\raisebox{9mu}{y$\raisebox{.5em}{z}$}w\) \(\scriptscriptstyle x\raise{9mu}{y\raise{.5em}{z}}w\) \(\scriptscriptstyle x\lower{9mu}{y\lower{.5em}{z}}w\) \(\scriptscriptstyle x\fbox{y$z$}w\) \(\scriptscriptstyle x\mathfbox{y\text{z}}w\) \(\scriptscriptstyle x\boxed{y\text{z}}w\) \(\scriptscriptstyle x\mathboxed{y\text{z}}w\)
\scriptstyle \(\scriptstyle x\text{y$z$}w\) \(\scriptstyle x\hbox{y$z$}w\) \(\scriptstyle x\mathmbox{y\text{z}}w\) \(\scriptstyle x\raisebox{9mu}{y$\raisebox{.5em}{z}$}w\) \(\scriptstyle x\raise{9mu}{y\raise{.5em}{z}}w\) \(\scriptstyle x\lower{9mu}{y\lower{.5em}{z}}w\) \(\scriptstyle x\fbox{y$z$}w\) \(\scriptstyle x\mathfbox{y\text{z}}w\) \(\scriptstyle x\boxed{y\text{z}}w\) \(\scriptstyle x\mathboxed{y\text{z}}w\)
\textstyle \(\textstyle x\text{y$z$}w\) \(\textstyle x\hbox{y$z$}w\) \(\textstyle x\mathmbox{y\text{z}}w\) \(\textstyle x\raisebox{9mu}{y$\raisebox{.5em}{z}$}w\) \(\textstyle x\raise{9mu}{y\raise{.5em}{z}}w\) \(\textstyle x\lower{9mu}{y\lower{.5em}{z}}w\) \(\textstyle x\fbox{y$z$}w\) \(\textstyle x\mathfbox{y\text{z}}w\) \(\textstyle x\boxed{y\text{z}}w\) \(\textstyle x\mathboxed{y\text{z}}w\)
\displaystyle \(\displaystyle x\text{y$z$}w \) \(\displaystyle x\hbox{y$z$}w\) \(\displaystyle x\mathmbox{y\text{z}}w\) \(\displaystyle x\raisebox{9mu}{y$\raisebox{.5em}{z}$}w\) \(\displaystyle x\raise{9mu}{y\raise{.5em}{z}}w\) \(\displaystyle x\lower{9mu}{y\lower{.5em}{z}}w\) \(\displaystyle x\fbox{y$z$}w\) \(\displaystyle x\mathfbox{y\text{z}}w\) \(\displaystyle x\boxed{y\text{z}}w\) \(\displaystyle x\mathboxed{y\text{z}}w\)

MathJax 及び KaTeX における以上の拙作のマクロ定義は以下の通り。

% for MathJax
\newcommand{\mathfbox}[1]{\mathchoice{\fbox{$\displaystyle#1$}}{\fbox{$\textstyle#1$}}{\fbox{$\scriptstyle#1$}}{\fbox{$\scriptscriptstyle#1$}}}
\newcommand{\mathboxed}[1]{\mathchoice{\boxed{\displaystyle#1}}{\boxed{\textstyle#1}}{\boxed{\scriptstyle#1}}{\boxed{\scriptscriptstyle#1}}}
\newcommand{\raisebox}[2]{\raise{#1}{\text{#2}}}
% for KaTeX
\newcommand{\mathmbox}[1]{\mathchoice{\hbox{$\displaystyle#1$}}{\hbox{$\textstyle#1$}}{\hbox{$\scriptstyle#1$}}{\hbox{$\scriptscriptstyle#1$}}}
\newcommand{\raise}[2]{\mathchoice{\raisebox{#1}{$\displaystyle#2$}}{\raisebox{#1}{$\textstyle#2$}}{\raisebox{#1}{$\scriptstyle#2$}}{\raisebox{#1}{$\scriptscriptstyle#2$}}}
\newcommand{\mathfbox}[1]{\mathchoice{\fbox{$\displaystyle#1$}}{\fbox{$\textstyle#1$}}{\fbox{$\scriptstyle#1$}}{\fbox{$\scriptscriptstyle#1$}}}
\newcommand{\mathboxed}[1]{\mathchoice{\boxed{\displaystyle#1}}{\boxed{\textstyle#1}}{\boxed{\scriptstyle#1}}{\boxed{\scriptscriptstyle#1}}}
\newcommand{\lower}[2]{\raise{-#1}{#2}}

ちなみに、\mathmakebox コマンドも MathJax には用意されているが、KaTeX には幅を持たせたボックスを用意するコマンドがないので実現は困難である。

伸縮可能な約物

絶対値 \(|x|\) は |x| ではなく \(\lvert x\rvert\) \lvert x\rvert とすべきである。なぜなら \(|\) (| = \vert) は括弧ではない約物だからである。\(||\) (|| = \Vert) も同様である。

面倒なら以下のようにマクロにしておくと、さらに伸縮性も備えて便利である。但し、高さが低くなり過ぎないように \mathstrut を挿入しておくことにした。

\newcommand{\abs}[1]{\left\lvert\mathstrut#1\right\rvert}
\newcommand{\norm}[1]{\left\lVert\mathstrut#1\right\rVert}
\[ \abs{x} \quad{\scriptsize\verb|\abs{x}|} \qquad \abs{\begin{matrix}1&0\\0&1\end{matrix}} \quad{\scriptsize\verb|\abs{\begin{matrix}1&0\\0&1\end{matrix}}|} \] \[ \norm{x} \quad{\scriptsize\verb|\norm{x}|} \qquad \norm{\begin{matrix}1&0\\0&1\end{matrix}} \quad{\scriptsize\verb|\norm{\begin{matrix}1&0\\0&1\end{matrix}}|} \]

このように伸縮性のある(か否かは問わず \left, \right, \middle を前置可能な)開き括弧・閉じ括弧とその他区切りを以下にあげておく。

\[ \underbrace{\left(\frac10\middle.\frac01\right)}_{\scriptsize\verb|()|} \quad \underbrace{\left\{\frac10\middle.\frac01\right\}}_{\scriptsize\verb|\{\}|} \quad \underbrace{\left\lbrace\frac10\middle.\frac01\right\rbrace}_{\scriptsize\verb|\[lr]brace|} \quad \underbrace{\left[\frac10\middle.\frac01\right]}_{\scriptsize\verb|[]|} \quad \underbrace{\left\lbrack\frac10\middle.\frac01\right\rbrack}_{\scriptsize\verb|\[lr]brack|} \quad \underbrace{\left\lt\frac10\middle.\frac01\right\gt}_{\scriptsize\verb|\lt\gt|} \quad \underbrace{\left\langle\frac10\middle.\frac01\right\rangle}_{\scriptsize\verb|\[lr]angle|} \quad \underbrace{\left\lvert\frac10\middle.\frac01\right\rvert}_{\scriptsize\verb|\[lr]vert|} \quad \underbrace{\left\lVert\frac10\middle\Vert\frac01\right\rVert}_{\scriptsize\verb|\[lr]Vert|} \quad \underbrace{\left\lceil\frac10\middle.\frac01\right\rceil}_{\scriptsize\verb|\[lr]ceil|} \quad \underbrace{\left\lfloor\frac10\middle.\frac01\right\rfloor}_{\scriptsize\verb|\[lr]floor|} \quad \underbrace{\left\lmoustache\frac10\middle.\frac01\right\rmoustache}_{\scriptsize\verb|\[lr]moustache|} \quad \underbrace{\left\lgroup\frac10\middle.\frac01\right\rgroup}_{\scriptsize\verb|\[lr]group|} \quad %\underbrace{\left\llparenthesis\frac10\middle.\frac01\right\rrparenshesis}_{\scriptsize\verb|\(ll|}rr)parenshesis| \quad %\underbrace{\left\llbracket\frac10\middle.\frac01\right\rrbracket}_{\scriptsize\verb|\(ll|}rr)bracket| \quad %\underbrace{\left\llfloor\frac10\middle.\frac01\right\rrfloor}_{\scriptsize\verb|\(ll|}rr)floor| \quad %\underbrace{\left\llceil\frac10\middle.\frac01\right\rrceil}_{\scriptsize\verb|\(ll|}rr)ceil| \quad %\underbrace{\left\lbag\frac10\middle.\frac01\right\rbag}_{\scriptsize\verb|\[lr]bag|} \quad %\underbrace{\left\Lbag\frac10\middle.\frac01\right\Rbag}_{\scriptsize\verb|\[LR]bag|} \quad %\underbrace{\left\lBrace\frac10\middle.\frac01\right\rBrace}_{\scriptsize\verb|\[lr]Brace|} \quad \] \[ \underbrace{\left\lparen\frac10\middle.\frac01\right\rparen}_{\scriptsize\verb|\[lr]paren|} \underbrace{\left\lang\frac10\middle.\frac01\right\rang}_{\scriptsize\verb|\[lr]ang|} \underbrace{\left\{\frac10\middle.\frac01\right.}_{\scriptsize\verb|\{.|} \underbrace{\left.\frac10\middle.\frac01\right\}}_{\scriptsize\verb|.\}|} \] \[ \underbrace{\left.\frac10\middle\vert\frac01\right.}_{\scriptsize\verb|\vert|} \quad \underbrace{\left.\frac10\middle|\frac01\right.}_{\scriptsize\verb!|!} \quad \underbrace{\left.\frac10\middle\Vert\frac01\right.}_{\scriptsize\verb|\Vert|} \quad \underbrace{\left.\frac10\middle\|\frac01\right.}_{\scriptsize\verb!\|!} \quad \underbrace{\left.\frac10\middle\Downarrow\frac01\right.}_{\scriptsize\verb|\Downarrow|} \quad \underbrace{\left.\frac10\middle\Uparrow\frac01\right.}_{\scriptsize\verb|\Uparrow|} \quad \underbrace{\left.\frac10\middle\Updownarrow\frac01\right.}_{\scriptsize\verb|\Updownarrow|} \quad \underbrace{\left.\frac10\middle\downarrow\frac01\right.}_{\scriptsize\verb|\downarrow|} \quad \underbrace{\left.\frac10\middle\uparrow\frac01\right.}_{\scriptsize\verb|\uparrow|} \quad \underbrace{\left.\frac10\middle\updownarrow\frac01\right.}_{\scriptsize\verb|\updownarrow|} \quad \underbrace{\left.\frac10\middle\backslash\frac01\right.}_{\scriptsize\verb|\backslash|} \quad \] \[ \underbrace{\left.\frac10\middle\mathslash\frac01\right.}_{\scriptsize\verb|\mathslash|} \quad \]

MathJax, KaTeX 互いに未サポートがあるが、MathJax では \backslash があるのに \mathslash がない。

水平矢印

水平方向に伸縮可能な矢印は以下の通りである。

\[ \xleftarrow[a\cdots b]{x\cdots y}\quad{\scriptsize\verb|\xleftarrow[a\cdots b]{x\cdots y}|} \qquad \xrightarrow[a\cdots b]{x\cdots y}\quad{\scriptsize\verb|\xrightarrow[a\cdots b]{x\cdots y}|} \qquad \xleftrightarrow[a\cdots b]{x\cdots y}\quad{\scriptsize\verb|\xleftrightarrow[a\cdots b]{x\cdots y}|} \] \[ \xtwoheadleftarrow[a\cdots b]{x\cdots y}\quad{\scriptsize\verb|\xtwoheadleftarrow[a\cdots b]{x\cdots y}|} \qquad \xtwoheadrightarrow[a\cdots b]{x\cdots y}\quad{\scriptsize\verb|\xtwoheadrightarrow[a\cdots b]{x\cdots y}|} \] \[ \xlongequal[a\cdots b]{x\cdots y}\quad{\scriptsize\verb|\xlongequal[a\cdots b]{x\cdots y}|} \]

MathJax と比べて KaTeX が既定で大変充実しているが、MathJax に mathtools パッケージを拡張することでかなり補うことができる。

矢印

以下は TeX コマンド名による矢印である。

\[ \begin{matrix} \gets&\to&\implies&\mapsto&\longmapsto&\leadsto&\restriction&\iff\\ {\scriptsize\verb|\gets|}&{\scriptsize\verb|\to|}&{\scriptsize\verb|\implies|}&{\scriptsize\verb|\mapsto|}&{\scriptsize\verb|\longmapsto|}&{\scriptsize\verb|\leadsto|}&{\scriptsize\verb|\restriction|}&{\scriptsize\verb|\iff|}\\ \leftharpoondown&\leftharpoonup&\rightharpoondown&\rightharpoonup&\downharpoonleft&\downharpoonright&\upharpoonleft&\upharpoonright\\ {\scriptsize\verb|\leftharpoondown|}&{\scriptsize\verb|\leftharpoonup|}&{\scriptsize\verb|\rightharpoondown|}&{\scriptsize\verb|\rightharpoonup|}&{\scriptsize\verb|\downharpoonleft|}&{\scriptsize\verb|\downharpoonright|}&{\scriptsize\verb|\upharpoonleft|}&{\scriptsize\verb|\upharpoonright|}\\ \leftarrow&\leftrightarrow&\rightarrow&\downarrow&\updownarrow&\uparrow&\swarrow&\searrow&\nwarrow&\nearrow\\ {\scriptsize\verb|\leftarrow|}&{\scriptsize\verb|\leftrightarrow|}&{\scriptsize\verb|\rightarrow|}&{\scriptsize\verb|\downarrow|}&{\scriptsize\verb|\updownarrow|}&{\scriptsize\verb|\uparrow|}&{\scriptsize\verb|\swarrow|}&{\scriptsize\verb|\searrow|}&{\scriptsize\verb|\nwarrow|}&{\scriptsize\verb|\nearrow|}\\ \leftleftarrows&\leftrightarrows&\rightrightarrows&\rightleftarrows&\downdownarrows&\upuparrows\\ {\scriptsize\verb|\leftleftarrows|}&{\scriptsize\verb|\leftrightarrows|}&{\scriptsize\verb|\rightrightarrows|}&{\scriptsize\verb|\rightleftarrows|}&{\scriptsize\verb|\downdownarrows|}&{\scriptsize\verb|\upuparrows|}\\ \Leftarrow&\Leftrightarrow&\Rightarrow&\Downarrow&\Updownarrow&\Uparrow\\ {\scriptsize\verb|\Leftarrow|}&{\scriptsize\verb|\Leftrightarrow|}&{\scriptsize\verb|\Rightarrow|}&{\scriptsize\verb|\Downarrow|}&{\scriptsize\verb|\Updownarrow|}&{\scriptsize\verb|\Uparrow|}\\ \longleftarrow&\longleftrightarrow&\longrightarrow&& \Longleftarrow&\Longleftrightarrow&\Longrightarrow\\ {\scriptsize\verb|\longleftarrow|}&{\scriptsize\verb|\longleftrightarrow|}&{\scriptsize\verb|\longrightarrow|}&& {\scriptsize\verb|\Longleftarrow|}&{\scriptsize\verb|\Longleftrightarrow|}&{\scriptsize\verb|\Longrightarrow|}\\ \nleftarrow&\nleftrightarrow&\nrightarrow&& \nLeftarrow&\nLeftrightarrow&\nRightarrow\\ {\scriptsize\verb|\nleftarrow|}&{\scriptsize\verb|\nleftrightarrow|}&{\scriptsize\verb|\nrightarrow|}&& {\scriptsize\verb|\nLeftarrow|}&{\scriptsize\verb|\nLeftrightarrow|}&{\scriptsize\verb|\nRightarrow|}\\ \leftarrowtail&\rightarrowtail& \leftrightsquigarrow&\rightsquigarrow& \leftrightharpoons&\rightleftharpoons& \Lsh&\Rsh\\ {\scriptsize\verb|\leftarrowtail|}&{\scriptsize\verb|\rightarrowtail|}& {\scriptsize\verb|\leftrightsquigarrow|}&{\scriptsize\verb|\rightsquigarrow|}& {\scriptsize\verb|\leftrightharpoons|}&{\scriptsize\verb|\rightleftharpoons|}& {\scriptsize\verb|\Lsh|}&{\scriptsize\verb|\Rsh|}\\ \circlearrowleft&\circlearrowright& \curvearrowleft&\curvearrowright& \dashleftarrow&\dashrightarrow& \hookleftarrow&\hookrightarrow\\ {\scriptsize\verb|\circlearrowleft|}&{\scriptsize\verb|\circlearrowright|}& {\scriptsize\verb|\curvearrowleft|}&{\scriptsize\verb|\curvearrowright|}& {\scriptsize\verb|\dashleftarrow|}&{\scriptsize\verb|\dashrightarrow|}& {\scriptsize\verb|\hookleftarrow|}&{\scriptsize\verb|\hookrightarrow|}\\ \looparrowleft&\looparrowright& \twoheadleftarrow&\twoheadrightarrow& \Lleftarrow&\Rrightarrow\\ {\scriptsize\verb|\looparrowleft|}&{\scriptsize\verb|\looparrowright|}& {\scriptsize\verb|\twoheadleftarrow|}&{\scriptsize\verb|\twoheadrightarrow|}& {\scriptsize\verb|\Lleftarrow|}&{\scriptsize\verb|\Rrightarrow|}\\ \end{matrix} \]

フォントの様子

MathJax と KaTeX で装備されているフォントには違いがある。以下に表示しておこう。

\[ \begin{array}{rl} \verb|\mathcal: |&\mathcal{ 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz }\\ \verb|\mathbb: |&\mathbb{ 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz }\\ \verb|\mathtt: |&\mathtt{ 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz }\\ \verb|\mathfrak: |&\mathfrak{ 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz }\\ \verb|\mathit: |&\mathit{ 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz }\\ \verb|\mathrm: |&\mathrm{ 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz }\\ \verb|\mathbf: |&\mathbf{ 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz }\\ \verb|\mathsf: |&\mathsf{ 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz }\\ \end{array} \]

MathJax の方が充実していることが、小文字の対応済みの様子でわかる。

演算子

他にも多くの演算子が TeX パッケージ等で定義されているので、Symbols defined by unicode-math が参考になるだろう。いくつか定義しておく。

\newcommand{\curvearrowleftplus}{\mathbin{⤽}}
\newcommand{\doubleplus}{\mathbin{⧺}}
\newcommand{\tripleplus}{\mathbin{⧻}}
\newcommand{\triangleplus}{\mathbin{⨹}}
\newcommand{\subsetplus}{\mathbin{⪿}}
\newcommand{\supsetplus}{\mathbin{⫀}}

\newcommand{\dotminus}{\mathbin{∸}}
\newcommand{\curvearrowrightminus}{\mathbin{⤼}}
\newcommand{\commaminus}{\mathbin{⨩}}
\newcommand{\minusdot}{\mathbin{⨪}}
\newcommand{\minusfdots}{\mathbin{⨫}}
\newcommand{\minusrdots}{\mathbin{⨬}}
\newcommand{\triangleminus}{\mathbin{⨺}}
\newcommand{\uminus}{\mathbin{⩁}}
\newcommand{\simminussim}{\mathbin{⩬}}
\newcommand{\lozengeminus}{\mathbin{⟠}}

\newcommand{\lftimes}{\mathbin{⧔}}
\newcommand{\rftimes}{\mathbin{⧕}}
\newcommand{\btimes}{\mathbin{⨲}}
\newcommand{\shuffle}{\mathbin{⧢}}
\newcommand{\intprod}{\mathbin{⨼}}
\newcommand{\intprodr}{\mathbin{⨽}}
\newcommand{\smashtimes}{\mathbin{⨳}}
\newcommand{\closedvarcupsmashprod}{\mathbin{⩐}}
\newcommand{\dottimes}{\mathbin{⨰}}
\newcommand{\timesbar}{\mathbin{⨱}}
\newcommand{\triangletimes}{\mathbin{⨻}}
\newcommand{\submult}{\mathbin{⫁}}
\newcommand{\supmult}{\mathbin{⫂}}

\newcommand{\obot}{\mathbin{⦺}}
\newcommand{\odotslashdot}{\mathbin{⦼}}
\newcommand{\odiv}{\mathbin{⨸}}
\[ \begin{array}{llllllll} A\curvearrowleftplus B &\verb|\curvearrowleftplus| & A\doubleplus B &\verb|\doubleplus| & A\tripleplus B &\verb|\tripleplus| & A\triangleplus B &\verb|\triangleplus| \\ A\subsetplus B &\verb|\subsetplus| & A\supsetplus B &\verb|\supsetplus| & &\\ A\dotminus B &\verb|\dotminus| & A\curvearrowrightminus B &\verb|\curvearrowrightminus| & A\commaminus B &\verb|\commaminus| & A\minusdot B &\verb|\minusdot| \\ A\minusfdots B &\verb|\minusfdots| & A\minusrdots B &\verb|\minusrdots| & A\triangleminus B &\verb|\triangleminus| & A\uminus B &\verb|\uminus| \\ A\simminussim B &\verb|\simminussim| & A\lozengeminus B &\verb|\lozengeminus| & &\\ A\lftimes B &\verb|\lftimes| & A\rftimes B &\verb|\rftimes| & A\shuffle B &\verb|\shuffle| & A\btimes B &\verb|\btimes| \\ A\smashtimes B &\verb|\smashtimes| & A\intprod B &\verb|\intprod| & A\intprodr B &\verb|\intprodr| & A\closedvarcupsmashprod B &\verb|\closedvarcupsmashprod| \\ A\dottimes B &\verb|\dottimes| & A\timesbar B &\verb|\timesbar| & A\triangletimes B &\verb|\triangletimes| \\ A\submult B &\verb|\submult| & A\supmult B &\verb|\supmult| & &\\ A\obot B &\verb|\obot| & A\odotslashdot B &\verb|\odotslashdot| & A\odiv B &\verb|\odiv| \\ \end{array} \]

上付き・下付き括弧

\overparen, \underparen
\[\overparen{x\cdots y}^z\]
\[\underparen{x\cdots y}_z\]
\overbrace, \underbrace
\[\overbrace{x\cdots y}^z\]
\[\underbrace{x\cdots y}_z\]
\overgroup, \undergroup
\[\overgroup{x\cdots y}^z\]
\[\undergroup{x\cdots y}_z\]

MathJax では \*group は未サポート。KaTeX では \*bracket は未サポート。

これらはレイアウトは別として Unicode でコードポイントに割り当てられているので、一応コマンド名を付けておいた。

合字

\[ \begin{array}{l|cccccccccccccccc} \texttt{U+00300}& \UCgrave{c}& \UCacute{c}& \UChat{c}& \UCtilde{c}& \UCbar{c}& \UCbreve{c}& \overbar{c}& \UCdot{c}& \UCddot{c}& \ovhook{c}& \ocirc{c}& \Acute{c}& \UCcheck{c}& \ovline{c}& \oVline{c}& \Grave{c}\\ \texttt{U+00310}& \candra{c}& \invbreve{c}& \oturnedcomma{c}& \ocomma{c}& \orevcomma{c}& \ocommatopright{c}& \gravebelow{c}& \acutebelow{c}& \lefttackbelow{c}& \righttackbelow{c}& \droang{c}& \ohorn{c}& \lhcircbelow{c}& \botbelow{c}& \topbelow{c}& \plusbelow{c}\\ \texttt{U+00320}& \minusbelow{c}& \phookbelow{c}& \rhookbelow{c}& \dotbelow{c}& \ddotbelow{c}& \circbelow{c}& \commabelow{c}& \cedilla{c}& \ogonek{c}& \vertbelow{c}& \bridgebelow{c}& \invArchbelow{c}& \caronbelow{c}& \hatbelow{c}& \brevebelow{c}& \invbrevebelow{c}\\ \texttt{U+00330}& \tildebelow{c}& \barbelow{c}& \underbar{c}& \underBar{c}& \tildeoverlay{c}& \baroverlay{c}& \lineoverlay{c}& \soloverlay{c}& \longsoloverlay{c}& \rhcircbelow{c}& \invbridgebelow{c}& \sqbelow{c}& \seagullbelow{c}& \timesabove{c}& \verttilde{c}& \Overline{c}\\ \texttt{U+00340}& \gravetone{c}& \acutetone{c}& \perispomeni{c}& \koronis{c}& \dialytika{c}& \ypogegrammeni{c}& \obridge{c}& \eqqbelow{c}& \Vertbelow{c}& \leftanglebelow{c}& \ntilde{c}& \ohomothetic{c}& \approxabove{c}& \leftrightarrowbelow{c}& \uparrowbelow{c}\\ \texttt{U+00350}& \gtrabove{c}& \lhcircabove{c}& \fermataabove{c}& \timesbelow{c}& \lessbelow{c}& \gtrbelow{c}& \gtrlessbelow{c}& \rhcircabove{c}& \dotright{c}& \asterbelow{c}& \Circbelow{c}& \zigzagabove{c}& \Brevebelow{c}& \Breve{c}& \Macron{c}& \Macronbelow{c}\\ \texttt{U+00360}& \Tilde{c}& \Invbreve{c}& \longrightarrowbelow{c}& \aaccent{c}& \eaccent{c}& \iaccent{c}& \oaccent{c}& \uaccent{c}& \caccent{c}& \daccent{c}& \haccent{c}& \maccent{c}& \raccent{c}& \taccent{c}& \vaccent{c}& \xaccent{c}\\ \texttt{U+01AB0}& \Hat{c}& \odotcircdot{c}& \oinfty{c}& \odownarrow{c}& \otherefore{c}& \Timesbelow{c}& \hzigzagbelow{c}& \openmarkbelow{c}& \Openmarkbelow{c}& \slashbelow{c}& \sslashbelow{c}& \parensabove{c}& \Parensabove{c}& \parensbelow{c}& \parensoverlay{c}& \wbelow{c}\\ \texttt{U+01AC0}& \wupbelow{c}\\ \texttt{U+01DC0}& \dotgrave{c}& \dotacute{c}& \snakebelow{c}& \suspensionabove{c}& \macronacute{c}& \gravemacron{c}& \macrongrave{c}& \acutemacron{c}& \graveacutegrave{c}& \acutegraveacute{c}& \rbelow{c}& \brevemacron{c}& \macronbreve{c}& \longhat{c}& \oogonek{c}& \zigzagbelow{c}\\ \texttt{U+01DD0}& \isbelow{c}& \urabove{c}& \usabove{c}& \flattenedopenaabove{c}& \aeabove{c}& \aoabove{c}& \avabove{c}& \cedillacabove{c}& \insulardabove{c}& \ethabove{c}& \gabove{c}& \scgabove{c}& \kabove{c}& \labove{c}& \sclabove{c}& \scmabove{c}\\ \texttt{U+01DE0}& \nabove{c}& \scnabove{c}& \scrabove{c}& \rrodundaabove{c}& \sabove{c}& \longsabove{c}& \zabove{c}& \alphaabove{c}& \babove{c}& \betaabove{c}& \schwaabove{c}& \fabove{c}& \Tildelabove{c}& \slashoabove{c}& \pabove{c}& \eshabove{c}\\ \texttt{U+01DF0}& \slashhabove{c}& \wabove{c}& \ddotaabove{c}& \ddotoabove{c}& \ddotuabove{c}& \botabove{c}& \kavykaright{c}& \kavykaleft{c}& \dotleft{c}& \wideinvbridgebelow{c}& & \deletionabove{c}& \longinvbrevebelow{c}& \approxbelow{c}& \lessabove{c}& \gtrcheckbelow{c}\\ \texttt{U+020D0}& \leftharpoonaccent{c}& \rightharpoonaccent{c}& \vertoverlay{c}& \shortvertoverlay{c}& \acwarrowabove{c}& \cwarrowabove{c}& \leftarrowabove{c}& \UCvec{c}& \circoverlay{c}& \cwcircoverlay{c}& \acwcircoverlay{c}& \UCdddot{c}& \UCddddot{c}& \fcircle{c}& \fsquare{c}& \fdiamond{c}\\ \texttt{U+020E0}& \fcirclebsol{c}& \leftrightarrowabove{c}& \fscreen{c}& \fkeycap{c}& \ftriangleup{c}& \bsoloverlay{c}& \Vertoverlay{c}& \annuity{c}& \threeunderdot{c}& \widebridgeabove{c}& \leftarrowoverlay{c}& \xsslashoverlay{c}& \rightharpoondownbelow{c}& \leftharpoondownbelow{c}& \leftarrowbelow{c}& \rightarrowbelow{c}\\ \texttt{U+020F0}& \asteraccent{c}& \end{array} \]

これは理屈の上では、Unicode の合字を使えば TeX のコマンドとして実現可能であるが、合字の結果をみると、KaTeX ではなぜか所々成功しない。これは現時点で謎である。KaTeX サポートの \char コマンドで回避できることが判り、サロゲートペア以外の Unicode 問題は解決したと思われる。品質はどうあれとにかく、以下の合字のコマンド名をすべて TeX の命名慣習に倣って定義しておいた。

合字の結果 U+00300 𝑥̀ 𝐶̀ grave accent
\[\grave{x} \quad\verb|\grave{x}| \qquad\grave{C} \quad\verb|\grave{C}|\]
U+00301 𝑥́ 𝐶́ acute accent
\[\acute{x} \quad\verb|\acute{x}| \qquad\acute{C} \quad\verb|\acute{C}|\]
U+00302 𝑥̂ 𝐶̂ circumflex
\[\hat{x} \quad\verb|\hat{x}| \qquad\hat{C} \quad\verb|\hat{C}|\]
U+00303 𝑥̃ 𝐶̃ tilde
\[\tilde{x} \quad\verb|\tilde{x}| \qquad\tilde{C} \quad\verb|\tilde{C}|\]
U+00304 𝑥̄ 𝐶̄ macron
\[\bar{x} \quad\verb|\bar{x}| \qquad\bar{C} \quad\verb|\bar{C}|\]
U+00305 𝑥̅ 𝐶̅ overline
\[\overbar{x} \quad\verb|\overbar{x}| \qquad\overbar{C} \quad\verb|\overbar{C}|\]
U+00306 𝑥̆ 𝐶̆ breve
\[\breve{x} \quad\verb|\breve{x}| \qquad\breve{C} \quad\verb|\breve{C}|\]
U+00307 𝑥̇ 𝐶̇ dot above
\[\dot{x} \quad\verb|\dot{x}| \qquad\dot{C} \quad\verb|\dot{C}|\]
U+00308 𝑥̈ 𝐶̈ diaeresis
\[\ddot{x} \quad\verb|\ddot{x}| \qquad\ddot{C} \quad\verb|\ddot{C}|\]
U+00309 𝑥̉ 𝐶̉ hook above
\[\ovhook{x} \quad\verb|\ovhook{x}| \qquad\ovhook{C} \quad\verb|\ovhook{C}|\]
U+0030A 𝑥̊ 𝐶̊ ring above
\[\ocirc{x} \quad\verb|\ocirc{x}| \qquad\ocirc{C} \quad\verb|\ocirc{C}|\]
U+0030B 𝑥̋ 𝐶̋ double acute
\[\Acute{x} \quad\verb|\Acute{x}| \qquad\Acute{C} \quad\verb|\Acute{C}|\]
U+0030C 𝑥̌ 𝐶̌ caron
\[\check{x} \quad\verb|\check{x}| \qquad\check{C} \quad\verb|\check{C}|\]
U+0030D 𝑥̍ 𝐶̍ vertical line above
\[\ovline{x} \quad\verb|\ovline{x}| \qquad\ovline{C} \quad\verb|\ovline{C}|\]
U+0030E 𝑥̎ 𝐶̎ double vertical line above
\[\oVline{x} \quad\verb|\oVline{x}| \qquad\oVline{C} \quad\verb|\oVline{C}|\]
U+0030F 𝑥̏ 𝐶̏ double grave
\[\Grave{x} \quad\verb|\Grave{x}| \qquad\Grave{C} \quad\verb|\Grave{C}|\]
U+00310 𝑥̐ 𝐶̐ candrabindu
\[\candra{x} \quad\verb|\candra{x}| \qquad\candra{C} \quad\verb|\candra{C}|\]
U+00311 𝑥̑ 𝐶̑ inverted breve
\[\invbreve{x} \quad\verb|\invbreve{x}| \qquad\invbreve{C} \quad\verb|\invbreve{C}|\]
U+00312 𝑥̒ 𝐶̒ turned comma above
\[\oturnedcomma{x} \quad\verb|\oturnedcomma{x}| \qquad\oturnedcomma{C} \quad\verb|\oturnedcomma{C}|\]
U+00313 𝑥̓ 𝐶̓ comma above
\[\ocomma{x} \quad\verb|\ocomma{x}| \qquad\ocomma{C} \quad\verb|\ocomma{C}|\]
U+00314 𝑥̔ 𝐶̔ reversed comma
\[\orevcomma{x} \quad\verb|\orevcomma{x}| \qquad\orevcomma{C} \quad\verb|\orevcomma{C}|\]
U+00315 𝑥̕ 𝐶̕ comma above right
\[\ocommatopright{x} \quad\verb|\ocommatopright{x}| \qquad\ocommatopright{C} \quad\verb|\ocommatopright{C}|\]
U+00316 𝑥̖ 𝐶̖ grave accent below
\[\gravebelow{x} \quad\verb|\gravebelow{x}| \qquad\gravebelow{C} \quad\verb|\gravebelow{C}|\]
U+00317 𝑥̗ 𝐶̗ acute accent below
\[\acutebelow{x} \quad\verb|\acutebelow{x}| \qquad\acutebelow{C} \quad\verb|\acutebelow{C}|\]
U+00318 𝑥̘ 𝐶̘ left tack below
\[\lefttackbelow{x} \quad\verb|\lefttackbelow{x}| \qquad\lefttackbelow{C} \quad\verb|\lefttackbelow{C}|\]
U+00319 𝑥̙ 𝐶̙ right tack below
\[\righttackbelow{x} \quad\verb|\righttackbelow{x}| \qquad\righttackbelow{C} \quad\verb|\righttackbelow{C}|\]
U+0031A 𝑥̚ 𝐶̚ left angle above
\[\droang{x} \quad\verb|\droang{x}| \qquad\droang{C} \quad\verb|\droang{C}|\]
U+0031B 𝑥̛ 𝐶̛ horn
\[\ohorn{x} \quad\verb|\ohorn{x}| \qquad\ohorn{C} \quad\verb|\ohorn{C}|\]
U+0031C 𝑥̜ 𝐶̜ left half ring below
\[\lhcircbelow{x} \quad\verb|\lhcircbelow{x}| \qquad\lhcircbelow{C} \quad\verb|\lhcircbelow{C}|\]
U+0031D 𝑥̝ 𝐶̝ up tack below
\[\botbelow{x} \quad\verb|\botbelow{x}| \qquad\botbelow{C} \quad\verb|\botbelow{C}|\]
U+0031E 𝑥̞ 𝐶̞ down tack below
\[\topbelow{x} \quad\verb|\topbelow{x}| \qquad\topbelow{C} \quad\verb|\topbelow{C}|\]
U+0031F 𝑥̟ 𝐶̟ plus sign below
\[\plusbelow{x} \quad\verb|\plusbelow{x}| \qquad\plusbelow{C} \quad\verb|\plusbelow{C}|\]
U+00320 𝑥̠ 𝐶̠ minus sign below
\[\minusbelow{x} \quad\verb|\minusbelow{x}| \qquad\minusbelow{C} \quad\verb|\minusbelow{C}|\]
U+00321 𝑥̡ 𝐶̡ palatalized hook below
\[\phookbelow{x} \quad\verb|\phookbelow{x}| \qquad\phookbelow{C} \quad\verb|\phookbelow{C}|\]
U+00322 𝑥̢ 𝐶̢ retroflex hook below
\[\rhookbelow{x} \quad\verb|\rhookbelow{x}| \qquad\rhookbelow{C} \quad\verb|\rhookbelow{C}|\]
U+00323 𝑥̣ 𝐶̣ dot below
\[\dotbelow{x} \quad\verb|\dotbelow{x}| \qquad\dotbelow{C} \quad\verb|\dotbelow{C}|\]
U+00324 𝑥̤ 𝐶̤ diaeresis below
\[\ddotbelow{x} \quad\verb|\ddotbelow{x}| \qquad\ddotbelow{C} \quad\verb|\ddotbelow{C}|\]
U+00325 𝑥̥ 𝐶̥ ring below
\[\circbelow{x} \quad\verb|\circbelow{x}| \qquad\circbelow{C} \quad\verb|\circbelow{C}|\]
U+00326 𝑥̦ 𝐶̦ comma below
\[\commabelow{x} \quad\verb|\commabelow{x}| \qquad\commabelow{C} \quad\verb|\commabelow{C}|\]
U+00327 𝑥̧ 𝐶̧ cedilla
\[\cedilla{x} \quad\verb|\cedilla{x}| \qquad\cedilla{C} \quad\verb|\cedilla{C}|\]
U+00328 𝑥̨ 𝐶̨ ogonek
\[\ogonek{x} \quad\verb|\ogonek{x}| \qquad\ogonek{C} \quad\verb|\ogonek{C}|\]
U+00329 𝑥̩ 𝐶̩ vertical line below
\[\vertbelow{x} \quad\verb|\vertbelow{x}| \qquad\vertbelow{C} \quad\verb|\vertbelow{C}|\]
U+0032A 𝑥̪ 𝐶̪ bridge below
\[\bridgebelow{x} \quad\verb|\bridgebelow{x}| \qquad\bridgebelow{C} \quad\verb|\bridgebelow{C}|\]
U+0032B 𝑥̫ 𝐶̫ inverted double arch below
\[\invArchbelow{x} \quad\verb|\invArchbelow{x}| \qquad\invArchbelow{C} \quad\verb|\invArchbelow{C}|\]
U+0032C 𝑥̬ 𝐶̬ caron below
\[\caronbelow{x} \quad\verb|\caronbelow{x}| \qquad\caronbelow{C} \quad\verb|\caronbelow{C}|\]
U+0032D 𝑥̭ 𝐶̭ circumflex accent below
\[\hatbelow{x} \quad\verb|\hatbelow{x}| \qquad\hatbelow{C} \quad\verb|\hatbelow{C}|\]
U+0032E 𝑥̮ 𝐶̮ breve below
\[\brevebelow{x} \quad\verb|\brevebelow{x}| \qquad\brevebelow{C} \quad\verb|\brevebelow{C}|\]
U+0032F 𝑥̯ 𝐶̯ inverted breve below
\[\invbrevebelow{x} \quad\verb|\invbrevebelow{x}| \qquad\invbrevebelow{C} \quad\verb|\invbrevebelow{C}|\]
U+00330 𝑥̰ 𝐶̰ tilde below
\[\tildebelow{x} \quad\verb|\tildebelow{x}| \qquad\tildebelow{C} \quad\verb|\tildebelow{C}|\]
U+00331 𝑥̱ 𝐶̱ macron below
\[\barbelow{x} \quad\verb|\barbelow{x}| \qquad\barbelow{C} \quad\verb|\barbelow{C}|\]
U+00332 𝑥̲ 𝐶̲ low line
\[\underbar{x} \quad\verb|\underbar{x}| \qquad\underbar{C} \quad\verb|\underbar{C}|\]
U+00333 𝑥̳ 𝐶̳ double low line
\[\underBar{x} \quad\verb|\underBar{x}| \qquad\underBar{C} \quad\verb|\underBar{C}|\]
U+00334 𝑥̴ 𝐶̴ tilde overlay
\[\tildeoverlay{x} \quad\verb|\tildeoverlay{x}| \qquad\tildeoverlay{C} \quad\verb|\tildeoverlay{C}|\]
U+00335 𝑥̵ 𝐶̵ short stroke overlay
\[\baroverlay{x} \quad\verb|\baroverlay{x}| \qquad\baroverlay{C} \quad\verb|\baroverlay{C}|\]
U+00336 𝑥̶ 𝐶̶ long stroke overlay
\[\lineoverlay{x} \quad\verb|\lineoverlay{x}| \qquad\lineoverlay{C} \quad\verb|\lineoverlay{C}|\]
U+00337 𝑥̷ 𝐶̷ short solidus overlay
\[\soloverlay{x} \quad\verb|\soloverlay{x}| \qquad\soloverlay{C} \quad\verb|\soloverlay{C}|\]
U+00338 𝑥̸ 𝐶̸ long solidus overlay
\[\longsoloverlay{x} \quad\verb|\longsoloverlay{x}| \qquad\longsoloverlay{C} \quad\verb|\longsoloverlay{C}|\]
U+00339 𝑥̹ 𝐶̹ right half ring below
\[\rhcircbelow{x} \quad\verb|\rhcircbelow{x}| \qquad\rhcircbelow{C} \quad\verb|\rhcircbelow{C}|\]
U+0033A 𝑥̺ 𝐶̺ inverted bridge below
\[\invbridgebelow{x} \quad\verb|\invbridgebelow{x}| \qquad\invbridgebelow{C} \quad\verb|\invbridgebelow{C}|\]
U+0033B 𝑥̻ 𝐶̻ square below
\[\sqbelow{x} \quad\verb|\sqbelow{x}| \qquad\sqbelow{C} \quad\verb|\sqbelow{C}|\]
U+0033C 𝑥̼ 𝐶̼ seagull below
\[\seagullbelow{x} \quad\verb|\seagullbelow{x}| \qquad\seagullbelow{C} \quad\verb|\seagullbelow{C}|\]
U+0033D 𝑥̽ 𝐶̽ x above
\[\timesabove{x} \quad\verb|\timesabove{x}| \qquad\timesabove{C} \quad\verb|\timesabove{C}|\]
U+0033E 𝑥̾ 𝐶̾ vertical tilde
\[\verttilde{x} \quad\verb|\verttilde{x}| \qquad\verttilde{C} \quad\verb|\verttilde{C}|\]
U+0033F 𝑥̿ 𝐶̿ double overline
\[\Overline{x} \quad\verb|\Overline{x}| \qquad\Overline{C} \quad\verb|\Overline{C}|\]
U+00340 𝑥̀ 𝐶̀ grave tone mark
\[\gravetone{x} \quad\verb|\gravetone{x}| \qquad\gravetone{C} \quad\verb|\gravetone{C}|\]
U+00341 𝑥́ 𝐶́ acute tone mark
\[\acutetone{x} \quad\verb|\acutetone{x}| \qquad\acutetone{C} \quad\verb|\acutetone{C}|\]
U+00342 𝑥͂ 𝐶͂ greek perispomeni
\[\perispomeni{x} \quad\verb|\perispomeni{x}| \qquad\perispomeni{C} \quad\verb|\perispomeni{C}|\]
U+00343 𝑥̓ 𝐶̓ greek koronis
\[\koronis{x} \quad\verb|\koronis{x}| \qquad\koronis{C} \quad\verb|\koronis{C}|\]
U+00344 𝑥̈́ 𝐶̈́ greek dialytika tonos
\[\dialytika{x} \quad\verb|\dialytika{x}| \qquad\dialytika{C} \quad\verb|\dialytika{C}|\]
U+00345 𝑥ͅ 𝐶ͅ greek ypogegrammeni
\[\ypogegrammeni{x} \quad\verb|\ypogegrammeni{x}| \qquad\ypogegrammeni{C} \quad\verb|\ypogegrammeni{C}|\]
U+00346 𝑥͆ 𝐶͆ bridge above
\[\obridge{x} \quad\verb|\obridge{x}| \qquad\obridge{C} \quad\verb|\obridge{C}|\]
U+00347 𝑥͇ 𝐶͇ equals sign below
\[\eqqbelow{x} \quad\verb|\eqqbelow{x}| \qquad\eqqbelow{C} \quad\verb|\eqqbelow{C}|\]
U+00348 𝑥͈ 𝐶͈ double vertical line below
\[\Vertbelow{x} \quad\verb|\Vertbelow{x}| \qquad\Vertbelow{C} \quad\verb|\Vertbelow{C}|\]
U+00349 𝑥͉ 𝐶͉ left angle below
\[\leftanglebelow{x} \quad\verb|\leftanglebelow{x}| \qquad\leftanglebelow{C} \quad\verb|\leftanglebelow{C}|\]
U+0034A 𝑥͊ 𝐶͊ not tilde above
\[\ntilde{x} \quad\verb|\ntilde{x}| \qquad\ntilde{C} \quad\verb|\ntilde{C}|\]
U+0034B 𝑥͋ 𝐶͋ homothetic above
\[\ohomothetic{x} \quad\verb|\ohomothetic{x}| \qquad\ohomothetic{C} \quad\verb|\ohomothetic{C}|\]
U+0034C 𝑥͌ 𝐶͌ almost equal to above
\[\approxabove{x} \quad\verb|\approxabove{x}| \qquad\approxabove{C} \quad\verb|\approxabove{C}|\]
U+0034D 𝑥͍ 𝐶͍ left right arrow below
\[\leftrightarrowbelow{x} \quad\verb|\leftrightarrowbelow{x}| \qquad\leftrightarrowbelow{C} \quad\verb|\leftrightarrowbelow{C}|\]
U+0034E 𝑥͎ 𝐶͎ upwards arrow below
\[\uparrowbelow{x} \quad\verb|\uparrowbelow{x}| \qquad\uparrowbelow{C} \quad\verb|\uparrowbelow{C}|\]
U+00350 𝑥͐ 𝐶͐ right arrowhead above
\[\gtrabove{x} \quad\verb|\gtrabove{x}| \qquad\gtrabove{C} \quad\verb|\gtrabove{C}|\]
U+00351 𝑥͑ 𝐶͑ left half ring above
\[\lhcircabove{x} \quad\verb|\lhcircabove{x}| \qquad\lhcircabove{C} \quad\verb|\lhcircabove{C}|\]
U+00352 𝑥͒ 𝐶͒ fermata
\[\fermataabove{x} \quad\verb|\fermataabove{x}| \qquad\fermataabove{C} \quad\verb|\fermataabove{C}|\]
U+00353 𝑥͓ 𝐶͓ x below
\[\timesbelow{x} \quad\verb|\timesbelow{x}| \qquad\timesbelow{C} \quad\verb|\timesbelow{C}|\]
U+00354 𝑥͔ 𝐶͔ left arrowhead below
\[\lessbelow{x} \quad\verb|\lessbelow{x}| \qquad\lessbelow{C} \quad\verb|\lessbelow{C}|\]
U+00355 𝑥͕ 𝐶͕ right arrowhead below
\[\gtrbelow{x} \quad\verb|\gtrbelow{x}| \qquad\gtrbelow{C} \quad\verb|\gtrbelow{C}|\]
U+00356 𝑥͖ 𝐶͖ right arrowhead and up arrowhead below
\[\gtrlessbelow{x} \quad\verb|\gtrlessbelow{x}| \qquad\gtrlessbelow{C} \quad\verb|\gtrlessbelow{C}|\]
U+00357 𝑥͗ 𝐶͗ right half ring above
\[\rhcircabove{x} \quad\verb|\rhcircabove{x}| \qquad\rhcircabove{C} \quad\verb|\rhcircabove{C}|\]
U+00358 𝑥͘ 𝐶͘ dot above right
\[\dotright{x} \quad\verb|\dotright{x}| \qquad\dotright{C} \quad\verb|\dotright{C}|\]
U+00359 𝑥͙ 𝐶͙ asterisk below
\[\asterbelow{x} \quad\verb|\asterbelow{x}| \qquad\asterbelow{C} \quad\verb|\asterbelow{C}|\]
U+0035A 𝑥͚ 𝐶͚ double ring below
\[\Circbelow{x} \quad\verb|\Circbelow{x}| \qquad\Circbelow{C} \quad\verb|\Circbelow{C}|\]
U+0035B 𝑥͛ 𝐶͛ zigzag above
\[\zigzagabove{x} \quad\verb|\zigzagabove{x}| \qquad\zigzagabove{C} \quad\verb|\zigzagabove{C}|\]
U+0035C 𝑥͜ 𝐶͜ double breve below
\[\Brevebelow{x} \quad\verb|\Brevebelow{x}| \qquad\Brevebelow{C} \quad\verb|\Brevebelow{C}|\]
U+0035D 𝑥͝ 𝐶͝ double breve
\[\Breve{x} \quad\verb|\Breve{x}| \qquad\Breve{C} \quad\verb|\Breve{C}|\]
U+0035E 𝑥͞ 𝐶͞ double macron
\[\Macron{x} \quad\verb|\Macron{x}| \qquad\Macron{C} \quad\verb|\Macron{C}|\]
U+0035F 𝑥͟ 𝐶͟ double macron below
\[\Macronbelow{x} \quad\verb|\Macronbelow{x}| \qquad\Macronbelow{C} \quad\verb|\Macronbelow{C}|\]
U+00360 𝑥͠ 𝐶͠ double tilde
\[\Tilde{x} \quad\verb|\Tilde{x}| \qquad\Tilde{C} \quad\verb|\Tilde{C}|\]
U+00361 𝑥͡ 𝐶͡ double inverted breve
\[\Invbreve{x} \quad\verb|\Invbreve{x}| \qquad\Invbreve{C} \quad\verb|\Invbreve{C}|\]
U+00362 𝑥͢ 𝐶͢ double rightwards arrow below
\[\longrightarrowbelow{x} \quad\verb|\longrightarrowbelow{x}| \qquad\longrightarrowbelow{C} \quad\verb|\longrightarrowbelow{C}|\]
U+00363 𝑥ͣ 𝐶ͣ latin small letter a
\[\aaccent{x} \quad\verb|\aaccent{x}| \qquad\aaccent{C} \quad\verb|\aaccent{C}|\]
U+00364 𝑥ͤ 𝐶ͤ latin small letter e
\[\eaccent{x} \quad\verb|\eaccent{x}| \qquad\eaccent{C} \quad\verb|\eaccent{C}|\]
U+00365 𝑥ͥ 𝐶ͥ latin small letter i
\[\iaccent{x} \quad\verb|\iaccent{x}| \qquad\iaccent{C} \quad\verb|\iaccent{C}|\]
U+00366 𝑥ͦ 𝐶ͦ latin small letter o
\[\oaccent{x} \quad\verb|\oaccent{x}| \qquad\oaccent{C} \quad\verb|\oaccent{C}|\]
U+00367 𝑥ͧ 𝐶ͧ latin small letter u
\[\uaccent{x} \quad\verb|\uaccent{x}| \qquad\uaccent{C} \quad\verb|\uaccent{C}|\]
U+00368 𝑥ͨ 𝐶ͨ latin small letter c
\[\caccent{x} \quad\verb|\caccent{x}| \qquad\caccent{C} \quad\verb|\caccent{C}|\]
U+00369 𝑥ͩ 𝐶ͩ latin small letter d
\[\daccent{x} \quad\verb|\daccent{x}| \qquad\daccent{C} \quad\verb|\daccent{C}|\]
U+0036A 𝑥ͪ 𝐶ͪ latin small letter h
\[\haccent{x} \quad\verb|\haccent{x}| \qquad\haccent{C} \quad\verb|\haccent{C}|\]
U+0036B 𝑥ͫ 𝐶ͫ latin small letter m
\[\maccent{x} \quad\verb|\maccent{x}| \qquad\maccent{C} \quad\verb|\maccent{C}|\]
U+0036C 𝑥ͬ 𝐶ͬ latin small letter r
\[\raccent{x} \quad\verb|\raccent{x}| \qquad\raccent{C} \quad\verb|\raccent{C}|\]
U+0036D 𝑥ͭ 𝐶ͭ latin small letter t
\[\taccent{x} \quad\verb|\taccent{x}| \qquad\taccent{C} \quad\verb|\taccent{C}|\]
U+0036E 𝑥ͮ 𝐶ͮ latin small letter v
\[\vaccent{x} \quad\verb|\vaccent{x}| \qquad\vaccent{C} \quad\verb|\vaccent{C}|\]
U+0036F 𝑥ͯ 𝐶ͯ latin small letter x
\[\xaccent{x} \quad\verb|\xaccent{x}| \qquad\xaccent{C} \quad\verb|\xaccent{C}|\]
U+01AB0 𝑥᪰ 𝐶᪰ doubled circumflex accent
\[\Hat{x} \quad\verb|\Hat{x}| \qquad\Hat{C} \quad\verb|\Hat{C}|\]
U+01AB1 𝑥᪱ 𝐶᪱ diaeresis-ring
\[\odotcircdot{x} \quad\verb|\odotcircdot{x}| \qquad\odotcircdot{C} \quad\verb|\odotcircdot{C}|\]
U+01AB2 𝑥᪲ 𝐶᪲ infinity
\[\oinfty{x} \quad\verb|\oinfty{x}| \qquad\oinfty{C} \quad\verb|\oinfty{C}|\]
U+01AB3 𝑥᪳ 𝐶᪳ downwards arrow
\[\odownarrow{x} \quad\verb|\odownarrow{x}| \qquad\odownarrow{C} \quad\verb|\odownarrow{C}|\]
U+01AB4 𝑥᪴ 𝐶᪴ triple dot
\[\otherefore{x} \quad\verb|\otherefore{x}| \qquad\otherefore{C} \quad\verb|\otherefore{C}|\]
U+01AB5 𝑥᪵ 𝐶᪵ x-x below
\[\Timesbelow{x} \quad\verb|\Timesbelow{x}| \qquad\Timesbelow{C} \quad\verb|\Timesbelow{C}|\]
U+01AB6 𝑥᪶ 𝐶᪶ wiggly line below
\[\hzigzagbelow{x} \quad\verb|\hzigzagbelow{x}| \qquad\hzigzagbelow{C} \quad\verb|\hzigzagbelow{C}|\]
U+01AB7 𝑥᪷ 𝐶᪷ open mark below
\[\openmarkbelow{x} \quad\verb|\openmarkbelow{x}| \qquad\openmarkbelow{C} \quad\verb|\openmarkbelow{C}|\]
U+01AB8 𝑥᪸ 𝐶᪸ double open mark below
\[\Openmarkbelow{x} \quad\verb|\Openmarkbelow{x}| \qquad\Openmarkbelow{C} \quad\verb|\Openmarkbelow{C}|\]
U+01AB9 𝑥᪹ 𝐶᪹ light centralization stroke below
\[\slashbelow{x} \quad\verb|\slashbelow{x}| \qquad\slashbelow{C} \quad\verb|\slashbelow{C}|\]
U+01ABA 𝑥᪺ 𝐶᪺ strong centralization stroke below
\[\sslashbelow{x} \quad\verb|\sslashbelow{x}| \qquad\sslashbelow{C} \quad\verb|\sslashbelow{C}|\]
U+01ABB 𝑥᪻ 𝐶᪻ parentheses above
\[\parensabove{x} \quad\verb|\parensabove{x}| \qquad\parensabove{C} \quad\verb|\parensabove{C}|\]
U+01ABC 𝑥᪼ 𝐶᪼ double parentheses above
\[\Parensabove{x} \quad\verb|\Parensabove{x}| \qquad\Parensabove{C} \quad\verb|\Parensabove{C}|\]
U+01ABD 𝑥᪽ 𝐶᪽ parentheses below
\[\parensbelow{x} \quad\verb|\parensbelow{x}| \qquad\parensbelow{C} \quad\verb|\parensbelow{C}|\]
U+01ABE 𝑥᪾ 𝐶᪾ parentheses overlay
\[\parensoverlay{x} \quad\verb|\parensoverlay{x}| \qquad\parensoverlay{C} \quad\verb|\parensoverlay{C}|\]
U+01ABF 𝑥ᪿ 𝐶ᪿ latin small letter w below
\[\wbelow{x} \quad\verb|\wbelow{x}| \qquad\wbelow{C} \quad\verb|\wbelow{C}|\]
U+01AC0 𝑥ᫀ 𝐶ᫀ latin small letter turned w below
\[\wupbelow{x} \quad\verb|\wupbelow{x}| \qquad\wupbelow{C} \quad\verb|\wupbelow{C}|\]
U+01DC0 𝑥᷀ 𝐶᷀ dotted grave accent
\[\dotgrave{x} \quad\verb|\dotgrave{x}| \qquad\dotgrave{C} \quad\verb|\dotgrave{C}|\]
U+01DC1 𝑥᷁ 𝐶᷁ dotted acute accent
\[\dotacute{x} \quad\verb|\dotacute{x}| \qquad\dotacute{C} \quad\verb|\dotacute{C}|\]
U+01DC2 𝑥᷂ 𝐶᷂ snake below
\[\snakebelow{x} \quad\verb|\snakebelow{x}| \qquad\snakebelow{C} \quad\verb|\snakebelow{C}|\]
U+01DC3 𝑥᷃ 𝐶᷃ suspension mark
\[\suspensionabove{x} \quad\verb|\suspensionabove{x}| \qquad\suspensionabove{C} \quad\verb|\suspensionabove{C}|\]
U+01DC4 𝑥᷄ 𝐶᷄ macron-acute
\[\macronacute{x} \quad\verb|\macronacute{x}| \qquad\macronacute{C} \quad\verb|\macronacute{C}|\]
U+01DC5 𝑥᷅ 𝐶᷅ grave-macron
\[\gravemacron{x} \quad\verb|\gravemacron{x}| \qquad\gravemacron{C} \quad\verb|\gravemacron{C}|\]
U+01DC6 𝑥᷆ 𝐶᷆ macron-grave
\[\macrongrave{x} \quad\verb|\macrongrave{x}| \qquad\macrongrave{C} \quad\verb|\macrongrave{C}|\]
U+01DC7 𝑥᷇ 𝐶᷇ acute-macron
\[\acutemacron{x} \quad\verb|\acutemacron{x}| \qquad\acutemacron{C} \quad\verb|\acutemacron{C}|\]
U+01DC8 𝑥᷈ 𝐶᷈ grave-acute-grave
\[\graveacutegrave{x} \quad\verb|\graveacutegrave{x}| \qquad\graveacutegrave{C} \quad\verb|\graveacutegrave{C}|\]
U+01DC9 𝑥᷉ 𝐶᷉ acute-grave-acute
\[\acutegraveacute{x} \quad\verb|\acutegraveacute{x}| \qquad\acutegraveacute{C} \quad\verb|\acutegraveacute{C}|\]
U+01DCA 𝑥᷊ 𝐶᷊ latin small letter r below
\[\rbelow{x} \quad\verb|\rbelow{x}| \qquad\rbelow{C} \quad\verb|\rbelow{C}|\]
U+01DCB 𝑥᷋ 𝐶᷋ breve-macron
\[\brevemacron{x} \quad\verb|\brevemacron{x}| \qquad\brevemacron{C} \quad\verb|\brevemacron{C}|\]
U+01DCC 𝑥᷌ 𝐶᷌ macron-breve
\[\macronbreve{x} \quad\verb|\macronbreve{x}| \qquad\macronbreve{C} \quad\verb|\macronbreve{C}|\]
U+01DCD 𝑥᷍ 𝐶᷍ double circumflex above
\[\longhat{x} \quad\verb|\longhat{x}| \qquad\longhat{C} \quad\verb|\longhat{C}|\]
U+01DCE 𝑥᷎ 𝐶᷎ oogonek above
\[\oogonek{x} \quad\verb|\oogonek{x}| \qquad\oogonek{C} \quad\verb|\oogonek{C}|\]
U+01DCF 𝑥᷏ 𝐶᷏ zigzag below
\[\zigzagbelow{x} \quad\verb|\zigzagbelow{x}| \qquad\zigzagbelow{C} \quad\verb|\zigzagbelow{C}|\]
U+01DD0 𝑥᷐ 𝐶᷐ is below
\[\isbelow{x} \quad\verb|\isbelow{x}| \qquad\isbelow{C} \quad\verb|\isbelow{C}|\]
U+01DD1 𝑥᷑ 𝐶᷑ ur above
\[\urabove{x} \quad\verb|\urabove{x}| \qquad\urabove{C} \quad\verb|\urabove{C}|\]
U+01DD2 𝑥᷒ 𝐶᷒ us above
\[\usabove{x} \quad\verb|\usabove{x}| \qquad\usabove{C} \quad\verb|\usabove{C}|\]
U+01DD3 𝑥ᷓ 𝐶ᷓ latin small letter flattened open a above
\[\flattenedopenaabove{x} \quad\verb|\flattenedopenaabove{x}| \qquad\flattenedopenaabove{C} \quad\verb|\flattenedopenaabove{C}|\]
U+01DD4 𝑥ᷔ 𝐶ᷔ latin small letter ae
\[\aeabove{x} \quad\verb|\aeabove{x}| \qquad\aeabove{C} \quad\verb|\aeabove{C}|\]
U+01DD5 𝑥ᷕ 𝐶ᷕ latin small letter ao
\[\aoabove{x} \quad\verb|\aoabove{x}| \qquad\aoabove{C} \quad\verb|\aoabove{C}|\]
U+01DD6 𝑥ᷖ 𝐶ᷖ latin small letter av
\[\avabove{x} \quad\verb|\avabove{x}| \qquad\avabove{C} \quad\verb|\avabove{C}|\]
U+01DD7 𝑥ᷗ 𝐶ᷗ latin small letter c cedilla
\[\cedillacabove{x} \quad\verb|\cedillacabove{x}| \qquad\cedillacabove{C} \quad\verb|\cedillacabove{C}|\]
U+01DD8 𝑥ᷘ 𝐶ᷘ latin small letter insular d
\[\insulardabove{x} \quad\verb|\insulardabove{x}| \qquad\insulardabove{C} \quad\verb|\insulardabove{C}|\]
U+01DD9 𝑥ᷙ 𝐶ᷙ latin small letter eth
\[\ethabove{x} \quad\verb|\ethabove{x}| \qquad\ethabove{C} \quad\verb|\ethabove{C}|\]
U+01DDA 𝑥ᷚ 𝐶ᷚ latin small letter g
\[\gabove{x} \quad\verb|\gabove{x}| \qquad\gabove{C} \quad\verb|\gabove{C}|\]
U+01DDB 𝑥ᷛ 𝐶ᷛ latin letter small capital g
\[\scgabove{x} \quad\verb|\scgabove{x}| \qquad\scgabove{C} \quad\verb|\scgabove{C}|\]
U+01DDC 𝑥ᷜ 𝐶ᷜ latin small letter k
\[\kabove{x} \quad\verb|\kabove{x}| \qquad\kabove{C} \quad\verb|\kabove{C}|\]
U+01DDD 𝑥ᷝ 𝐶ᷝ latin small letter l
\[\labove{x} \quad\verb|\labove{x}| \qquad\labove{C} \quad\verb|\labove{C}|\]
U+01DDE 𝑥ᷞ 𝐶ᷞ latin letter small capital l
\[\sclabove{x} \quad\verb|\sclabove{x}| \qquad\sclabove{C} \quad\verb|\sclabove{C}|\]
U+01DDF 𝑥ᷟ 𝐶ᷟ latin letter small capital m
\[\scmabove{x} \quad\verb|\sclabove{x}| \qquad\sclabove{C} \quad\verb|\sclabove{C}|\]
U+01DE0 𝑥ᷠ 𝐶ᷠ latin small letter n
\[\nabove{x} \quad\verb|\nabove{x}| \qquad\nabove{C} \quad\verb|\nabove{C}|\]
U+01DE1 𝑥ᷡ 𝐶ᷡ latin letter small capital n
\[\scnabove{x} \quad\verb|\scnabove{x}| \qquad\scnabove{C} \quad\verb|\scnabove{C}|\]
U+01DE2 𝑥ᷢ 𝐶ᷢ latin letter small capital r
\[\scrabove{x} \quad\verb|\scrabove{x}| \qquad\scrabove{C} \quad\verb|\scrabove{C}|\]
U+01DE3 𝑥ᷣ 𝐶ᷣ latin small letter r rotunda
\[\rrodundaabove{x} \quad\verb|\rrodundaabove{x}| \qquad\rrodundaabove{C} \quad\verb|\rrodundaabove{C}|\]
U+01DE4 𝑥ᷤ 𝐶ᷤ latin small letter s
\[\sabove{x} \quad\verb|\sabove{x}| \qquad\sabove{C} \quad\verb|\sabove{C}|\]
U+01DE5 𝑥ᷥ 𝐶ᷥ latin small letter long s
\[\longsabove{x} \quad\verb|\longsabove{x}| \qquad\longsabove{C} \quad\verb|\longsabove{C}|\]
U+01DE6 𝑥ᷦ 𝐶ᷦ latin small letter z
\[\zabove{x} \quad\verb|\zabove{x}| \qquad\zabove{C} \quad\verb|\zabove{C}|\]
U+01DE7 𝑥ᷧ 𝐶ᷧ latin small letter alpha
\[\alphaabove{x} \quad\verb|\alphaabove{x}| \qquad\alphaabove{C} \quad\verb|\alphaabove{C}|\]
U+01DE8 𝑥ᷨ 𝐶ᷨ latin small letter b
\[\babove{x} \quad\verb|\babove{x}| \qquad\babove{C} \quad\verb|\babove{C}|\]
U+01DE9 𝑥ᷩ 𝐶ᷩ latin small letter beta
\[\betaabove{x} \quad\verb|\betaabove{x}| \qquad\betaabove{C} \quad\verb|\betaabove{C}|\]
U+01DEA 𝑥ᷪ 𝐶ᷪ latin small letter schwa
\[\schwaabove{x} \quad\verb|\schwaabove{x}| \qquad\schwaabove{C} \quad\verb|\schwaabove{C}|\]
U+01DEB 𝑥ᷫ 𝐶ᷫ latin small letter f
\[\fabove{x} \quad\verb|\fabove{x}| \qquad\fabove{C} \quad\verb|\fabove{C}|\]
U+01DEC 𝑥ᷬ 𝐶ᷬ latin small letter l with double middle tilde
\[\Tildelabove{x} \quad\verb|\Tildelabove{x}| \qquad\Tildelabove{C} \quad\verb|\Tildelabove{C}|\]
U+01DED 𝑥ᷭ 𝐶ᷭ latin small letter o with light centralization stroke
\[\slashoabove{x} \quad\verb|\slashoabove{x}| \qquad\slashoabove{C} \quad\verb|\slashoabove{C}|\]
U+01DEE 𝑥ᷮ 𝐶ᷮ latin small letter p
\[\pabove{x} \quad\verb|\pabove{x}| \qquad\pabove{C} \quad\verb|\pabove{C}|\]
U+01DEF 𝑥ᷯ 𝐶ᷯ latin small letter esh
\[\eshabove{x} \quad\verb|\eshabove{x}| \qquad\eshabove{C} \quad\verb|\eshabove{C}|\]
U+01DF0 𝑥ᷰ 𝐶ᷰ latin small letter u with light centralization stroke
\[\slashhabove{x} \quad\verb|\slashhabove{x}| \qquad\slashhabove{C} \quad\verb|\slashhabove{C}|\]
U+01DF1 𝑥ᷱ 𝐶ᷱ latin small letter w
\[\wabove{x} \quad\verb|\wabove{x}| \qquad\wabove{C} \quad\verb|\wabove{C}|\]
U+01DF2 𝑥ᷲ 𝐶ᷲ latin small letter a with diaeresis
\[\ddotaabove{x} \quad\verb|\ddotaabove{x}| \qquad\ddotaabove{C} \quad\verb|\ddotaabove{C}|\]
U+01DF3 𝑥ᷳ 𝐶ᷳ latin small letter o with diaeresis
\[\ddotoabove{x} \quad\verb|\ddotoabove{x}| \qquad\ddotoabove{C} \quad\verb|\ddotoabove{C}|\]
U+01DF4 𝑥ᷴ 𝐶ᷴ latin small letter u with diaeresis
\[\ddotuabove{x} \quad\verb|\ddotuabove{x}| \qquad\ddotuabove{C} \quad\verb|\ddotuabove{C}|\]
U+01DF5 𝑥᷵ 𝐶᷵ up tack above
\[\botabove{x} \quad\verb|\botabove{x}| \qquad\botabove{C} \quad\verb|\botabove{C}|\]
U+01DF6 𝑥᷶ 𝐶᷶ kavyka above right
\[\kavykaright{x} \quad\verb|\kavykaright{x}| \qquad\kavykaright{C} \quad\verb|\kavykaright{C}|\]
U+01DF7 𝑥᷷ 𝐶᷷ kavyka above left
\[\kavykaleft{x} \quad\verb|\kavykaleft{x}| \qquad\kavykaleft{C} \quad\verb|\kavykaleft{C}|\]
U+01DF8 𝑥᷸ 𝐶᷸ dot above left
\[\dotleft{x} \quad\verb|\dotleft{x}| \qquad\dotleft{C} \quad\verb|\dotleft{C}|\]
U+01DF9 𝑥᷹ 𝐶᷹ wide inverted bridge below
\[\wideinvbridgebelow{x} \quad\verb|\wideinvbridgebelow{x}| \qquad\wideinvbridgebelow{C} \quad\verb|\wideinvbridgebelow{C}|\]
U+01DFB 𝑥᷻ 𝐶᷻ deletion mark
\[\deletionabove{x} \quad\verb|\deletionabove{x}| \qquad\deletionabove{C} \quad\verb|\deletionabove{C}|\]
U+01DFC 𝑥᷼ 𝐶᷼ double inverted breve below
\[\longinvbrevebelow{x} \quad\verb|\longinvbrevebelow{x}| \qquad\longinvbrevebelow{C} \quad\verb|\longinvbrevebelow{C}|\]
U+01DFD 𝑥᷽ 𝐶᷽ almost equal to below
\[\approxbelow{x} \quad\verb|\approxbelow{x}| \qquad\approxbelow{C} \quad\verb|\approxbelow{C}|\]
U+01DFE 𝑥᷾ 𝐶᷾ left arrowhead above
\[\lessabove{x} \quad\verb|\lessabove{x}| \qquad\lessabove{C} \quad\verb|\lessabove{C}|\]
U+01DFF 𝑥᷿ 𝐶᷿ right arrowhead and down arrowhead below
\[\gtrcheckbelow{x} \quad\verb|\gtrcheckbelow{x}| \qquad\gtrcheckbelow{C} \quad\verb|\gtrcheckbelow{C}|\]
U+020D0 𝑥⃐ 𝐶⃐ left harpoon above
\[\leftharpoonaccent{x} \quad\verb|\leftharpoonaccent{x}| \qquad\leftharpoonaccent{C} \quad\verb|\leftharpoonaccent{C}|\]
U+020D1 𝑥⃑ 𝐶⃑ right harpoon above
\[\rightharpoonaccent{x} \quad\verb|\rightharpoonaccent{x}| \qquad\rightharpoonaccent{C} \quad\verb|\rightharpoonaccent{C}|\]
U+020D2 𝑥⃒ 𝐶⃒ long vertical line overlay
\[\vertoverlay{x} \quad\verb|\vertoverlay{x}| \qquad\vertoverlay{C} \quad\verb|\vertoverlay{C}|\]
U+020D3 𝑥⃓ 𝐶⃓ short vertical line overlay
\[\shortvertoverlay{x} \quad\verb|\shortvertoverlay{x}| \qquad\shortvertoverlay{C} \quad\verb|\shortvertoverlay{C}|\]
U+020D4 𝑥⃔ 𝐶⃔ anticlockwise arrow above
\[\acwarrowabove{x} \quad\verb|\acwarrowabove{x}| \qquad\acwarrowabove{C} \quad\verb|\acwarrowabove{C}|\]
U+020D5 𝑥⃕ 𝐶⃕ clockwise arrow above
\[\cwarrowabove{x} \quad\verb|\cwarrowabove{x}| \qquad\cwarrowabove{C} \quad\verb|\cwarrowabove{C}|\]
U+020D6 𝑥⃖ 𝐶⃖ left arrow above
\[\leftarrowabove{x} \quad\verb|\leftarrowabove{x}| \qquad\leftarrowabove{C} \quad\verb|\leftarrowabove{C}|\]
U+020D7 𝑥⃗ 𝐶⃗ right arrow above
\[\vec{x} \quad\verb|\vec{x}| \qquad\vec{C} \quad\verb|\vec{C}|\]
U+020D8 𝑥⃘ 𝐶⃘ ring overlay
\[\circoverlay{x} \quad\verb|\circoverlay{x}| \qquad\circoverlay{C} \quad\verb|\circoverlay{C}|\]
U+020D9 𝑥⃙ 𝐶⃙ clockwise ring overlay
\[\cwcircoverlay{x} \quad\verb|\cwcircoverlay{x}| \qquad\cwcircoverlay{C} \quad\verb|\cwcircoverlay{C}|\]
U+020DA 𝑥⃚ 𝐶⃚ anticlockwise ring overlay
\[\acwcircoverlay{x} \quad\verb|\acwcircoverlay{x}| \qquad\acwcircoverlay{C} \quad\verb|\acwcircoverlay{C}|\]
U+00307 𝑥̇ 𝐶̇ dot above
\[\dot{x} \quad\verb|\dot{x}| \qquad\dot{C} \quad\verb|\dot{C}|\]
U+00308 𝑥̈ 𝐶̈ diaeresis
\[\ddot{x} \quad\verb|\ddot{x}| \qquad\ddot{C} \quad\verb|\ddot{C}|\]
U+020DB 𝑥⃛ 𝐶⃛ three dots above
\[\dddot{x} \quad\verb|\dddot{x}| \qquad\dddot{C} \quad\verb|\dddot{C}|\]
U+020DC 𝑥⃜ 𝐶⃜ four dots above
\[\ddddot{x} \quad\verb|\ddddot{x}| \qquad\ddddot{C} \quad\verb|\ddddot{C}|\]
U+020DD 𝑥⃝ 𝐶⃝ enclosing circle
\[\fcircle{x} \quad\verb|\fcircle{x}| \qquad\fcircle{C} \quad\verb|\fcircle{C}|\]
U+020DE 𝑥⃞ 𝐶⃞ enclosing square
\[\fsquare{x} \quad\verb|\fsquare{x}| \qquad\fsquare{C} \quad\verb|\fsquare{C}|\]
U+020DF 𝑥⃟ 𝐶⃟ enclosing diamond
\[\fdiamond{x} \quad\verb|\fdiamond{x}| \qquad\fdiamond{C} \quad\verb|\fdiamond{C}|\]
U+020E0 𝑥⃠ 𝐶⃠ enclosing circle backslash
\[\fcirclebsol{x} \quad\verb|\fcirclebsol{x}| \qquad\fcirclebsol{C} \quad\verb|\fcirclebsol{C}|\]
U+020E1 𝑥⃡ 𝐶⃡ left right arrow above
\[\leftrightarrowabove{x} \quad\verb|\leftrightarrowabove{x}| \qquad\leftrightarrowabove{C} \quad\verb|\leftrightarrowabove{C}|\]
U+020E2 𝑥⃢ 𝐶⃢ enclosing screen
\[\fscreen{x} \quad\verb|\fscreen{x}| \qquad\fscreen{C} \quad\verb|\fscreen{C}|\]
U+020E3 𝑥⃣ 𝐶⃣ enclosing keycap
\[\fkeycap{x} \quad\verb|\fkeycap{x}| \qquad\fkeycap{C} \quad\verb|\fkeycap{C}|\]
U+020E4 𝑥⃤ 𝐶⃤ enclosing upward pointing triangle
\[\ftriangleup{x} \quad\verb|\ftriangleup{x}| \qquad\ftriangleup{C} \quad\verb|\ftriangleup{C}|\]
U+020E5 𝑥⃥ 𝐶⃥ reverse solidus overlay
\[\bsoloverlay{x} \quad\verb|\bsoloverlay{x}| \qquad\bsoloverlay{C} \quad\verb|\bsoloverlay{C}|\]
U+020E6 𝑥⃦ 𝐶⃦ double vertical stroke overlay
\[\Vertoverlay{x} \quad\verb|\Vertoverlay{x}| \qquad\Vertoverlay{C} \quad\verb|\Vertoverlay{C}|\]
U+020E7 𝑥⃧ 𝐶⃧ annuity symbol
\[\annuity{x} \quad\verb|\annuity{x}| \qquad\annuity{C} \quad\verb|\annuity{C}|\]
U+020E8 𝑥⃨ 𝐶⃨ triple underdot
\[\threeunderdot{x} \quad\verb|\threeunderdot{x}| \qquad\threeunderdot{C} \quad\verb|\threeunderdot{C}|\]
U+020E9 𝑥⃩ 𝐶⃩ leftwards arrow overlay
\[\widebridgeabove{x} \quad\verb|\widebridgeabove{x}| \qquad\widebridgeabove{C} \quad\verb|\widebridgeabove{C}|\]
U+020EA 𝑥⃪ 𝐶⃪ leftwards arrow overlay
\[\leftarrowoverlay{x} \quad\verb|\leftarrowoverlay{x}| \qquad\leftarrowoverlay{C} \quad\verb|\leftarrowoverlay{C}|\]
U+020EB 𝑥⃫ 𝐶⃫ long double solidus overlay
\[\xsslashoverlay{x} \quad\verb|\xsslashoverlay{x}| \qquad\xsslashoverlay{C} \quad\verb|\xsslashoverlay{C}|\]
U+020EC 𝑥⃬ 𝐶⃬ rightwards harpoon with barb downwards
\[\rightharpoondownbelow{x} \quad\verb|\rightharpoondownbelow{x}| \qquad\rightharpoondownbelow{C} \quad\verb|\rightharpoondownbelow{C}|\]
U+020ED 𝑥⃭ 𝐶⃭ leftwards harpoon with barb downwards
\[\leftharpoondownbelow{x} \quad\verb|\leftharpoondownbelow{x}| \qquad\leftharpoondownbelow{C} \quad\verb|\leftharpoondownbelow{C}|\]
U+020EE 𝑥⃮ 𝐶⃮ left arrow below
\[\leftarrowbelow{x} \quad\verb|\leftarrowbelow{x}| \qquad\leftarrowbelow{C} \quad\verb|\leftarrowbelow{C}|\]
U+020EF 𝑥⃯ 𝐶⃯ right arrow below
\[\rightarrowbelow{x} \quad\verb|\rightarrowbelow{x}| \qquad\rightarrowbelow{C} \quad\verb|\rightarrowbelow{C}|\]
U+020F0 𝑥⃰ 𝐶⃰ asterisk above
\[\asteraccent{x} \quad\verb|\asteraccent{x}| \qquad\asteraccent{C} \quad\verb|\asteraccent{C}|\]

上記は非常に長いので、文献「Will Robertson, “Symbols defined by unicode-math,” 2019」にて定義されているもののみ以下に再掲する。

以下に、コマンド名が定義されているほぼすべてのグリフを Unicode を利用して印字してみる。ちなみに、現時点では KaTeX において印字内容が大幅に削られている。それは、Unicode の UTF-16 のサロゲートペアを用いたグリフの処理に問題があるようで、以下のようなエラーで処理が中断されてしまうからである。

Uncaught Error: Font metrics not found for font: .
LaTeX-incompatible input and strict mode is set to 'warn': Unrecognized Unicode character "U+D835" (55349) [unknownSymbol]

開き括弧・閉じ括弧

フェンス・句読点

2項演算子

総演算子

通常の数式記号

関係演算子

数式用グリフ

  1. Miscellaneous
  2. Normal weight, Upright Greek, uppercase
  3. Normal weight, Upright Greek, lowercase

通貨記号

Unicode では通貨記号が充実しているので、MathJax や KaTeX では部分的ウェブフォント回避の観点から、それらで上書きしてしまってもよいと考える。ちなみに、青色は MathJax, KaTeX でサポート。橙色以外は他所で提案済みコマンド名。

但し、あくまで MathJax, KaTeX システムに頼らず Unicode を直接叩くので閲覧環境のフォント次第となることは改めて注意が必要である。例えば、上記の \rupee\manat は手元では工夫をしなければ表示されなかった。その工夫は以下の通り。

/* HTML の head > style 内に以下を入れておく。*/
/* only for this article. consider better one for the others. */
body		{ font-family: "Source Serif Variable", "Noto Serif", serif; }
mjx-char	{ font-family: STIXGeneral, "Source Serif Variable", "Noto Serif", serif; }
mjx-utext	{ font-family: MJXZERO, "Source Serif Variable", "Noto Serif", serif !important; }
.katex		{ font-family: KaTeX_Main, "Times New Roman", "Source Serif Variable", "Noto Serif", serif; }

MathJax 等でサポートされるコマンド

MathJax では TeX ではあまり見かけないコマンドがサポートされていることも多々あり、どうも WikiPedia の MediaWiki で使用されている texvc 由来のコマンドが導入されているようである。それらはデファクトスタンダードになり得るので、価値あるものは KaTeX でも対応を目指してみる。

MathJax 等でサポートされ KaTeX でも実現が可能なコマンド

具体的な実現方法は後述するが、まずは、実例を列挙する。

\N \[\N\]
\Z \[\Z\]
\Q \[\Q\]
\R \[\R\]
\C \[\C\]
\RiemannSphere \[\RiemannSphere\]
\Hamilton \[\Hamilton\]
\O \[\O\]
\Cl \[\Cl\]
\Coppa \[\Coppa\]
\Digamma \[\Digamma\]
\Koppa \[\Koppa\]
\Sampi \[\Sampi\]
\Stigma \[\Stigma\]
\coppa \[\coppa\]
\koppa \[\koppa\]
\sampi \[\sampi\]
\stigma \[\stigma\]
\bigsqcap_{i=0}^\infty \[\bigsqcap_{i=0}^\infty\]
\bracevert \[\bracevert\]
\dddot,\ddddot \[\dddot{x}\quad\ddddot{x}\]
\idotsint_0^\infty x \[\idotsint_0^\infty x\]
\iiiint_0^\infty x \[\iiiint_0^\infty x\]
\leftarrowtail \[\leftarrowtail\]
\ndownarrow \[x\ndownarrow y\]
\nuparrow \[x\nuparrow y\]
\lower{}{} \[l\lower{2pt}{owe}r\]
\moveleft,\moveright \[\square\square\moveleft{2em}{\blacksquare\blacksquare}.\] \[\square\square\moveright{2em}{\blacksquare\blacksquare}.\]
\mspace \[a\mspace18mu b\]
\overparen,\underparen \[\overparen{\underparen{x\cdots y}}\]
\rightarrowtail \[\rightarrowtail\]
\strut \[\sqrt{(\ )}\] \[\sqrt{\mathstrut\rm mathstrut}\] \[\sqrt{\strut\rm strut}\]
\prescript \[\prescript{14}{5}{\mathrm{C}}^{5+}_2\]
\splitdfrac,\splitfrac \[\splitdfrac{xy}{ab} \quad \splitfrac{xy}{ab}\]

MathJax, KaTeX で未サポートだが実現が可能なコマンド

\bigominus \[\bigominus_x^yz\]
\bigoslash \[\bigoslash_x^yz\]
\ang \[\ang{30}\]
\iddots \[\iddots\]
\smiley \[\newcommand{\smiley}{😀} \smiley\]
\varcoppa \[\varcoppa\]

MathJax サポートされるが KaTeX で未サポートのコマンド例と代替案

具体的な代替方法は後述するが、まずは、実例を列挙する。

\abovewithdelims
use \genfrac \[\genfrac{.}{|}{1.5pt}{}{x}{y}_z\]
\atopwithdelims
use \genfrac \[\genfrac{.}{|}{0pt}{}{x}{y}_z\]
\buildrel
use \stackrel \[\stackrel{\rm def}{:=}\]
\cancelto
\leftroot,\uproot
\oldstyle
\overwithdelims
use \genfrac \[\genfrac{.}{|}{}{}{x}{y}_z\]
\skew{n}
use \kern{-1mu} \[\dot{Ŭ}.\implies\dot{\kern{-1mu}Ŭ}.\]
\unicode{x9ABC}
use \char"9ABC \[\char"9ABC\]

MathJax, KaTeX でサポートされないコマンド

\I \[\newcommand{\I}{\Bbb{I}} \I\]
\L \[\newcommand{\L}{\Bbb{L}} \L\]
\LeftArrow \[\newcommand{\LeftArrow}{\LLeftarrow} \LeftArrow\]
\and \[\newcommand{\and}{\land} A\and B\]
\cf \[\newcommand{\cf}{\text{cf. }}\cf\]
\cline \[\verb|\cline|\]
\geneuro \[\geneuro\]
\geneuronarrow \[\geneuronarrow\]
\geneurowide \[\geneurowide\]
\itshape \[\verb|{\itshape italic shape}|\]
\md \[\verb|{\md medium face}|\]
\normalfont \[\verb|\normalfont|\]
\or \[\newcommand{\or}{\lor} A\or B\]
\overbracket \[\overbracket{x\cdots y}^z\]
\rotatebox \[\newcommand{\rotatebox}[2]{\htmlStyle{ transform: rotate(#1deg); }{#2}} x\rotatebox{30}{y}z\]
\sc \[\verb|{\sc small caps}|\]
\scalebox \[\newcommand{\scalebox}[2]{\htmlStyle{ transform: scale(#1); }{#2}} x\scalebox{.5}{y}z\]
\skip \[\verb|\skip|\]
\sl \[\verb|{\sl slanted shape}|\]
\textsc \[\textsc{small caps}\]
\textsl \[\textsl{slanted shape}\]
\underbracket
\up \[\verb|{\up up shape}|\]
\upshape \[\verb|{\upshape up shape}|\]
\vline \[\verb|\vline|\]
\wideparen \[\newcommand{\wideparen}[1]{\overbrace{#1}} \wideparen{x\cdots y}\]

未サポートなコマンドの実現方法

以下のようなマクロを定義しておけばよい(技術的に似たものは省略)。

\newcommand{\R}{\mathrm{R}}
\newcommand{\Cl}{\mathit{C\ell}}
%\newcommand{\stigma}{\htmlStyle{ font-style: italic; }{ϛ}} % for MathJax
\newcommand{\stigma}{\htmlStyle{ font-style: italic; }{ϛ}} % for KaTeX
\newcommand{\varcoppa}{ϙ}
\newcommand{\strut}{\phantom{\rule[3pt]{}{8.6pt}}}
%\newcommand{\mathstrut}{\vphantom{(}} % already defined in KaTeX
%\newcommand{\iddots}{{\kern3mu\raise1mu{.}\kern3mu\raise6mu{.}\kern3mu\raise12mu{.}}} % for MathJax
\newcommand{\iddots}{{\scriptsize{\cdot\>}^{\scriptsize{\cdot\>}^{\scriptsize{\cdot\>}}}}} % for KaTeX
\newcommand{\idotsint}{\int\!\cdots\!\int}
\newcommand{\bracevert}{\vert}	% use it with \middle
\newcommand{\overparen}{\overgroup}
\newcommand{\underparen}{\undergroup}
\newcommand{\mspace}{\kern}
\newcommand{\lower}[2]{\raise{-#1}{#2}}
\newcommand{\moveleft}[2]{\kern{-#1}\mathrlap{#2}\kern{#1}\phantom{#2}}
\newcommand{\moveright}[2]{\kern{#1}\mathrlap{#2}\kern{-#1}\phantom{#2}}
\newcommand{\prescript}{\phantom{{}^{#1}_{#2}}{}^{\mathllap{#1}}_{\mathllap{#2}}#3}
%\newcommand{\bigominus}{\mathop{\phantom{\rule{1em}{1em}}\moveleft{.5em}{\raise{.1em}{\mathclap{\bigcirc}\mathclap{-}}}}} % for MathJax
\newcommand{\bigominus}{\operatornamewithlimits{\phantom{\rule{1em}{1em}}\moveleft{.5em}{\raise{.1em}{\mathclap{\bigcirc}\mathclap{-}}}}} % for KaTeX
\newcommand{\ang}[1]{#1\degree}
\newcommand{\smiley}{😀}
\newcommand{\splitdfrac}[2]{\displaystyle{#1\hphantom{#2}\atop\hphantom{#1}#2}}
\newcommand{\splitfrac}[2]{\textstyle{\displaystyle{#1\hphantom{#2}}\atop\displaystyle{\hphantom{#1}#2}}}

KaTeX で未サポートの代替方法

以下のように他のコマンドで代替すればよい。

\abovewithdelims	\[{x\abovewithdelims . | 1.5pt y}_z\]		% for MathJax
use \genfrac		\[\genfrac{.}{|}{1.5pt}{}{x}{y}_z\]		% for KaTeX

\atopwithdelims		\[{x\atopwithdelims . | y}_z\]			% for MathJax
use \genfrac		\[\genfrac{.}{|}{0pt}{}{x}{y}_z\]		% for KaTeX

\buildrel		\[\buildrel \rm def \over {:=}\]		% for MathJax
use \stackrel		\[\stackrel{\rm def}{:=}\]			% for KaTeX

\overwithdelims		\[{x\overwithdelims . | y}_z\]			% for MathJax
use \genfrac		\[\genfrac{.}{|}{}{}{x}{y}_z\]			% for KaTeX

\skew{n}		\[\dot{Ŭ}.\implies\skew{7}\dot{Ŭ}.\]		% for MathJax
use \kern{-1mu}		\[\dot{Ŭ}.\implies\dot{\kern{-1mu}Ŭ}.\]		% for KaTeX

\unicode{x9ABC}	\[\unicode{x9ABC}\]				% for MathJax
use \char"9ABC	\[\char"9ABC\]					% for KaTeX

KaTeX の minRuleThickness オプションの試験

この KaTeX オプションは以下にあげる棒線が太い MathJax v2 に似せるか、細い MathJax に似せるかのためにあるものと想像するが、試験環境として残しておく。

\[ \sqrt[3]{i^3 + j^3 + k^3},\qquad \underline{x\cdots y},\qquad \overline{x\cdots y},\qquad \boxed{E = mc^2},\qquad \mathfbox{E = mc^2},\qquad {\sin\theta\over\cos\theta},\qquad \frac{\sin\theta}{\cos\theta},\qquad \varliminf_x\;y,\qquad \varlimsup_x\;y,\qquad \]

既定値だと、言われてみれば少し細すぎるのかもしれない。ここでは KaTeX にて 0.06 あたりにしてある。

KaTeX の rule コマンドの試験

KaTeX では幅ゼロの \rule は可能だが、 \[\therefore\rule[.5em]{0em}{1em}\because\qquad\verb|\therefore\rule[.5em]{0em}{1em}\because|\] 高さゼロの \rule は実現できない。KaTeX だと以下は細い横棒が見えてしまう。 \[\therefore\rule[.5em]{1em}{0em}\because\qquad\verb|\therefore\rule[.5em]{1em}{0em}\because|\] とは言え、幅ゼロの活用はよくあるが、高さゼロの活用はなぜか見たことがないので問題ないのかもしれない。必要なら以下のように \phantom で囲って見えなくしてしまえばいいだろう。 \[\therefore\phantom{\rule[.5em]{1em}{0em}}\because\qquad\verb|\therefore\rule[.5em]{1em}{0em}\because|\]

MathJax v2 の設定

数式コマンドを揃える

\cancel コマンド

\( \cancel{xy} \qquad\verb|\cancel{xy}|\) \( \bcancel{xy} \qquad\verb|\bcancel{xy}|\) \( \xcancel{xy} \qquad\verb|\xcancel{xy}|\) \( \cancelto{xy}{zw} \qquad\verb|\cancelto{xy}{zw}|\) \( .\)

\color, \colorbox コマンド

\( {\color{Orchid}\text{Orchid}} \qquad\colorbox{Orchid}{{\color{White}Orchid}} \) \( {\color{CadetBlue}\text{CadetBlue}} \qquad\colorbox{CadetBlue}{CadetBlue} \) \( {\color{#ABC}\text{♯ABC}} \qquad\colorbox{#ABC}{♯ABC} \) \( {\color{#ABCDEF}\text{♯ABCDEF}} \qquad\colorbox{#ABCDEF}{♯ABCDEF} \) \( .\)

MathJax では白抜きができないと思っていたが、もしかしたら勘違いかもしれない。そして少なくとも MathJax v2 では白抜きができていない。

\xtwoheadrightarrow, \xtwoheadleftarrow, \xlongequal, \xmapsto, \xtofrom 及び、非公式 \Newextarrow コマンド

\[ \xtwoheadleftarrow[a\cdots b]{x\cdots y}\quad{\scriptsize\verb|\xtwoheadleftarrow[a\cdots b]{x\cdots y}|} \qquad \xtwoheadrightarrow[a\cdots b]{x\cdots y}\quad{\scriptsize\verb|\xtwoheadrightarrow[a\cdots b]{x\cdots y}|} \] \[ \xlongequal[a\cdots b]{x\cdots y}\quad{\scriptsize\verb|\xlongequal[a\cdots b]{x\cdots y}|} \] \[ {\color{gray}{\scriptsize\text{unabailable}}}\quad{\scriptsize\verb|\xfromto[a\cdots b]{x\cdots y}|} \qquad \xtofrom[a\cdots b]{x\cdots y}\quad{\scriptsize\verb|\xtofrom[a\cdots b]{x\cdots y}|} \] \[ {\color{gray}{\scriptsize\text{unabailable}}}\quad{\scriptsize\verb|\xmapsfrom[a\cdots b]{x\cdots y}|} \qquad \xmapsto[a\cdots b]{x\cdots y}\quad{\scriptsize\verb|\xmapsto[a\cdots b]{x\cdots y}|} \] \[ \Newextarrow{\xleftharpoonup}{5,10}{0x21BC} \Newextarrow{\xrightharpoonup}{5,10}{0x21C0} \xleftharpoonup[a\cdots b]{x\cdots y}\quad{\scriptsize\verb|\Newextarrow{\xleftharpoonup}{5,10}{0x21BC}\xleftharpoonup[a\cdots b]{x\cdots y}|} \qquad \xrightharpoonup[a\cdots b]{x\cdots y}\quad{\scriptsize\verb|\Newextarrow{\xrightharpoonup}{5,10}{0x21C0}\xrightharpoonup[a\cdots b]{x\cdots y}|} \]

\ce コマンド

リチウムイオン電池
負極 \(\ce{LiC6 -> Li_{1-x}C6 + $x$Li+ + $x$e-}\) (\(0 < x < 0.5\))
正極 \(\ce{Li_{1-x}CoO2 + $x$Li+ + $x$e- -> LiCoO2}\)
\(\ce{LiC6 + Li_{1-x}CoO2 <-->[{放電}][{充電}] Li_{1-x}C6 + LiCoO2}\)

{CD} 環境

\[ \begin{CD} A\prec P,\; B\prec P @>{P_0}>> A',\; B' \\ @. @VVV \\ C\prec P @<{P_0}<< C' \end{CD} \]

足りないと思ったけど AMSmath.js, AMSsymbols.js あたりは既定で導入されているのだと思う。よって、以下のようにすればよい。

MathJax.Hub.Config({
  TeX: {
    extensions: [
      /*"AMSmath.js",
      "AMSsymbols.js",*/
      "AMScd.js",
      "cancel.js",
      "color.js",
      "extpfeil.js",
      "mhchem.js",
      "mediawiki-texvc.js",
    ],
	:

その他の MathJax v2 で実現可能なコマンド

既に述べてあることに重複するので例は示さないが、以下のコマンドで「*」アスタリスクのついていないものは実現可能である。

  1. \coloneq
  2. \Coloneq
  3. \coloneqq
  4. \Coloneqq
  5. \colonsim
  6. \Colonsim
  7. \colonapprox
  8. \Colonapprox
  9. \eqcolon
  10. \Eqcolon
  11. \eqqcolon
  12. \Eqqcolon
  13. \bigtimes
  14. \bra
  15. \ket
  16. \mathllap
  17. \mathrlap
  18. \mathclap*
  19. \mathmbox
  20. \ndownarrow
  21. \nuparrow
  22. \prescript
  23. \splitdfrac
  24. \splitfrac
  25. \textup
  26. {matrix*}*
  27. {rcases}*

具体的にはマウスホバーして得られるマクロ定義を参照のこと。

フォントが日本語向きじゃない

\[ e^{i\theta} = \cos\theta + i\sin\theta\qquad\text{オイラーの公式} \]

以下のようにすればよい。

MathJax.Hub.Config({
  'SVG': { // config=TeX-AMS_SVG
    undefinedFamily:	`\
'Hiragino Mincho ProN', \
'Hiragino Mincho Pro', \
'Noto Serif Japanese', \
'Source Han Serif JP', \
'Noto Serif CJK JP', \
'Noto Serif JP', \
'YuMincho', \
'TakaoMjMincho', \
'IPAmjMincho', \
'TakaoExMincho', \
'IPAexMincho', \
'BIZ UDPMincho', \
'Yu Mincho', \
'TakaoPMincho', \
'IPAPMincho', \
'MS PMincho', \
STIXGeneral, \
'Source Serif Variable', \
'Noto Serif', \
serif`,
  },
  'HTML-CSS': { // config=TeX-AMS_HTML
    availableFonts: [ /*'STIXGeneral', */'TeX', ],
    undefinedFamily:	`\
'Hiragino Mincho ProN', \
'Hiragino Mincho Pro', \
'Noto Serif Japanese', \
'Source Han Serif JP', \
'Noto Serif CJK JP', \
'Noto Serif JP', \
'YuMincho', \
'TakaoMjMincho', \
'IPAmjMincho', \
'TakaoExMincho', \
'IPAexMincho', \
'BIZ UDPMincho', \
'Yu Mincho', \
'TakaoPMincho', \
'IPAPMincho', \
'MS PMincho', \
STIXGeneral, \
'Source Serif Variable', \
'Noto Serif', \
serif`,
  },
  CommonHTML: { // config=TeX-MML-AM_CHTML
    undefinedFamily:	`\
'Hiragino Mincho ProN', \
'Hiragino Mincho Pro', \
'Noto Serif Japanese', \
'Source Han Serif JP', \
'Noto Serif CJK JP', \
'Noto Serif JP', \
'YuMincho', \
'TakaoMjMincho', \
'IPAmjMincho', \
'TakaoExMincho', \
'IPAexMincho', \
'BIZ UDPMincho', \
'Yu Mincho', \
'TakaoPMincho', \
'IPAPMincho', \
'MS PMincho', \
STIXGeneral, \
'Source Serif Variable', \
'Noto Serif', \
serif`,
  },
	:

矢印などの記号が着色絵文字になってしまう

厄介なことに WordPress では絵文字をなんとしてでも表示させようとして、VS16 (Variation Selector 16) が付記されていなくても文字を絵文字画像にしてしまうお節介な機能がある。数式では矢印などは多用することから \updownallow, \blacktriangleleft, \blacktriangleright, \swarrow などが絵文字になってしまうのは極めて不自然な事態となる。

そこで、数式中の VS15〜16 が明示的に付記されていないこれらの文字には VS15 を明示的に付記する処理が必要になる。

モノクロ絵文字がカラー絵文字になってしまう

前節と結果は同じなのだが、VS15 (Variation Selector 15) が付記されているのに着色絵文字になってしまう問題が KaTeX には存在する。これは VS15 を除去してしまうことに起因する。

真っ当な対処としては KaTeX を修正することであるが、拙速には数式のレンダリング後に VS15 を付記してしまうことも一考かもしれない。

「⋱」U+22F1 の右下がり省略記号 \ddots と「⋰」U+22F0 の右上がり省略記号 \adots

右下がり省略記号は行列の要素によく使われるが、他のこれらの具体的な使用場面を紹介する。

Unicode を使わない例

まず、積は以下のように和の繰り返しで定義される。

\[a \times b \coloneqq \underbrace{a + a +\cdots}_{\text{repeat }b\text{ times}} \eqqcolon \operatorname{\it H}_1(a, b)\]

次に、冪は以下のように積の繰り返しで定義される。

\[a\uparrow b \coloneqq \underbrace{a\times a\times\cdots}_{\text{repeat }b\text{ times}} = a^b \eqqcolon \operatorname{\it H}_2(a, b)\]

では、テトレーション (tetration) は以下のように冪の繰り返しで定義される。

\[a\upuparrows b \coloneqq \underbrace{a\uparrow a\uparrow\cdots}_{\text{repeat }b\text{ times}} = \tetration{a}{b} \eqqcolon \tetr{a}{b} \eqqcolon \operatorname{\it H}_3(a, b)\]

さらに、ペンテーション (pentation) は以下のようにテトレーションの繰り返しで定義される。

\[a\upupuparrows b \coloneqq \underbrace{a\upuparrows a\upuparrows\cdots}_{\text{repeat }b\text{ times}} = \pentation{a}{b} \eqqcolon \operatorname{\it H}_4(a, b)\]

テトレーションは以下のように再帰的にも定義できる。

\[a\upuparrows i = a^{a\upuparrows i-1}\qquad\text{where}\quad a\upuparrows 0 \coloneqq 1\]

次のペンテーション \(a\upupuparrows b = \operatorname{\it H}_4(a, b)\) や \(n\) 重の矢印表記 \(a\uparrow^n b = \operatorname{\it H}_n(a, b)\) も以下のように再帰的に定義出来る。

\[a\upupuparrows i = a^{a\upupuparrows i-1}\qquad\text{where}\quad a\upupuparrows 0 \coloneqq 1\] \[a\uparrow^n i = a^{a\uparrow^n i-1}\qquad\text{where}\quad a\uparrow^n 0 \coloneqq 1\]

この \(\iddots\) \iddots の実装は MathJax では以下の通りである。

\newcommand{\iddots}{{\kern3mu\raise1mu{.}\kern3mu\raise6mu{.}\kern3mu\raise12mu{.}}}

これを KaTeX で実装しようとすると未サポートの \raise コマンドの代わりに \raisebox を使うしかない。

\newcommand{\iddots}{{\kern{3mu}\raisebox{1mu}{.}\kern{3mu}\raisebox{6mu}{.}\kern{3mu}\raisebox{12mu}{.}}}

しかし、KaTeX の \raisebox\scriptstyle などの表示形式に追従しない問題がある。では、表示形式に対応した先の拙作 \raise で実現してみよう。

\newcommand{\iddots}{{\kern{3mu}\raise{1mu}{.}\kern{3mu}\raise{6mu}{.}\kern{3mu}\raise{12mu}{.}}}

すると、em, ex, mu の単位にカレントのフォントサイズに応じていない問題が顕になる。これは流石に治したいバグだ。よって、次の泥臭いマクロを使う。

\newcommand{\iddots}{{\scriptsize{\cdot\>}^{\scriptsize{\cdot\>}^{\scriptsize{\cdot\>}}}}}

実際にはさらに泥臭く調整をしている。

Unicode を使った例

まず、積は以下のように和の繰り返しで定義される。

\[a \times b \UCcoloneq \underbrace{a + a +\cdots}_{\text{repeat }b\text{ times}} \UCeqcolon \operatorname{\it H}_1(a, b)\]

次に、冪は以下のように積の繰り返しで定義される。

\[a\UCuparrow b \UCcoloneq \underbrace{a\times a\times\cdots}_{\text{repeat }b\text{ times}} \equal a^b \UCeqcolon \operatorname{\it H}_2(a, b)\]

では、テトレーション (tetration) は以下のように冪の繰り返しで定義される。

\[a\UCupuparrows b \UCcoloneq \underbrace{a\UCuparrow a\UCuparrow\cdots}_{\text{repeat }b\text{ times}} \equal \UCtetration{a}{b} \UCeqcolon \tetr{a}{b} \UCeqcolon \operatorname{\it H}_3(a, b)\]

さらに、ペンテーション (pentation) は以下のようにテトレーションの繰り返しで定義される。

\[a\UCupupuparrows b \UCcoloneq \underbrace{a\UCupuparrows a\UCupuparrows\cdots}_{\text{repeat }b\text{ times}} \equal \UCpentation{a}{b} \UCeqcolon \operatorname{\it H}_4(a, b)\]

テトレーションは以下のように再帰的にも定義できる。

\[a\UCupuparrows i \equal a^{a\UCupuparrows i-1}\qquad\text{where}\quad a\UCupuparrows 0 \UCcoloneq 1\]

次のペンテーション \(a\UCupupuparrows b \equal \operatorname{\it H}_4(a, b)\) や \(n\) 重の矢印表記 \(a\UCuparrow^n b \equal \operatorname{\it H}_n(a, b)\) も以下のように再帰的に定義出来る。

\[a\UCupupuparrows i \equal a^{a\UCupupuparrows i-1}\qquad\text{where}\quad a\UCupupuparrows 0 \UCcoloneq 1\] \[a\UCuparrow^n i \equal a^{a\UCuparrow^n i-1}\qquad\text{where}\quad a\UCuparrow^n 0 \UCcoloneq 1\]

前者はかつて提案された TeX の機能でピリオドの組み合わせで構成された記号「\(\iddots\)」\iddots で、後者は Unicode で定義されている「⋰」U+22F0 (up right diagonal ellipsis) である。unicode-math では \(\adots\) \adots として定義されている。

各々に右肩上付きと左肩上付きのパターンがあり、さらに MathJax, KaTeX それぞれに微調整が必要になるが、一応許容範囲のタイプセットができているように思われる。ここでは他にも Unicode で代替した記号を試みており、以下にそれらをまとめておく。

非 Unicode \(\coloneqq\) \coloneqq \(\eqqcolon\) \eqqcolon \(\uparrow\) \uparrow \(\upuparrows\) \upuparrows \(\upupuparrows\) \upupuparrows \(\ddots\) \ddots \(\iddots\) \iddots
Unicode \(\UCcoloneq\) \UCcoloneq \(\UCeqcolon\) \UCeqcolon \(\UCuparrow\) \UCuparrow \(\UCupuparrows\) \UCupuparrows \(\UCupupuparrows\) \UCupupuparrows \(\UCddots\) \UCddots \(\adots\) \adots

ブラウザフォントにシビアなグリフ

ブラウザのフォント設定によって、むしろ大抵の場合、表示されないであろうグリフの一部をここにまとめておく。この他にも Unicode の追加多言語面の絵文字の後ろに定義されている記号などは対応しているフォントは稀である。

流石に通貨記号はどのフォントでも安定して定義しておいて欲しいものである。

紛らわしいグリフ

TeX の古にはフォントのグリフにも不自由していたので、似た形状のグリフで代用して紙媒体に印刷して凌ぐことは当たり前だった。しかし、昨今は紙媒体ではなく例えば PDF 形式のまま情報伝達され、かつ、「コピペ」した段階でも「形状」ではなく「意味」として情報交換用コードが維持される時代である。よって、グリフの代用は意味づけが誤ったまま伝達され続ける恐れがあり、グリフの「意味」を極力配慮する必要があると考える。以下に紛らわしいグリフをあげておくので形が似ているからといって適当に凌ごうとせずに正しいグリフを選ぶことを心掛けよう。その見地では TeX コマンド名には「意味」が込められていることが多いので良い命名のコマンドはその一助となると言える。但し、ほぼ同じ意味のグリフもあげているので局所にはいずれかに統一して使うことにも配慮できるだろう。

ここで、MathJax, KaTeX で Unicode のコードポイントの指定方法が異なり煩わしいので、以下を双方に定義しておくとよいかもしれない。

\newcommand{\symbol}[1]{\unicode{x#1}} % for MathJax
\newcommand{\symbol}[1]{\char"#1} % for KaTeX

混同しても許容範囲のグリフもあるが、閲覧環境のフォントによっても、ほとんど見分けがつかないグリフもあるので、特に「コピペ」などしたときには誤りを継承しないように注意されたい。

但し、TeX において例えば \(\epsilon\) \epsilon に対する \(\varepsilon\) \varepsilon などは \var* による命名により区別しやすいので、ここには載せていない。

稀に必要になり探すことになるグリフ

以上のすべてを踏まえた上で、多少重なる事項はあるものの、稀に使い分けたり必要になったり明確に区別して使用したりするグリフを列挙しておく。使用する TeX システムで未定義グリフであれば必要に応じてマクロ等で活用されたい。

U+000A6 ¦ \(\brokenbar\)
\newcommand{\brokenbar}{\htrm{¦}}
U+0203E ‾ \(\textoverline\)
\newcommand{\textoverline}{\htrm{‾}}
U+000AE ® \(\registered\)
\newcommand{\registered}{\htrm{®}}
U+02117 ℗ \(\phonogram\)
\newcommand{\phonogram}{\htrm{℗}}
U+1F1AD 🆭 \(\maskwork\)
\newcommand{\maskwork}{\htrm{🆭}}
U+000A9 © \(\copyright\)
\newcommand{\copyright}{\htrm{\symbol{00A9}}}
U+1F12F 🄯 \(\copyleft\)
\newcommand{\copyleft}{\htrm{🄯}}
U+1F16D 🅭 \(\cc\)
\newcommand{\cc}{\htrm{🅭}}
U+1F16E 🅮 \(\ccPublicDomain\)
\newcommand{\ccPublicDomain}{\htrm{🅮}}
U+1F16F 🅯 \(\ccAttribution\)
\newcommand{\ccAttribution}{\htrm{🅯}}
U+02122 ™ \(\trademark\)
\newcommand{\trademark}{\htrm{™}}
U+02120 ℠ \(\servicemark\)
\newcommand{\servicemark}{\htrm{℠}}
U+1F16C 🅬 \(\raisedMR\)
\newcommand{\raisedMR}{\htrm{🅬}}
U+02116 № \(\numero\)
\newcommand{\numero}{\htrm{№}}
U+00025 % \(\percent\)
\newcommand{\percent}{\htrm{\%}}
U+02030 ‰ \(\perthousand\)
\newcommand{\perthousand}{\htrm{‰}}
U+02031 ‱ \(\pertenthousand\)
\newcommand{\pertenthousand}{\htrm{‱}}
U+02113 ℓ \(\ell\)
\newcommand{\ell}{\htrm{ℓ}}
U+000B5 µ \(\micro\)
\newcommand{\micro}{\htrm{µ}}
U+0211E ℞ \(\recipe\)
\newcommand{\recipe}{\htrm{℞}}
U+000B0 ° \(\degree\)
\newcommand{\degree}{\htrm{°}}
U+000C5 Å \(\Angstroem\)
\newcommand{\Angstroem}{\htrm{Å}}
U+02103 ℃ \(\celsius\)
\newcommand{\celsius}{\htrm{℃}}
U+02109 ℉ \(\fahrenheit\)
\newcommand{\fahrenheit}{\htrm{℉}}
U+000D8 Ø \(\O\)
\newcommand{\O}{\htrm{Ø}}
U+000F8 ø \(\o\)
\newcommand{\o}{\htrm{ø}}
U+00370 Ͱ \(\Heta\)
\newcommand{\Heta}{\htit{Ͱ}}
U+00371 ͱ \(\heta\)
\newcommand{\heta}{\htit{ͱ}}
U+00373 ͳ \(\arcSampi\)
\newcommand{\arcSampi}{\htit{ͳ}}
U+00373 ͳ \(\arcsampi\)
\newcommand{\arcsampi}{\htit{ͳ}}
U+00376 Ͷ \(\pamDigamma\)
\newcommand{\pamDigamma}{\htit{Ͷ}}
U+00377 ͷ \(\pamdigamma\)
\newcommand{\pamdigamma}{\htit{ͷ}}
U+0037F Ϳ \(\Yot\)
\newcommand{\Yot}{\htit{Ϳ}}
U+003A9 Ω \(\Ohm\)
\newcommand{\Ohm}{\htrm{Ω}}
U+003D8 Ϙ \(\Coppa\)
\newcommand{\Coppa}{\htit{Ϙ}}
U+003D8 Ϙ \(\Qoppa\)
\newcommand{\Qoppa}{\htit{Ϙ}}
U+003D8 Ϙ \(\varCoppa\)
\newcommand{\varCoppa}{\htit{Ϙ}}
U+003D9 ϙ \(\coppa\)
\newcommand{\coppa}{\htit{ϙ}}
U+003D9 ϙ \(\qoppa\)
\newcommand{\qoppa}{\htit{ϙ}}
U+003D9 ϙ \(\varcoppa\)
\newcommand{\varcoppa}{\htit{ϙ}}
U+003DA Ϛ \(\Stigma\)
\newcommand{\Stigma}{\htit{Ϛ}}
U+003DB ϛ \(\stigma\)
\newcommand{\stigma}{\htit{ϛ}}
U+003DC Ϝ \(\Digamma\)
\newcommand{\Digamma}{\htit{Ϝ}}
U+003DD ϝ \(\digamma\)
\newcommand{\digamma}{\htit{ϝ}}
U+003DE Ϟ \(\Koppa\)
\newcommand{\Koppa}{\htit{Ϟ}}
U+003DF ϟ \(\koppa\)
\newcommand{\koppa}{\htit{ϟ}}
U+003E0 Ϡ \(\Sampi\)
\newcommand{\Sampi}{\htit{Ϡ}}
U+003E1 ϡ \(\sampi\)
\newcommand{\sampi}{\htit{ϡ}}
U+003F3 ϳ \(\yot\)
\newcommand{\yot}{\htit{ϳ}}
U+003F7 Ϸ \(\Sho\)
\newcommand{\Sho}{\htit{Ϸ}}
U+003F8 ϸ \(\sho\)
\newcommand{\sho}{\htit{ϸ}}
U+003FA Ϻ \(\San\)
\newcommand{\San}{\htit{Ϻ}}
U+003FB ϻ \(\san\)
\newcommand{\san}{\htit{ϻ}}
U+00480 Ҁ \(\cyrillicKoppa\)
\newcommand{\cyrillicKoppa}{\htit{Ҁ}}
U+00481 ҁ \(\cyrillickoppa\)
\newcommand{\cyrillickoppa}{\htit{ҁ}}
U+02107 ℇ \(\Euler\)
\newcommand{\Euler}{\htrm{ℇ}}
U+02108 ℈ \(\scruple\)
\newcommand{\scruple}{\htrm{℈}}
U+02125 ℥ \(\Ounce\)
\newcommand{\Ounce}{\htrm{℥}}
U+02144 ⅄ \(\Yup\)
\newcommand{\Yup}{\htit{⅄}}
U+0214B ⅋ \(\invamp\)
\newcommand{\invamp}{\htrm{⅋}}
U+1D402 𝐂 \(\C\)
\newcommand{\C}{\htrm{𝐂}}
U+1D407 𝐇 \(\Hamilton\)
\newcommand{\Hamilton}{\htrm{𝐇}}
U+1D40D 𝐍 \(\N\)
\newcommand{\N}{\htrm{𝐍}}
U+1D40E 𝐎 \(\Octonion\)
\newcommand{\Octonion}{\htrm{𝐎}}
U+1D410 𝐐 \(\Q\)
\newcommand{\Q}{\htrm{𝐐}}
U+1D411 𝐑 \(\R\)
\newcommand{\R}{\htrm{𝐑}}
U+1D419 𝐙 \(\Z\)
\newcommand{\Z}{\htrm{𝐙}}
U+1D6E2 𝛢 \(\Alpha\)
\newcommand{\Alpha}{\htit{𝛢}}
U+1D6E3 𝛣 \(\Beta\)
\newcommand{\Beta}{\htit{𝛣}}
U+1D6E6 𝛦 \(\Epsilon\)
\newcommand{\Epsilon}{\htit{𝛦}}
U+1D6E7 𝛧 \(\Zeta\)
\newcommand{\Zeta}{\htit{𝛧}}
U+1D6E8 𝛨 \(\Eta\)
\newcommand{\Eta}{\htit{𝛨}}
U+1D6EA 𝛪 \(\Iota\)
\newcommand{\Iota}{\htit{𝛪}}
U+1D6EB 𝛫 \(\Kappa\)
\newcommand{\Kappa}{\htit{𝛫}}
U+1D6ED 𝛭 \(\Mu\)
\newcommand{\Mu}{\htit{𝛭}}
U+1D6EE 𝛮 \(\Nu\)
\newcommand{\Nu}{\htit{𝛮}}
U+1D6F0 𝛰 \(\Omicron\)
\newcommand{\Omicron}{\htit{𝛰}}
U+1D6F2 𝛲 \(\Rho\)
\newcommand{\Rho}{\htit{𝛲}}
U+1D6F5 𝛵 \(\Tau\)
\newcommand{\Tau}{\htit{𝛵}}
U+1D6F8 𝛸 \(\Chi\)
\newcommand{\Chi}{\htit{𝛸}}

ここでは、以下のマクロでフォントのスタイルをそれぞれ明示している。

\newcommand{\htit}[1]{\htmlStyle{ font-style: italic; }{#1}}
\newcommand{\htrm}[1]{\htmlStyle{ font-style: normal; }{#1}}

まとめ

MathJax よりも KaTeX の方が軽快であるし、コマンドのサポートも充実していると思っていたが、改めて KaTeX の方が優れていると感じている。

しかし、よく比較してみると MathJax の方が手堅く実装されており一日の長が確かにある、という印象も得られている。

そもそも、例えば、Pages でたまたま上手く表現できていた数式をそのまま TeX などにペーストしても、意図した通りにならないことが往々にしてあり得ることに注意すべきだ。

最後に、MathJax, KaTeX ともに本稿を執るにあたって大変な数のマクロを定義している。意図した通りに定義されているのか、定義を敢えて外してあるのか、すべてを確認するために緑色で実際に定義されているマクロをマウスホバーでポップアップするようにしておいたが、本稿の記述と敢えて多少異なっている箇所もあるかもしれない。

参考文献

  1. D. Harvey and G. V. Assche, “\blah{TeX},” http://gva.noekeon.org/blahtexml/blahtexml-0.9-doc.pdf, 2010. Pages 他で内部で使用されている.
  2. W. Robertson, “Symbols defined by unicode-math,” https://ftp.kddilabs.jp/CTAN/macros/unicodetex/latex/unicode-math/unimath-symbols.pdf, 2020.
  3. Publications Technical Group, “User’s Guide to AMSFonts,” https://ftp.yz.yamagata-u.ac.jp/pub/CTAN/fonts/amsfonts/doc/amsfndoc.pdf, AMS, 2002.
  4. The MathJax Consortium, “MathJax TeX and LaTeX support,” https://docs.mathjax.org/en/v2.7-latest/tex.html, 2018.
  5. Khan Academy et al., KaTeX, “Supported Functions,” https://katex.org/docs/supported.html, 2021.
  6. Carol JVF Burns, 日本語訳「MathJax で利用可能な TeX コマンド(非公式)」, 日本語訳「MathJax で使用できる TeX コマンドの構文」2017.
  7. Wikipedia Help, 「数式の表示」, https://meta.wikimedia.org/wiki/Help:Displaying_a_formula/ja, 2021 閲覧.
  8. アメリカ数学会, 「はやわかり LaTeX で数式組版(日本語訳)」, https://www.latex-project.org/help/documentation/short-math-guide_jpn.pdf, 2018.
  9. Taiji Yamada, 「TeX コマンド・チートシート」, https://www.aihara.co.jp/~taiji/lecture/TeX-commands.pdf, 2021.
  10. Taiji Yamada, 「Pages などにおける TeX コマンドのコツ」, https://www.icloud.com/pages/0sT9BCSfmlfgVik79iTMHQwCA#TipsPagesTeX, 2021.
  11. Taiji Yamada, “Unix Tips,” https://www.aihara.co.jp/~taiji/unix-tips/, 2021. 左肩上付きの数式について.
  12. Taiji Yamada, “Converters,” https://www.aihara.co.jp/~taiji/browser-security/js/converters/index.ja.html, 2021. 単位換算について.
  13. Taiji Yamada, 「グリフ」, https://www.aihara.co.jp/~taiji/browser-security/js/glyphs.html, 2021.
  14. NetAdvance Inc., 「国際単位系 (SI)」, https://japanknowledge.com/contents/common/si.html, JapanKnowledge, 2021.
  15. 森口 重一, 宇田川 銈久, 一松 信, 「数学公式 Ⅱ 級数・フーリエ解析」, 岩波書店, 1957.
  16. The MathJax Consortium, “mathtools Commands,” https://docs.mathjax.org/en/latest/input/tex/extensions/mathtools.html#mathtools-commands, 2021.
  17. M. Høgholm, L. Madsen and the LATEX3 project, “The mathtools package,” https://texdoc.org/serve/mathtools.pdf/0, 2021.
  18. The MathJax Consortium, “textmacros,” https://docs.mathjax.org/en/latest/input/tex/extensions/textmacros.html, 2021.
  19. M. Frank and M. Goossens, “The LaTeX Companion,” https://books.google.co.jp/books?id=iX9MAQAAQBAJ, 2003.
  20. P. G. Ratcliffe, “The tensor package for LaTeX2ε,” https://ftp.yz.yamagata-u.ac.jp/pub/CTAN/macros/latex/contrib/tensor/tensor.pdf, 2004.
  21. M. Schubotz, “The texvc package,” https://ftp.kddilabs.jp/CTAN/macros/latex/contrib/texvc/texvc.pdf, 2018.
  22. S. Pakin, “The Comprehensive LaTeX Symbol List,” http://tug.ctan.org/info/symbols/comprehensive/symbols-a4.pdf, 2021.
  23. The MathJax Consortium, “output/chtml/fonts/tex.ts,” https://github.com/mathjax/MathJax-src/blob/master/ts/output/chtml/fonts/tex.ts, 2021 閲覧.
  24. CTAN, “lm-math,” https://ctan.org/tex-archive/fonts/lm-math, 2021 閲覧.
  25. Microsoft, “Cambria font family,” https://docs.microsoft.com/en-us/typography/font-list/cambria, 2021 閲覧.
  26. Microsoft, “Cambria Math font family,” https://docs.microsoft.com/en-us/typography/font-list/cambria-math, 2021 閲覧.
  27. Google Fonts, “Caladea,” https://fonts.google.com/specimen/Caladea, 2021 閲覧.
  28. CTAN, “stix,” https://ctan.org/pkg/stix/, 2021 閲覧.
  29. CTAN, “stix2-otf,” https://ctan.org/pkg/stix2-otf/, 2021 閲覧.
  30. CTAN, “xits,” https://ctan.org/pkg/xits/, 2021 閲覧.
  31. CTAN, “tex-gyre,” https://ctan.org/pkg/tex-gyre/, 2021 閲覧.
Written by Taiji Yamada at 2021/12/01