てもとツール
ガイド

Markdownの「**」が太字にならずに残る原因|かっこと句読点

Markdownで「**」で囲んだのに太字にならないのは、「**」のすぐ内側がかっこや句読点で、外側が普通の文字だからです。CommonMarkの決まりを実例の表で読み解き、太字にする書き直し方と、効かない直し方を整理します。

公開読了目安 約5分

この記事の要点

  • 「**」のすぐ内側がかっこや句読点だと、外側に空白か記号が要る
  • 「これは**「重要」**です」は外側が文字なので太字にならない
  • 「**」をかっこの内側へ入れると、文の見た目を変えずに直る
  • ゼロ幅スペースは空白として数えないので、挟んでも直らない
  • 円記号などの記号を約物に数えるかは、仕様の版で違う
目次

Markdown で「**」で囲んだのに、太字にならず記号が残る。日本語の文でよく起きるこの現象は、「**」のすぐ内側がかっこや句読点で、外側が普通の文字のときに起きます。

たとえば「これは**「重要」**です」は太字になりません。「これは「**重要**」です」と、「**」をかっこの内側へ入れれば太字になります。

この記事では、Markdown の決まりを定めた CommonMark という仕様の文言を、日本語の実例で読み解きます。

太字になる並び・ならない並び

まず実例です。Markdown を表示する部品の 1 つ、marked(バージョン 18.0.3)に通した結果を並べます。marked は CommonMark の決まりに沿って作られています。

書いた文太字になるか理由
**重要**ですなる「**」の内側が文字
これは**「重要」**ですならない内側がかっこで、外側が「は」「で」
これは「**重要**」ですなる内側が文字、外側がかっこ
これは **「重要」** ですなる外側が空白
ここが**重要。**ですならない閉じる側の内側が句点で、外側が「で」
ここが**重要**。ですなる句点を外に出した
**注意:**入力してくださいならない閉じる側の内側がコロンで、外側が「入」
**注意**:入力してくださいなるコロンを外に出した
彼は**Python**を使うなる内側が英字(記号ではない)
値は**100円**(税込)ですなる内側が「1」と「円」

「ならない」行に共通するのは、**「**」の内側が記号で、外側が普通の文字**という並びです。英字や数字は記号ではないので、日本語の文字に挟まれていても太字になります。

CommonMark の決まりを読む

CommonMark 0.31.2 は、「**」が太字を始められるかを、すぐ前とすぐ後ろの 1 文字で決めます。

始める側の「**」の条件は次の 2 つです。

  1. すぐ後ろが空白ではない
  2. すぐ後ろが記号なら、すぐ前は空白か記号である

終わる側の「**」は、前と後ろを入れ替えた同じ条件です。すぐ前が記号なら、すぐ後ろは空白か記号でなければなりません。

「これは**「重要」**です」に当てはめる

始める側の「**」は、すぐ後ろが「「」です。かっこは記号なので、すぐ前が空白か記号である必要があります。

ところが、すぐ前は「は」です。条件を満たさないので、この「**」は太字を始められません。

終わる側も同じです。すぐ前の「」」が記号なのに、すぐ後ろは「で」です。こうして、どちらの「**」も文字のまま残ります。

日本語で起きやすい理由

英語では、単語と単語のあいだに空白があります。「**」の外側は空白になることが多く、2 つ目の条件に引っかかりません。

日本語は文字を空白なしで続けます。そのため、かっこや句読点ごと強調すると、外側がすぐ普通の文字になります。

強調したい語句をかっこごと囲む書き方は、手で書いた文でも、AI チャットの回答をコピーした文でも起こりえます。

太字にする書き直し方

文の見た目を変えずに直すなら、次の順で試します。どれも marked 18.0.3 で太字になることを確かめました。

直し方書き方の例見た目への影響
「**」をかっこの内側へこれは「**重要**」ですかっこが太字にならないだけ
句点・コロンを外へここが**重要**。です句点が太字にならないだけ
前後に半角空白これは **「重要」** です文中に空白が入る
HTML の強調タグこれは<strong>「重要」</strong>です表示側が HTML を許すときだけ

いちばん手軽なのは、1 つ目の「**」をかっこの内側へ入れる直し方です。かっこは太字になりませんが、読み手が受け取る強調はほぼ同じです。

HTML のタグは、ブログや README のように HTML を書ける場所でだけ使えます。チャットやメモアプリでは、タグがそのまま文字として出ることがあります。

効かない直し方

見えない空白として知られるゼロ幅スペース(U+200B)を「**」の外側に挟んでも、太字にはなりません。

CommonMark が空白として数えるのは、Unicode の空白の分類(Zs)に入る文字と、タブ・改行などだけです。ゼロ幅スペースは書式を整える文字の分類(Cf)なので、空白に入りません。

marked でも、挟んだ文は太字になりませんでした。

円記号は「記号」か

どの文字を記号(約物)に数えるかは、仕様の版で違います。

仕様記号に数える文字
CommonMark 0.31.2(2024 年)Unicode の約物(P)と記号(S)
GitHub Flavored Markdown 0.29(2019 年)ASCII の約物と、Unicode の約物(P)

円記号「¥」や全角の「¥」は、Unicode では記号(S)です。新しい版では記号に数えるので、金額は**¥1,000**です は太字になりません。marked 18.0.3 でもそうなりました。

古い版の決まりでは「¥」を記号に数えないので、同じ文が太字になります。表示するアプリがどの版に沿って作られているかで、結果が分かれることがあります。

かっこや句読点は、どちらの版でも約物(P)です。最初の表で「ならない」とした並びは、どちらの版でも太字になりません。

記号を表示に使わないなら外してしまう

太字を表示させたいのではなく、メールや LINE に文を貼りたいだけなら、記号ごと外すほうが早いこともあります。

Markdown記号除去は、太字にならずに残った「**」も対を探して外し、外した数を知らせます。掛け算の「*」やハッシュタグの「#」は残します。

関連記事

あわせて読みたい

同じテーマ・関連ツールの記事です。