行分割処理
Knuth/Plass行分割アルゴリズム
複数行の指定が有効な場合には,フィールドの矩形幅に収まるように複数行に分割します。 テキストを分割する位置は,基本的にTeXと同様の行分割アルゴリズムにもとづいてより決められます。
以下のポイントを分割位置の候補とし,最も矩形幅に近い位置で分割します。
- 単語境界(空白文字)
- 欧文と和文の間
- 和文文字の間
- ハイフン`-'の後
- ハイフネーション可能な位置
単語境界について
単語境界として認識する空白文字は以下のとおりです。
- SPACE (U+0020)
- CHARACTER TABULATION (U+0009)
- EN QUAD (U+2000)
- EM QUAD (U+2001)
- EN SPACE (U+2002)
- EM SPACE (U+2003)
- THREE-PER-EM SPACE (U+2004)
- FOUR-PER-SPACE (U+2005)
- SIX-PER-EM SPACE (U+2006)
- PUNCTUATION SPACE (U+2008)
- THIN SPACE (U+2009)
- HAIR SPACE (U+200A)
- ZERO WIDTH SPACE (U+200B)
- IDEOGRAPHIC SPACE (U+3000)
全角スペース(IDEOGRAPHIC SPACE (U+3000))は,単語境界とみなしません。SPACE以外の空白文字がどのように表示されるかは,PDF内で定義されているフォントに依存します。 NO-BREAK SPACE (U+00AD) はSPACEに置き換えられますが,その位置での改行は行いません。
TeXの行分割処理との違い
改行文字の扱い
テキストに改行文字が挿入されている場合は,その位置で強制的に分割します。改行として認識する文字は以下のとおりです。
- LF (U+000A)
- CR (U+000D)
強制的な行分割
基本的に,欧文単語・数字列などの途中では行分割は起こりませんが,
上記の分割候補位置が見つからない場合には,強制的に分割することがあります(決してフィールドの枠からテキストがはみ出すことが無いよう配慮しています)。
Field Reports試用版は下記ページよりダウンロードしてください。