2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

20.【Marp】日本語豆腐(□)はなぜ設定で直らないのか|PPTXとフォントの構造

2
Posted at

🎯 この記事でやること

前回の記事では、
Marp × GitHub Actions で PPTX を生成した際、日本語が □(豆腐)になる問題で止まっている状況を書きました。

👉 今回は 解決編ではありません

この記事の目的は 1 つだけです。

なぜ日本語豆腐は「設定をいじっても」直らないのかを、構造で説明すること


結論(先に)

日本語豆腐は、Marp の設定不足ではない。
PPTX とフォントの構造上、そうなるようにできている。

だから、

  • Viewer を変えても
  • PowerPoint 側でフォントを置換しても
  • 一時的に直っても

CI では再発する。


🧠 豆腐(□)の正体

まず前提。

  • □ は文字化けではない
  • UTF-8 の問題でもない

フォントに、その文字のグリフが無い
ただそれだけ。

PPTX では、

  • 指定されたフォント
  • そのフォントに無い文字

が来た瞬間、
代替せず □ を出すケースがある


💣 なぜ Marp + PPTX で起きやすいのか

問題の中心は code / pre

Marp では、

  • インラインコード
  • コードブロック

が **等幅フォント(monospace)**として扱われる。

しかし、

  • 多くの等幅フォントは
  • 日本語グリフを持たない

結果:

  • HTML:ブラウザが勝手にフォールバック
  • PPTX:フォント固定 → □

👉
HTML で見えるのに PPTX で壊れる最大の理由


❌ なぜ「設定で直したつもり」になるのか

よくやりがちな対処:

  • PowerPoint でフォントを置換
  • Viewer を変える
  • ローカル環境に日本語フォントを入れる

これらは確かに、

  • 「その場では」直る
  • 「その環境では」見える

しかし CI では、

  • 同じ環境が再現されない
  • 同じ Viewer が使われない

👉
再現性がない修正は、CI では無効


🔁 なぜ CI だと再発するのか

CI 環境では:

  • OS はクリーン
  • フォントは最小構成
  • Viewer も存在しない

つまり、

「ローカルで直った」は、何の保証にもならない

CI で再発するのは
仕様どおり


🧩 正しい修正ポイントはどこか

結論はこれ。

  • PowerPoint ではない
  • Viewer でもない
  • GitHub Actions でもない

👉
Marp の front matter(CSS)で最初からフォントを固定する

ここだけが、
唯一再現性のある修正ポイント


⚠️ それでも「完全解決」と言えない理由

正直に書く。

  • 日本語対応等幅フォントが少ない
  • 環境によってフォールバックが変わる
  • PPTX の仕様自体がブラックボックス

つまり、

100% 安全な構成は、今のところ存在しない

できるのは、

  • 再発確率を極小化する
  • 地雷を踏まない書き方をする

ここまで。


🧠 実務での現実的な判断基準

迷ったら、この 1 行。

それは「コード」か?

  • YES → code / pre を使う
  • NO → 通常テキストにする

日本語説明を code に入れない
これだけで、事故は激減する。


まとめ

  • 日本語豆腐はバグではない
  • 設定ミスでもない
  • PPTX とフォントの構造問題

だから、

  • 設定をいじり続けても直らない
  • 環境を変えても再発する

理解して避けるしかない問題


📌 結論(1 行)

日本語豆腐は、
設定で解決できる問題ではない。


関連記事

  • 18
    VS CodeでMarkdownからプレゼン資料(HTML / PPTX)を作成する方法【Marp】

  • 19
    GitHub ActionsでMarkdownからプレゼン資料を自動生成しようとして、日本語豆腐で止まった話【Marp】

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?