diff options
author | G. Branden Robinson <g.branden.robinson@gmail.com> | 2023-04-24 07:50:18 -0500 |
---|---|---|
committer | G. Branden Robinson <g.branden.robinson@gmail.com> | 2023-04-24 23:46:36 -0500 |
commit | 05b804f05583e8675e9c5df812c3ca0f89721cb7 (patch) | |
tree | 91686e43f2b31162190ddc0e94a1e29b588b586e /doc | |
parent | 3778beb2e00f28262c02de2bea7db5915c734c2b (diff) | |
download | groff-git-05b804f05583e8675e9c5df812c3ca0f89721cb7.tar.gz |
[docs]: Tweak escape/control character discussion.
* Introduce term "ordinary character", an input character that is not
invalid (cf. "special character").
* Recast discussion of control, no-break control, and escape control
characters in terms of ordinary characters, ruling out the surmise
that a special character can serve as any of these.
* Parallelize wording of these.
* Tighten and align wording with this terminology.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/groff.texi | 68 |
1 files changed, 34 insertions, 34 deletions
diff --git a/doc/groff.texi b/doc/groff.texi index b0ef7a91e..abedde37f 100644 --- a/doc/groff.texi +++ b/doc/groff.texi @@ -6360,12 +6360,14 @@ not qualify, so our first attempt got a warning. @section Identifiers @cindex identifiers -GNU @code{troff} has rules for properly formed -@dfn{identifiers}---labels for objects with syntactical importance, like -registers, names (macros, strings, or diversions), typefaces, glyphs, -colors, character classes, environments, and streams. An identifier -consists of one or more characters excepting spaces, tabs, newlines, and -invalid input characters. +An @dfn{identifier} is a label for an object of syntactical +importance:@: a register, name (macro, string, or diversion), typeface, +color, special character, character class, environment, or stream. +Valid identifiers consist of one or more ordinary characters. +@cindex ordinary character +@cindex character, ordinary +An @slanted{ordinary character} is an input character that is not a +leader, tab, newline, or invalid as GNU @code{troff} input. @c XXX: We might move this discussion earlier since it is applicable to @c troff input in general, and include a reference to the `trin` @@ -6403,11 +6405,10 @@ these ranges.@footnote{Consider what happens when a C1 control @code{0x80}--@code{0x9F} is necessary as a continuation byte in a UTF-8 sequence.} -The identifiers @samp{br}, @samp{PP}, @samp{end-list}, +Thus, the identifiers @samp{br}, @samp{PP}, @samp{end-list}, @samp{ref*normal-print}, @samp{|}, @samp{@@_}, and @samp{!"#$%'()*+,-./} are all valid. Discretion should be exercised to prevent confusion. -Some care is required with identifiers starting with @samp{(} or -@samp{[}. +Identifiers starting with @samp{(} or @samp{[} require care. @Example .nr x 9 @@ -6585,24 +6586,25 @@ invoke requests that don't cause breaks is harmless but poor style. @cindex no-break control character, changing (@code{c2}) @cindex character, no-break control, changing (@code{c2}) @cindex control character, no-break, changing (@code{c2}) -The control character @samp{.} and the no-break control character -@samp{'} can be changed with the @code{cc} and @code{c2} requests, -respectively. +The control @samp{.} and no-break control @samp{'} characters can each +be changed to any ordinary character@footnote{Recall @ref{Identifiers}.} +with the @code{cc} and @code{c2} requests, respectively. + +@Defreq {cc, [@Var{o}]} +Recognize the ordinary character@tie{}@var{o} as the control character. +If@tie{}@var{o} is absent or invalid, the default control character +@samp{.} is selected. The identity of the control character is +associated with the environment (@pxref{Environments}). +@endDefreq -@Defreq {cc, [@Var{c}]} -Set the control character to@tie{}@var{c}. With no argument, the -default control character @samp{.} is restored. The identity of the +@Defreq {c2, [@Var{o}]} +Recognize the ordinary character@tie{}@var{o} as the no-break control +character. If@tie{}@var{o} is absent or invalid, the default no-break +control character @samp{'} is selected. The identity of the no-break control character is associated with the environment (@pxref{Environments}). @endDefreq -@Defreq {c2, [@Var{c}]} -Set the no-break control character to@tie{}@var{c}. With no argument, -the default no-break control character @samp{'} is restored. The -identity of the no-break control character is associated with the -environment (@pxref{Environments}). -@endDefreq - When writing a macro, you might wish to know which control character was used to call it. @@ -6949,11 +6951,12 @@ invoked, no input character is recognized as starting an escape sequence in interpretation mode. @endDefreq -@Defreq {ec, [@Var{c}]} +@Defreq {ec, [@Var{o}]} @cindex escape character, changing (@code{ec}) @cindex character, escape, changing (@code{ec}) -Recognize@tie{}@var{c} as the escape character. If@tie{}@var{c} is -absent or invalid, the default escape character @samp{\} is selected. +Recognize the ordinary character@tie{}@var{o} as the escape character. +If@tie{}@var{o} is absent or invalid, the default escape character +@samp{\} is selected. Changing the escape character globally likely breaks macro packages, since GNU @code{troff} has no mechanism to ``intern'' macros, that is, @@ -10742,8 +10745,8 @@ are translated on input to the special character escape sequences @code{\[aa]}, @code{\[-]}, @code{\[ul]}, and @code{\[ga]}, respectively. A special character name of length one is not the same thing as an -ordinary input character: that is, the character @code{a} is not the -same as @code{\[a]}. +ordinary character: that is, the character @code{a} is not the same as +@code{\[a]}. If @var{name} is undefined, a warning in category @samp{char} is produced and the escape is ignored. @xref{Warnings}, for information @@ -12533,13 +12536,10 @@ termed @dfn{conditional expressions}. @table @code @item c @var{glyph} -True if @var{glyph} is available, where @var{glyph} is -@c TODO: "an ordinary character", after we update the section "Fonts and -@c Symbols" to better parallelize it with groff_char(7). -a Unicode basic Latin character, a GNU @code{troff} special character -@samp{\(@var{xx}} or @samp{\[@var{xxx}]}, @samp{\N'@var{xxx}'}, or has -been defined by any of the @code{char}, @code{fchar}, @code{fschar}, or -@code{schar} requests. +True if @var{glyph} is available, where @var{glyph} is an ordinary +character, a special character @samp{\(@var{xx}} or @samp{\[@var{xxx}]}, +@samp{\N'@var{xxx}'}, or has been defined by any of the @code{char}, +@code{fchar}, @code{fschar}, or @code{schar} requests. @item d @var{name} True if a string, macro, diversion, or request called @var{name} exists. |