日本語でハイフネーション(?)処理を操作する方法について

日本語でハイフネーション(?)処理を操作する方法について

- 長迫 真平 の投稿
返信数: 2

日本語において、単語の最中で文字が次の行に回り込むことは許されていますが、表の中などでは、単語が意図しない場所で分割されることは避けたいと思っています。

例えば、

ポケットモンスターオーシャン

と言う、ポケットモンスターシリーズのゲームタイトルがあったと仮定して、

「ポケットモンスター(改行)オーシャン」だと、ポケットモンスターシリーズのゲームタイトルだと受け入れられるため、問題ないわけですが、「ポケットモン(改行)スターオーシャン」だと、異なるゲームタイトルである「スターオーシャンシリーズ」に「ポケットモン」と言う何かがあるのかと誤解を受ける恐れがあります。力技で全角スペースを適当に埋めればそれらしくできますが、美しくないし、大変です。

その辺を、ポケットモンスターやウルトラマンなど、ハイフネーション(?)を禁止する単語をプリアンブル等に羅列することで定義できるような、何かスマートな方法はあるのでしょうか?

以上、よろしくお願いします。
長迫 真平 への返信

Re: 日本語でハイフネーション(?)処理を操作する方法について

- aminophen の投稿
日本語の特定の単語の行分割禁止を定義するような方法はありませんが,代替策としては:

(1) その場所で行分割したくないのであれば

ポケットモン\nolinebreak スター

のように \nolinebreak を入れればいいと思います。
「行分割してほしくない度合い」は \nolinebreak[1] とか \nolinebreak[3] のように
1〜3 のオプションで指定できます。
(大きいほど行分割抑制になる;4 とするとオプション無しの \nolinebreak と同じで最大限の禁止。)

(2) 或いは,\mbox{ポケットモンスター} とでもすれば,一つの箱(かたまり)として扱われるので
絶対に行分割されなくなりますが,表の横幅など状況次第で,はみ出しすぎたり空きすぎたりと
悲惨な結果になるでしょう。

# ハイフネーションというのは「長い英単語が行末にきたときに,単語の前半と後半をハイフンで
繋ぐこと」なので,日本語の場合はそういう言い方はしないですね。
aminophen への返信

Re: 日本語でハイフネーション(?)処理を操作する方法について

- 長迫 真平 の投稿
なるほど、hyphenationではなく、linebreakですか。その言葉にたどり着けない自分の英語力の乏しさ呆れてしまいました。

ありがとうございます。大変参考になりました。。