manpagez: man pages & more
info groff
Home | html | info | man

File: groff.info,  Node: Character Classes,  Next: Special Fonts,  Prev: Using Symbols,  Up: Using Fonts

5.19.5 Character Classes
------------------------

Classes are particularly useful for East Asian languages such as
Chinese, Japanese, and Korean, where the number of needed characters is
much larger than in European languages, and where large sets of
characters share the same properties.

 -- Request: .class name c1 c2 ...
     Define a character class (or simply "class") NAME comprising the
     characters C1, C2, and so on.

     A class thus defined can then be referred to in lieu of listing all
     the characters within it.  Currently, only the 'cflags' request can
     handle references to character classes.

     In the request's simplest form, each CN is a character (or special
     character).

          .class [quotes] ' \[aq] \[dq] \[oq] \[cq] \[lq] \[rq]

     Since class and glyph names share the same name space, it is
     recommended to start and end the class name with '[' and ']',
     respectively, to avoid collisions with existing character names
     defined by GNU 'troff' or the user (with 'char' and related
     requests).  This practice applies the presence of ']' in the class
     name to prevent the use of the special character escape form
     '\[...]', thus you must use the '\C' escape to access a class with
     such a name.

     You can also use a character range notation consisting of a start
     character followed by '-' and then an end character.  Internally,
     GNU 'troff' converts these two symbol names to Unicode code points
     (according to the 'groff' glyph list [GGL]), which then give the
     start and end value of the range.  If that fails, the class
     definition is skipped.

     Furthermore, classes can be nested.

          .class [prepunct] , : ; > }
          .class [prepunctx] \C'[prepunct]' \[u2013]-\[u2016]

     The class '[prepunctx]' thus contains the contents of the class
     '[prepunct]' as defined above (the set ', : ; > }'), and characters
     in the range between 'U+2013' and 'U+2016'.

     If you want to include '-' in a class, it must be the first
     character value in the argument list, otherwise it gets
     misinterpreted as part of the range syntax.

     It is not possible to use class names as end points of range
     definitions.

     A typical use of the 'class' request is to control line-breaking
     and hyphenation rules as defined by the 'cflags' request.  For
     example, to inhibit line breaks before the characters belonging to
     the 'prepunctx' class defined in the previous example, you can
     write the following.

          .cflags 2 \C'[prepunctx]'

     See the 'cflags' request in *note Using Symbols::, for more
     details.

© manpagez.com 2000-2024
Individual documents may contain additional copyright information.