diff options
author | wl <wl> | 2010-12-18 09:13:16 +0000 |
---|---|---|
committer | wl <wl> | 2010-12-18 09:13:16 +0000 |
commit | 81d80a6f71cc6d6fbd3d1111498318fb22a6857a (patch) | |
tree | 998eb2024c65eb8da534b6f1448f63d434575f85 /man/groff_diff.man | |
parent | 995c9418dc28ee74941ca052ed98b246faf5d3dd (diff) | |
download | groff-81d80a6f71cc6d6fbd3d1111498318fb22a6857a.tar.gz |
Improve CJK support with new values for `.cflags'.
This patch introduces three new values to `.cflags':
don't break before character: 128
don't break after character: 256
allow inter-character break: 512
They are handled differently if compared to other cflags values:
(1) hcode values are completely ignored
(2) similar to kern values, and contrary to the other cflags
values, troff looks at pairs of characters to decide whether a
break gets inserted
A yet-to-be-written patch should add inter-character spacing if
those flags are active; currently, only zero-width breakpoints are
inserted.
* src/roff/troff/charinfo.h (charinfo): Change type of `flags' to
`int'. Update callers accordingly.
New enum values `DONT_BREAK_BEFORE', `DONT_BREAK_AFTER', and
`INTER_CHAR_SPACE'.
New member functions `prohibit_break_before',
`prohibit_break_after', and `inter_char_space'.
* src/roff/troff/input.cpp: Updated.
* src/roff/troff/node.cpp (inter_char_space_node): New class similar
to kern_pair_node, collecting charinfo entities with the
abovementioned cflags values.
(break_char_type): Add new enum values.
(glyph_node::merge_glyph_node): Handle abovementioned cflags values
and emit an `inter_char_space_node' if necessary.
* tmac/ja.tmac: Use new cflags values.
* doc/groff.texinfo, NEWS, man/groff_diff.man: Document new values.
Diffstat (limited to 'man/groff_diff.man')
-rw-r--r-- | man/groff_diff.man | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/man/groff_diff.man b/man/groff_diff.man index e0d355ea..408d7bf7 100644 --- a/man/groff_diff.man +++ b/man/groff_diff.man @@ -993,7 +993,6 @@ Lines can be broken after the character (initially characters have this property); a line is not broken at a character with this property unless the characters on each side both have non-zero hyphenation codes. - This can be overridden with value 64. . .IP 8 @@ -1021,8 +1020,33 @@ have this property). Ignore hyphenation code values of the surrounding characters. Use this in combination with values 2 and\~4 (initially no characters have this property). +. +.IP 128 +Prohibit a line break before the character, but allow a line break after the +character. +This works only in combination with flags 256 and 512 and has no effect +otherwise. +. +.IP 256 +Prohibit a line break after the character, but allow a line break before +the character. +This works only in combination with flags 128 and 512 and has no effect +otherwise. +. +.IP 512 +Allow line break before or after the character. +This works only in combination with flags 128 and 256 and has no effect +otherwise. .RE . +.IP +Contrary to flag values 2 and\~4, the flags 128, 256, and 512 work pairwise. +If, for example, the left character has value 512, and the right character +128, no line break gets inserted. +If we use value\~6 instead for the left character, a line break after the +character can't be suppressed since the right neighbour character doesn't +get examined. +. .TP .BI .char\ c\ string [This request can both define characters and glyphs.] |