🧩 はじめに
WordPressでKaTeXを使って数式を表示しようとしたとき、
なぜか式が分解されたり、まったく表示されなかったりしたことはありませんか?
実はそれ、日本語環境特有の「¥(円記号)問題」が原因です。
この記事では、なぜKaTeXが日本語WordPressで崩れるのか、そしてどうすれば直るのかを実例つきで解説します。
💡 現象:数式が「バラバラ」または「無反応」
WordPressの投稿ブロックに次のような数式を書いた場合:
\( E_{\mathrm{pub}}(K_s) \to D_{\mathrm{priv}}(K_s) \)
エディタ上では「¥( E…」のように見えるのに、
プレビューでは ただのテキストとして表示されてしまう。
⚙️ 原因:「¥」はバックスラッシュじゃない!
日本語IMEやWP Multibyte Patchは、内部でU+005C(バックスラッシュ) → U+00A5(円記号)
に変換することがあります。
KaTeXはバックスラッシュ(\)を構文の始まりと認識しますが、
円記号(¥)はまったく別の文字なので、結果的に式を認識できません。
🧱 解決法:HTMLエンティティ \ を使う
HTMLでは、\ を安全に表すためのエンティティとして\ が使えます。これをKaTeXの構文内に使えば確実に動作します。
✅ 正しい書き方(例)
- 鍵交換:\( E_{\mathrm{pub}}(K_{session}) \to D_{\mathrm{priv}}(K_{session}) \)
- \( E_{\mathrm{pub}}() \):公開鍵で暗号化
- \( D_{\mathrm{priv}}() \):秘密鍵で復号
- \( K_{session} \):セッション鍵(以降の通信を高速に暗号化)
見た目上は「¥( … )」と表示されますが、内部的には正しく \ として認識されます。
🧠 実際のレンダリング結果(KaTeX有効時)
- 鍵交換:\( E_{\mathrm{pub}}(K_{session}) \to D_{\mathrm{priv}}(K_{session}) \)
- \( E_{\mathrm{pub}}() \):公開鍵で暗号化
- \( D_{\mathrm{priv}}() \):秘密鍵で復号
- \( K_{session} \):セッション鍵(以降の通信を高速に暗号化)
💬 メモ帳経由で貼ると確実に動く理由
WordPressエディタ(特にGutenberg)は、
直接入力された \ をHTMLエスケープしてしまうことがあります。
ところが、メモ帳でUTF-8保存したテキストをコピペすると、
WordPressは「これはHTMLエンティティ」と認識し、変換をスキップします。
そのため、
見た目は「¥」でも中身は
\で保存される
という裏ワザ的な解決が可能です。
🧩 WP Multibyte Patch との関係
確かに一部関係しています。
WP Multibyte Patch は、日本語入力時に文字コード処理や全角⇔半角変換を調整するプラグインです。
しかしその過程で、投稿保存時にU+005CをU+00A5へ置換する副作用が起こるケースがあります。
対策:
- WP Multibyte Patch は削除不要(必須プラグインです)
- ただし KaTeX構文をHTMLエンティティ化する(
\にする)
ことで、WP Multibyte Patch の変換を安全に回避できます。
💬 まとめ
| 項目 | 内容 |
|---|---|
| 原因 | 日本語環境では \ が ¥ に置換される |
| 影響 | KaTeX数式が無視・崩壊する |
| 対策 | \ に置き換える(メモ帳経由で貼るのが確実) |
| 関連 | WP Multibyte Patch が内部で置換に関与する可能性あり |
| 結論 | 日本語WordPressでは \ を使うのがベスト |
🧩 次回予告
次回は「KaTeXをWordPressで使うための最適設定」
– MUプラグイン版 KaTeX Force Loader の仕組みとカスタマイズを解説します。

