プログラミング

noteで数式を書く方法|インライン・複数行の記法とObsidianから転載するときの変換ルール

noteの数式記法の書き方をまとめました。noteの数式はKaTeXベースのTeX記法ですが、インラインは「ドル2つ+波カッコ」というnote独自の合図で、標準のMarkdownとずれています。インライン・複数行それぞれの書き方と使える場所、Obsidianなどから転載するときの書き換えルール3つ、表示されないときのトラブルシューティングを載せています。

目次

はじめに

noteの記事に、きれいな数式を入れたいと思ったことはありませんか。

勉強ノートの共有や解説記事を書いていると、数式が必要になる場面は意外と多いです。
私は以前、Markdownで数式を書くチートシート記事を書いたのですが、その中で「noteの数式記法はObsidianとずれている」と触れたまま、違いの中身を説明していませんでした。
今回はその宿題の回収です。

結論から言うと、noteの数式はKaTeXベースのTeX記法で、インラインは「$が2つ+波カッコ」、複数行は「段落の先頭と末尾の行に $$」というnote独自の合図で書きます。
数式の中身の書き方はObsidianやふつうのMarkdownと同じなので、覚えるのは「始まりと終わりの合図」の違いだけです。

なお、この記事では記法の例をコードブロックに入れています。
コードブロックの中は数式に変換されないので、「そのままの文字」が見えるようにするためです。

noteの数式はTeX記法(KaTeXベース)

まず前提から。
noteの数式表示は公式機能です。
2021年12月に追加されました。

採用されているのは「KaTeX」をベースにしたTeX記法です。
TeX(LaTeX)というのは論文などで使われる組版の記法で、分数を \frac{分子}{分母}、ルートを \sqrt{x} のように書くと、きれいな数式として表示してくれます。
この「数式の中身」の書き方自体は、ObsidianやJupyter Notebookで使うLaTeX記法と同じです。

基本記法から複数行・行列・機械学習系の記法までは、チートシート記事にまとめてあります。

プログラミング マークダウンで数式を書く方法|LaTeX記法の基本から複数行・行列、Obsidianでの運用まで MarkdownでLaTeX記法の数式を書く方法をチートシート形式でまとめました。インライン・ディスプレイの基本、分数・総和・ギリシャ文字などの基本記法から、alignedによる式変形・場合分け・行列、機械学習ノートで使う記号まで。うまく表示されないときのチェックリストと、勉強ノートでの実戦例も載せています。

ちなみに、noteはセキュリティ上の理由でHTMLの埋め込みが無効になっています。
なので「HTMLタグで無理やり数式っぽく見せる」という裏技は使えません。
数式機能を使うのが正攻法です。

公式の説明はnoteヘルプセンターの「数式記法の使い方」にあります。

インライン数式の書き方

文章の途中に数式を埋め込むときは、半角の $$ と波カッコで挟みます。

放物線 $${y = x^2}$$ を考えます。

これで「放物線」と「を考えます」の間に、\(y = x^2\) のようなきれいな数式が表示されます。
すべて半角で入力するのがポイントです。

ここで、ふつうのMarkdownに慣れている人ほど引っかかるポイントがあります。
標準のMarkdown系ツールでは「$ 1つで挟む=インライン、$ 2つで挟む=独立表示」という使い分けでした。
noteでは「$ 2つ+波カッコ」がインラインです。
$x$($ 1つ)の記法はnoteでは数式として認識されません。
ここが最大の違いです。

インライン数式が使えるのは、通常の文章行・リンク文字・太字の中です。
逆に、見出し・コードブロック・引用の中では使えないと公式に案内されています。
見出しに数式を入れたくなったときは、あきらめてテキストで書くのが無難だと思います。

私がnoteに投稿していた数式入りの記事も、すべてこの形式で書かれています。

複数行(ディスプレイ)数式の書き方

数式を独立した行として大きく表示したいときは、段落の先頭の行と末尾の行に $$(半角ドル2つ)を置き、その間に数式を書きます。
公式の例がこれです。

$$
y = (x + 1)^2 \\ = x^2 + 2x + 1
$$

\\ が数式内の改行です。
この例なら「y = (x + 1)^2」と「= x^2 + 2x + 1」の2行に分かれて表示され、式変形を並べて見せることができます。

ここで大事なのが、$$ から $$ までが、ひとつの段落のかたまりになっている」必要があることです。
$$ の行と数式の行のあいだに空行を入れて段落を分けてしまうと、独立した行として認識されず、数式が描画されません。
私はObsidianの記事をnoteに転載するツールを作ったとき、ここに一番つまずきました。
見た目はまったく同じ「$$、式、$$」の3行でも、段落がつながっているかどうかで結果が変わります。

うまく表示されないときは、新エディタなら開始記号と終了記号の間にカーソルを置くとプレビューが表示されるので、これで確認しながら書くのが確実です。

もうひとつ、環境系のコマンドについて注意があります。
LaTeXに慣れている人が使いたくなる equation・align・gather・alignat・CD といった環境は、少なくともインライン数式では非対応と公式に明記されています。
複数行の式変形は、公式の例にあるとおり \\ での改行が基本です。
\begin{aligned} が複数行側で使えるかどうかは、私もまだ検証できていません。
プレビューで確認しながら試すのが安全です。

ObsidianのMarkdownとどうズレるか

私と同じように、Obsidianで書いたノートをnoteの記事にしたい人向けに、違いを表にまとめます。

Obsidian(標準Markdown) note
描画エンジン MathJax KaTeXベース
インライン数式 $x$($ 1つで挟む) $${x}$$($ 2つ+波カッコ)
複数行数式 $$ で挟む(前後に空行を置く) 段落の先頭と末尾の行に $$(段落を分けない)
数式内の改行 alignedなどの環境が使える \\ で改行(環境はインライン非対応)
数式の中身の記法 LaTeX記法 同じLaTeX記法

Obsidianの数式はMathJaxという仕組みで描画されていて、記法は標準的なLaTeX流です。
一方のnoteはKaTeXベースで、しかもインラインの合図が $${...}$$ という独自形式です。
だから、Obsidianのノートをそのままnoteに貼り付けると、数式の部分だけ数式として表示されず、生の文字のまま並びます。
「$ マークと呪文みたいな文字列がそのまま見えている」状態です。

数式の中身(\frac\sqrt など)は同じ記法が通るので、直すのは合図の部分だけで済みます。

転載するときの書き換えルール3つ

Obsidian(や他のMarkdownツール)からnoteへ数式入りの文章を持っていくときは、次の3つだけ直します。

ルール1:インラインは「$ 1つ」を「$${ }$$」に変える。

変換前: 平均 $\mu$、分散 $\sigma^2$ の正規分布
変換後: 平均 $${\mu}$$、分散 $${\sigma^2}$$ の正規分布

開きの $$${ に、閉じの $}$$ に置き換えるイメージです。

ルール2:複数行ブロックは「段落のつながり」を確認する。

Obsidianの $$ ブロックは、形としてはnoteの複数行記法とほぼ同じです。
貼り付けたあとに、$$ から $$ までが1つの段落としてつながっているかを確認してください。
段落が分かれていたら、つなげ直します。

ルール3:金額の「$」を巻き込まない。

これは一括置換で変換しようとしたときの落とし穴です。
本文に $100 のような通貨表記があると、機械的な置換では数式扱いに巻き込まれて表示が崩れます。
逆に、数式の中にドル金額を書きたいときは \$100 とエスケープします。

ちなみに:私は自動変換しています

私はObsidianで書いた記事をnoteに下書き投稿する自作ツールを使っていて、この数式変換もツールの中で自動化しています。
作ってみて分かったのは、変換そのものより「変換してはいけない場所を除外する」処理のほうが大事だということでした。
コードブロックやインラインコードの中の $、$100 のような通貨表記まで数式に変換してしまうと、記事のあちこちが壊れます。
手作業で直す場合も、置換の前に「この$は数式か、お金か、コードか」を確認するのがコツです。

よくあるトラブル

Q. 貼り付けた数式が表示されない

A. まず記法を疑ってください。
$x$($ 1つ)のままだとnoteでは数式になりません。
インラインは $${x}$$ です。
複数行の場合は、$$ と式の段落が分かれていないかを確認してください。

Q. 「align」などの環境が効かない

A. equation・align・gather・alignat・CD はインライン数式では非対応と公式に案内されています。
式変形を並べたいときは、複数行数式の中で \\ を使って改行するのが基本です。

Q. 見出しに数式を入れたい

A. インライン数式が使えるのは通常の文章行・リンク文字・太字の中で、見出し・コードブロック・引用では使えません。
見出しは y = x^2 のようなテキスト表記にしておくのが無難だと思います。

Q. スマホで見ると数式がおかしい

A. 公式ヘルプに、iOSアプリでは数式記法が正常に動作しない場合があるという記載があります。
読者の環境によって見え方が変わる可能性は頭に入れておいてください。

Q. そもそもLaTeXの記法が分からない

A. よく使う記法はチートシート記事にまとめてあります。
それでも書けない複雑な数式は、今どきはChatGPTやClaudeに「この数式をLaTeXで書いて」と教科書の写真ごと投げれば一発で出してくれます。
出てきたLaTeXを、この記事のルールでnote形式に直すだけです。

まとめ

いかがでしたか。
今回は、noteで数式を書く方法をまとめました。

  • noteの数式はKaTeXベースのTeX記法(公式機能)。数式の中身の書き方はObsidianやMarkdownと同じ
  • インラインは半角の $${...}$$。「$ 2つ+波カッコ」がnote流。見出し・コードブロック・引用では使えない
  • 複数行は段落の先頭と末尾の行に $$、改行は \\$$ と式の段落が分かれると描画されない
  • Obsidianからの転載は「① $ 1つ→ $${ }$$」「② $$ ブロックの段落を保つ」「③ 金額の $ を巻き込まない」の3ルール
  • 迷ったら新エディタのプレビュー(記号の間にカーソル)で確認

数式がきちんと表示されるだけで、勉強系の記事の読みやすさは大きく変わります。
ぜひ試してみてください。

この記事が誰かの役に立てばうれしいです。