Markdownで数式を書くのをやめました

VSCodeのMarkdown All in Oneという拡張を使って$\LaTeX$の記法で数式を書くとリアルタイムで変換してくれて便利なのですが、マクロとかがうまく使えなかったりして不便なので限定的にしか使わないことにしました。

例えば、

$$
\def\comb#1#2{\begin{pmatrix}#1\\#2\end{pmatrix}}
\newcommand{\combi}[2]{{}_#1\mathrm{C}_#2}
\comb{n}{r}=\combi{n}{r}
$$
$$
\comb{n}{r}=\combi{n}{r}
$$

$$\def\comb#1#2{\begin{pmatrix}#1\\#2\end{pmatrix}}\newcommand{\combi}[2]{{}_#1\mathrm{C}_#2}\comb{n}{r}=\combi{n}{r}$$$$\comb{n}{r}=\combi{n}{r}$$と書くと2つ目の数式は表示に失敗するんですよね。マクロは定義したブロックでしか使えない。これは不便です。htmlで書くと問題なく通るんですよね。なのでおれおれマークダウンならばなんの問題も無い。

2つ目は

<script>
  MathJax = {
    chtml: {
      displayAlign: "left",
    },
    tex: {
      inlineMath: [['$', '$']]
    }
  };
</script>

と書けないところ。まあ、VSCodeで書くときにはそんなにWindowの幅は広くないので左寄せでなくても、そんなにはつらくないのですが。

もう一つはlabelが使えないところ。

$$
\begin{equation}
a=b \tag{1} \label{1}
\end{equation}
$$
htmlだと$\eqref{1}$で参照できる。

$$\begin{equation}a=b \tag{1} \label{1}\end{equation}$$htmlだと$\eqref{1}$で参照できる。本当はlabelだけで自動採番にしたいのだけど、やりかたがわからない。

もしかして設定でできるかもとMarkdown All in Oneの設定を見に行ったら、こんなコメントが…

Please use Markdown+Math for dedicated math support. Be sure to disable math.enabled option of this extension.

「えっ、そうなの!」ということでさっそくMarkdown All in OneのMathの機能を切って、Markdown+Mathを入れてみた。でも、上記の不満点はなんにも解消されない様子。html使うからいいけどね。

数式をリアルタイムで確認しながらの入力だけVSCodeでやって、その他の作業は今まで通りかな?

コメント

このブログの人気の投稿

五十音配列付き新下駄配列

WSLでの親指シフトはどうやらMozcで実現可能と気がつくまで

親指シフト新下駄配列の可能性