空白を使った日本語の分かち組(分かち書き)で、語間での行分割の禁止は、次のように段落スタイル、正規表現スタイル、文字スタイルを使って実現できました。InDesignのバージョンは2026 (21.2)です。(いただいたコメントをもとに、全体的に追記・再整理しました、2026-02-05)
大きく分けて2つの方法があり、それぞれ説明します:
-
分割を禁止する文字を正規表現で指定する。ここで、バックスラッシュ・シーケンス
\wが強力で、有り難みを感じます - 段落全体を分割禁止にして、分割してよい文字を正規表現で指定する
また、次について考察します:
- 正規表現
- 語間のアキ調整
- CSS (Cascading Style Sheets)、EPUBおよびワンソース・マルチユース12
そして最後に、ここで使ったサンプルのテキストを載せておきます。
分割を禁止する文字を正規表現で指定
まず、分割を禁止する文字を正規表現で指定する方式です。
- 段落スタイルを作ります。ここでは「分かち組段落」という名前にしておきます
- 「正規表現スタイル」から新規で正規表現スタイルを作ります
- 「スタイルを適用:」で新規に文字スタイルを作る。ここでは「分割禁止文字」としておきます
- 「分割禁止文字」文字スタイルには「基本文字形式」で「分割禁止」をチェックしておきます
- 段落スタイルの正規表現スタイルに戻って、「テキスト:」に
\wと設定します。「@」をクリックして「ワイルドカード」-「任意の単語」を選んでも入力できます - 「OK」で準備完了です
分かち書きした段落に、ここで作った「分かち組段落」スタイルを適用すると語が行分割されません。次の画像は、右側が和字間隔(全角スペース、U+3000)で分かち書き、左側が同じテキストを欧文スペースで分かち書きしたもので、語間の幅/高さや、それに伴って改行位置が違います3。欧文間隔で区切った方は、このままでは語間が目立ちませんね。
和字間隔での分かち組で、もう少し行長を短くしたものがこちら。
ZERO WIDTH SPACEで区切る
ZERO WIDTH SPACE (U+200B)で区切った例をあげておきます。幅がゼロなので視覚的には語を分けられてませんが、改行位置が制御されています。
分割してよい文字を正規表現で指定する
段落全体を分割禁止とし、分割してよい文字を正規表現スタイルで指定する方式です。基本的な流れは同じです。
- 段落スタイルを作ります。ここでは「分かち組段落2」という名前にしておきます
- 「基本文字形式」で「分割禁止」をチェックします。これで段落全体が分割禁止になります
- 「正規表現スタイル」から新規で正規表現スタイルを作ります
- 「スタイルを適用:」で新規に文字スタイルを作る。ここでは「分割許可文字」としておきます
- 「分割許可文字」文字スタイルには「基本文字形式」で 「分割禁止」のチェックを外しておきます
- 段落スタイルの正規表現スタイルに戻って、「テキスト:」に
[\s[:punct:]\x{200B}]と設定します - 「OK」で準備完了です
「テキスト:」に設定した正規表現の内容は次の通りです:
- 一番外側の
[と]は、これらの内側のどれかの文字という意味です。この場合では、次の3つのどれか、です -
\sは「任意の空白文字」です。「@」をクリックして「ワイルドカード」-「任意の空白文字」を選んでも入力できます -
[:punct:]は任意の句読点(punctuation)です。「@」をクリックして入力するなら「Posix」-「[[:punct]]」を選んで入力し、外側の[と]とを、それぞれ1つ削除します。[と]をそれぞれ2つとも削除してはだめです。句読点の後ろにも空白を入れる方式なら不要です -
\x{200B}はZERO WIDTH SPACEです。\u200Bという記法は使えないようです4。ZERO WIDTH SPACEで区切らないなら不要です
正規表現
正規表現について気になることがあるので、少し調べてみます。
任意の単語\wとは?
「UIでは『任意の単語』と表記されるが、\wは一つの文字?それとも一つ以上の文字からなる単語?」、「一つの文字ではなく、複数の文字で構成する単語(文字列)を分割禁止にするのだから\wではなく\w+でないか?」気になります。
確かめてみます、スタイルではなく検索で使ってみます。「正規表現」で検索し、検索文字列に\wを設定します。
すると一つの文字がヒットします。
\w\w\wとすると連続する3文字がヒットします。
\w+とすると連続する複数の文字がヒットします。
前記の「分かち組段落」スタイルの「正規表現スタイル」で、「テキスト:」に\w\w\wと設定してみます。すると、3文字より長い4文字の「たなから」などが行分割されてしまいました。
やはり\wは一つの文字を表すようです4。Perlの正規表現などでも調べると、「単語文字」や「Word characters」という表現が見つかります56。
なお、wを大文字にして\Wとすると、\sなど他のバックスラッシュ・シーケンス同様に「◯◯以外の文字」を表します。例えば、がヒットして、、が「任意の単語」ではないことが分かります。
\S+ではダメなのか?
正規表現スタイルで、\wではなく\S+(一つ以上の空白以外の文字)と設定するのではダメなのでしょうか?句読点、 。など約物の前後での改行(禁則を含む)を求めると、\S+ではうまくいきません。「句読点の直後に空白は挿入しないが、句読点の直後での改行は許す」ような分かち組は、\S+ではうまくいかず、句読点の直後の改行を避けてしまいます。
語間の幅/高さの調整
文字が小さいと語間のアキを広く/高くしたい場合があります。また、欧文間隔(U+0020、半角スペース)で区切った場合、前にあげた例では語間が狭すぎでした。
語間のアキは次の方法で調整できます:
- 「文字後のアキ量」で調整
- 「ジャスティフィケーション」で調整
文字後のアキ量で調整
「文字スタイル」の「詳細文字形式」で「文字後のアキ量」を広く設定し、「段落スタイル」の「正規表現スタイル」で、空白や約物にその文字スタイルがあたるように設定します。
- 段落スタイルの「正規表現スタイル」から新規で正規表現スタイルを作る
- 「スタイルを適用:」で新規に文字スタイルを作る。ここでは「SP約物後アキ」としておきます
- 「分割許可文字」文字スタイルには「詳細文字形式」で「文字後のアキ量」を設定します。ここでは「二分」としておきます
- 段落スタイルの正規表現スタイルに戻って、「テキスト:」に
[\s、。」))]と設定します。\sは任意の空白。、。」))は後を空ける約物を列挙しています。(カッコなどもっとあると思うので追加してください)。ここで任意の約物を表す[:punct:]を使って[\s[:punct:]]としてしまうと、開きカッコ「などの後も空いてしまいます
次の図は「SP約物後アキ」文字スタイルで、「文字後のアキ量」を「二分」に設定しています。
図では、「分かち組欧文間隔2」段落スタイルに正規表現スタイルを2つ指定しています。一つは「分割許可文字」で分割できる文字を正規表現で設定しています。もう一つは前述の「SP約物後アキ」を空白や特定の約物に設定しています。
ジャスティフィケーションで調整
この方法はトリッキーとのコメントをいただきましたが、前の版で載せてしまったので残しておきます。
句読点の後にも空白を入れるなら、空白の幅/高さだけが問題です。これは「ジャスティフィケーション」で広くできます。ここでは、あえて広くして、「最小」を400%としています。なお、「揃え」は「両端揃え」ではなく「左 / 上揃え」として、ジャスティフィケーションは語間の幅調整のためだけに使っています。
組んだ結果がこちらです:
つまり、和字間隔で区切るより広くできます。ジャスティフィケーションで幅を調整する方法は、和字間隔で区切った場合には効かないようです。
約物の前/後とそれ以外の部分とのアキ
約物の後とそれ以外の部分とでアキの幅/高さが違うと見るか・同じと見るか、また、それをどう評価するかについては議論の余地があるかもしれません。
おもいました。きつねのおもいました きつねの
CSS、EPUBおよびワンソース・マルチユース
CSSではword-break: keep-all;7と設定したうえで、空白(和字間隔、欧文間隔またはZERO WIDTH SPACEなど)を挿入すると、それら空白や句読点でのみ行分割されます。
語間はword-spacing8プロパティで調整できます…が、和字間隔で区切った場合には効かないようで、句読点の後のアキにも効かないようです。語間のアキを調整するには欧文間隔で区切り、句読点の後にも欧文間隔を挿入する必要がありそうです。
このことから、複数のメディアへの出力を想定する場合に、原稿において区切りを和字間隔とするか欧文間隔とするか、また句読点の後に空白を挿入するかは考えどころでしょう。
ちなみに、InDesignからEPUB(リフロー可能)形式で書き出すと、XHTMLファイルの中身は次のようになりました:
<p class="分かち組"><span class="分割禁止">すると</span> <span class="分割禁止">ぼうしやさんは</span>、 (<span class="分割禁止">おやおやと</span>) <span class="分割禁止">おもいました</span>。 <span class="分割禁止">きつねの</span> <span class="分割禁止">てです</span>。 <span class="分割禁止">きつねのてが</span> <span class="分割禁止">てぶくろを</span> <span class="分割禁止">くれというのです</span>。 <span class="分割禁止">これはきっと</span> <span class="分割禁止">このはで</span> <span class="分割禁止">かいにきたんだなと</span> <span class="分割禁止">思いました</span>。 <span class="分割禁止">そこで</span>、</p>
<p class="分かち組欧文間隔2">すると<span class="分割許可文字"><span class="SP約物後アキ"> </span></span>ぼうしやさんは<span class="分割許可文字"><span class="SP約物後アキ">、</span></span><span class="分割許可文字">(</span>おやおやと<span class="分割許可文字"><span class="SP約物後アキ">) </span></span>おもいました<span class="分割許可文字"><span class="SP約物後アキ">。</span></span>きつねの<span class="分割許可文字"><span class="SP約物後アキ"> </span></span>てです<span class="分割許可文字"><span class="SP約物後アキ">。</span></span>きつねのてが<span class="分割許可文字"><span class="SP約物後アキ"> </span></span>てぶくろを<span class="分割許可文字"><span class="SP約物後アキ"> </span></span>くれというのです<span class="分割許可文字"><span class="SP約物後アキ">。</span></span>これはきっと<span class="分割許可文字"><span class="SP約物後アキ"> </span></span>このはで<span class="分割許可文字"><span class="SP約物後アキ"> </span></span>かいにきたんだなと<span class="分割許可文字"><span class="SP約物後アキ"> </span></span>思いました<span class="分割許可文字"><span class="SP約物後アキ">。</span></span>そこで<span class="分割許可文字"><span class="SP約物後アキ">、</span></span></p>
判りにくいので、ブラウザーのデベロッパー・ツールで要素の構造を表示すると次の通りです。正規表現スタイルが複数あると、span要素を入れ子にしていることが判ります。すばらしい。いろいろ追求したいところですが、この件はここまでにしておきます。
InDesignが出力するCSSファイルidGeneratedStyles.cssにはword-breakプロパティや分割禁止クラスに対する設定が見当たりません。そこで例えば、分割してよい文字を正規表現で指定する方式の場合なら、次のようなCSSファイルを自分で用意する必要がありそうです:
.分割禁止, p.分かち組2, p.分かち組欧文間隔2 {
word-break: keep-all;
}
.分割許可文字 {
word-break: normal;
}
p.分かち組欧文間隔2 {
word-spacing: 1rem;
}
さて、ここまでは、あくまでCSSの仕様の話で、実際のEPUBビューアがどのように表示するかは別の話です。
見てみましょう。分割してよい文字を正規表現で指定する方式のInDesignドキュメントをEPUB(リフロー可能)形式で書き出して、macOS Tahoe 26.2のブックで表示してみます。まず、和字間隔で区切ったテキストです、分割禁止されてません:
次は欧文間隔で区切った例です、分割禁止されてます:
次は和文間隔で区切ったEPUBファイルを分解して、中身のXHTML文書をChromeブラウザーで表示したものです。CSSスタイルの設定が効いているようで、分割禁止されています:
次は欧文間隔で区切ったEPUBファイルを分解して、中身のXHTML文書をChromeブラウザーで表示したものです。欧文間隔にしては語間が広がっているのが分かります。
印刷だけでなくWebや電子書籍への展開も想定するなら(ワンソースマルチユース1、Single-source publishing2)、ブラウザーやEPUBビューアの挙動も踏まえて原稿の区切り文字などを検討する必要がありそうです。例えば、CSSのword-break: keep-all;については「折り返さない」確認と、和字間隔などでは「折り返す」確認が必要でしょう。また、クラス名が漢字でも大丈夫か?も気になります。
長くなりそうなので、この話題はここまでとします。
サンプルのテキスト
サンプルのテキストを掲載しておきます。青空文庫から「手袋を買いに」を利用しています。 どれも、句読点の後ろにそれぞれの空白が入っています。 ZERO WIDTH SPACEなどが、ちゃんと伝わる/コピペできるでしょうか…
句読点の後ろの空白について2種類を用意してます:
- 句読点の後ろに空白なし:
おもいました。きつねの - 句読点の後ろに空白あり:
おもいました。 きつねの
さらに空白について3種類あります:
- 和字間隔(U+3000)
で区切る - 欧文間隔(U+0020)
で区切る - ZERO WIDTH SPACE (U+200B)
で区切る
句読点の後ろに空白なし
和字間隔(U+3000)で区切る
「このおててに ちょうどいい てぶくろください」
すると ぼうしやさんは、(おやおやと) おもいました。きつねの てです。きつねのてが てぶくろを くれというのです。これはきっと このはで かいにきたんだなと 思いました。そこで、
「さきに おかねをください」と いいました。こぎつねは すなおに、にぎってきた はくどうかを ふたつ ぼうしやさんに わたしました。ぼうしやさんは それを ひとさしゆびの さきにのっけて、かちあわせてみると、チンチンと よいおとが しましたので、これは このはじゃない、ほんとの おかねだと おもいましたので、たなから こどもようの けいとのてぶくろを とりだしてきて こぎつねの てに もたせてやりました。こぎつねは、おれいをいって また、もときたみちを かえりはじめました。
欧文間隔(U+0020)で区切る
「このおててに ちょうどいい てぶくろください」
すると ぼうしやさんは、(おやおやと) おもいました。きつねの てです。きつねのてが てぶくろを くれというのです。これはきっと このはで かいにきたんだなと 思いました。そこで、
「さきに おかねをください」と いいました。こぎつねは すなおに、にぎってきた はくどうかを ふたつ ぼうしやさんに わたしました。ぼうしやさんは それを ひとさしゆびの さきにのっけて、かちあわせてみると、チンチンと よいおとが しましたので、これは このはじゃない、ほんとの おかねだと おもいましたので、たなから こどもようの けいとのてぶくろを とりだしてきて こぎつねの てに もたせてやりました。こぎつねは、おれいをいって また、もときたみちを かえりはじめました。
ZERO WIDTH SPACE (U+200B)で区切る
「このおててにちょうどいいてぶくろください」
するとぼうしやさんは、(おやおやと)おもいました。きつねのてです。きつねのてがてぶくろをくれというのです。これはきっとこのはでかいにきたんだなと思いました。そこで、
「さきにおかねをください」といいました。こぎつねはすなおに、にぎってきたはくどうかをふたつぼうしやさんにわたしました。ぼうしやさんはそれをひとさしゆびのさきにのっけて、かちあわせてみると、チンチンとよいおとがしましたので、これはこのはじゃない、ほんとのおかねだとおもいましたので、たなからこどもようのけいとのてぶくろをとりだしてきてこぎつねのてにもたせてやりました。こぎつねは、おれいをいってまた、もときたみちをかえりはじめました。
句読点の後ろに空白あり
和字間隔(U+3000)で区切る
「このおててに ちょうどいい てぶくろください」
すると ぼうしやさんは、 (おやおやと) おもいました。 きつねの てです。 きつねのてが てぶくろを くれというのです。 これはきっと このはで かいにきたんだなと 思いました。 そこで、
「さきに おかねをください」と いいました。 こぎつねは すなおに、にぎってきた はくどうかを ふたつ ぼうしやさんに わたしました。ぼうしやさんは それを ひとさしゆびの さきにのっけて、 かちあわせてみると、 チンチンと よいおとが しましたので、 これは このはじゃない、 ほんとの おかねだと おもいましたので、 たなから こどもようの けいとのてぶくろを とりだしてきて こぎつねの てに もたせてやりました。 こぎつねは、 おれいをいって また、 もときたみちを かえりはじめました。
欧文間隔(U+0020)で区切る
「このおててに ちょうどいい てぶくろください」
すると ぼうしやさんは、 (おやおやと) おもいました。 きつねの てです。 きつねのてが てぶくろを くれというのです。 これはきっと このはで かいにきたんだなと 思いました。 そこで、
「さきに おかねをください」と いいました。 こぎつねは すなおに、にぎってきた はくどうかを ふたつ ぼうしやさんに わたしました。ぼうしやさんは それを ひとさしゆびの さきにのっけて、 かちあわせてみると、 チンチンと よいおとが しましたので、 これは このはじゃない、 ほんとの おかねだと おもいましたので、 たなから こどもようの けいとのてぶくろを とりだしてきて こぎつねの てに もたせてやりました。 こぎつねは、 おれいをいって また、 もときたみちを かえりはじめました。
ZERO WIDTH SPACE (U+200B)で区切る
「このおててにちょうどいいてぶくろください」
するとぼうしやさんは、(おやおやと)おもいました。きつねのてです。きつねのてがてぶくろをくれというのです。これはきっとこのはでかいにきたんだなと思いました。そこで、
「さきにおかねをください」といいました。こぎつねはすなおに、にぎってきたはくどうかをふたつぼうしやさんにわたしました。ぼうしやさんはそれをひとさしゆびのさきにのっけて、かちあわせてみると、チンチンとよいおとがしましたので、これはこのはじゃない、ほんとのおかねだとおもいましたので、たなからこどもようのけいとのてぶくろをとりだしてきてこぎつねのてにもたせてやりました。こぎつねは、おれいをいってまた、もときたみちをかえりはじめました。
ブラウザーは語の途中で改行してしまいますね。
-
ワンソースマルチユース https://www.jepa.or.jp/ebookpedia/201509_2590/ ↩ ↩2
-
英語版Wikipediaでは"Single-source publishing"が該当しそうです https://en.wikipedia.org/wiki/Single-source_publishing 。
"One source multi-use"は"Media franchise"にリダイレクトされてビジネス的な意味を含むようです https://en.wikipedia.org/wiki/Media_franchise ↩ ↩2 -
「手袋を買いに」青空文庫 https://www.aozora.gr.jp/cards/000121/card637.html ↩
-
InDesignの正規表現については、このページのPerl Regexが該当するようです:
https://helpx.adobe.com/jp/coldfusion/developing-applications/the-cfml-programming-language/using-regular-expressions-in-functions/regular-expression-syntax.html ↩ ↩2 -
Perl/正規表現 > バックスラッシュ・シーケンス https://ja.wikibooks.org/wiki/Perl/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE#%E3%83%90%E3%83%83%E3%82%AF%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%83%BB%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9 ↩
-
perlrecharclass - Perl Regular Expression Character Classes https://perldoc.perl.org/perlrecharclass#Word-characters ↩
-
CSS Text Module Level 3の5.2. Breaking Rules for Letters: the
word-breakproperty ↩ -
word-spacing - CSS | MDN https://developer.mozilla.org/ja/docs/Web/CSS/Reference/Properties/word-spacing ↩













