VSCode上でよくmarkdownを使うがあまりにも理不尽で発狂したくなることがあったので殴り書きをする
MathJaxを使っている人(Qiitaに数式を埋め込む人など)には何かの助けになるかもしれません
私は以下の記事を参考にしてmdにMathJaxで数式を埋め込んでVSCodeの拡張機能MarkdownPDFでPDFに出力する目的で使ってます
行列、式が改行できない
以下のように\crで改行しましょう
\begin{pmatrix}
1 & 1 & 1 \cr
1 & -8 & 1 \cr
1 & 1 & 1
\end{pmatrix}
結果
$$
\begin{pmatrix}
1 & 1 & 1 \cr
1 & -8 & 1 \cr
1 & 1 & 1
\end{pmatrix}
$$
レンダリングされない
$$と数式の記述の間に改行が挟まってはいけません
例
$$
% ↑余分な改行、失敗する
\begin{alignat*}{1}
&=\int_a^b {du f(u) \sqrt{(f'(u))^2+1} \int_0^{2\pi} d\theta} \cr
&=2\pi\int_a^bf(u)\sqrt{(f'(u))^2+1}du
\end{alignat*}
$$
$$
% 上手くいく
\begin{alignat*}{1}
&=\int_a^b {du f(u) \sqrt{(f'(u))^2+1} \int_0^{2\pi} d\theta} \cr
&=2\pi\int_a^bf(u)\sqrt{(f'(u))^2+1}du
\end{alignat*}
$$
結果
$$
% ↑余分な改行、失敗する
\begin{alignat*}{1}
&=\int_a^b {du f(u) \sqrt{(f'(u))^2+1} \int_0^{2\pi} d\theta} \cr
&=2\pi\int_a^bf(u)\sqrt{(f'(u))^2+1}du
\end{alignat*}
$$
$$
% 上手くいく
\begin{alignat*}{1}
&=\int_a^b {du f(u) \sqrt{(f'(u))^2+1} \int_0^{2\pi} d\theta} \cr
&=2\pi\int_a^bf(u)\sqrt{(f'(u))^2+1}du
\end{alignat*}
$$
[]に下付き文字を入れた式を複数書くときは]の後ろに空白が必要です
本記事の本題、角括弧だけでなく他の直接書けるかっこ(丸括弧"()")なども同様と思われる
原因が判明するまで2時間かかった誰がわかるかマジふざけんな
例
$$
% 失敗する
\begin{alignat*}{1}% ↓ここの空白
M&[ \forall w(z=w) ]_\rho =false \cr % ↓ここの空白
\Leftrightarrow& M[ \exists w(z\neq w) ]_\rho = true
\end{alignat*}
$$
$$
% 上手くいく
\begin{alignat*}{1}% ↓ここの空白
M&[ \forall w(z=w) ] _\rho =false \cr % ↓ここの空白
\Leftrightarrow& M[ \exists w(z\neq w) ] _\rho = true
\end{alignat*}
$$
結果
$$
% 失敗する
\begin{alignat*}{1}% ↓ここの空白
M&[ \forall w(z=w) ]\rho =false \cr % ↓ここの空白
\Leftrightarrow& M[ \exists w(z\neq w) ]\rho = true
\end{alignat*}
$$
$$
% 上手くいく
\begin{alignat*}{1}% ↓ここの空白
M&[ \forall w(z=w) ] _\rho =false \cr % ↓ここの空白
\Leftrightarrow& M[ \exists w(z\neq w) ] _\rho = true
\end{alignat*}
$$
あとがき
mdはよく使うのでまたけつまずいたら更新します
何か質問があればできる限り回答します
またご指摘があれば遠慮なくコメントしてくださると幸いです