paragraph の表示領域内に格納されるテキストは、一行の内に収まることもあれば、そうでないこともあります。テキストが複数行にまたがるとき、多くの場合は表示サイズにあわせて改行することになると思いますが、詩のように短い文で改行しなくてはならないケースもあります。このような場合は改行規則を指定します。改行規則を指定する特質は lines: で、次のいずれかのシンボルを引数とします。
wrap | 表示サイズにフィットするように改行します。通常の改行方法です。 |
asis | record-end 文字が現われると改行します。通常、record-end は改行文字を指していますので、実質的には文書に書かれている通り(すなわちAS IS)で改行することを意味します。 |
asis-wrap | asis を基にしていますが、行内に収まらない場合は折り返します。 |
asis-truncate | asis を基にしていますが、行内に収まらない場合、あふれた文字は切り捨てられます。 |
none | 改行しません。 |
lines:に asis-wrap または asis-truncate を指定した場合、さらに次の特質が適用されます。
asis-wrap の場合
asis-wrap-char:
改行(record-end)文字以外で改行した場合に、行末に挿入する文字を指定します。これによって、本来の改行位置以外で改行されたことを明示することができます。
例3.5 asis-wrap-char: #/$とした場合のフォーマット例
以下の関数で文字グループの検査を行います。
(LIST 2)
int get_chgrp(char *p, int n){ int c1, c2, c3; c1 = (int)((unsigned char)*p); c2 = (n > 1) ? (int)((unsigned char)*(p + 1)) : 0; c3 = (n > 2) ? (int)((unsigned char)*(p + 2)) : 0; if (c1 == SS3) { if (IS_G3(c1, c2, c3)) return G3; if (vflag) fprintf(stderr, "Invalid G3: 0x%02x 0x%02x 0x%02x: ", c1 $, c2, c3); return NG; } . . .
asis-wrap-indent: length-spec
record-end 以外で折り返した行の追加インデント。初期値は0pt。
asis-truncate の場合
asis-truncate-char:
改行(record-end)文字以外で改行した場合に、行末に挿入する文字を指定します。これによって、その行に切り捨てられた文字があるかどうかを明示できます。