From c96557721be60d942f4d486b9ea7f9b7cbb034cc Mon Sep 17 00:00:00 2001 From: ru Date: Thu, 1 May 2003 13:09:50 +0000 Subject: Virgin import of FSF groff v1.19 --- contrib/groff/man/groff.man | 66 +- contrib/groff/man/groff_char.man | 1697 +++++++++++++++++++++++--------------- contrib/groff/man/groff_diff.man | 286 ++++--- contrib/groff/man/groff_font.man | 38 +- contrib/groff/man/groff_out.man | 21 +- contrib/groff/man/groff_tmac.man | 132 ++- contrib/groff/man/roff.man | 9 +- 7 files changed, 1450 insertions(+), 799 deletions(-) (limited to 'contrib/groff/man') diff --git a/contrib/groff/man/groff.man b/contrib/groff/man/groff.man index 1e9128d..8238717 100644 --- a/contrib/groff/man/groff.man +++ b/contrib/groff/man/groff.man @@ -2,11 +2,11 @@ .ig groff.man -Last update: 29 June 2002 +Last update: 13 Feb 2003 This file is part of groff, the GNU roff type-setting system. -Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. +Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. written by Bernd Warken maintained by Werner Lemberg @@ -1329,6 +1329,13 @@ If .I N is zero disable colors, otherwise enable them. . +.REQ .composite from to +Map glyph name +.I from +to glyph name +.I to +while constructing a composite glyph name. +. .REQ .continue Finish the current iteration of a while loop. . @@ -1543,6 +1550,19 @@ name to short name on position .IR n . . +.REQ .fschar f c anything +Define fallback character +.I c +for font +.I f +as string +.IR anything . +. +.REQ .fspecial font +Reset list of special fonts for +.I font +to be empty. +. .REQ .fspecial font s1 s2 .\|.\|.\& When the current font is .IR font , @@ -1704,6 +1724,10 @@ If .I n is zero, disable line-tabs mode, otherwise enable it. . +.REQ .lf N +Set input line number to +.IR N . +. .REQ .lf N file Set input line number to .I N @@ -1939,6 +1963,14 @@ Read insertion. .REQ .return Return from a macro. . +.REQ .rfschar f c1 c2 .\|.\|.\& +Remove the definitions of characters +.IR c1 , +.IR c2 , +.I .\|.\|.\& +for font +.IR f . +. .REQ .rj n Right justify the next .I n @@ -1973,6 +2005,12 @@ Return to marked vertical place (default scaling indicator\~\c .scaleindicator v ). . +.REQ .schar c anything +Define global fallback character +.I c +as string +.IR anything . +. .REQ .shc Reset soft hyphen character to .esc (hy . @@ -2007,6 +2045,9 @@ up or down according to sign of (default scaling indicator\~\c .scaleindicator v ). . +.REQ .special +Reset global list of special fonts to be empty. +. .REQ .special s1 s2 .\|.\|.\& Fonts .IR s1 , @@ -2509,9 +2550,15 @@ see section .BR "Special Characters" . . .ESC[] "" name -The named character with arbitrary length name +The named character (or rather glyph) with arbitrary length name .IR name . . +.ESC[] "" "comp1 comp2 .\|.\|." +A composite glyph with components +.IR comp1 , +.IR comp2 , +.I .\|.\|. +. .\" --------- alphabetical escapes --------- . .ESC a @@ -3023,6 +3070,10 @@ Text base-line high-water mark on current page or diversion. .REG .H Available horizontal resolution in basic units. . +.REG .height +The current font height as set with +.request \[rs]H . +. .REG .hla The current hyphenation language as set by the .B .hla @@ -3106,6 +3157,9 @@ Current page offset. .REG .p Current page length. . +.REG .pe +1\~during page ejection, 0\~otherwise. +. .REG .pn The number of the next page: either the value set by a .request pn @@ -3126,6 +3180,10 @@ The number of lines to be right-justified as set by the rj request. .REG .s Current point size as a decimal fraction. . +.REG .slant +The slant of the current font as set with +.request \[rs]S . +. .REG .sr The last requested pointsize in points as a decimal fraction (string-valued). @@ -3366,7 +3424,7 @@ be reproduced, and say which version of groff you are using. .SH AUTHORS .\" -------------------------------------------------------------------- . -Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. +Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. . .P This document is distributed under the terms of the FDL (GNU Free diff --git a/contrib/groff/man/groff_char.man b/contrib/groff/man/groff_char.man index be73941..ed078e5 100644 --- a/contrib/groff/man/groff_char.man +++ b/contrib/groff/man/groff_char.man @@ -1,6 +1,6 @@ .TH GROFF_CHAR @MAN7EXT@ "@MDATE@" "Groff Version @VERSION@" .SH NAME -groff_char \- groff character names +groff_char \- groff glyph names .SH DESCRIPTION .\" The lines above were designed to satisfy `apropos'. . @@ -17,9 +17,9 @@ groff_char(7) This file is part of groff (GNU roff). File position: /man/groff_char.man -Last update: 20 July 2002 +Last update: 24 Feb 2003 -Copyright (C) 1989-2000, 2001, 2002 Free Software Foundation, Inc. +Copyright (C) 1989-2000, 2001, 2002, 2003 Free Software Foundation, Inc. written by Werner Lemberg with additions by Bernd Warken @@ -49,185 +49,356 @@ FDL in the main directory of the groff source package. . .\" groff .if !\n(.g .ig -. tr \[aq]\[aq] -. if !c\[aq] \ -. ds aq \' -. \" This is very special. The standard devdvi fonts don't have a -. \" real `aq' glyph; it is defined with .char to be ' instead. -. \" The .tr request below in the definition of the C macro maps -. \" the apostrophe ' onto the `aq' glyph which would cause a -. \" recursive loop. gtroff prevents this within the .char -. \" request, trying to access glyph `aq' directly from the font. -. \" Consequently, we get a warning, and nothing is printed. -. \" -. \" The following line prevents this. -. if '\*[.T]'dvi' \ -. if !r ECFONTS \ -. ds aq \' -. \" The same is true for X -. ds dev \*[.T] -. substring dev 0 0 -. if '\*[dev]'X' .ds aq \' -. ig +. tr \[aq]\[aq] +. if !c\[aq] \ +. ds aq \' +. \" This is very special. The standard devdvi fonts don't have a +. \" real `aq' glyph; it is defined with .char to be ' instead. +. \" The .tr request below in the definition of the C macro maps +. \" the apostrophe ' onto the `aq' glyph which would cause a +. \" recursive loop. gtroff prevents this within the .char +. \" request, trying to access glyph `aq' directly from the font. +. \" Consequently, we get a warning, and nothing is printed. +. \" +. \" The following line prevents this. +. if '\*[.T]'dvi' \ +. if !r ECFONTS \ +. ds aq \' +. \" The same is true for X +. ds dev \*[.T] +. substring dev 0 0 +. if '\*[dev]'X' .ds aq \' +. ig .. +. .\" -------------------------------------------------------------------- .\" .Ac accented-char accent char (groff) +. .if !\n(.g .ig .de Ac -. char \\$1 \\$3\ -\k[acc]\h'(u;-\w'\\$2'-\w'\\$3'/2+\\\\n[skw]+(\w'x'*0)-\\\\n[skw])'\ -\v'(u;\w'x'*0+\\\\n[rst]+(\w'\\$3'*0)-\\\\n[rst])'\\$2\ -\v'(u;\w'x'*0-\\\\n[rst]+(\w'\\$3'*0)+\\\\n[rst])'\h'|\\\\n[acc]u' -. hcode \\$1 \\$3 +. if !c\\$1 \{\ +. ie c\\$2 \ +. char \\$1 \ +\k[acc]\ +\h'\w'\\$3'u'\ +\h'(u;-\w'\\$2'-\w'\\$3'/2+\\\\n[skw]+(\w'x'*0)-\\\\n[skw])'\ +\v'(u;\w'x'*0+\\\\n[rst]+(\w'\\$3'*0)-\\\\n[rst])'\ +\\$2\ +\v'(u;\w'x'*0-\\\\n[rst]+(\w'\\$3'*0)+\\\\n[rst])'\ +\h'|\\\\n[acc]u'\ +\\$3 +. el \ +. char \\$1 \\$3 +. hcode \\$1 \\$3 +. \} .. -.Ac \(vc \(ah c -.Ac \(vC \(ah C -. . .\" -------------------------------------------------------------------- .\" Setup Part 2 .\" -------------------------------------------------------------------- . -.nr Sp 3n -.ta \w'\fIOutput'u+\n(Spu \ - +\w'\fIInput'u+\n(Spu \ - +\w'\fIInput'u+\n(Spu \ - +\w'periodcentered'u+\n(Spu +.nr Sp 2n . .\" -------------------------------------------------------------------- -.de C0 -. C \\$1 "" \\$1 \\$2 "\\$3" +.\" .C2/.CN (groff) +. +.if !\n(.g .ig +.de CN +. C \e[\\$1] "" \[\\$1] \\$2 "\\$3" "\\$4" .. . -.\" -------------------------------------------------------------------- -.de C1 -. C \e\\$1 "" \\\\\\$1 \\$2 "\\$3" +.\" .Ns (groff) start .CN block +. +.if !\n(.g .ig +.de Ns +. CN "\\$1" "\\$2" "\\$3" "\\$4" +. if !\n[cR] \ +. wh (\\n[nl]u + \\n[.t]u - \\n[.V]u) Fo .. . -.\" -------------------------------------------------------------------- -.\" .C2/.CN (groff) +.\" .Ne (groff) end .CN block +. .if !\n(.g .ig -.de CN -. C \e[\\$1] "" \[\\$1] \\$2 "\\$3" +.de Ne +. ch Fo +. CN "\\$1" "\\$2" "\\$3" "\\$4" .. -.if \n(.g .als C2 CN +. +.if \n(.g \{\ +. als C2 CN +. als 2s Ns +. als 2e Ne +.\} . .\" -------------------------------------------------------------------- .\" .C2 (non-groff) +. .if \n(.g .ig .de C2 -. C \e(\\$1 "" \\(\\$1 \\$2 "\\$3" +. C \e(\\$1 "" \\(\\$1 \\$2 "\\$3" "\\$4" +.. +. +.\" .2s (non-groff) start .C2 block +. +.if \n(.g .ig +.de 2s +. C2 "\\$1" "\\$2" "\\$3" "\\$4" +. if !\n(cR \ +. wh \\n(nlu+\\n(.tu-\\n(.Vu Fo +.. +. +.\" .2e (non-groff) end .C2 block +. +.if \n(.g .ig +.de 2e +. ch Fo +. C2 "\\$1" "\\$2" "\\$3" "\\$4" .. . .\" -------------------------------------------------------------------- .\" .CD (groff) +. .if !\n(.g .ig .de CD -. C \[char\\$1] \\$1 \[char\\$1] \\$2 "\\$3" +. C \[char\\$1] \\$1 \[char\\$1] \\$2 "\\$3" "\\$4" 1 +.. +. +.\" .Ds (groff) start .CD block +. +.if !\n(.g .ig +.de Ds +. CD "\\$1" "\\$2" "\\$3" "\\$4" +. if !\n[cR] \ +. wh (\\n[nl]u + \\n[.t]u - \\n[.V]u) Fo +.. +. +.\" .De (groff) end .CD block +. +.if !\n(.g .ig +.de De +. ch Fo +. CD "\\$1" "\\$2" "\\$3" "\\$4" .. . .\" -------------------------------------------------------------------- +. .do if !r ECFONTS .do fspecial CR R . +.\" .CT +. +.de CT +. nr c1 \w'\\$1' +. if \\n(c1 \ +. nr c1 +\\n(Spu +. nr c2 \\n(c1+\w'\\$2' +. if \\n(c1<\\n(c2 \ +. nr c2 +\\n(Spu +. nr c3 \\n(c2+\w'\\$3' +. if \\n(c2<\\n(c3 \ +. nr c3 +\\n(Spu +. nr c4 \\n(c3+\w'\\$4' +. if \\n(c3<\\n(c4 \ +. nr c4 +\\n(Spu +. nr c5 \\n(c4+\w'\\$5' +. if \\n(c4<\\n(c5 \ +. nr c5 +\\n(Spu +.. +. +.\" .CL +. +.de CL +\\$1\c +\h'\\n(c1u-\\n(.ku'\\$2\c +\h'\\n(c2u-\\n(.ku'\\$3\c +\h'\\n(c3u-\\n(.ku'\\$4\c +\h'\\n(c4u-\\n(.ku'\\$5\c +\h'\\n(c5u-\\n(.ku'\\$6 +. br +.. +. .\" -------------------------------------------------------------------- -.\" input-name decimal-code output-name ps-name description +.\" input-name decimal-code output-name ps-name unicode description is-char .\" .C (groff) +. .if !\n(.g .ig .de C -. if c\\$3 \{\ -. ft CR -. tr `\`'\*[aq] -. in 0 -. di CH -. nop \&\\$1 -. br -. di -. in -. ft -. ds CH \\*[CH]\ -. tr ``'' -. nop \&\\$3\t\\*[CH]\t\\$2\t\\$4\t\\$5 -. \} +. nr CH 1 +. if \\$7 \ +. if !c\\$1 \ +. nr CH 0 +. ie !\\n[CH] \ +. ds CH +. el \{\ +. ft CR +. tr `\`'\*[aq] +. in 0 +. di CH +. nop \&\\$1 +. br +. di +. chop CH +. in +. ft +. ds CH \\*[CH] +. tr ``'' +. \} +. di CC +. ie c\\$3 \{\ +. nop \\&\\$3\c +. \" The \x values assure that oversized symbols don't +. \" overlap vertically. The constant 1.5p is heuristic. +. nop \x'(\w'('*0 - ((\\n[.cht]u - \\n[rst]u - 1.5p) >? 0))'\c +. nop \x'((\\n[.cdp]u + \\n[rsb]u - 1.5p) >? 0)'\c +. nop \h'(\\n[c1]u - \\n[.k]u)'\\*[CH]\c +. nop \h'(\\n[c2]u - \\n[.k]u)'\\$2\c +. \} +. el \{\ +. nop (N/A)\c +. nop \h'(\\n[c1]u - \\n[.k]u)'\\*[CH]\c +. \} +. nop \h'(\\n[c3]u - \\n[.k]u)'\\$4\c +. nop \h'(\\n[c4]u - \\n[.k]u)'\\$5\c +. br +. di +. \" we move upwards later on so force a page break now if necessary +. if (\\n[dn] >= \\n[.t]) \ +. bp +. mk C1 +. in 0 +. CC +. in +. \" allow multiple lines for last column +. in +\\n[c5]u +. mk C2 +. sp |\\n[C1]u +. nr PN \\n[%] +. ad l +. nop \\$6 +. ad b +. in +. if (\\n[PN] == \\n[%]) \ +. if (\\n[nl] < \\n[C2]) \ +. sp |\\n[C2]u .. . .\" -------------------------------------------------------------------- .\" .C (non-groff) +. .if \n(.g .ig .de C -. if !'\\$3'' \{\ -. ft B -. tr `\`'\*(aq -. in 0 -. di CH +. ft B +. tr `\`'\*(aq +. in 0 +. di CH \&\\$1 -. br -. di -. in -. ft -. ds CH \\*(CH\ -. tr ``'' -\&\\$3\t\\*(CH\t\\$2\t\\$4\t\\$5 -. \} +. br +. di +. in +. ft +. ds CH \\*(CH\ +. tr ``'' +. di CC +. ie !'\\$3'' \{\ +\&\\$3\c +\h'\\n(c1u-\\n(.ku)'\\*(CH\c +\h'\\n(c2u-\\n(.ku)'\\$2\c +\h'\\n(c3u-\\n(.ku)'\\$4\c +. \} +. el \{\ +(N/A)\c +\h'\\n(c1u-\\n(.ku)'\\*(CH\c +\h'\\n(c3u-\\n(.ku)'\\$4\c +. \} +\h'\\n(c4u-\\n(.ku)'\\$5\c +\h'\\n(c5u-\\n(.ku)'\\$6 +. br +. di +. \" we move upwards later on so force a page break now if necessary +. if \\n(dn>=\\n(.t \ +. bp +. mk C1 +. in 0 +. CC +. in +. \" allow multiple lines for last column +. in +\\n(c5u +. mk C2 +. sp |\\n(C1u +. nr PN \\n% +. ad l +\\$6 +. ad b +. in +. if \\n(PN==\\n% \ +. if \\n(nl<\\n(C2 \ +. sp |\\n(C2u .. . .\" -------------------------------------------------------------------- +. .de Fo -'bp -.He +' bp +. He .. . -.\" -------------------------------------------------------------------- -.de He -.P -'nf -.ft I -Output Input Input PostScript Notes - name code name -.ft -.P +.de Pa +. P +. ne 3 .. . +. +. .\" -------------------------------------------------------------------- .\" .SH DESCRIPTION .\" -------------------------------------------------------------------- . This manual page lists the standard .B groff -input characters. +glyph names and the default input mapping, \%latin-1. . -The output characters in this document will look different depending +The glyphs in this document will look different depending on which output device was chosen (with option .B \-T for the .BR man (1) program or the roff formatter). . -Only the characters that are available for the device that -is being used to print or view this manual page will be -.ie \n(.g displayed (the device currently used is `\*(.T'). -.el displayed. +Glyphs not available for the device that +is being used to print or view this manual page will be marked with +.ie \n(.g `(N/A)'; the device currently used is `\*(.T'. +.el `(N/A)'. . . .P In the actual version, .B groff -provides only 8-bit characters for direct input and named characters +provides only \%8-bit characters for direct input and named entities for further glyphs. . -On ASCII platforms, character codes in the range 0 to 127 (decimal) -represent the usual 7-bit ASCII characters, while codes between 127 +On ASCII platforms, input character codes in the range 0 to 127 (decimal) +represent the usual \%7-bit ASCII characters, while codes between 127 and 255 are interpreted as the corresponding characters in the -.I Latin-1 -.RI ( ISO-8859-1 ) -code set. +.I \%Latin-1 +.RI ( \%ISO-8859-1 ) +code set by default. +. +This mapping is contained in the file \f(CWlatin1.tmac\fP +and can be changed by loading a different input encoding. +. +Note that some of the input characters are reserved by +.BR groff , +either for internal use or for special input purposes. . -On EBCDIC platforms, only the code page +On EBCDIC platforms, only code page .B cp1047 -is supported (which contains the same characters as Latin-1). +is supported (which contains the same characters as \%Latin-1; the +input encoding file is called \f(CWcp1047.tmac\fP). +. +Again, some input characters are reserved for internal and special purposes. . It is rather straightforward (for the experienced user) to set up other -8bit encodings like -.IR Latin-2 ; +\%8-bit encodings like +.IR \%Latin-2 ; since .B groff will use Unicode in the next major version, no additional encodings @@ -235,13 +406,13 @@ are provided. . . .P -All roff systems provide the concept of named characters. +All roff systems provide the concept of named glyphs. . In traditional roff systems, only names of length\ 2 were used, while groff also provides support for longer names. . -It is strongly suggested that only named characters are used for all -characters outside of the 7-bit ASCII range. +It is strongly suggested that only named glyphs are used for all +character representations outside of the printable \%7-bit ASCII range. . . .P @@ -249,30 +420,21 @@ Some of the predefined groff escape sequences (with names of length\ 1) also produce single characters; these exist for historical reasons or are printable versions of syntactical characters. . -They include -.BR \e\e , -.BR \e' , -.BR \e` , -.BR \e- , -.BR \e. , -and -.BR \ee ; -see +They include `\f(CW\e\e\fP', `\f(CW\e\'\fP', `\f(CW\e`\fP', `\f(CW\e-\fP', +`\f(CW\e.\fP', and `\f(CW\ee\fP'; see .BR groff (@MAN7EXT@). . . .P -In groff, all of these different types of characters can be tested -positively with the -.B .if\ c -conditional. +In groff, all of these different types of characters and glyphs can be +tested positively with the `\f(CW.if\ c\fP' conditional. . . .\" -------------------------------------------------------------------- .SH REFERENCE .\" -------------------------------------------------------------------- . -In this section, the characters in groff are specified in tabular +In this section, the glyphs in groff are specified in tabular form. . The meaning of the columns is as follows. @@ -280,719 +442,918 @@ The meaning of the columns is as follows. . .TP .I "Output" -shows how the character is printed for the current device; although +shows how the glyph is printed for the current device; although this can have quite a different shape on other devices, it always represents the same glyph. . . .TP .I "Input name" -specifies how the character is input either directly by a key on the +specifies how the glyph is input either directly by a key on the keyboard, or by a groff escape sequence. . . .TP .I "Input code" -applies to characters which can be input with a single character, and -gives the ISO Latin-1 decimal code of that input character. +applies to glyphs which can be input with a single character, and +gives the ISO \%Latin-1 decimal code of that input character. . -Note that this code is equivalent to the lowest 256 Unicode characters; -(including 7-bit ASCII in the range 0 to\ 127). +Note that this code is equivalent to the lowest 256 Unicode characters, +including \%7-bit ASCII in the range 0 to\ 127. . . .TP .I "PostScript name" -gives the usual PostScript name of the output character. +gives the usual PostScript name of the glyph. +. +. +.TP +.I "Unicode decomposed" +is the glyph name used in composite glyph names. +. . . .\" -------------------------------------------------------------------- -.SS "ASCII Characters" +.SS "7-bit Character Codes 32-126" .\" -------------------------------------------------------------------- . -These are the basic characters having 7-bit ASCII code values. +These are the basic glyphs having 7-bit ASCII code values assigned. . -These are identical to the first 127 characters of the character -standards ISO-8859-1 (Latin-1) and Unicode (range +They are identical to the printable characters of the +character standards \%ISO-8859-1 (\%Latin-1) and Unicode (range .IR "C0 Controls and Basic Latin" ). . -To save space, not every code has an entry in the following because -the following code ranges are well known. +The glyph names used in composite glyph names are `u0020' up to `u007E'. +. +. +.P +Note that input characters in the range \%0\-31 and character 127 are +.I not +printable characters. +. +Most of them are invalid input characters for +.B groff +anyway, and the valid ones have special meaning. +. +For EBCDIC, the printable characters are in the range \%66\-255. . -.TP -0\-32 -Control characters (print as themselves). . .TP 48\-57 -Decimal digits 0 to 9 (print as themselves). +Decimal digits 0 to\ 9 (print as themselves). +. . .TP 65\-90 Upper case letters A\-Z (print as themselves). . +. .TP 97\-122 Lower case letters a\-z (print as themselves). . -.TP -127 -Control character (prints as itself). . .P -The remaining ranges constitute the printable, non-alphanumeric ASCII -characters; only these are listed below. -. -As can be seen in the table below, most of these characters print as +Most of the remaining characters not in the just described ranges print as themselves; the only exceptions are the following characters: . +. .TP .B \` -the ISO Latin-1 `Grave Accent' (code\ 96) prints as `, a left single -quotation mark, +the ISO \%Latin-1 `Grave Accent' (code\ 96) prints as `, a left single +quotation mark; the original character can be obtained with `\f(CW\e`\fP'. +. . .TP .B \*(aq -the ISO Latin-1 `Apostrophe' (code\ 39) prints as ', a right single -quotation mark; the corresponding ISO Latin-1 characters can be obtained -with -.B \e` -and -.BR \e(aq . +the ISO \%Latin-1 `Apostrophe' (code\ 39) prints as ', a right single +quotation mark; the original character can be obtained with `\f(CW\e(aq\fP'. +. . .TP .B - -the ISO Latin-1 `Hyphen, Minus Sign' (code\ 45) prints as a hyphen; a -minus sign can be obtained with -.BR \e- . +the ISO \%Latin-1 `Hyphen, Minus Sign' (code\ 45) prints as a hyphen; a +minus sign can be obtained with `\f(CW\e-\fP'. +. . .TP .B ~ -the ISO Latin-1 `Tilde' (code\ 126); a larger glyph can be obtained -with -.BR \e(ti . +the ISO \%Latin-1 `Tilde' (code\ 126) is reduced in size to be usable as +a diacritic; a larger glyph can be obtained with `\f(CW\e(ti\fP'. +. . .TP .B ^ -the ISO Latin-1 `Circumflex Accent' (code\ 94); a larger glyph can be -obtained with -.BR \e(ha . +the ISO \%Latin-1 `Circumflex Accent' (code\ 94) is reduced in size to be +usable as a diacritic; a larger glyph can be obtained with `\f(CW\e(ha\fP'. . . .P -.if !\n[cR] .wh \n(nlu+\n(.tu-\n(.Vu Fo +.CT "\fIOutput" "\fIInput" "\fIInput" "bracketright" "decomposed" +.de He +. P +. ne 4 +. ft I +. CL "Output" "Input" "Input" "PostScript" "Unicode" "Notes" +. CL "" "name" "code" "name" "decomposed" "" +. ft +. P +.. .He -.CD 33 exclam -.CD 34 quotedbl -.CD 35 numbersign -.CD 36 dollar -.CD 37 percent -.CD 38 ampersand -.CD 39 quoteright -.CD 40 parenleft -.CD 41 parenright -.CD 42 asterisk -.CD 43 plus -.CD 44 comma -.CD 45 hyphen -.CD 46 period -.CD 47 slash -.CD 58 colon -.CD 59 semicolon -.CD 60 less -.CD 61 equal -.CD 62 greater -.CD 63 question -.CD 64 at -.CD 91 bracketleft -.CD 92 backslash -.CD 93 bracketright -.CD 94 circumflex "circumflex accent" -.CD 95 underscore -.CD 96 quoteleft -.CD 123 braceleft -.CD 124 bar -.CD 125 braceright -.CD 126 tilde "tilde accent" -.ch Fo +.Ds 33 exclam u0021 +.CD 34 quotedbl u0022 +.CD 35 numbersign u0023 +.CD 36 dollar u0024 +.CD 37 percent u0025 +.CD 38 ampersand u0026 +.CD 39 quoteright u0027 +.CD 40 parenleft u0028 +.CD 41 parenright u0029 +.CD 42 asterisk u002A +.CD 43 plus u002B +.CD 44 comma u002C +.CD 45 hyphen u2010 +.CD 46 period u002E +.CD 47 slash u002F +.CD 58 colon u003A +.CD 59 semicolon u003B +.CD 60 less u003C +.CD 61 equal u003D +.CD 62 greater u003E +.CD 63 question u003F +.CD 64 at u0040 +.CD 91 bracketleft u005B +.CD 92 backslash u005C +.CD 93 bracketright u005D +.CD 94 circumflex u005E "circumflex accent" +.CD 95 underscore u005F +.CD 96 quoteleft u0060 +.CD 123 braceleft u007B +.CD 124 bar u007C +.CD 125 braceright u007D +.De 126 tilde u007E "tilde accent" . . .\" -------------------------------------------------------------------- -.SS "Latin-1 Special Characters" +.SS "8-bit Character Codes 160 to 255" .\" -------------------------------------------------------------------- . -These characters have character codes between 128 and\ 255. -. -They are interpreted as characters according to the +They are interpreted as printable characters according to the .I Latin-1 .RI ( iso-8859-1 ) code set, being identical to the Unicode range .IR "C1 Controls and Latin-1 Supplement" . . -.TP -128\-159 . -the C1 Controls; they print as themselves, but the effect is mostly -undefined. +.P +Input characters in range 128-159 (on non-EBCDIC hosts) are not printable +characters. +. . .TP 160 . -the ISO Latin-1 +the ISO \%Latin-1 .I no-break space -is mapped to -.BR `\e\ ' , -the escaped space character. +is mapped to `\f(CW\e~\fP', the stretchable space character. +. . .TP 173 . -the soft hyphen control character (prints as itself). +the soft hyphen control character. . -groff never use this character for output (thus it is omitted in the table -below); the input character\ 173 is mapped onto -.BR \e% . +.B groff +never uses this character for output (thus it is omitted in the +table below); the input character\ 173 is mapped onto `\f(CW\e%\fP'. . . .P -The remaining ranges (161\-172, 174\-255), called the -.I Latin-1 Supplement -in Unicode, are printable characters that print as themselves. +The remaining ranges (\%161\-172, \%174\-255) +are printable characters that print as themselves. . Although they can be specified directly with the keyboard on systems -with a Latin-1 code page, it is better to use their named character -equivalent; see next section. -. +with a \%Latin-1 code page, it is better to use their glyph names; +see next section. . .P -.if !\n[cR] .wh \n(nlu+\n(.tu-\n(.Vu Fo +.CT "\fIOutput" "\fIInput" "\fIInput" "guillemotright" "decomposed" .He -.CD 161 exclamdown "inverted exclamation mark" -.CD 162 cent -.CD 163 sterling -.CD 164 currency -.CD 165 yen -.CD 166 brokenbar -.CD 167 section -.CD 168 dieresis -.CD 169 copyright -.CD 170 ordfeminine -.CD 171 guillemotleft -.CD 172 logicalnot -.CD 174 registered -.CD 175 macron -.CD 176 degree -.CD 177 plusminus -.CD 178 twosuperior -.CD 179 threesuperior -.CD 180 acute "acute accent" -.CD 181 mu "micro sign" -.CD 182 paragraph -.CD 183 periodcentered -.CD 184 cedilla -.CD 185 onesuperior -.CD 186 ordmasculine -.CD 187 guillemotright -.CD 188 onequarter -.CD 189 onehalf -.CD 190 threequarters -.CD 191 questiondown -.CD 192 Agrave -.CD 193 Aacute -.CD 194 Acircumflex -.CD 195 Atilde -.CD 196 Adieresis -.CD 197 Aring -.CD 198 AE -.CD 199 Ccedilla -.CD 200 Egrave -.CD 201 Eacute -.CD 202 Ecircumflex -.CD 203 Edieresis -.CD 204 Igrave -.CD 205 Iacute -.CD 206 Icircumflex -.CD 207 Idieresis -.CD 208 Eth -.CD 209 Ntilde -.CD 210 Ograve -.CD 211 Oacute -.CD 212 Ocircumflex -.CD 213 Otilde -.CD 214 Odieresis -.CD 215 multiply -.CD 216 Oslash -.CD 217 Ugrave -.CD 218 Uacute -.CD 219 Ucircumflex -.CD 220 Udieresis -.CD 221 Yacute -.CD 222 Thorn -.CD 223 germandbls -.CD 224 agrave -.CD 225 aacute -.CD 226 acircumflex -.CD 227 atilde -.CD 228 adieresis -.CD 229 aring -.CD 230 ae -.CD 231 ccedilla -.CD 232 egrave -.CD 233 eacute -.CD 234 ecircumflex -.CD 235 edieresis -.CD 236 igrave -.CD 237 iacute -.CD 238 icircumflex -.CD 239 idieresis -.CD 240 eth -.CD 241 ntilde -.CD 242 ograve -.CD 243 oacute -.CD 244 ocircumflex -.CD 245 otilde -.CD 246 odieresis -.CD 247 divide -.CD 248 oslash -.CD 249 ugrave -.CD 250 uacute -.CD 251 ucircumflex -.CD 252 udieresis -.CD 253 yacute -.CD 254 thorn -.CD 255 ydieresis -.ch Fo +.Ds 161 exclamdown u00A1 "inverted exclamation mark" +.CD 162 cent u00A2 +.CD 163 sterling u00A3 +.CD 164 currency u00A4 +.CD 165 yen u00A5 +.CD 166 brokenbar u00A6 +.CD 167 section u00A7 +.CD 168 dieresis u00A8 +.CD 169 copyright u00A9 +.CD 170 ordfeminine u00AA +.CD 171 guillemotleft u00AB +.CD 172 logicalnot u00AC +.CD 174 registered u00AE +.CD 175 macron u00AF +.CD 176 degree u00B0 +.CD 177 plusminus u00B1 +.CD 178 twosuperior u00B2 +.CD 179 threesuperior u00B3 +.CD 180 acute u00B4 "acute accent" +.CD 181 mu u00B5 "micro sign" +.CD 182 paragraph u00B6 +.CD 183 periodcentered u00B7 +.CD 184 cedilla u00B8 +.CD 185 onesuperior u00B9 +.CD 186 ordmasculine u00BA +.CD 187 guillemotright u00BB +.CD 188 onequarter u00BC +.CD 189 onehalf u00BD +.CD 190 threequarters u00BE +.CD 191 questiondown u00BF +.CD 192 Agrave u0041_0300 +.CD 193 Aacute u0041_0301 +.CD 194 Acircumflex u0041_0302 +.CD 195 Atilde u0041_0303 +.CD 196 Adieresis u0041_0308 +.CD 197 Aring u0041_030A +.CD 198 AE u00C6 +.CD 199 Ccedilla u0043_0327 +.CD 200 Egrave u0045_0300 +.CD 201 Eacute u0045_0301 +.CD 202 Ecircumflex u0045_0302 +.CD 203 Edieresis u0045_0308 +.CD 204 Igrave u0049_0300 +.CD 205 Iacute u0049_0301 +.CD 206 Icircumflex u0049_0302 +.CD 207 Idieresis u0049_0308 +.CD 208 Eth u00D0 +.CD 209 Ntilde u004E_0303 +.CD 210 Ograve u004F_0300 +.CD 211 Oacute u004F_0301 +.CD 212 Ocircumflex u004F_0302 +.CD 213 Otilde u004F_0303 +.CD 214 Odieresis u004F_0308 +.CD 215 multiply u00D7 +.CD 216 Oslash u00D8 +.CD 217 Ugrave u0055_0300 +.CD 218 Uacute u0055_0301 +.CD 219 Ucircumflex u0055_0302 +.CD 220 Udieresis u0055_0308 +.CD 221 Yacute u0059_0301 +.CD 222 Thorn u00DE +.CD 223 germandbls u00DF +.CD 224 agrave u0061_0300 +.CD 225 aacute u0061_0301 +.CD 226 acircumflex u0061_0302 +.CD 227 atilde u0061_0303 +.CD 228 adieresis u0061_0308 +.CD 229 aring u0061_030A +.CD 230 ae u00E6 +.CD 231 ccedilla u0063_0327 +.CD 232 egrave u0065_0300 +.CD 233 eacute u0065_0301 +.CD 234 ecircumflex u0065_0302 +.CD 235 edieresis u0065_0308 +.CD 236 igrave u0069_0300 +.CD 237 iacute u0069_0301 +.CD 238 icircumflex u0069_0302 +.CD 239 idieresis u0069_0308 +.CD 240 eth u00F0 +.CD 241 ntilde u006E_0303 +.CD 242 ograve u006F_0300 +.CD 243 oacute u006F_0301 +.CD 244 ocircumflex u006F_0302 +.CD 245 otilde u006F_0303 +.CD 246 odieresis u006F_0308 +.CD 247 divide u00F7 +.CD 248 oslash u00F8 +.CD 249 ugrave u0075_0300 +.CD 250 uacute u0075_0301 +.CD 251 ucircumflex u0075_0302 +.CD 252 udieresis u0075_0308 +.CD 253 yacute u0079_0301 +.CD 254 thorn u00FE +.De 255 ydieresis u0079_0308 . . .\" -------------------------------------------------------------------- -.SS "Named Characters" +.SS "Named Glyphs" .\" -------------------------------------------------------------------- . -The named character idiom is the standard way to specify special -characters in roff systems. -. -They can be embedded into the document text by using escape sequences. +Glyph names can be embedded into the document text by using escape +sequences. . .BR groff (@MAN7EXT@) describes how these escape sequences look. . -The character names can consist of quite arbitrary characters from the -ASCII or Latin-1 code set, not only alphanumeric characters. +Glyph names can consist of quite arbitrary characters from the +ASCII or \%Latin-1 code set, not only alphanumeric characters. . Here some examples: . .TP -.BI \e c -named character having the name +\f(CW\e\fP\fIc\fP +A glyph having the name .IR c , which consists of a single character (length\ 1). . .TP -.BI \e( ch -named character having the 2-character name +\f(CW\e(\fP\fIch\fP +A glyph having the 2-character name .IR ch . . .TP -.BI \e[ char_name ] -named character having the name +\f(CW\e[\fP\fIchar_name\fP\f(CW]\fP +A glyph having the name .I char_name (having length 1, 2, 3, .\|.\|.). . +.TP +\f(CW\e[\fP\fIbase_glyph composite_1 composite_2 .\|.\|.\fP\f(CW]\fP +A composite glyph; see below for a more detailed description. +. . .P -In groff, each 8bit input character can also referred to by the construct -.BI \en[char n ] -where +In groff, each \%8-bit input character can also referred to by the construct +`\f(CW\e[char\fP\fIn\fP\f(CW]\fP' where .I n is the decimal code of the character, a number between 0 and\ 255 -without leading zeros. +without leading zeros (those entities are +.I not +glyph names). +. +They are normally mapped onto glyphs using the \f(CW.trin\fP request. . -They are mapped onto glyph entities using the -.B .trin -request. +Another special convention is the handling of glyphs with names directly +derived from a Unicode code point; this is discussed below. . -Moreover, new character names can be created by the -.B .char -request; see +Moreover, new glyph names can be created by the \f(CW.char\fP request; see .BR groff (@MAN7EXT@). . +.P +In the following, a plus sign in the `Notes' column indicates that this +particular glyph name appears in the PS version of the original troff +documentation, CSTR\ 54. +. . .P -.\" we don't use the third column -.ta \w'\fIOutput'u+\n(Spu \ - +\w'\fIInput'u+\n(Spu-1n \ - +1n \ - +\w'periodcentered'u+\n(Spu -.if !\n[cR] .wh \n(nlu+\n(.tu-\n(.Vu Fo +.CT "\fIOutput" "\f(CW\e[-D]" "" "Ocircumflex" "u0066_0066_006C" .de He -.P -'nf -.ft I -Output Input PostScript Notes - name name -.ft -.P +. P +. ne 4 +. ft I +. CL "Output" "Input" "" "PostScript" "Unicode" "Notes" +. CL "" "name" "" "name" "decomposed" "" +. ft +. P .. .He -.C2 -D Eth "Icelandic uppercase eth" -.C2 Sd eth "Icelandic lowercase eth" -.C2 TP Thorn "Icelandic uppercase thorn" -.C2 Tp thorn "Icelandic lowercase thorn" -.C2 ss germandbls "German sharp s" +.2s -D Eth u00D0 "uppercase eth" +.C2 Sd eth u00F0 "lowercase eth" +.C2 TP Thorn u00DE "uppercase thorn" +.C2 Tp thorn u00FE "lowercase thorn" +.2e ss germandbls u00DF "German sharp s" +. +.Pa +.I Ligatures and Other Latin Glyphs +.P +.2s ff ff u0066_0066 "ff ligature +" +.C2 fi fi u0066_0069 "fi ligature +" +.C2 fl fl u0066_006C "fl ligature +" +.C2 Fi ffi u0066_0066_0069 "ffi ligature +" +.C2 Fl ffl u0066_0066_006C "ffl ligature +" +.C2 /L Lslash u0141 "(Polish)" +.C2 /l lslash u0142 "(Polish)" +.C2 /O Oslash u00D8 "(Scandinavic)" +.C2 /o oslash u00F8 "(Scandinavic)" +.C2 AE AE u00C6 +.C2 ae ae u00E6 +.C2 OE OE u0152 +.C2 oe oe u0153 +.C2 IJ IJ u0132 "(Dutch)" +.C2 ij ij u0133 "(Dutch)" +.C2 .i dotlessi u0131 "(Turkish)" +.2e .j dotlessj --- "j without a dot" +. +.Pa +.I Accented Characters +.P +.2s 'A Aacute u0041_0301 +.C2 'C Cacute u0043_0301 +.C2 'E Eacute u0045_0301 +.C2 'I Iacute u0049_0301 +.C2 'O Oacute u004F_0301 +.C2 'U Uacute u0055_0301 +.C2 'Y Yacute u0059_0301 +.C2 'a aacute u0061_0301 +.C2 'c cacute u0063_0301 +.C2 'e eacute u0065_0301 +.C2 'i iacute u0069_0301 +.C2 'o oacute u006F_0301 +.C2 'u uacute u0075_0301 +.C2 'y yacute u0079_0301 +.C2 :A Adieresis u0041_0308 "A with umlaut" +.C2 :E Edieresis u0045_0308 +.C2 :I Idieresis u0049_0308 +.C2 :O Odieresis u004F_0308 +.C2 :U Udieresis u0055_0308 +.C2 :Y Ydieresis u0059_0308 +.C2 :a adieresis u0061_0308 +.C2 :e edieresis u0065_0308 +.C2 :i idieresis u0069_0308 +.C2 :o odieresis u006F_0308 +.C2 :u udieresis u0075_0308 +.C2 :y ydieresis u0079_0308 +.C2 ^A Acircumflex u0041_0302 +.C2 ^E Ecircumflex u0045_0302 +.C2 ^I Icircumflex u0049_0302 +.C2 ^O Ocircumflex u004F_0302 +.C2 ^U Ucircumflex u0055_0302 +.C2 ^a acircumflex u0061_0302 +.C2 ^e ecircumflex u0065_0302 +.C2 ^i icircumflex u0069_0302 +.C2 ^o ocircumflex u006F_0302 +.C2 ^u ucircumflex u0075_0302 +.C2 `A Agrave u0041_0300 +.C2 `E Egrave u0045_0300 +.C2 `I Igrave u0049_0300 +.C2 `O Ograve u004F_0300 +.C2 `U Ugrave u0055_0300 +.C2 `a agrave u0061_0300 +.C2 `e egrave u0065_0300 +.C2 `i igrave u0069_0300 +.C2 `o ograve u006F_0300 +.C2 `u ugrave u0075_0300 +.C2 ~A Atilde u0041_0303 +.C2 ~N Ntilde u004E_0303 +.C2 ~O Otilde u004F_0303 +.C2 ~a atilde u0061_0303 +.C2 ~n ntilde u006E_0303 +.C2 ~o otilde u006F_0303 +.C2 vS Scaron u0053_030C +.C2 vs scaron u0073_030C +.C2 vZ Zcaron u005A_030C +.C2 vz zcaron u007A_030C +.C2 ,C Ccedilla u0043_0327 +.C2 ,c ccedilla u0063_0327 +.C2 oA Aring u0041_030A +.2e oa aring u0061_030A +. +.Pa +.I Accents +.P +The +.B composite +request is used to map most of the accents to non-spacing glyph names; +the values given in parentheses are the original (spacing) ones. . .P -.I Ligatures -.C2 ff ff "ff ligature" -.C2 fi fi "fi ligature" -.C2 fl fl "fl ligature" -.C2 Fi ffi "ffi ligature" -.C2 Fl ffl "ffl ligature" -.C2 AE AE -.C2 ae ae -.C2 OE OE -.C2 oe oe -.C2 IJ IJ "Dutch IJ ligature" -.C2 ij ij "Dutch ij ligature" -.C2 .i dotlessi "i without a dot (Turkish)" -.C2 .j dotlessj "j without a dot" +.Ac \(vc \(ah c +.Ac \('a \(aa a . +.\" we don't use the third column +.CT "\fIOutput" "\f(CW\e[-D]" "" "quotesinglebase" "uCCCC (uCCCC)" +.He +.2s a" hungarumlaut "u030B (u02DD)" "(Hungarian)" +.C2 a- macron "u0304 (u00AF)" +.C2 a. dotaccent "u0307 (u02D9)" +.C2 a^ circumflex "u0302 (u005E)" +.C2 aa acute "u0301 (u00B4)" "+" +.C2 ga grave "u0300 (u0060)" "+" +.C2 ab breve "u0306 (u02D8)" +.C2 ac cedilla "u0327 (u00B8)" +.C2 ad dieresis "u0308 (u00A8)" "umlaut" +.C2 ah caron "u030C (u02C7)" "h\('a\(vcek" +.C2 ao ring "u030A (u02DA)" "circle" +.C2 a~ tilde "u0303 (u007E)" +.C2 ho ogonek "u0328 (u02DB)" "hook" +.C2 ha asciicircum u005E "(spacing)" +.2e ti asciitilde u007E "(spacing)" +. +.Pa +.I Quotes .P -.I Accented Characters -.C2 'A Aacute -.C2 'C Cacute -.C2 'E Eacute -.C2 'I Iacute -.C2 'O Oacute -.C2 'U Uacute -.C2 'Y Yacute -.C2 'a aacute -.C2 'c cacute -.C2 'e eacute -.C2 'i iacute -.C2 'o oacute -.C2 'u uacute -.C2 'y yacute -.C2 :A Adieresis "A with umlaut" -.C2 :E Edieresis -.C2 :I Idieresis -.C2 :O Odieresis -.C2 :U Udieresis -.C2 :Y Ydieresis -.C2 :a adieresis -.C2 :e edieresis -.C2 :i idieresis -.C2 :o odieresis -.C2 :u udieresis -.C2 :y ydieresis -.C2 ^A Acircumflex -.C2 ^E Ecircumflex -.C2 ^I Icircumflex -.C2 ^O Ocircumflex -.C2 ^U Ucircumflex -.C2 ^a acircumflex -.C2 ^e ecircumflex -.C2 ^i icircumflex -.C2 ^o ocircumflex -.C2 ^u ucircumflex -.C2 `A Agrave -.C2 `E Egrave -.C2 `I Igrave -.C2 `O Ograve -.C2 `U Ugrave -.C2 `a agrave -.C2 `e egrave -.C2 `i igrave -.C2 `o ograve -.C2 `u ugrave -.C2 ~A Atilde -.C2 ~N Ntilde -.C2 ~O Otilde -.C2 ~a atilde -.C2 ~n ntilde -.C2 ~o otilde -.C2 vS Scaron -.C2 vs scaron -.C2 vZ Zcaron -.C2 vz zcaron -.C2 ,C Ccedilla -.C2 ,c ccedilla -.C2 /L Lslash "Polish L with a slash" -.C2 /l lslash "Polish l with a slash" -.C2 /O Oslash "Scandinavic slashed O" -.C2 /o oslash "Scandinavic slashed o" -.C2 oA Aring -.C2 oa aring +.2s Bq quotedblbase u201E "low double comma quote" +.C2 bq quotesinglbase u201A "low single comma quote" +.C2 lq quotedblleft u201C +.C2 rq quotedblright u201D +.C2 oq quoteleft u2018 "single open quote" +.C2 cq quoteright u2019 "single closing quote" +.C2 aq quotesingle u0027 "apostrophe quote (ASCII 39)" +.C2 dq quotedbl u0022 "double quote (ASCII 34)" +.C2 Fo guillemotleft u00AB +.C2 Fc guillemotright u00BB +.C2 fo guilsinglleft u2039 +.2e fc guilsinglright u203A +. +.Pa +.I Punctuation +.P +.2s r! exclamdown u00A1 +.C2 r? questiondown u00BF +.C2 em emdash u2014 "+" +.C2 en endash u2013 +.2e hy hyphen u2010 "+" . +.Pa +.I Brackets .P -.I Accents -.C2 a" hungarumlaut "Hungarian umlaut"\"" -.C2 a- macron "macron or bar accent" -.C2 a. dotaccent "dot accent" -.C2 a^ circumflex "circumflex accent" -.C2 aa acute "acute accent" -.C2 ga grave "grave accent" -.C2 ab breve "breve accent" -.C2 ac cedilla "cedilla accent" -.C2 ad dieresis "umlaut or dieresis" -.C2 ah caron "h\('a\(vcek accent" -.C2 ao ring "ring or circle accent" -.C2 a~ tilde "tilde accent" -.C2 ho ogonek "hook or ogonek accent" -.C2 ha asciicircum "\s-2ASCII\s+2 circumflex, hat, caret" -.C2 ti asciitilde "\s-2ASCII\s0 tilde, large tilde" +The extensible bracket pieces are font-invariant glyphs. +. +In classical troff only one glyph was available to vertically extend +brackets, braces, and parentheses: `bv'. +. +We map it rather arbitrarily to u23AA. . .P -.I Quotes -.C2 Bq quotedblbase "low double comma quote" -.C2 bq quotesinglbase "low single comma quote" -.C2 lq quotedblleft -.C2 rq quotedblright -.C2 oq quoteleft "single open quote" -.C2 cq quoteright "single closing quote (ASCII 39)" -.C2 aq quotesingle "apostrophe quote" -.C2 dq quotedbl "double quote (ASCII 34)" -.C2 Fo guillemotleft -.C2 Fc guillemotright -.C2 fo guilsinglleft -.C2 fc guilsinglright +Note that not all devices contain extensible bracket pieces which can +be piled up with `\f(CW\eb\fP' due to the restrictions of the escape's +piling algorithm. +. +A general solution to build brackets out of pieces is the following +macro: . .P -.I Punctuation -.C2 r! exclamdown -.C2 r? questiondown -.C2 em emdash "em dash" -.C2 en endash "en dash" -.C2 hy hyphen +.nf +.RS +.ft C +\&.\e" Make a pile centered vertically 0.5em +\&.\e" above the baseline. +\&.\e" The first argument is placed at the top. +\&.\e" The pile is returned in string `pile' +\&.eo +\&.de pile-make +\&. nr pile-wd 0 +\&. nr pile-ht 0 +\&. ds pile-args +\&. +\&. nr pile-# \en[.$] +\&. while \en[pile-#] \e{\e +\&. nr pile-wd (\en[pile-wd] >? \ew'\e$[\en[pile-#]]') +\&. nr pile-ht +(\en[rst] - \en[rsb]) +\&. as pile-args \ev'\en[rsb]u'\e" +\&. as pile-args \eZ'\e$[\en[pile-#]]'\e" +\&. as pile-args \ev'-\en[rst]u'\e" +\&. nr pile-# -1 +\&. \e} +\&. +\&. ds pile \ev'(-0.5m + (\en[pile-ht]u / 2u))'\e" +\&. as pile \e*[pile-args]\e" +\&. as pile \ev'((\en[pile-ht]u / 2u) + 0.5m)'\e" +\&. as pile \eh'\en[pile-wd]u'\e" +\&.. +\&.ec +.ft +.RE +.fi . .P -.I Brackets -.C2 lB bracketleft -.C2 rB bracketright -.C2 lC braceleft -.C2 rC braceright -.C2 la angleleft "left angle bracket" -.C2 ra angleright "right angle bracket" +Another complication is the fact that some glyphs which represent bracket +pieces in original troff can be used for other mathematical symbols also, +for example `lf' and `rf' which provide the `floor' operator. +. +Other devices (most notably for DVI output) don't unify such glyphs. +. +For this reason, the four glyphs `lf', `rf', `lc', and `rc' are not +unified with similarly looking bracket pieces. +. +In +.BR groff , +only glyphs with long names are guaranteed to pile up correctly for all +devices (provided those glyphs exist). . .P +.CT "\fIOutput" "\f(CW\e[bracketrightex]" "" "bracketrightex" "decomposed" +.He +.2s lB bracketleft u005B +.C2 rB bracketright u005D +.C2 lC braceleft u007B +.C2 rC braceright u007D +.C2 la angleleft u27E8 "left angle bracket" +.C2 ra angleright u27E9 "right angle bracket" +. +.C2 bv braceex u23AA "vertical extension *** +" +.CN braceex braceex u23AA +. +.CN bracketlefttp bracketlefttp u23A1 +.CN bracketleftbt bracketleftbt u23A3 +.CN bracketleftex bracketleftex u23A2 +.CN bracketrighttp bracketrighttp u23A4 +.CN bracketrightbt bracketrightbt u23A6 +.CN bracketrightex bracketrightex u23A5 +. +.C2 lt bracelefttp u23A7 "+" +.CN bracelefttp bracelefttp u23A7 +.C2 lk braceleftmid u23A8 "+" +.CN braceleftmid braceleftmid u23A8 +.C2 lb braceleftbt u23A9 "+" +.CN braceleftbt braceleftbt u23A9 +.CN braceleftex braceleftex u23AA +.C2 rt bracerighttp u23AB "+" +.CN bracerighttp bracerighttp u23AB +.C2 rk bracerightmid u23AC "+" +.CN bracerightmid bracerightmid u23AC +.C2 rb bracerightbt u23AD "+" +.CN bracerightbt bracerightbt u23AD +.CN bracerightex bracerightex u23AA +. +.CN parenlefttp parenlefttp u239B +.CN parenleftbt parenleftbt u239D +.CN parenleftex parenleftex u239C +.CN parenrighttp parenrighttp u239E +.CN parenrightbt parenrightbt u23A0 +.Ne parenrightex parenrightex u239F +. +.Pa .I Arrows -.C2 <- arrowleft -.C2 -> arrowright -.C2 <> arrowboth "horizontal double-headed arrow" -.C2 da arrowdown -.C2 ua arrowup -.C2 va arrowupdn "vertical double-headed arrow" -.C2 lA arrowdblleft -.C2 rA arrowdblright -.C2 hA arrowdblboth "horizontal double-headed double arrow" -.C2 dA arrowdbldown -.C2 uA arrowdblup -.C2 vA \& "vertical double-headed double arrow" -.C2 an arrowhorizex "horizontal arrow extension" -. .P +.2s <- arrowleft u2190 "+" +.C2 -> arrowright u2192 "+" +.C2 <> arrowboth u2194 "(horizontal)" +.C2 da arrowdown u2193 "+" +.C2 ua arrowup u2191 "+" +.C2 va arrowupdn u2195 +.C2 lA arrowdblleft u21D0 +.C2 rA arrowdblright u21D2 +.C2 hA arrowdblboth u21D4 "(horizontal)" +.C2 dA arrowdbldown u21D3 +.C2 uA arrowdblup u21D1 +.C2 vA uni21D5 u21D5 "vertical double-headed double arrow" +.2e an arrowhorizex u23AF "horizontal arrow extension" +. +.Pa .I Lines -.C2 -h hbar -.C2 or bar -.C2 ba bar -.C2 br br "box rule with traditional troff metrics" -.C2 ru ru "baseline rule" -.C2 ul ul "underline with traditional troff metrics" -.C2 bv bv "bar vertical" -.C2 bb brokenbar -.C2 sl slash -.C2 rs backslash +.P +The font-invariant glyphs `br', `ul', and `rn' form corners; +they can be used to build boxes. +. +Note that both the PostScript and the Unicode-derived names of +these three glyphs are just rough approximations. . .P -.I Text markers -.C2 ci circle -.C2 bu bullet -.C2 dd daggerdbl "double dagger sign" -.C2 dg dagger -.C2 lz lozenge -.C2 sq square -.C2 ps paragraph -.C2 sc section -.C2 lh handleft -.C2 rh handright -.C2 at at -.C2 sh numbersign -.C2 CR carriagereturn "carriage return symbol" -.C2 OK a19 "check mark, tick" +`rn' also serves in classical troff as the horizontal extension of the +square root sign. . .P -.I Legalize -.C2 co copyright -.C2 rg registered -.C2 tm trademark -.C2 bs bell "AT&T Bell Labs logo (not used in groff)" +`ru' is a font-invariant glyph, namely a rule of length 0.5m. . .P -.I Currency symbols -.C2 Do dollar -.C2 ct cent -.C2 eu \& "official Euro symbol" -.C2 Eu Euro "font-specific Euro glyph variant" -.C2 Ye yen -.C2 Po sterling "British currency sign" -.C2 Cs currency "Scandinavian currency sign" -.C2 Fn florin "Dutch currency sign" +.CT "\fIOutput" "\f(CW\e[integral]" "" "propersuperset" "decomposed" +.He +.2s ba bar u007C +.C2 br SF110000 u2502 "box rule +" +.C2 ul underscore u005F "+" +.C2 rn overline u203E "use `\f(CW\e[radicalex]\fP' for continuation of square root +" +.C2 ru --- --- "baseline rule +" +.C2 bb brokenbar u00A6 +.C2 sl slash u002F "+" +.2e rs backslash u005C "reverse solidus" +. +.Pa +.I Text markers +.P +.2s ci circle u25CB "+" +.C2 bu bullet u2022 "+" +.C2 dd daggerdbl u2021 "double dagger sign +" +.C2 dg dagger u2020 "+" +.C2 lz lozenge u25CA +.C2 sq uni25A1 u25A1 "white square +" +.C2 ps paragraph u00B6 +.C2 sc section u00A7 "+" +.C2 lh uni261C u261C "hand pointing left +" +.C2 rh a14 u261E "hand pointing right +" +.C2 at at u0040 +.C2 sh numbersign u0023 +.C2 CR carriagereturn u21B5 +.2e OK a19 u2713 "check mark, tick" +. +.Pa +.I Legalize +.P +.2s co copyright u00A9 "+" +.C2 rg registered u00AE "+" +.C2 tm trademark u2122 +.2e bs --- --- "AT&T Bell Labs logo (not used in groff) +" . +.Pa +.I Currency symbols .P +.2s Do dollar u0024 +.C2 ct cent u00A2 "+" +.C2 eu --- u20AC "official Euro symbol" +.C2 Eu Euro u20AC "font-specific Euro glyph variant" +.C2 Ye yen u00A5 +.C2 Po sterling u00A3 "British currency sign" +.C2 Cs currency u00A4 "Scandinavian currency sign" +.2e Fn florin u0192 "Dutch currency sign" +. +.Pa .I Units -.C2 de degree -.C2 %0 perthousand "per thousand, per mille sign" -.C2 fm minute "footmark, prime" -.C2 sd second -.C2 mc mu "micro sign" -.C2 Of ordfeminine -.C2 Om ordmasculine -. .P +.2s de degree u00B0 "+" +.C2 %0 perthousand u2030 "per thousand, per mille sign" +.C2 fm minute u2032 "footmark, prime +" +.C2 sd second u2033 +.C2 mc mu u00B5 "micro sign" +.C2 Of ordfeminine u00AA +.2e Om ordmasculine u00BA +. +.Pa .I Logical Symbols -.C2 AN logicaland -.C2 OR logicalor -.C2 no logicalnot -.C2 te existential "there exists, existential quantifier" -.C2 fa universal "for all, universal quantifier" -.C2 st suchthat -.C2 3d therefore -.C2 tf therefore -. .P +.2s AN logicaland u2227 +.C2 OR logicalor u2228 +.C2 no logicalnot u00AC "+" +.CN tno logicalnot u00AC "text variant of `no'" +.C2 te existential u2203 "there exists, existential quantifier" +.C2 fa universal u2200 "for all, universal quantifier" +.C2 st suchthat u220B +.C2 3d therefore u2234 +.C2 tf therefore u2234 +. +.2e or bar u007C "bitwise OR operator (as used in C) +" +. +.Pa .I Mathematical Symbols -.C2 12 onehalf -.C2 14 onequarter -.C2 34 threequarters -.C2 S1 onesuperior -.C2 S2 twosuperior -.C2 S3 threesuperior -. -.C2 pl plusmath "plus sign in special font" -.C1 - minus "minus sign from current font" -.C2 -+ minusplus -.C2 +- plusminus -.CN t+- plusminus "text variant of `+-'" -.C2 pc periodcentered "multiplication dot" -.C2 md dotmath -.C2 mu multiply -.CN tmu multiply "text variant of `mu'" -.C2 c* circlemultiply "multiply sign in a circle" -.C2 c+ circleplus "plus sign in a circle" -.C2 di divide "division sign" -.CN tdi divide "text variant of `di'" -.C2 f/ fraction "bar for fractions" -.C2 ** asteriskmath -. -.C2 <= lessequal -.C2 >= greaterequal -.C2 << \& "much less" -.C2 >> \& "much greater" -.C2 != notequal -.C2 eq equalmath "equals sign in special font" -.C2 == equivalence -.C2 =~ congruent -.C2 ap similar -.C2 ~~ approxequal -.C2 ~= approxequal -.C2 pt proportional -. -.C2 es emptyset -.C2 mo element -.C2 nm notelement -.C2 nb notsubset -.C2 nc notpropersuperset -.C2 ne notequivalence -.C2 sb propersubset -.C2 sp propersuperset -.C2 ib reflexsubset -.C2 ip reflexsuperset -.C2 ca intersection "intersection, cap" -.C2 cu union "union, cup" -. -.C2 /_ angle -.C2 pp perpendicular -.C2 is integral -.CN sum sum -.CN product product -.C2 gr gradient -.C2 sr radical "square root" -.C2 rn \& overline "continuation of square root" -. -.C2 if infinity -.C2 Ah aleph -.C2 Im Ifraktur "Gothic I, imaginary" -.C2 Re Rfraktur "Gothic R, real" -.C2 wp weierstrass "Weierstrass p" -.C2 pd partialdiff "partial differentiation sign" -. .P +.2s 12 onehalf u00BD "+" +.C2 14 onequarter u00BC "+" +.C2 34 threequarters u00BE "+" +.C2 18 oneeighth u215B +.C2 38 threeeighths u215C +.C2 58 fiveeighths u215D +.C2 78 seveneighths u215E +.C2 S1 onesuperior u00B9 +.C2 S2 twosuperior u00B2 +.C2 S3 threesuperior u00B3 +. +.C2 pl plus u002B "plus sign in special font +" +.C2 mi minus u2212 "minus sign in special font +" +.C2 -+ uni2213 u2213 +.C2 +- plusminus u00B1 "+" +.CN t+- plusminus u00B1 "text variant of `+\-'" +.C2 pc periodcentered u00B7 +.C2 md dotmath u22C5 "multiplication dot" +.C2 mu multiply u00D7 "+" +.CN tmu multiply u00D7 "text variant of `mu'" +.C2 c* circlemultiply u2297 "multiply sign in a circle" +.C2 c+ circleplus u2295 "plus sign in a circle" +.C2 di divide u00F7 "division sign +" +.CN tdi divide u00F7 "text variant of `di'" +.C2 f/ fraction u2044 "bar for fractions" +.C2 ** asteriskmath u2217 "+" +. +.C2 <= lessequal u2264 "+" +.C2 >= greaterequal u2265 "+" +.C2 << uni226A u226A "much less" +.C2 >> uni226B u226B "much greater" +.C2 eq equal u003D "equals sign in special font +" +.C2 != notequal u003D_0338 "+" +.C2 == equivalence u2261 "+" +.C2 ne uni2262 u2261_0338 +.C2 =~ congruent u2245 "approx.\& equal" +.C2 |= uni2243 u2243 "asymptot.\& equal to +" +.C2 ap similar u223C "+" +.C2 ~~ approxequal u2248 "almost equal to" +.C2 ~= approxequal u2248 +.C2 pt proportional u221D "+" +. +.C2 es emptyset u2205 "+" +.C2 mo element u2208 "+" +.C2 nm notelement u2208_0338 +.C2 sb propersubset u2282 "+" +.C2 nb notsubset u2282_0338 +.C2 sp propersuperset u2283 "+" +.C2 nc uni2285 u2283_0338 "not superset" +.C2 ib reflexsubset u2286 "+" +.C2 ip reflexsuperset u2287 "+" +.C2 ca intersection u2229 "intersection, cap +" +.C2 cu union u222A "union, cup +" +. +.C2 /_ angle u2220 +.C2 pp perpendicular u22A5 +.C2 is integral u222B "+" +.CN integral integral u222B "***" +.CN sum summation u2211 "***" +.CN product product u220F "***" +.C2 gr gradient u2207 "+" +.C2 sr radical u221A "square root +" +.CN sqrt radical u221A "***" +.CN radicalex radicalex --- "continuation of square root" +.CN sqrtex radicalex --- "***" +. +.C2 lc uni2308 u2308 "left ceiling +" +.C2 rc uni2309 u2309 "right ceiling +" +.C2 lf uni230A u230A "left floor +" +.C2 rf uni230B u230B "right floor +" +. +.C2 if infinity u221E "+" +.C2 Ah aleph u2135 +.C2 Im Ifraktur u2111 "Gothic I, imaginary" +.C2 Re Rfraktur u211C "Gothic R, real" +.C2 wp weierstrass u2118 "Weierstrass p" +.C2 pd partialdiff u2202 "partial differentiation sign +" +.C2 -h uni210F u210F "Planck constant over two pi" +.2e hbar uni210F u210F +. +.Pa .I Greek characters -.C2 *A Alpha -.C2 *B Beta -.C2 *C Xi -.C2 *D Delta -.C2 *E Epsilon -.C2 *F Phi -.C2 *G Gamma -.C2 *H Theta -.C2 *I Iota -.C2 *K Kappa -.C2 *L Lambda -.C2 *M Mu -.C2 *N Nu -.C2 *O Omicron -.C2 *P Pi -.C2 *Q Psi -.C2 *R Rho -.C2 *S Sigma -.C2 *T Tau -.C2 *U Upsilon -.C2 *W Omega -.C2 *X Chi -.C2 *Y Eta -.C2 *Z Zeta -.C2 *a alpha -.C2 *b beta -.C2 *c xi -.C2 *d delta -.C2 *e epsilon -.C2 *f phi -.C2 +f phi1 "variant phi" -.C2 *g gamma -.C2 *h theta -.C2 +h theta1 "variant theta" -.C2 *i iota -.C2 *k kappa -.C2 *l lambda -.C2 *m mu -.C2 *n nu -.C2 *o omicron -.C2 *p pi -.C2 +p omega1 "variant pi, looking like omega" -.C2 *q psi -.C2 *r rho -.C2 *s sigma -.C2 *t tau -.C2 *u upsilon -.C2 *w omega -.C2 *x chi -.C2 *y eta -.C2 *z zeta -.C2 ts sigma1 "terminal sigma" +.P +These glyphs are intended for technical use, not for real Greek; normally, +the uppercase letters have upright shape, and the lowercase ones are +slanted. +. +There is a problem with the mapping of letter phi to Unicode. +. +Prior to Unicode version\ 3.0, the difference between U+03C6, GREEK +SMALL LETTER PHI, and U+03D5, GREEK PHI SYMBOL, was not clearly described; +only the glyph shapes in the Unicode book could be used as a reference. . +Starting with Unicode\ 3.0, the reference glyphs have been exchanged and +described verbally also: In mathematical context, U+03D5 is the stroked +variant and U+03C5 the curly glyph. +. +Unfortunately, most font vendors didn't update their fonts to +this (incompatible) change in Unicode. +. +At the time of this writing (February 2003), it is not clear yet whether +the Adobe Glyph Names `phi' and `phi1' also change its meaning if used for +mathematics, thus compatibility problems are likely to happen \(en being +conservative, groff currently assumes that `phi' in a PostScript symbol +font is the stroked version. .P +In groff, symbol `\f(CW\e[*f]\fP' always denotes the stroked version of +phi, and `\f(CW\e[+f]\fP' the curly variant. +.P +.2s *A Alpha u0391 "+" +.C2 *B Beta u0392 "+" +.C2 *G Gamma u0393 "+" +.C2 *D Delta u0394 "+" +.C2 *E Epsilon u0395 "+" +.C2 *Z Zeta u0396 "+" +.C2 *Y Eta u0397 "+" +.C2 *H Theta u0398 "+" +.C2 *I Iota u0399 "+" +.C2 *K Kappa u039A "+" +.C2 *L Lambda u039B "+" +.C2 *M Mu u039C "+" +.C2 *N Nu u039D "+" +.C2 *C Xi u039E "+" +.C2 *O Omicron u039F "+" +.C2 *P Pi u03A0 "+" +.C2 *R Rho u03A1 "+" +.C2 *S Sigma u03A3 "+" +.C2 *T Tau u03A4 "+" +.C2 *U Upsilon u03A5 "+" +.C2 *F Phi u03A6 "+" +.C2 *X Chi u03A7 "+" +.C2 *Q Psi u03A8 "+" +.C2 *W Omega u03A9 "+" +.C2 *a alpha u03B1 "+" +.C2 *b beta u03B2 "+" +.C2 *g gamma u03B3 "+" +.C2 *d delta u03B4 "+" +.C2 *e epsilon u03B5 "+" +.C2 *z zeta u03B6 "+" +.C2 *y eta u03B7 "+" +.C2 *h theta u03B8 "+" +.C2 *i iota u03B9 "+" +.C2 *k kappa u03BA "+" +.C2 *l lambda u03BB "+" +.C2 *m mu u03BC "+" +.C2 *n nu u03BD "+" +.C2 *c xi u03BE "+" +.C2 *o omicron u03BF "+" +.C2 *p pi u03C0 "+" +.C2 *r rho u03C1 "+" +.C2 ts sigma1 u03C2 "terminal sigma +" +.C2 *s sigma u03C3 "+" +.C2 *t tau u03C4 "+" +.C2 *u upsilon u03C5 "+" +.C2 *f phi u03D5 "(stroked glyph)+" +.C2 *x chi u03C7 "+" +.C2 *q psi u03C8 "+" +.C2 *w omega u03C9 "+" +.C2 +h theta1 u03D1 "variant theta" +.C2 +f phi1 u03C6 "variant phi (curly shape)" +.C2 +p omega1 u03D6 "variant pi, looking like omega" +.2e +e uni03F5 u03F5 "variant epsilon" +. +.Pa .I Card symbols -.C2 CL club "club suit" -.C2 SP spade "spade suit" -.C2 HE heart "heart suit" -.C2 DI diamond "diamond suit" -.ch Fo +.P +.2s CL club u2663 "black club suit" +.C2 SP spade u2660 "black spade suit" +.C2 HE heart u2665 "black heart suit" +.C2 u2662 uni2662 u2662 "white heart suit" +.C2 DI diamond u2666 "black diamond suit" +.2e u2661 uni2661 u2661 "white diamond suit" . . .\" -------------------------------------------------------------------- .SH "AUTHOR" .\" -------------------------------------------------------------------- . -Copyright \(co 1989-2000, 2001, 2002 Free Software Foundation, Inc. +Copyright \(co 1989-2000, 2001, 2002, 2003 Free Software Foundation, Inc. . .P This document is distributed under the terms of the FDL (GNU Free diff --git a/contrib/groff/man/groff_diff.man b/contrib/groff/man/groff_diff.man index c6c1c23..eb00b44 100644 --- a/contrib/groff/man/groff_diff.man +++ b/contrib/groff/man/groff_diff.man @@ -3,12 +3,12 @@ .ig groff_diff.man -Last update : 05 July 2002 +Last update : 1 Mar 2003 This file is part of groff, the GNU roff type-setting system. It is the source of the man-page groff_diff(7). -Copyright (C) 1989, 2001, 2002 Free Software Foundation, Inc. +Copyright (C) 1989, 2001, 2002, 2003 Free Software Foundation, Inc. written by James Clark modified by Werner Lemberg @@ -143,17 +143,6 @@ and the modern .I groff documentation. . -.P -At the moment, this document is the place of the most actual -documentation within the -.I groff -system. -. -This might change in the future. -. -Actually, all novelties of the groff language are first described here -and will pervade into the other documents only at a later stage. -. . .\" -------------------------------------------------------------------- .SH "GROFF LANGUAGE" @@ -171,20 +160,33 @@ are described in detail. .\" -------------------------------------------------------------------- . The names of number registers, fonts, strings/\:macros/\:diversions, -special characters, and colors can be of any length. +special characters (glyphs), and colors can be of any length. . In escape sequences, additionally to the classical .BI ( xx -construction for a two character name, you can use +construction for a two-character name, you can use .BI [ xxx ] -for a name of arbitrary length, for example in +for a name of arbitrary length. . -.TP \w'\[rs]f[xxx]'u+3n +.TP .BI \[rs][ xxx ] -Print the special character called +Print the special character (glyph) called .IR xxx . . .TP +.BI \[rs][ "comp1 comp2 .\|.\|." ] +Print composite glyph consisting of multiple components. +. +Example: `\[rs][A\~ho]' is capital letter A with ogonek which finally maps +to glyph name `u0041_0328'. +. +See the +.I groff info file +for details how a glyph name for a composite glyph is constructed, and +.BR groff_char (@MAN7EXT@) +for list of glyph name components used composite glyph names. +. +.TP .BI \[rs]f[ xxx ] Set font .IR xxx . @@ -387,7 +389,7 @@ is empty. . .TP .BI \[rs]C' xxx ' -Typeset character named +Typeset glyph named .IR xxx . Normally it is more convenient to use .BI \[rs][ xxx ]\f[R]. @@ -463,15 +465,15 @@ switches back to the previous color. . .TP .BI \[rs]N' n ' -Typeset the character with code +Typeset the glyph with index .I n in the current font. .I n can be any integer. . -Most devices only have characters with codes between 0 and 255. +Most devices only have glyphs with indices between 0 and 255. . -If the current font does not contain a character with that code, +If the current font does not contain a glyph with that code, special fonts will .I not be searched. @@ -490,12 +492,12 @@ request, for example .RE . .IP -The code of each character is given in the fourth column in the font +The index of each glyph is given in the fourth column in the font description file after the .B charset command. . -It is possible to include unnamed characters in the font description +It is possible to include unnamed glyphs in the font description file by using a name of .BR \-\-\- ; the @@ -756,9 +758,9 @@ will print\~\c . .TP .B \[rs]/ -This increases the width of the preceding character so that the -spacing between that character and the following character will be -correct if the following character is a roman character. +This increases the width of the preceding glyph so that the +spacing between that glyph and the following glyph will be +correct if the following glyph is a roman glyph. . .if t \{\ . nop For example, if an italic f is immediately followed by a roman @@ -773,14 +775,14 @@ correct if the following character is a roman character. . nop and avoids this problem. .\} It is a good idea to use this escape sequence whenever an italic -character is immediately followed by a roman character without any +glyph is immediately followed by a roman glyph without any intervening space. . .TP .B \[rs], -This modifies the spacing of the following character so that the -spacing between that character and the preceding character will -correct if the preceding character is a roman character. +This modifies the spacing of the following glyph so that the +spacing between that glyph and the preceding glyph will +correct if the preceding glyph is a roman glyph. . .if t \{\ . nop For example, inserting @@ -791,7 +793,7 @@ correct if the preceding character is a roman character. . el \f[R](\^\f[I]f\f[R]. .\} It is a good idea to use this escape sequence whenever a roman -character is immediately followed by an italic character without any +glyph is immediately followed by an italic glyph without any intervening space. . .TP @@ -1037,19 +1039,19 @@ hyphenation codes. . .IP 4 Lines can be broken after the character (initially characters -.B \-\[rs](hy\[rs](em +.B \-\[rs][hy]\[rs][em] have this property); a line will not be broken at a character with this property unless the characters on each side both have non-zero hyphenation codes. . .IP 8 The character overlaps horizontally (initially characters -.B \[rs](ul\[rs](rn\[rs](ru +.B \[rs][ul]\[rs][rn]\[rs][ru]\[rs][radicalex]\[rs][sqrtex] have this property). . .IP 16 The character overlaps vertically (initially character -.B \[rs](br +.B \[rs][br] has this property). . .IP 32 @@ -1064,11 +1066,11 @@ have this property). . .TP .BI .char\ c\ string -Define character +Define glyph .I c to be .IR string . -Every time character +Every time glyph .I c needs to be printed, .I string @@ -1083,12 +1085,12 @@ while is being processed. . Any emboldening, constant spacing or track kerning will be applied to -this object rather than to individual characters in +this object rather than to individual glyphs in .IR string . . .IP -A character defined by this request can be used just like a normal -character provided by the output device. +A glyph defined by this request can be used just like a normal +glyph provided by the output device. . In particular other characters can be translated to it with the .B tr @@ -1104,18 +1106,18 @@ correctly, if the request is used to give the character a hyphenation code. . .IP -There is a special anti-recursion feature: use of character within the -character's definition will be handled like normal characters not +There is a special anti-recursion feature: Use of glyph within the +glyph's definition will be handled like normal glyphs not defined with .BR char . .IP -A character definition can be removed with the +A glyph definition can be removed with the .B rchar request. . .TP .BI .chop\ xx -Chop the last character off macro, string, or diversion +Chop the last element off macro, string, or diversion .IR xx . This is useful for removing the newline from the end of diversions that are to be interpolated as strings. @@ -1134,6 +1136,16 @@ See the request. . .TP +.BI .composite\ glyph1\ glyph2 +Map glyph name +.I glyph1 +to glyph name +.I glyph2 +if it is used in +.BI \[rs][ ... ] +with more than one component. +. +.TP .B .continue Finish the current iteration of a while loop. . @@ -1350,29 +1362,49 @@ request for more information on font families. . .TP .BI .fchar\ c\ string -Define fallback character +Define fallback glyph .I c to be .IR string . +. The syntax of this request is the same as the .B char -request; the only difference is that a character defined with +request; the only difference is that a glyph defined with .B char hides the glyph with the same name in the current font, whereas a -character defined with +glyph defined with .B fchar is checked only if the particular glyph isn't found in the current font. . This test happens before checking special fonts. . .TP +.BI .fschar\ f\ c\ string +Define fallback glyph +.I c +for font +.I f +to be +.IR string . +. +The syntax of this request is the same as the +.B char +request (with an additional argument to specify the font); a glyph +defined with +.B fschar +is searched after the list of fonts declared with the +.B fspecial +request but before the list of fonts declared with +.BR special . +. +.TP .BI .fspecial\ f\ s1\ s2\|.\|.\|.\& When the current font is .IR f , fonts .IR s1 , .IR s2 ,\|.\|.\|.\& -will be special, that is, they will searched for characters not in +will be special, that is, they will searched for glyphs not in the current font. . Any fonts specified in the @@ -1381,6 +1413,8 @@ request will be searched after fonts specified in the .B fspecial request. . +Without argument, reset the list of global special fonts to be empty. +. .TP .BI .ftr\ f\ g Translate font @@ -1845,7 +1879,7 @@ with a positive value which are applied after the line is output. . .TP .BI .rchar\ c1\ c2\|.\|.\|.\& -Remove the definitions of characters +Remove the definitions of glyphs .IR c1 , .IR c2 ,\|.\|.\|. This undoes the effect of a @@ -1859,6 +1893,15 @@ Within a macro, return immediately. No effect otherwise. . .TP +.BI .rfschar\ c1\ c2\|.\|.\|.\& +Remove the font-specific definitions of glyphs +.IR c1 , +.IR c2 ,\|.\|.\|. +This undoes the effect of a +.B fschar +request. +. +.TP .B .rj .TQ .BI .rj \~n @@ -1887,6 +1930,21 @@ to .IR yy . . .TP +.BI .schar\ c\ string +Define global fallback glyph +.I c +to be +.IR string . +. +The syntax of this request is the same as the +.B char +request; a glyph defined with +.B schar +is searched after the list of fonts declared with the +.B special +request but before the mounted special fonts. +. +.TP .BI .shc\ c Set the soft hyphen character to .IR c . @@ -1894,11 +1952,11 @@ If .I c is omitted, the soft hyphen character will be set to the default .BR \[rs](hy . -The soft hyphen character is the character which will be inserted when +The soft hyphen character is the glyph which will be inserted when a word is hyphenated at a line break. . If the soft hyphen character does not exist in the font of the -character immediately preceding a potential break point, then the line +glyph immediately preceding a potential break point, then the line will not be broken at that point. . Neither definitions (specified with the @@ -1954,9 +2012,11 @@ than a single line. Fonts .IR s1 , .IR s2 , -are special and will be searched for characters not in the current +are special and will be searched for glyphs not in the current font. . +Without arguments, reset the list of special fonts to be empty. +. .TP .BI .spreadwarn\ limit Make @@ -2064,7 +2124,7 @@ Enable track kerning for font .IR f . When the current font is .I f -the width of every character will be increased by an amount between +the width of every glyph will be increased by an amount between .I n1 and .IR n2 ; @@ -2276,7 +2336,7 @@ For example, .B .warn\~0 will disable all warnings, and .B .warn\~1 -will disable all warnings except that about missing characters. +will disable all warnings except that about missing glyphs. . If .I n @@ -2359,6 +2419,19 @@ is read in copy mode. . . .\" -------------------------------------------------------------------- +.SS "Extended escape sequences" +.\" -------------------------------------------------------------------- +. +.TP +.BI \[rs]D' .\|.\|. ' +All drawing commands of groff's intermediate output are accepted. +. +See subsection +.B "Drawing Commands" +below for more information. +. +. +.\" -------------------------------------------------------------------- .SS "Extended requests" .\" -------------------------------------------------------------------- . @@ -2463,9 +2536,9 @@ The following read-only registers are available: . .TP .B \[rs]n[.cdp] -The depth of the last character added to the current environment. +The depth of the last glyph added to the current environment. . -It is positive if the character extends below the baseline. +It is positive if the glyph extends below the baseline. . .TP .B \[rs]n[.ce] @@ -2475,9 +2548,9 @@ request. . .TP .B \[rs]n[.cht] -The height of the last character added to the current environment. +The height of the last glyph added to the current environment. . -It is positive if the character extends above the baseline. +It is positive if the glyph extends above the baseline. . .TP .B \[rs]n[.color] @@ -2485,12 +2558,12 @@ It is positive if the character extends above the baseline. . .TP .B \[rs]n[.csk] -The skew of the last character added to the current environment. +The skew of the last glyph added to the current environment. . The .I skew -of a character is how far to the right of the center of a character -the center of an accent over that character should be placed. +of a glyph is how far to the right of the center of a glyph +the center of an accent over that glyph should be placed. . .TP .B \[rs]n[.ev] @@ -2526,6 +2599,11 @@ Macros should use this to determine whether they are running under GNU troff. . .TP +.B \[rs]n[.height] +The current height of the font as set with +.BR \[rs]H . +. +.TP .B \[rs]n[.hla] The current hyphenation language as set by the .B hla @@ -2611,6 +2689,12 @@ register. 1\~if no-space mode is active, 0\~otherwise. . .TP +.B \[rs]n[.pe] +1\~during a page ejection caused by the +.B bp +request, 0\~otherwise. +. +.TP .B \[rs]n[.pn] The number of the next page, either the value set by a .B pn @@ -2637,6 +2721,11 @@ The number of lines to be right-justified as set by the request. . .TP +.B \[rs]n[.slant] +The slant of the current font as set with +.BR \[rs]S . +. +.TP .B \[rs]n[.sr] The last requested pointsize in points as a decimal fraction. . @@ -2733,19 +2822,19 @@ Like the .B st and .B sb -registers, but take account of the heights and depths of characters. +registers, but take account of the heights and depths of glyphs. . .TP .B \[rs]n[ssc] The amount of horizontal space (possibly negative) that should be -added to the last character before a subscript. +added to the last glyph before a subscript. . .TP .B \[rs]n[skw] -How far to right of the center of the last character in the +How far to right of the center of the last glyph in the .B \[rs]w argument, the center of an accent from a roman font should be placed -over that character. +over that glyph. . .P Other available read/write number registers are: @@ -2860,9 +2949,9 @@ is . .P If the font description file contains pairwise kerning information, -characters from that font will be kerned. +glyphs from that font will be kerned. . -Kerning between two characters can be inhibited by placing a +Kerning between two glyphs can be inhibited by placing a .B \[rs]& between them. . @@ -2932,13 +3021,13 @@ True if there is a color named . .TP .BI .if\ c ch -True if there is a character +True if there is a glyph .IR ch available; .I ch is either an .SM ASCII -character or a special character +character or a glyph (special character) .BI \[rs]( xx or .BI \[rs][ xxx ]\f[R]; @@ -3014,7 +3103,7 @@ command is also in scaled points. . .TP .BI N n -Print character with index\~\c +Print glyph with index\~\c .I n (a non-negative integer) of the current font. . @@ -3027,12 +3116,13 @@ commands. .TP .BI t xxx .I xxx -is any sequence of characters terminated by a space or a newline; the -first character should be printed at the current position, the current -horizontal position should be increased by the width of the first -character, and so on for each character. +is any sequence of characters terminated by a space or a newline (to +be more precise, it is a sequence of glyphs which are accessed with +the corresponding characters); the first character should be printed at +the current position, the current horizontal position should be increased +by the width of the first character, and so on for each character. . -The width of the character is that given in the font file, +The width of the glyph is that given in the font file, appropriately scaled for the current point size, and rounded so that it is a multiple of the horizontal resolution. . @@ -3052,15 +3142,15 @@ Note that single characters can have the eighth bit set, as can the names of fonts and special characters. . .P -The names of characters and fonts can be of arbitrary length; drivers +The names of glyphs and fonts can be of arbitrary length; drivers should not assume that they will be only two characters long. . .P -When a character is to be printed, that character will always be +When a glyph is to be printed, that glyph will always be in the current font. . Unlike device-independent troff, it is not necessary for drivers to -search special fonts to find a character. +search special fonts to find a glyph. . .P For color support, some new commands have been added: @@ -3139,6 +3229,13 @@ text. Normally this will be black, but some drivers may provide a way of changing this. . +.IP +The corresponding +.BI \[rs]D'f .\|.\|. ' +command shouldn't be used since its argument is always rounded to an +integer multiple of the horizontal resolution which can lead to +surprising results. +. .TP .Text \f[B]DC \f[I]d\f[R]\*[ic]\[rs]n Draw a solid circle with a diameter of @@ -3230,7 +3327,9 @@ exception of .BR De . For the sake of compatibility GNU troff also follows this rule, even though it produces an ugly result in the case of the -.BR Dt , +.B Dt +and +.BR Df , and, to a lesser extent, .B DE commands. @@ -3265,11 +3364,8 @@ Set the color components of the filling color similar to the commands above. . .P -Note that -.B Df -is now mapped onto -.BR DFg . -The current position isn't changed by those colour commands. +The current position isn't changed by those colour commands (contrary to +.BR Df ). . . .\" -------------------------------------------------------------------- @@ -3445,10 +3541,10 @@ pointsize will be set to 10\~scaled points. In .I groff mode, there is a fundamental difference between unformatted input -characters, and formatted output characters. +characters, and formatted output characters (glyphs). . -Everything that affects how an output character will be output is -stored with the character; once an output character has been +Everything that affects how a glyph will be output is +stored with the glyph; once a glyph has been constructed it is unaffected by any subsequent requests that are executed, including the .request bd , @@ -3460,16 +3556,20 @@ or requests. . .P -Normally output characters are constructed from input characters at -the moment immediately before the character is added to the current +Normally glyphs are constructed from input characters at +the moment immediately before the glyph is added to the current output line. . Macros, diversions and strings are all, in fact, the same type of -object; they contain lists of input characters and output characters +object; they contain lists of input characters and glyphs in any combination. . .P -An output character does not behave like an input character for the +Special characters can be both; before being added to the output, they +act as input entities, afterwards they denote glyphs. +. +.P +A glyph does not behave like an input character for the purposes of macro processing; it does not inherit any of the special properties that the input character from which it was constructed might have had. @@ -3496,7 +3596,7 @@ this will be printed as .esc \[rs] . So each pair of input backslashes .squoted \[rs]\[rs] -is turned into a single output backslash +is turned into a single output backslash glyph .squoted \[rs] and the resulting output backslashes are not interpreted as escape characters when they are reread. @@ -3562,7 +3662,7 @@ classical "device-independent" troff did. .SH AUTHORS .\" -------------------------------------------------------------------- . -Copyright (C) 1989, 2001, 2002 Free Software Foundation, Inc. +Copyright (C) 1989, 2001, 2002, 2003 Free Software Foundation, Inc. . .P This document is distributed under the terms of the FDL (GNU Free diff --git a/contrib/groff/man/groff_font.man b/contrib/groff/man/groff_font.man index 07fe520..462baeb 100644 --- a/contrib/groff/man/groff_font.man +++ b/contrib/groff/man/groff_font.man @@ -1,5 +1,5 @@ .ig -Copyright (C) 1989-1995, 2001, 2002 Free Software Foundation, Inc. +Copyright (C) 1989-1995, 2001, 2002, 2003 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -105,20 +105,13 @@ The physical vertical dimension of the output medium in machine units. . This isn't used by .B troff -itself; currently, only -.B grops -uses it. +itself but by output devices. . -.TP -.BI paperwidth\ n -The physical horizontal dimension of the output medium in machine units. -. -This isn't used by -.BR troff . +Deprecated. . -Currently, only the -.B grolbp -output device uses it. +Use +.B papersize +instead. . .TP .BI papersize\ string @@ -167,6 +160,19 @@ More than one argument can be specified; .B groff scans from left to right and uses the first valid paper specification. . +.TP +.BI paperwidth\ n +The physical horizontal dimension of the output medium in machine units. +. +Deprecated. +. +Use +.B papersize +instead. +. +This isn't used by +.BR troff +itself but by output devices. . .TP .B pass_filenames @@ -286,10 +292,10 @@ and .B sizes lines are compulsory. . -Other commands are ignored by +Not all commands in the DESC file are used by .B troff -but may be used by postprocessors to store arbitrary information -about the device in the DESC file. +itself; some of the keywords (or even additional ones) are used by +postprocessors to store arbitrary information about the device. . .LP Here a list of obsolete keywords which are recognized by diff --git a/contrib/groff/man/groff_out.man b/contrib/groff/man/groff_out.man index 5fe7dcc..b45e82f 100644 --- a/contrib/groff/man/groff_out.man +++ b/contrib/groff/man/groff_out.man @@ -3,11 +3,11 @@ .ig groff_out.5 -Last update: 12 Sep 2002 +Last update: 13 Apr 2003 This file is part of groff, the GNU roff type-setting system. -Copyright (C) 1989, 2001, 2002 Free Software Foundation, Inc. +Copyright (C) 1989, 2001, 2002, 2003 Free Software Foundation, Inc. rewritten from scrach 2001 by Bernd Warken Permission is granted to copy, distribute and/or modify this document @@ -719,10 +719,19 @@ red, green, and blue. .command N n Print character with index\~\c .argument n -(a non-negative integer) of the current font. +(an integer, normally non-negative) of the current font. . The print position is not changed. . +If +.B \-T\~html +is used, negative values are emitted also to indicate an unbreakable space +with given width. +. +For example, +.B N\~-193 +represents an unbreakable space which has a width of 193u. +. This command is a groff extension. . . @@ -1290,7 +1299,7 @@ This is the second command of the prologue. .xsub Slant Set slant to\~\c .argument n -(an integer in basic units\~\c +degrees (an integer in basic units\~\c .unit u ). . . @@ -1726,7 +1735,7 @@ Device description file for device .IR name . . .TP -.IB \[la]groff_source_dir\[ra] /src/libs/libdriver/input.cc +.IB \[la]groff_source_dir\[ra] /src/libs/libdriver/input.cpp Defines the parser and postprocessor for the intermediate output. . It is located relative to the top directory of the @@ -1855,7 +1864,7 @@ see .SH "AUTHORS" .\" -------------------------------------------------------------------- . -Copyright (C) 1989, 2001, 2002 Free Software Foundation, Inc. +Copyright (C) 1989, 2001, 2002, 2003 Free Software Foundation, Inc. .P This document is distributed under the terms of the FDL (GNU Free Documentation License) version 1.1 or later. diff --git a/contrib/groff/man/groff_tmac.man b/contrib/groff/man/groff_tmac.man index c0d3421..c1d8006 100644 --- a/contrib/groff/man/groff_tmac.man +++ b/contrib/groff/man/groff_tmac.man @@ -1,4 +1,3 @@ -. .TH GROFF_TMAC @MAN5EXT@ "@MDATE@" "Groff Version @VERSION@" .SH NAME groff_tmac \- macro files in the roff typesetting system @@ -15,11 +14,11 @@ groff_tmac.5 File position: /man/groff_tmac.man -Last update: 21 Aug 2002 +Last update: 13 Mar 2003 This file is part of groff, the GNU roff type-setting system. -Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. +Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. written by Bernd Warken and Werner Lemberg @@ -314,6 +313,21 @@ directories. provides all classical macro packages, some more full packages, and some secondary packages for special purposes. . +Note that it is not possible to use multiple primary macro packages at the +same time; saying e.g.\& +. +.IP +.Shell_cmd "groff \-m man \-m ms foo" +. +.P +or +. +.IP +.Shell_cmd "groff \-m man foo \-m ms bar" +. +.P +will fail. +. . .\" -------------------------------------------------------------------- .SS "Man\~Pages" @@ -394,6 +408,108 @@ macro package or to plain groff. . . .TP +.B papersize +This macro file is already loaded at start-up by +.B @g@troff +so it isn't necessary to call it explicitly. +. +It provides an interface to set the paper size on the command line with +the option \f[B]\%\-dpaper=\f[]\f[I]size\f[]. +. +Possible values for +.I size +are the same as the predefined +.B papersize +values in the DESC file (only lowercase; see +.BR groff_font (@MAN5EXT@) +for more) except +.BR a7 - d7 . +. +An appended +.B l +(ell) character denotes landscape orientation. +. +Examples: +.BR a4 , +.BR c3l , +.BR letterl . +. +.IP +Most output drivers need additional command line switches +.B \-p +and +.B \-l +to override the default paper length and orientation as set in the driver +specific DESC file. +. +For example, use the following for PS output on A4 paper in landscape +orientation: +. +.IP +.Shell_cmd "groff \-Tps \-dpaper=a4l \-P\-pa4 \-P\-l \-ms foo.ms > foo.ps" +. +. +.TP +.B pspic +A single macro is provided in this file, +.BR PSPIC , +to include a PostScript graphic in a document. +. +It makes only sense for output devices which support inclusion of PS +images: +.BR \-Tps , +.BR \-Tdvi , +and +.BR \-Thtml ; +the file is then loaded automatically. +. +Syntax: +.RS +.IP +\&\fB.PSPIC\fP [\fB\-L\fP|\fB-R\fP|\fB\-I\fP \fIn\fP]\ \fI\|file\fP [\fIwidth\fP [\fIheight\fP]] +.RE +. +.IP +.I file +is the name of the file containing the illustration; +.I width +and +.I height +give the desired width and height of the graphic. +. +The +.I width +and +.I height +arguments may have scaling indicators attached; +the default scaling indicator is\~\c +.BR i . +. +This macro will scale the graphic uniformly +in the x and y\~directions so that it is no more than +.I width +wide +and +.I height +high. +. +By default, the graphic will be horizontally centered. +. +The +.BI \-L +and +.BI \-R +options cause the graphic to be left-aligned and right-aligned, +respectively. +. +The +.B \-I +option causes the graphic to be indented by\~\c +.I n +(default scaling indicator is\~\c +.BR m ). +. +.TP .B tty-char Overrides the definition of standard troff characters and some groff characters for tty devices. @@ -625,7 +741,7 @@ is used or .P In both cases, the formatter is called with .IP -.Shell_cmd "troff\~\-s\~" docu.roff +.Shell_cmd "groff\~\-s\~" docu.roff . . .P @@ -796,12 +912,16 @@ say. . .P When calling this macro by +. .P .Example . Text .print_args arg1 arg2 ./Example +. .P the following text is printed to the terminal: +. +.P .Example . Text \f[CI]print_args\f[] was called with the following 2 arguments: arg1 arg2 @@ -997,7 +1117,7 @@ All macro names must be named to fully use the tmac mechanism. . .BI tmac. name -as with classical packages is possible as well, but deprecated. +as with classical packages is possible as well, but deprecated. . . .P @@ -1060,7 +1180,7 @@ See the previous section for a detailed description. .SH AUTHOR .\" -------------------------------------------------------------------- . -Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. +Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. . .P This document is distributed under the terms of the FDL (GNU Free diff --git a/contrib/groff/man/roff.man b/contrib/groff/man/roff.man index 5a9c5b5..621b362 100644 --- a/contrib/groff/man/roff.man +++ b/contrib/groff/man/roff.man @@ -1,11 +1,11 @@ .ig roff.man -Last update: 22 Apr 2002 +Last update: 3 Apr 2003 This file is part of groff, the GNU roff type-setting system. -Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. +Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. written by Bernd Warken maintained by Werner Lemberg @@ -269,7 +269,7 @@ operating system .RI ( "Compatible Time Sharing System" ) as early as 1961. . -When CTTS was further developed into the operating system +When CTSS was further developed into the operating system .URL http://\:www.multicians.org "Multics" , the famous predecessor of Unix from 1963, .I runoff @@ -1105,9 +1105,6 @@ troff.org .URL http://\:www.troff.org "The historical troff site" provides an overview and pointers to all historical aspects of roff. . -This web site is under construction; once, it will be the major source -for roff history. -. .TP Multics .URL http://\:www.multicians.org "The Multics site" -- cgit v1.1