DocusaurusのKaTeXをカスタムする
Docusaurus の KaTeX で physics package で定義されているマクロ, mhchem, 独自マクロを使いたい.
KaTeX をインストール
公式Documentsに従って, KaTeX プラグインをインストールする.
yarn add remark-math@6 rehype-katex@7
docusaurus.config.js
を編集して, KaTeXを有効にする.
docusaurus.config.js
import remarkMath from 'remark-math';
import rehypeKatex from 'rehype-katex';
const config = {
presets: [
[
'classic',
({
docs: {
remarkPlugins: [remarkMath],
rehypePlugins: [
[
rehypeKatex,
{
throwOnError: true,
globalGroup: true,
},
],
],
},
blog: {
remarkPlugins: [remarkMath],
rehypePlugins: [
[
rehypeKatex,
{
throwOnError: true,
globalGroup: true,
},
],
],
},
}),
],
],
stylesheets: [
{
href: 'https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css',
type: 'text/css',
integrity: 'sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM',
crossorigin: 'anonymous',
},
],
}
動作チェック:
$$
I = \int_0^{2\pi} \sin(x)\,dx
$$
Physics パッケージを使いたい
Docusaurusの数式記述でphysicsパッケージで定義されているマクロ(\dv
, \eval
, ...etc)を使いたい.
katexのphysicsマクロ https://github.com/balthild/katex-physics を発見した. これを試してみる.
まずはインストール.
yarn add katex-physics
このマクロをdocusaurusで有効化する方法がよくわからなかったが, https://stackoverflow.com/questions/72861585/global-macros-for-katex-in-docusaurus によると, docusaurus.config.js
を次のように変更すればよさそう.
docusaurus.config.js
import macros from "katex-physics";
rehypePlugins: [
[
rehypeKatex,
{
throwOnError: true,
globalGroup: true,
macros,
},
],
],
動くかチェック.
$$
\dd x \qc \dv{x} \qc \dv{f}{x} \qc
\dv[n]{x} \qc \dv[n]{f}{x} \\
\pd x\qc \pdv{x} \qc \pdv{f}{x} \qc
\pdv[n]{x} \qc \pdv[n]{f}{x} \qc \pdv{f}{x}{y}{z} \\
\qty[\qty(1-n)*\frac{1}{n}] \qc \qty{1+\frac{1}{n}} \qc \qty|1+\frac{1}{n}| \\
\bra{a} \qc \ket{b} \qc \expval{x} \qc
\braket{a}{b} \qc \ketbra{a}{b} \qc \matrixel{a}{b}{c} \\
\mqty(a & b \\ c & d) \qc \mqty[a & b \\ c & d] \qc \mqty{a & b \\ c & d} \qc
\mdet{a & b \\ c & d} \qc \mqty|a & b \\ c & d| \\
\mqty[\dmat{a,b,\cdots}] \qc \mqty[\admat{a,b,\cdots}] \qc
\mqty[\imat{2}] \qc \mqty[\xmat{x}{3}{2}] \qc
$$