Qiitaで$\newcommand{\rmtex}{\mathrm{\TeX}} \rmtex$記法の数式を表示する際にはMathJaxというライブラリが利用されています。素の$\newcommand{\rmlatex}{\mathrm{\LaTeX}} \rmlatex$では表現の幅が狭いので、$\rmlatex$用パッケージのいくつかが拡張機能(Extensions)という形でMathJaxに対応しています。これとは別に、MathJax独自の拡張機能も存在します。ここでは備忘録も兼ねてQiitaで使える主要なMathJaxの拡張機能を書き出していきます。個別の詳細な使用方法については参照のリンクのドキュメントを読んでください。
QiitaのMathJaxのバージョンは2019年12月現在でv2.6.0です。2019年9月にMathJaxの最新版v3.0.0がリリースされていて、v2.6.0はおよそ4年前のものなので少し年季が入っています。その分だけ使用できる拡張機能の種類も少し少なめで、使えたとしても拡張機能のバージョンもまた古いものとなっています。
【2022年1月11日 追記】
拡張機能に列挙抜けと記述誤りがあったためこの機に少し加筆修正を行いました。記事のタイトルも簡潔なものに変更。
ちなみに、2020年1月の投稿から2年が経ちましたがQiitaのMathJaxのバージョンは変わらずv2.6.0です。ブラウザのデベロッパーツールからSources -> Page -> cdn.qiita.com
と覗くとバージョンが確認できます(Chromium系の場合)。
【2024年11月28日 追記】
既にご存知の方も多いと思いますが、丸一年以上前の2023年7月にQiitaのMathjaxライブラリがv3.2.2にバージョンアップされました。ずっと更新をサボっていて申し訳ありません。Qiita Blogの方でも追加・変更・削除された機能について紹介されていますが、ここでも一覧でまとめます。更新によって追加された分を上に表示しておきます。v2.7の時点で存在した拡張機能のバージョンアップ機能については後日[いつ?]追記。
physics
理系で$\rmlatex$を使用する人は常用していることも多いであろう便利な超有名パッケージ。一方で警告無く既存のコマンドを上書きしたり、他の$\rmlatex$パッケージと衝突(特にsiunitx
との\qty{}
衝突は激痛い。どちらでもよく使う。)を引き起こす悪名もまた名高い。本家$\rmlatex$ではphysics2
を使おう。
ただQiitaでは既存のコマンドを破壊しないようにマイルドにロードされているらしく、副作用は抑えられている模様。要\require{physics}
ˋˋˋmath
\require{physics}
\displaylines{
\Delta f = \laplacian f = \pdv[2]{f}{x} + \pdv[2]{f}{y} + \pdv[2]{f}{z} \\
\braket{\vb{r}}{\psi} \\ % 内積(inner product)なので \ip{\vb{r}}{\psi} でもOK。
\mqty(\xmat*{a}{3}{3}) % 行列の記述も容易でイイネ
}
ˋˋˋ
\require{physics}
\displaylines{
\Delta f = \laplacian f = \pdv[2]{f}{x} + \pdv[2]{f}{y} + \pdv[2]{f}{z} \\
\braket{\vb{r}}{\psi} \\ % 内積(inner product)なので \ip{\vb{r}}{\psi} でもOK。
\mqty(\xmat*{a}{3}{3}) % 行列の記述も容易でイイネ
}
参照
- physics – Macros supporting the Mathematics of Physics
- 数式をもっと楽に書ける TeX の physics パッケージまとめ #LaTeX - Qiita
cases
AMSmathのcases環境で数式を記述するときに、それぞれの行に式番号をつけたい場面があります。ただcasesは全部ひとまとまりでタグを1個しか付与できません。そのときに活躍するのがcases拡張のnumcases
やsubnumcases
環境。要\require{cases}
ˋˋˋmath
H(x)=
\begin{cases}
1, & \text{for $x > 0$} \tag{1}\\
0, & \text{for $x < 0$} % \tag{2}をつけようとするとエラーが出る
\end{cases}
ˋˋˋ
ˋˋˋmath
\require{cases}
\displaylines{
\begin{numcases} {H(x)=}
1, & \text{for $x > 0$} \tag{1}\label{eq.heaviside1}\\
0, & \text{for $x < 0$} \tag{2}
\end{numcases}
}
ˋˋˋ
H(x)=
\begin{cases}
1, & \text{for $x > 0$} \tag{1}\\
0, & \text{for $x < 0$} % \tag{2}をつけようとするとエラーが出る
\end{cases}
\require{cases}
\displaylines{
\begin{numcases} {H(x)=}
1, & \text{for $x > 0$} \tag{1}\label{eq.heaviside1}\\
0, & \text{for $x < 0$} \tag{2}
\end{numcases}
}
「Mathjax版numcases
だと数式番号の表示される位置が気に食わない」ですか?それはホントにそう。
\label
と組み合わせればもちろん(eq)refコマンドで式$\eqref{eq.heaviside1}$のように参照することも可能ですが、手元の環境で試した限りでは参照リンクをクリックしてもその式へジャンプしてくれる訳ではないみたい。
参照
centernot
\not
と記号等を組み合せて打ち消し線を入れる際、\centernot
にすることで正確に中心に斜線を引いてくれるのでより綺麗にしてくれる。2つの文字(列)や記号を重ね合わせる\centerOver{背面}{前面}
という謎のコマンドもある。要\require{centernot}
ˋˋˋmath
\require{centernot}
\displaylines{
\not\longrightarrow \ \centernot\longrightarrow \\
\not\in \ \centernot\in \\
\not\sim \ \centernot\sim \\
\not\leq \ \centernot\leq \\
\centerOver{⛄}{/}
}
ˋˋˋ
\require{centernot}
\displaylines{
\not\longrightarrow \ \centernot\longrightarrow \\
\not\in \ \centernot\in \\
\not\sim \ \centernot\sim \\
\not\leq \ \centernot\leq \\
\centerOver{⛄}{/}
}
綺麗かな…綺麗かも…。多くの両辺比較する数学記号は打ち消し版のコマンドが定義されてるので\nsim
とか\nleq
とかを素直に使えばいい場面が大半か。
参照
colortbl
MathJaxでも数式用の表環境であるarray
を使用できます。colortblはそこの行や列、セルの色を変更する機能を提供。優先度は\cellcolor > \rowcolor > \columncolor
の順。要\require{colortbl}
ˋˋˋmath
\require{colortbl}
\displaylines{
\begin{array}{|l|c|}
\rowcolor[gray]{.9}
\text{one}&\text{two}\\
\rowcolor[gray]{.5}
\text{three}&\text{four}
\end{array}
}
ˋˋˋ
\require{colortbl}
\displaylines{
\begin{array}{|l|c|}
\rowcolor[gray]{.9}
\text{one}&\text{two}\\
\rowcolor[gray]{.5}
\text{three}&\text{four}
\end{array}
}
なお、色の指定まではできないものの、MathJax用の表ジェネレータというニッチなWebアプリが存在する。
参照
empheq
equation
やalign
などの数式をempheq
環境で装飾する拡張機能。本家は数式を枠で囲えたり多機能ですが、MathJax版はオプションにはleft
とright
しか設定できないようです。要\require{empheq}
ˋˋˋmath
\require{empheq}
\displaylines{
\begin{empheq}[left=L\Rightarrow\empheqlceil,right=\empheqrfloor\Leftarrow R]{align}
a&=b \\
E&=mc^2 + \int_c^d x\, dx
\end{empheq}
}
ˋˋˋ
\require{empheq}
\displaylines{
\begin{empheq}[left=L\Rightarrow\empheqlceil,right=\empheqrfloor\Leftarrow R]{align}
a&=b \\
E&=mc^2 + \int_c^d x\, dx
\end{empheq}
}
先述のcases
拡張機能は実際のところ、このempheq
を使って擬似的にcases
っぽいことをしている実装らしいです。
参照
gensymb
\celsius
と\degree
と\micro
と\ohm
と\perthousand
の実装。siunitx
が無い中では地味に使えるか。特に「マイクロ」の意味での$\mu$が斜体になっているのを見ると体調が悪くなる人におすすめ。要\require{gensymb}
ˋˋˋmath
\displaylines{
\require{gensymb}
0\,\text{K} = -273.15\celsius \\
180\degree \text{方針転換} \\
\pm 10\,\micro\text{mの精度} \\
\text{内部抵抗}25\,\ohm \\ % \Omegaと形の差異は分からない
90\,\perthousand \text{の急勾配} % \permilではない
}
ˋˋˋ
\displaylines{
\require{gensymb}
0\,\text{K} = -273.15\celsius \\
180\degree \text{方針転換} \\
\pm 10\,\micro\text{mの精度} \\
\text{内部抵抗値}25\,\ohm \\ % \Omegaと形の差異は分からない
90\,\perthousand \text{の急勾配} % \permilではない
}
mathtools
$\rmlatex$では後述のAMSmathとほぼ必ずセットで使われるほどの不動のレギュラーの地位にいるパッケージ。機能は多すぎるのでここでは紹介しきれません。別途mathtoolsについてのQiitaの記事やWebページを参照してください。要\require{mathtools}
ˋˋˋmath
\require{mathtools}
\displaylines{
\begin{alignat}{2}
&&\Aboxed{\left(\frac{1}{c^2}\frac{\partial^2}{\partial t^2} - \triangle\right) \phi
&= -\frac{\rho}{\varepsilon_0}} \\
\ArrowBetweenLines*[\Downarrow]
&&\underbracket[2pt]{\square}_{\text{ダランベルシアン}} & = -\frac{\rho}{\varepsilon_0}
\end{alignat}
}
ˋˋˋ
\require{mathtools}
\displaylines{
\begin{alignat}{2}
&&\Aboxed{\left(\frac{1}{c^2}\frac{\partial^2}{\partial t^2} - \triangle\right) \phi
&= -\frac{\rho}{\varepsilon_0}} \\
\ArrowBetweenLines*[\Downarrow]
&&\underbracket[2pt]{\square}_{\text{ダランベルシアン}} \phi & = -\frac{\rho}{\varepsilon_0}
\end{alignat}
}
参照
- mathtools commands — MathJax 3.2 documentation
- mathtools – Mathematical tools to use with amsmath
-
amsmath+mathtools と仲良くなろう #LaTeX - Qiita
他多数
textcomp ('24/11 Qiitaで動作確認できず)
現在は$\rmlatex$標準に組込まれている。ユーロとかポンドとかのテキスト用記号を表示させるための機能。要\require{textcomp}
。\require
した後にtextcomp.js
とtextmacro.js
は読み込まれてるっぽいんですが動いてないっぽい。なんで?
ˋˋˋmath
\require{textcomp}
\texteuro \ \textvisiblespace
ˋˋˋ
\require{textcomp}
\texteuro \ \textvisiblespace
まぁ普通に「€」とか「₩」とか「␣」という風にUnicodeを直接使えばいいので困らない。MathJax環境中ではほぼほぼ使わないですし。
参照
upgreek
デフォルトでイタリック体になるギリシャ小文字を立体にしてくれるパッケージ。こういうフォント関連のはMathJaxだと動作怪しいことが多いですが…。
ˋˋˋmath
\require{upgreek}
\displaylines{
\alpha \ \upalpha \\
\mu \ \upmu \\
\omega \ \upomega
}
ˋˋˋ
\require{upgreek}
\displaylines{
\alpha \ \upalpha \\
\mu \ \upmu \\
\omega \ \upomega
}
う~ん…手元のWindows環境では何か右の方が少し細いかなくらいで字体の変化は確認できませんでした。MathJax4ではフォント周りが強化予定らしいのでそれに期待します。
(追記)スマホでこの記事を見たら正しく表示されていました。なんかフォントサイズはえらく異なってはいますが。
AMSmath AMSsymb
$\rmlatex$で数式を含む文書を書いている人は全員知っているパッケージ。MathJaxやKaTeXしか$\rmtex$記法を使ったことがない人でも知らず知らずのうちにこれらを使用しているかもしれません。
ˋˋˋmath
\delta(x) = \begin{cases}
\infty & (x = 0) \\
0 & (x \neq 0)
\end{cases}
ˋˋˋ
\delta(x) = \begin{cases}
\infty & (x = 0) \\
0 & (x \neq 0)
\end{cases}
参照
asmcd
名前の"cd"はCommutative diagramの略で、日本語だと可換図式というそうです。その名の通りAMScdは可換図式を描くためのCDという環境を提供します。下のような図を表現できます。長方形(とその組み合わせ)型の図のみに対応していて、斜め方向の矢印を記述する方法は無いようです。要\require{amscd}
ˋˋˋmath
\require{amscd}
\begin{CD}
A @>>{\text{What}}> B \\
@A{\text{diagram?}}AA @VV{\text{is a}}V \\
C @<{\text{commutative}}<< D
\end{CD}
ˋˋˋ
\begin{CD}
A @>>{\text{What}}> B \\
@A{\text{diagram?}}AA @VV{\text{is a}}V \\
C @<{\text{commutative}}<< D
\end{CD}
私の数学の知識がペラペラなのがバレるので早く次行きましょう。
参照
boldsymbol
記号を太字にする\boldsymbol{}
コマンドを提供します。ギリシャ文字もボールドにできます。強制的に立体になる\mathbf{}
と違ってイタリック体のままなのが美味しいところです。主にベクトルを書くときにいいです。いちいちタイプするには長いので\newcommand
などで短い表記にした方がいいでしょう。
ˋˋˋmath
\newcommand{\bs}[1]{\boldsymbol{#1}}
\bs{a} = \bs{i} a_x + \bs{j} a_y + \bs{k} a_z \\
\mathbf{rot}\ \bs{a} \stackrel{\text{def}}{=} \nabla \times \bs{a}
ˋˋˋ
\newcommand{\bs}[1]{\boldsymbol{#1}}
\bs{a} = \bs{i} a_x + \bs{j} a_y + \bs{k} a_z \\
\mathbf{rot}\ \bs{a} \stackrel{\text{def}}{=} \nabla \times \bs{a}
$\rmlatex$では\boldsymbol{}
コマンドはamsmathに含まれていたような気がしますがMathJaxでは別個の拡張機能という扱いのようです。
newcommand
なぜかMathJaxでは拡張機能となっているコマンドがさらにいくつかあり、先程しれっと使った\newcommand
はどうもMathJaxでは拡張機能らしいです。この他$(\mathrm{La})\rmtex$でおなじみの\def
、\let
、\renewcommand
、\newenvironment
そして\renewenvironment
がnewcommand拡張機能のマクロという扱いとなっています。
mathchoice
使用される場所によって出力結果を変えるために使われる\mathchoice{displaystyle}{textstyle}{scriptstyle}{scriptscriptstyle}
も拡張機能扱いになっています。これは標準の$\rmtex$で使えるものなので説明は省略します。私は今まで一度も使ったことのない命令ですが、どうやら$\rmtex$のダークサイドとも関わりのある結構ややこしい仕様があるようです。
参照
color
\color{color}{math}
で数式の色を変えられます。
ˋˋˋmath
\mathcal{L}[f(\color{red}{t})] =
\int_{-\infty}^{\infty} e^{-\color{blue}{s}\color{red}{t}} f(\color{red}{t}) \ d\color{red}{t} \\
\mathcal{L}^{-1}[F(\color{#0000FF}{s})] =
\frac{1}{2\pi i} \lim_{T\to\infty} \int_{c-iT}^{c+iT} e^{\color{#0000FF}{s}\color{#FF0000}{t}} F(\color{#0000FF}{s}) \ d\color{#0000FF}{s}
ˋˋˋ
\mathcal{L}[f(\color{red}{t})] = \int_{-\infty}^{\infty} e^{-\color{blue}{s}\color{red}{t}} f(\color{red}{t}) \ d\color{red}{t} \\
\mathcal{L}^{-1}[F(\color{#0000FF}{s})] = \frac{1}{2\pi i} \lim_{T\to\infty} \int_{c-iT}^{c+iT} e^{\color{#0000FF}{s}\color{#FF0000}{t}} F(\color{#0000FF}{s}) \ d\color{#0000FF}{s}
cancel
数式に打ち消し線を引けます。AMScdと同様に**\require{}
宣言が必要です。**
線の色を変えたいこともあります。$\rmlatex$パッケージ版で簡単に打ち消し線の色を変更できる\renewcommand{\CancelColor}{color_command}
はMathJaxでは使用できないみたいなので、colorと組み合わせることで実現します。
ˋˋˋmath
\require{cancel}
\cancel{\tan\frac{\pi}{2}=\infty} \\
\bcancel{\pi = 3.14} \\
7\times8 = \color{red}{\xcancel{\color{black}{54}}} \color{red}{56}\\
{}_6\mathrm{C}_3 = \frac{\cancelto{\cancelto{1}{2}}{6}\cdot 5\cdot \cancelto{2}{4}}{\cancelto{1}{3}\cdot \cancelto{1}{2}\cdot 1} = 20
ˋˋˋ
\require{cancel}
\cancel{\tan\frac{\pi}{2}=\infty} \\
\bcancel{\pi = 3.14} \\
7\times8 = \color{red}{\xcancel{\color{black}{54}}} \color{red}{56}\\
{}_6\mathrm{C}_3 = \frac{\cancelto{\cancelto{1}{2}}{6}\cdot 5\cdot 4}{\cancelto{1}{3}\cdot \cancelto{1}{2}\cdot 1} = 20
参照
bbox
MathJaxの独自機能みたいです。\bbox[backgroundcolor,margin,style]{math}
で数式の周りを四角形の枠で囲えます。余白を自然な感じにするのは困難です。ただ、style
はCSSのように設定できて強いです。
ˋˋˋmath
\bbox[#a9a9a9,1px]{\text{オイラーの公式}} \\
\bbox[12px,border: 3px dotted]{e^{\mathrm{i}\theta} = \cos\theta + \mathrm{i}\sin\theta} \\
\bbox[dimgray,15px,border: 7px outset gray]{\text{ボタン風}}
ˋˋˋ
\bbox[#a9a9a9,1px]{\text{ オイラーの公式}} \\
\bbox[10px,border: 3px dotted black]{e^{\mathrm{i}\theta} = \cos\theta + \mathrm{i}\sin\theta} \\
\bbox[dimgray,13px,border: 7px outset gray]{\text{ボタン風}}
参照
enclose
数式の装飾を行えるMathMLの<menclose>
にあたる機能を\enclose{notation}[attributes]{math}
としてMathJaxに実装しています。外枠がbox
以外も選べるbboxという感じです。文字と枠の間隔はbboxと比べてかなりいい感じ。ただし、Qiitaのバージョンのencloseでは[attributes]
で設定できるのは線(とその中の数式)の色を変更するmathcolor
、背景色を設定するmathbackground
のみで、bboxのようにCSS式で[attributes]
を設定できません。これが原因でbboxの上位互換にはなれていません。\require{enclose}
が必要です。
ˋˋˋmath
\require{enclose}
% mathcolorは中身の色も変えてしまうため数式の色をcolorで黒に変更
\frac{G(s)}{\enclose{roundedbox}[mathcolor="red"]{\color{black}{1+G(s)H(s)}}} \\
\enclose{roundedbox}[mathcolor="red"]{\color{white}{█}}=0 \quad \text{をフィードバック制御系の特性方程式という}
ˋˋˋ
\require{enclose}
% mathcolorは中身の色も変えてしまうため数式の色をcolorで黒に変更
\frac{G(s)}{\enclose{roundedbox}[mathcolor="red"]{\color{black}{1+G(s)H(s)}}} \\
\enclose{roundedbox}[mathcolor="red"]{\color{white}{█}}=0 \quad \text{をフィードバック制御系の特性方程式という}
{notation}
を変えるとcancelと全く同じ事ができます。
ˋˋˋmath
1+1 = \enclose{updiagonalstrike downdiagonalstrike}[mathcolor="red"]{\color{black}{3}} \color{red}{2}
ˋˋˋ
1+1 = \enclose{updiagonalstrike downdiagonalstrike}[mathcolor="red"]{\color{black}{3}} \color{red}{2}
参照
HTML
bboxでCSS風の記法ができる点について触れましたが、HTMLという拡張機能ではなんと数式に直接CSS装飾が行える\style{css}{math}
マクロが存在します。
ˋˋˋmath
(x+1)^2 = \style{color: #228B22;
background-color: whitesmoke;
cursor: help;
font-weight: bold;
font-style: italic;
outline: 3px gray dashed;}{(x+1)(x+1)}
ˋˋˋ
(x+1)^2 = \style{color: #228B22;
background-color: whitesmoke;
cursor: help;
font-weight: bold;
font-style: italic;
outline: 3px gray dashed;}{(x+1)(x+1)}
私が試した限りでは上記のCSSプロパティがカスタマイズ可能でした。outlineが設定可能と分かったときは**bbox要る?**と思いましたが、どうも上下の部分は数式が表示されるエリアからはみ出てしまってoutlineはあまり使えないオプションのようです。
bboxとencloseと\style
を使いこなせれば、よりQiita映えする数式を実現できるかもしれません。
HTML拡張にある他の機能としては、かつてはQiitaでも\href{url}{math}
マクロが使えたらしいのですが、亡き者となりました。今ではこのコマンドを打っても無視されて出力されます。
\cssId{ID}{math}
、\class{name}{math}
マクロは、JavaScriptと組み合わせることで例えばボタンを押すと数式が見えるようになるといった動的な制御が可能になるものですが、これらもどうやらQiitaでは機能しないようです。まぁこのコマンドだけ生きててもユーザーには活用法がないですが。
参照
action
Web上ならではの表現を可能とする拡張機能としてはactionもその一つでしょう。MathMLの<maction>
にアクセスできるようになります。使えるマクロは\mathtip{math}{tip}
、\texttip{math}{tip}
、\toggle{math1}{math2}...{mathn}\endtoggle
の3つ。\require{action}
が必要です。
ˋˋˋmath
\require{action}
\mathtip{\triangle ABC \sim \triangle DEF}{\because \angle A=\angle D \text{かつ} \angle B=\angle E \text{かつ} \angle C=\angle F} \\
\texttip{E = mc^2}{3.5ピコグラムのエネルギーで1キログラムのお湯が沸く!!!} \\
\toggle{A=B}{B=C}{\therefore A=C}\endtoggle
ˋˋˋ
\require{action}
\mathtip{\triangle \mathrm{ABC} \sim \triangle \mathrm{DEF}}{\because \angle A=\angle D \text{かつ} \angle B=\angle E \text{かつ} \angle C=\angle F} \\
\texttip{E = mc^2}{3.5ピコグラムのエネルギーで1キログラムのお湯が沸く!!!} \\
\toggle{A=B}{B=C}{\therefore A=C}\endtoggle
\mathtip
と\texttip
は数式にマウスカーソルを合わせるとその名の通りtipが表示されます。tipとして使えるのが数式かテキストかが異なります。\toggle
と\endtoggle
で囲まれた数式はクリックするとその順番に表示が切り替えられます。最後の数式をクリックすると最初に戻り以降ループ。
ちなみにスマートフォン上では\toggle
はタップで問題なく動作し、\mathtip
もタップするとtipが表示されますが\texttip
はtipを表示させる方法がなさそうです。私のスマホでのみの確認ですが。
参照
= TeX and LaTeX extensions - action
unicode
\unicode[height,depth][font]{char_ref}
でUnicode文字を直接指定することが出来ます。これの面白いのは、[font]
を指定できるところです。全員が全員に意図した表示がされる保証はありませんが…。
ˋˋˋmath
AC \unicode[0.5,0.05]{8735} BC \Longrightarrow AB^2 = AC^2 + BC^2
ˋˋˋ
AC \unicode[0.5,0.05]{8735} BC \Longrightarrow AB^2 = AC^2 + BC^2
関連する拙稿
extpfeil
矢印の上下に文字を入れたい時があります。smathにxleftarrow[bottom]{top}
、xrightarrow
がありますが、矢印の種類が少ないので不便を感じる方もいらっしゃるでしょう。extpfeilでは\xtwoheadrightarrow
、\xtwoheadleftarrow
、\xmapsto
、\xlongequal
、\xtofrom
の5種類を提供します。
が、これでも欲しい矢印がない場合もあります(extarrowsのが使いたいんだよ! とか)。そのようなときのために、新しく延伸可能な矢印を定義するコマンド\Newextarrow{\name}{lspace,rspace}{unicode-char}
が実装されています。しかしMathJaxが原因で伸ばせる文字は限られています。\require{extpfeil}
が必要です。
ˋˋˋmath
\require{extpfeil}
\square \xlongequal{\text{定義!!}} \frac{1}{c^2}\frac{\partial ^2}{\partial t^2} - \Delta \\
\Newextarrow{\xLongleftrightarrow}{5,10}{8660} a \xLongleftrightarrow[\text{as you like}]{\text{extensible}} b \\
\Newextarrow{\xlrarrow}{5,10}{8703} a \xlrarrow[\text{ちゃんと伸ばせない}]{} b
ˋˋˋ
\require{extpfeil}
\square \xlongequal{\text{定義!!}} \frac{1}{c^2}\frac{\partial ^2}{\partial t^2} - \Delta \\
\Newextarrow{\xLongleftrightarrow}{5,10}{8660} a \xLongleftrightarrow[\text{as you like}]{\text{extensible}} b \\
\Newextarrow{\xlrarrow}{5,10}{8703} a \xlrarrow[\text{ちゃんと伸ばせない}]{} b
参照
verb
入力したテキストをそのまま出力できる\verb|text|
が使えます。空白文字もそのまま出力。ˋ...ˋ
とˋˋˋ...(複数行)...ˋˋˋ
があるQiitaでは不要かな。
ˋˋˋmath
\Game \verb|は\Gameと入力すれば出ます。| \\
\verb*text中で|を使いたいときは他の記号で囲む*
ˋˋˋ
\Game \verb|は\Gameと入力すれば出ます。| \\
\verb*text中で|を使いたいときは他の記号で囲む*
mhchem
実は使えます。このことに気づいて記事を書いたと言っても過言ではありません。\require{mhchem}
宣言が必要です。
mhchemは化学表記法をより平易に$\rmlatex$の数式環境で記述出来る強力なパッケージです。MathJaxのみならず最近はKaTeXにもサードパーティの拡張機能として対応しました。mhchemによって表現できる化学式の例を下に示します。
ˋˋˋmath
\require{mhchem}
\ce{Na + H2O ->[{Explosively react}] NaOH + 1/2 H2 ^}
\ce{HF(aq) <<=> H3O+.F-}
ˋˋˋ
\require{mhchem}
\ce{Na + H2O ->T[Explosively react] NaOH + 1/2 H2 ^} \\
\ce{HF(aq) <<=> H3O+.F-}
ここのmhchem for MathJaxはv2.6.0で、最新のv3.xと比べると機能面で劣ります。例えば、v3以降は本家$\rmlatex$版でさえ存在しない最新機能として「Kröger-Vinkの表記法」という私には何を表しているのか分からない表現を簡単に記述出来る(例:\ce{Li^x_{Li,1-2x}}
$\fallingdotseq \ce{Li^{$\times$}_{Li,$1-2x$}}$)のですが、Qiitaで左記を実現するには\ce{}
中に^{$\times$}
を入れるといった工夫が必要です。しかし軽い用途ならこのバージョンでも十分でしょう。
化学反応式を書いている記事がQiitaにもあったので需要はなくはないはず。Qiitaをケミカルに染めたい方は今日から使いましょう。
参照(v3前提の内容なので注意)
まとめ
いかがでしたか?意外とMathJaxって機能豊富ですね。この記事で少しでも新しい発見があって表現の幅を広げていただけたら幸いです。
よりよいQiita執筆ライフを!