2019 年まで、数式は MathJax のバージョン 2を使っていた。 ただし、表記法は TeX ではなく ASCIIMath を使っていた。 MathJax はバージョン 3 になったが、ASCIIMath の表記法が残念なものになった。これを本稿で説明する。
MathJax (www.mathjax.org) のページは英語である。
MathJax はリモートにあるサーバを使うのがよさそうだ。 これには、<head> と </head> の間で、次の行を書けばよい。
<script> MathJax = { loader: {load: ['input/asciimath', 'output/chtml', 'ui/menu']}, }; </script> <script type="text/javascript" id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/startup.js"> </script>
バージョン 2 とは異なる実装になっている。その理由は、 Loading the AsciiMath Component (docs.mathjax.org) という項に書かれている。 以下、拙訳をつけてみる。
AsciiMath 入力 jax はまだバージョン3に完全には移植されていない。 代わりに、AsciiMath コンポーネントはバージョン2にある AsciiMath 入力 jax と、 バージョン3フレームワークにパッチされたレガシーバージョン2コードの一部を使う。 この方法は、バージョン3の純粋なソリューションよりも効率が低く、 やや大きく、構成プロセスが複雑になる可能性がある。 AsciiMath の完全な移植は、将来のバージョン3のリリースで計画されている。
AsciiMath はバージョン 3 に完全には移植されていないため、 結合されたコンポーネントにはバージョン3が含まれていない。 したがって、AsciiMath 表記を使用するには、 MathJax 構成のローダーブロック内のロード配列に input / asciimath を追加して、 MathJax wを自分でロードする必要がある(例は上記)。
ここで、AsciiMath 入力 jax という用語が頻出するが、AsciiMath 形式での入力を、 MathJax が解釈できる jax という形式に変換する、ぐらいの意味にとっておけばよいと思う。
MathJax バージョン 2と比べると、バージョン 2 が TeX でいう別行立て数式モードだったのに対し、 バージョン 3 ではインライン数式モードになったように見える。たとえば、 字が小さくなったこと、総和の上下の添え字が、シグマの真上や真下でなく、 右側の添字のように扱われていることから判断した。
なお、バージョン 3 になって、同じページでの ASCIIMath 形式と LaTeX 形式の混在ができなくなった。 ただし、はっきりとは示されていない。
文字入力 (ASCIIMath 入力) | 表現 | 説明 | 備考 |
---|---|---|---|
a+b+3 | `a+b-3` | 加法、減法 | |
a b | `a b` | 乗法 | |
1/2+1/x-x/3 | `1/2+1/x-x/3` | 除法 | |
(a+b)-3 | `(a+b)-3` | カッコ | |
(x-1)/3+1/(a+b)-(x+3)/(x-c) | `(x-1)/3+1/(a+b)-(x+3)/(x-c)` | 分数と式 | |
x^2-3^x | `x^2-3^x` | べき乗 | |
sqrt(x)+sqrt(2) | `sqrt(x)+sqrt(2)` | 根号 | |
a=b | `a=b` | 等号 | |
a gt b | `a gt b` | 不等号 | |
a ge b | `a ge b` | 等号つき不等号 | |
a lt b | `a lt b` | 不等号 | |
a le b | `a le b` | 等号つき不等号 | |
f(x) | `f(x)` | 関数 | |
x^(y-1/3) | `x^(y-1/3)` | 分数のべき乗 | |
root(3)(x)+root(a)(3) | `root(3)(x)+root(a)(3)` | 平方根、n 乗根 | |
sin(x+3) | `sin(x+3)` | 三角関数 | |
pi | `pi` | 円周率 | |
log_3(x) | `log_3(x)` | 対数 | |
log_e(x)+e^x | `log_e(x)+e^x` | 自然対数 | |
sin^-1(x) | `sin^-1(x)` | 逆三角関数 | |
sum_(i=1)^20k_i | `sum_(i=1)^20k_i` | 数列の和 | |
prod_(i=1)^20k_i | `prod_(i=1)^20k_i` | 数列の積 | |
{::}_(\ n)C_r | `{::}_(\ n)C_r` | 組み合わせの数 | ダミーの囲みを作ってその右側として表した文字を左側添字とする |
{::}^(\ t)A | `{::}^(\ t)A` | 行列の転置 | 同上 |
vec v | `vec v` | 矢線ベクトル | |
(a_x,a_y+b_y) | `(a_x,a_y+b_y) ` | 成分ベクトル | |
((x,3),(1,y)) | `((x,3),(1,y)) ` | 行列1 | |
[[x,3],[1,y]] | `[[x,3],[1,y]] ` | 行列2 | |
|(x,3),(1,y)| | `|(x,3),(1,y)|` | 行列式 | det((x,3),(1,y)) は不可 |
dy/dx | `dy/dx` | 微分 | |
intf(x)dx | `intf(x)dx` | 不定積分 | |
int_0^1f(x)dx | `int_0^1f(x)dx` | 定積分 | |
int_1^oo1/x^2dx | `int_1^oo1/x^2dx` | 無限大 | |
abs(-x) | `abs(-x)` | 絶対値 | |
norm(x) | `norm(x)` | ノルム | |
lim_(x->0)sin(x) | `lim_(x->0)sin(x)` | 極限 | |
4+3i | `4+3i` | 虚数 | |
(delz)/(delx) | `(delz)/(delx)` | 偏微分 | |
(d^2y)/dx^2 | `(d^2y)/dx^2` | 2 階微分 | |
|\ | | `|\ |` | 半角スペース | |
|quad| | `|quad|` | 半角 * 2 スペース | |
a times b | `a times b` | 乗算 | |
a div b | `a div b` | 除算 |
下記は、基本編以外の記号である。ASCIIMath (asciimath.org) を参考にした。
文字入力 | 表現 | 説明 |
---|---|---|
bbA bba | `bbA bba` | 太字 |
bbbC bbbN bbbQ bbbR bbbZ | `bbbC bbbN bbbQ bbbR bbbZ` | 二度打ち体 |
ccA ccB ccC ccE ccF ccH ccI ccL ccM ccR ccS | `ccA ccB ccC ccE ccF ccH ccI ccL ccM ccR ccS` | スクリプト体 |
frA frB frC frH frI frR frZ | `frA frB frC frH frI frR frZ` | フラクトゥール |
sfA sfa | `sfA sfa` | サンセリフ |
ttA tta | `ttA tta` | テレタイプ |
dotA dota | `dotA dota` | (時間に関する)一階微分 |
ddotA ddota | `ddotA ddota` | (時間に関する)二階微分 |
|__x__| | `|__x__|` | 床関数。実数 `x` に対する `x` 以下の最大の整数 |
|~x~| | `|~x~|` | 天井関数。実数 `x` に対する `x` 以上の最小の整数 |
f(x)={(sin x/x,x!=0),(1,x=0):} | `f(x)={(sin x/x,x!=0),(1,x=0):}` | 場合分け(右側に見えないカッコ :} を使う) |
nn | `nn` | 集合の交わり |
nnn | `nnn` | 集合の交わり(`sum` のように添字集合とともに用いる) |
uu | `uu` | 集合の結び |
uuu | `uuu` | 集合の結び(`sum` のように添字集合とともに用いる) |
sub | `sub` | `A sub B` , A は B に含まれる |
sup | `sup` | `A sup B` , A は B を含む |
x in X | `x in X` | `x in X` , x は X の要素である |
x notin X | `x notin X` | `x notin X` , x は X の要素でない |
underset(y in C)(min) norm(x - y) | `underset(y in C)(min) norm(x - y)` | 最小値 |
obrace(1+2+3+4)^("4 terms") | `obrace(1+2+3+4)^("4 terms")` | 上カッコ |
ubrace(1+2+3+4)_("4 terms") | `ubrace(1+2+3+4)_("4 terms")` | 下カッコ |
color(red)(x) | `color(red)(x)` | (red|yellow|green|blue|orange|white|black|gray)など |
cancel(x) | `cancel(x)` |
まりんきょ学問所 > コンピュータの部屋 > マーク付け言語手習い > MathJax3 を使う