* src/devices/grohtml/post-html.cpp (assert_state::~assert_state):
[s-roff.git] / doc / webpage.ms
blob832d7451b5044d09bc824fd9a073d7d670f93b85
1 .\" This file gives a small example how a web page could look like if created
2 .\" with groff.
3 .\"
4 .\"
5 .\" To make it work with other output devices also, we include www.tmac
6 .\" directly.
7 .\"
8 .nr PS 10
9 .nr VS 12
10 .if '\*[.T]'html' .nr LL 10i
11 .if r ps4html .nr LL 10i
13 .HEAD "<link rel=""stylesheet"" type=""text/css"" href=""groff.css"" >"
14 .\" .HEAD "<link rel=""icon"" type=""image/png"" href=""http://www.gnu.org/graphics/gnu-mini.png"" >"
16 .mso www.tmac
18 .de blm-macro
19 .  nr tmp \\n[.i]
20 .  LP
21 .  in \\n[tmp]u
23 .blm blm-macro
25 .HX 0
27 .defcolor mydarkred rgb 0.65f 0.1f 0.2f
28 .defcolor mydarkgreen rgb 0.1f 0.5f 0.2f
29 .defcolor mydarkblue rgb 0.1f 0.2f 0.6f
31 .ds GNU \m[mydarkred]G\m[]\m[mydarkgreen]N\m[]\m[mydarkblue]U\m[]
33 .NHR
34 .HTL
36 Home of Groff (GNU Troff).
39 .HTML-IMAGE-LEFT
40 .PSPIC -L gnu.eps 2i 2i
41 .ie r ps4html \
42 .  nop \v'-0.66i'\h'2.0i'\s[100]\*[GNU] Troff\s0
43 .el \
44 .  nop \v'-0.66i'\h'2.0i'\s[60]\*[GNU] Troff\s0
45 .HTML-IMAGE-END
47 .HR
48 .HnS 1
49 GNU Troff (\c
50 .URL http://\:groff.ffii.org/ Groff )
51 \[em] a
52 .URL http://\:www.gnu.org/ GNU
53 project.
54 .HnE
55 .HR
56 .LK
58 .LP
59 .DC T HE mydarkred
60 groff (GNU Troff) software
61 is a typesetting package which reads plain text mixed with
62 formatting commands and produces formatted output.
63 Groff now supports HTML.
66 .SH
67 Download
69 The source code of the currently released versions of groff is
70 available at the 
71 .URL "http://\:groff.ffii.org/\:groff/" "FFII host (Germany)" ,
72 .URL "ftp://\:ftp.gnu.org/\:gnu/\:groff/" "GNU host (USA)" ,
73 and its mirrors.
75 The USA site also contains older, obsolete versions.
77 The most actual pre-release, development version is available from a
78 CVS repository, see below.
80 Development snapshots (produced twice a day from the CVS repository)
81 can be downloaded from
82 .URL "http://\:groff.ffii.org/\:groff/\:devel" here .
84 For a special version of groff on the Microsoft operating systems, see
85 .URL "http://\:gnuwin32.sf.net/\:packages/\:groffl.htm" "Groff for Windows" .
87 GNU troff is released under the
88 .URL http://\:www.gnu.org/\:copyleft/\:gpl.html "GNU Copyright License" .
90 User issues lead:
91 .MTO Ted.Harding@\:nessie.mcc.ac.uk "Ted Harding" .
92 .br
93 Technical issues lead:
94 .MTO wl@\:gnu.org "Werner Lemberg" .
97 .SH
98 README
100 This is the GNU groff document formatting system.
101 The version number is given in the file VERSION.
103 Included in this release are implementations of troff, pic, eqn, tbl,
104 grn, refer, \-man, \-mdoc, and \-ms macros, and drivers for PostScript,
105 TeX dvi format, HP LaserJet\~4 printers, Canon CAPSL printers, HTML format
106 (beta status), and typewriter-like devices.
107 Also included is a modified version of the Berkeley \-me macros, an enhanced
108 version of the X11 xditview previewer, and an implementation of the \-mm
109 macros contributed by
110 .MTO jh@\:axis.se "J\[:o]rgen H\[:a]gg" .
112 See the file INSTALL for installation instructions.
113 You will require a C++ compiler.
115 The file NEWS describes recent user-visible changes to groff.
117 Groff is free software.
118 See the file COPYING for copying permission.
120 The file PROBLEMS describes various problems that have been encountered in
121 compiling, installing, and running groff.
123 The most recent released version of groff is always available by anonymous
124 ftp from ftp.gnu.org in the directory pub/\:gnu/\:groff.
127 .URL "http://\:savannah.gnu.org/\:cvs/\:?group=groff" "CVS repository"
128 is available, containing the current development version of groff.
129 You can access it with the commands
131 .in 2m
133 .ft C
134 export CVSROOT=:ext:anoncvs@savannah.gnu.org:/cvsroot/groff
135 export CVS_RSH=ssh
136 cvs -z9 co groff
137 .ft P
141 Note that you need an SSH client for security reasons.    
143 An update of a checked out repository should be done with
145 .in 2m
146 .ft C
147 CVS_RSH=ssh cvs -z9 update -dP
148 .ft P
151 Please read the info pages of cvs for further details.
153 Alternatively, you can download snapshots (which are updated twice a day)
154 from
155 .URL http://\:groff.ffii.org/\:groff/\:devel/\:groff-current.tar.gz here
156 or a diff file relative to the latest official groff release as
158 .in 2m
159 .ft C
160 http://groff.ffii.org/groff/devel/groff-\[la]version\[ra]-current.diff.gz
161 .ft P
164 Assuming that groff-\[la]version\[ra].tar.gz and
165 groff-\[la]version\[ra]-current.diff.gz are in the same directory, do the
166 following to apply the diff file:
168 .in 2m
170 .ft C
171 tar xzvf groff-\[la]version\[ra].tar.gz
172 cd groff-\[la]version\[ra]
173 gunzip -c ../groff-\[la]version\[ra]-current.diff.gz | patch -p1
174 .ft P
178 Finally, it is possible to access the CVS with a browser by pointing it
181 .in 2m
182 .URL http://savannah.gnu.org/cvs/?group=groff \
183      http://savannah.gnu.org/cvs/?group=groff
186 Please report bugs using the form in the file BUG-REPORT; the idea of this
187 is to make sure that FSF has all the information it needs to fix the bug.
188 At the very least, read the BUG-REPORT form and make sure that you supply
189 all the information that it asks for.
190 Even if you are not sure that something is a bug, report it using
191 BUG-REPORT: this will enable us to determine whether it really is a bug or
192 not.
194 Three mailing lists are available:
196 .ULS
198 .MTO bug-groff@gnu.org bug-groff@gnu.org
199 for reporting bugs
202 .MTO groff@gnu.org groff@gnu.org
203 for general discussion of groff
206 .MTO groff-commit@gnu.org groff-commit@gnu.org
207 a read-only list showing commitments to the CVS repository
208 .ULE
210 You must be subscribed to the `groff' list to send mails.
212 To subscribe, send e-mail to \[la]list\[ra]-request@\[la]domain\[ra]
213 (example:
214 .MTO groff-request@\:gnu.org groff-request@\:gnu.org )
215 with the word `subscribe' in either the
216 subject or body of the e-mail (don't include the quotes) or have a look
217 at the
218 .URL http://\:lists.gnu.org/\:mailman/\:listinfo/\:groff/ \
219      "groff mailing list webpage" .
221 GNU groff was written by
222 .MTO jjc@\:jclark.com "James Clark" .
223 It is now maintained by
224 .MTO Ted.Harding@\:nessie.mcc.ac.uk "Ted Harding"
226 .MTO wl@\:gnu.org "Werner Lemberg" .
230 NEWS VERSION 1.19.1
232 .SH 2
233 groff
235 .ULS
237 The argument of the command line option `\-I' is now also passed to troff
238 and grops, specifying a directory to search for files on the command line,
239 files named in `so' and `psbb' requests, and files named in \eX'ps:\~file'
240 and \eX'ps:\~import' escapes.
243 If option `\-V' is used more than once, the commands will be both printed
244 on standard error and run.
245 .ULE
248 .SH 2
249 troff
251 .ULS
253 Two new read-only, string-valued registers `.m' and `.M' return the
254 name of the current drawing and background color, respectively.
257 New read-only register `.U' which is set to\~1 if in safer mode and set
258 to\~0 if in unsafe mode.
261 An input encoding file for \%latin-5 (a.k.a.\& ISO \%8859-9) has been
262 added.
263 Example use:
265 .in 2m
266 .ft C
267 groff \-Tdvi \-mlatin5 my_file > my_file.dvi
268 .ft R
271 Note that some output devices don't support all glyphs of this encoding.
274 If the `return' request is called with an argument, it exits twice,
275 namely the current macro and the macro one level higher.
276 This is used to define a wrapper macro for `return' in trace.tmac.
279 For completeness, two new requests have been added: `dei1' and `ami1'.
280 They are equivalent to `dei' and `ami', respectively, but the macros
281 are executed with compatibility mode off (similar to `de1' and `am1').
284 New command line option `\-I' to specify a directory for files (both
285 those on the command line and those named in `psbb' requests).
286 This is also handled by the groff wrapper program.
289 Since version 1.19 you can say `.vs\~0'.
290 Older versions emit a warning and convert this to `.vs\~\en[.V]'.
292 This hasn't been documented properly.
293 Note that `.vs\~0' isn't saved in a diversion since it doesn't result
294 in vertical motion.
295 .ULE
298 .SH 2
301 .ULS
303 Dashed and dotted ellipses have been implemented.
304 .ULE
307 .SH 2
310 .ULS
312 New key character `x' to make tbl call a user-defined macro on a table
313 cell.
314 Patch by
315 .MTO hj.oertel@\:surfeu.de "Heinz-J\[:u]rgen Oertel" .
316 .ULE
319 .SH 2
320 grap2graph
322 .ULS
324 A new script contributed by
325 .MTO esr@\:thyrsus.com "Eric S. Raymond" .
326 It converts a grap diagram into a cropped image.
327 Since it uses gs and the PNM library, virtually all graphics formats
328 are available for output.
329 [Note that the grap program itself isn't part of the groff package;
330 see the file MORE.STUFF how to obtain grap.]
331 .ULE
334 .SH 2
335 grohtml
337 .ULS
339 New option `\-j' to emit output splitted into multiple files.
340 .ULE
343 .SH 2
344 grops
346 .ULS
348 New command line option `\-I' to specify a directory to search for files
349 on the command line and files named in \eX'ps:\~import' and \eX'ps:\~file'
350 escapes.
351 This is also handled by the groff wrapper program.
354 The default value for the `broken' keyword in the DESC file is now\~0.
355 .ULE
358 .SH 2
359 grolj4
361 .ULS
363 A new man page `lj4_font(5)' documents how fonts are accessed with
364 grolj4.
367 The built-in fonts for LJ4 and newer PCL\~5 devices have been completely
368 revised, mainly to access as much glyphs as possible.
369 The provided metric files should be compatible with recent PCL\~5 printers
370 also.
371 Additionally, font description files have been added for the Arial and
372 Times New Roman family, the MS symbol, and Wingdings fonts.
373 .ULE
376 .SH 2
377 afmtodit
379 .ULS
381 New option `\-x' to prevent use of built-in Adobe Glyph List.
382 .ULE
385 .SH 2
386 hpftodit
388 .ULS
390 Completely revised to handle HP TrueType metric files also.
391 See the hpftodit manual page for more details.
392 .ULE
395 .SH 2
396 groffer
398 .ULS
400 This version is a rewrite of groffer in many parts, but it is kept in
401 the old single script style.
403 .ULS
405 New options: \-\-text (\-\-mode\~text), \-\-tty-viewer, \-\-X (\-\-mode\~X),
406 \-\-X-viewer, \-\-html (\-\-mode\~html), \-\-html-view, \-\-apropos-data,
407 \-\-apropos-devel, \-\-apropos-progs.
410 New documentation file README_SH.
413 Enhancement of the configuration files and the `apropos' handling.
414 .ULE
415 .ULE
418 .SH 2
419 macro packages
421 .ULS
423 www.tmac: New macro `JOBNAME' to split output into multiple files.
426 In mdoc, multiple calls to `.Lb' are now supported in the LIBRARY
427 section.
428 .ULE
432 NEWS VERSION 1.19
434 .SH 2
435 troff
437 .ULS
439 Input encoding files for \%latin-9 (a.k.a.\& \%latin-0 and ISO \%8859-15)
440 and \%latin-2 (ISO \%8859-2) have been added.
441 Example use:
443 .in 2m
444 .ft C
445 groff -Tdvi -mlatin9 my_file > my_file.dvi
446 .ft P
449 You still need proper fonts with the necessary glyphs.
450 Out of the box, the groff package supports \%latin-9 only for \-Tps,
451 \-Tdvi, and \-Tutf8, and \%latin-2 only for \-Tdvi and \-Tutf8.
454 Composite glyphs are now supported.
455 To do this, a subset of the Adobe Glyph List (AGL) Algorithm as described in
456 .URL http://partners.adobe.com/asn/tech/type/unicodegn.jsp \
457      http://partners.adobe.com/asn/tech/type/unicodegn.jsp
458 is used to construct glyph names based on Unicode character codes.
459 The existing groff glyph names are frozen; no glyph names which can't be
460 constructed algorithmically will be added in the future.
462 The \e[...] escape sequence has been extended to specify multiple glyph
463 components.
464 Example:
466 .in 2m
467 .ft C
468 \e[A ho]
469 .ft R
472 this accesses a glyph with the name `u0041_0328'.
474 Some groff glyphs which are useful as composites map to `wrong' Unicode
475 code points.
476 For example, `ho' maps to U+02DB which is a spacing ogonek, whereas a
477 non-spacing ogonek U+0328 is needed for composite glyphs.
478 The new request
480 .in 2m
481 .ft C
482 \&.composite from to
483 .ft R
486 will change the mapping while a composite glyph name is constructed.
487 To make \e[A\~ho] yield the expected result,
489 .in 2m
490 .ft C
491 \&.composite ho u0328
492 .ft R
495 is needed.
496 [The new file `composite.tmac' loaded at start-up already
497 contains proper calls to `.composite'.]
499 Please refer to the info pages of groff and to the groff_char man page
500 for more details.
503 A new request `fschar' has been added to define font-specific fallback
504 characters.
505 They are searched after the list of fonts declared with the
506 `fspecial' request but before the list of fonts declared with `special'.
509 Fallback characters defined with `fschar' can be removed with the
510 new `rfschar' request.
513 A new request `schar' has been added to define global fallback
514 characters.
515 They are searched after the list of fonts declared with the
516 `special' request but before the already mounted special fonts.
519 In groff versions 1.18 and 1.18.1, \eD'f\~...'\& didn't move the current
520 point horizontally.
521 Despite of being silly, this change has been reverted for backwards
522 compatibility.
523 Consequently, the intermediate output command `Df' also moves the 
524 position horizontally again.
526 \eD'f\~...'\& is deprecated since it depends on the horizontal resolution
527 of the output device (given with the `hor' parameter in the DESC file).
528 Use the new \eD'Fg\~...'\& escape instead.
531 For orthogonality, new \eD subcommands to change the fill color are
532 available:
534 .in 2m
535 .ft C
536 \eD'Fr ...' \f[R](rgb)\f[]
538 \eD'Fc ...' \f[R](cmy)\f[]
540 \eD'Fg ...' \f[R](gray)\f[]
542 \eD'Fk ...' \f[R](cmyk)\f[]
544 \eD'Fd' \f[R](default color)\f[]
545 .ft R
548 The arguments are the same as with the `defcolor' request.
549 The current position is \f[I]not\f[] changed.
552 The values set with \eH and \eS are now available in number registers
553 \en[.height] and \en[.slant], respectively.
556 The `.pe' number register isn't new but hasn't been documented before.
557 It is set to\~1 during a page ejection caused by the `bp' request.
560 The new glyph symbol `tno' is a textual variant of `no'.
563 The new glyph symbol `+e' represents U+03F5, GREEK LUNATE EPSILON SYMBOL.
564 (Well, it is not really new since it has been previously supported by
565 grolj4.)
566 The mapping for both the dvi and lj4 symbol font has been
567 changed accordingly so that Greek small letter epsilon, `*e', has the
568 same glyph shape as with other devices.
569 .ULE
572 .SH 2
573 grops
575 .ULS
577 The font `freeeuro.pfa' has been added to provide various default glyph
578 shapes for `eu' and `Eu'.
581 It is now possible to access all glyphs in a Type\~1 font, not only 256
582 (provided the font file created by afmtodit has proper entries).
583 grops constructs additional encoding vectors on the fly if necessary.
586 The paper size is now emitted via the %%DocumentMedia and PageSize
587 mechanisms so that it is no longer required to tell `gv' or `ps2pdf'
588 about the paper size.
589 The `broken' flag value\~16 omits this feature
590 (the used PostScript command `setpagedevice' is a LanguageLevel\~2
591 extension).
592 Patch by
593 .MTO egil@\:kvaleberg.no "Egil Kvaleberg" .
596 Non-slanted PostScript metrics have been changed again; they no longer
597 contain negative left italic correction values.
598 This assures correct spacing with eqn.
599 .ULE
602 .SH 2
603 grodvi
605 .ULS
607 The font cmtex10 has been added as the special font `SC' to the DVI fonts.
608 It is used as a font-specific special font for CW and CWI.
611 New options \-l and \-p to set landscape orientation and the paper size.
612 grodvi now emits a `papersize' special which is understood by DVI drivers
613 like dvips.
615 Consequently, the DESC file should contain a `papersize' keyword.
618 The glyph shapes for \e[*f] and \e[*e] have been exchanged with \e[+f] and
619 \e[+e], respectively, to be in sync with all other devices.
622 Glyphs \e[HE] and \e[DI] have been replaced with \e[u2662] and \e[u2661],
623 respectively, since the former two glyphs have a black (filled) shape
624 which grodvi doesn't provide by default (it never has actually).
625 .ULE
628 .SH 2
629 grolj4
631 .ULS
633 The glyphs \e[*e] and \e[+e] have been exchanged to be in sync with
634 all other devices.
637 The glyph \e[~=] is now called \e[|=].  Similar to other devices, \e[~=]
638 is now another name for glyph \e[~~].
639 .ULE
642 .SH 2
643 grotty
645 .ULS
647 New option `\-r'.
648 It is similar to the \-i option except it tells grotty to
649 use the `reverse video' attribute to render italic fonts.
650 .ULE
653 .SH 2
656 .ULS
658 New command `figname' to set the name of a picture's output box in TeX
659 mode.
660 .ULE
663 .SH 2
664 refer
666 .ULS
668 The environment variable `REFER' to override the name of the default
669 database isn't new but hasn't been documented before.
670 .ULE
673 .SH 2
674 soelim
676 .ULS
678 New option `\-r' to avoid emission of `.lf' lines.
681 New option `\-t' to emit TeX comment lines (giving current file and the
682 line number) instead of `.lf' lines.
683 .ULE
686 .SH 2
687 afmtodit
689 .ULS
691 Unencoded glyphs in an AFM file are output also (since grops can now emit
692 multiple encoding vectors for a single font).
695 New option `\-m' to prevent negative left italic correction values.
698 The mapping and encoding file together with file `DESC' are now searched
699 in the default font directory also.
700 Please refer to the man page of afmtodit for more details.
701 .ULE
704 .SH 2
705 macro packages
707 .ULS
709 .MTO kollar@\:alltel.net "Larry Kollar"
710 and others made the man macros more customizable.
712 .ULS
714 New command line options \-rFT, \-rIN, and \-rSN to set the vertical
715 location of the footer line, the body text indentation, and the
716 sub-subheading indentation.
719 New command line option \-rHY (similar to the ms macros) to control
720 hyphenation.
723 New macros `.PT' and `.BT' to print the header and footer strings.
724 They can be replaced with a customized version in `man.local'.
727 The string `HF' now holds the typeface to print headings and
728 subheadings.
731 Similar to the ms macros, the LT register now defaults to LL if not
732 explicitly specified on the command line.
733 .ULE
736 troff's start-up file `troffrc' now includes `papersize.tmac' to set
737 the paper size with the command line option `-dpaper=<size>'.
739 Possible values for `<size>' are the same as the predefined `papersize'
740 values in the DESC file (only lowercase; see the groff_font man page)
741 except \%a7-d7.
742 An appended `l' (ell) character denotes landscape orientation.
743 Examples: `a4', `c3l', `letterl'.
745 Most output drivers need additional command line switches `\-p' and
746 `\-l' to override the default paper length and orientation as set in
747 the driver specific DESC file.
749 For example, use the following for PS output on A4 paper in landscape
750 orientation:
752 .in 2m
753 .ft C
754 groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps
755 .ft R
757 .ULE
761 NEWS VERSION 1.18.1
763 .SH 2
764 troff
766 .ULS
768 The non-slanted PostScript font definition files have been regenerated to
769 include left and right italic correction values.
770 Applying those to a glyph (this is, prepending the glyph with `\e,' and
771 appending `\e/' to the glyph) sets the glyph width to the real value given
772 by the horizontal bounding box values.
773 Without those escapes, the advance width for the particular glyph is used
774 (which can differ considerably).
776 Most users will neither need this feature nor notice a difference in
777 existing documents (provided \e, and \e/ is used as advertised, namely for
778 italic fonts only); its main goal is to improve image generation with
779 grohtml.
781 This is an experimental change, and feedback is welcome.
782 .ULE
784 .SH 2
787 .ULS
789 Added global option `nospaces' to ignore leading and trailing spaces in data
790 items.
791 .ULE
793 .SH 2
794 grolbp
796 .ULS
798 The option \-w (\-\-linewidth) has been added (similar to other device
799 drivers) to set the default line width.
800 .ULE
802 .SH 2
805 .ULS
807 Support for b-spline and Bezier curves has been added.
808 .ULE
810 .SH 2
811 groffer
813 .ULS
815 New option \-\-shell to select the shell under wich groffer shall run.
816 .ULE
818 .SH 2
819 Macro Packages
821 .ULS
823 The string `Am' (producing an ampersand) has been added to mdoc for
824 compatibility with NetBSD.
827 `.IX' is now deprecated for mom; you should use `.IQ' (Indent Quit)
828 instead.
831 In mom, new inlines `FWD', `BCK', `UP', and `DOWN' deal with horizontal
832 and vertical movements; please refer to contrib/mom/NEWS for more
833 details.
836 New macro ENDNOTES_HDRFTR_CENTER for mom to better control headers.
837 .ULE
839 .SH 2
840 Miscellaneous
842 .ULS
844 The `papersize' keyword in the DESC file now accepts multiple arguments.
845 It is scanned from left to the right, and the first valid argument is used.
846 This makes it possible to provide a fallback paper size.
848 Example:
850 .in 2m
851 .ft C
852 papersize /etc/papersize a4
853 .ft P
857 A local font directory has been prepended to the default font path; it
858 defaults to /usr/local/share/groff/site-font.  Similar to the normal
859 font searching process, files must be placed into a dev\f[I]XXX\f[]
860 subdirectory, e.g.
862 .in 2m
863 .ft C
864 /usr/local/share/groff/site-font/devps/FOO
865 .ft P
868 for a PostScript font definition file FOO.
869 .ULE
873 NEWS VERSION 1.18
875 This section describes recent user-visible changes in groff.
876 Bug fixes are not described.
877 There are more details in the man pages.
879 .ad c
880 \s[+5]\m[red]\
881 Please read the changes below regarding
882 .ie '\*[.T]'html' \
883 .  URL #grotty grotty ,
884 .el \
885 .  nop grotty,
886 groff's tty frontend.\
887 \m[]\s[0]
889 .ad n
891 .SH 2
892 Troff
894 .ULS
896 Color support has been added to troff and pic (and to the device drivers
897 grops, grodvi, grotty, and grohtml -- other preprocessors and drivers will
898 follow).
899 A new function `defcolor' defines colors; the escape sequence `\em' sets the
900 drawing color, the escape sequence `\eM' specifies the background color for
901 closed objects created with \eD'.\|.\|.' commands.
902 `\em[]' and `\eM[]' switch back to the previous color.
903 `\em' and `\eM' correspond to the new troff output command sets starting
904 with `m' and `DF'.
905 The device-specific default color is called `default' and can't be
906 redefined.
908 Use the `color' request to toggle the usage of colors (default is on); the
909 read-only register `.color' is\~0 if colors are not active, and non-zero
910 otherwise.
912 The old `Df' output command is mapped onto `DFg'; all color output
913 commands don't change the current font position (consequently, `Df'
914 doesn't either).
916 Outputting color can be disabled in troff and groff with the option\~\-c
917 (it is always disabled in compatibility mode).
918 See the section on grotty for the
919 .ie '\*[.T]'html' \
920 .  URL #GROFF_NO_SGR GROFF_NO_SGR
921 .el \
922 . nop GROFF_NO_SGR
923 environment variable also.
925 For defining color components as fractions between 0 and\~1, a new scaling
926 indicator `f' has been defined: 1f\~=\~65536u.
927 For testing whether a color is defined (with .if and .ie), a new
928 conditional operator `m' is available.
930 More details can be found in the groff_diff.7 manual page and in
931 groff.texinfo.
934 Similar to \em and \eM, \ef[] switches back to the previous font.
935 \efP (and \ef[P]) is still valid for backwards compatibility.
938 The new escape \eF is the same as `.fam'; \eF[] switches back to previous
939 family -- \eF[P] selects family `P'.
942 Two new glyph symbols are available: `eu' is the official Euro symbol;
943 `Eu' is a font-specific glyph variant.
946 The new glyph symbols `t+\-', `tdi', and `tmu' are textual variants of
947 `+\-', `di', and `mu', respectively.
950 Latin-1 character 181 (PS name `mu', Unicode name U+00B5 MICRO SIGN) has
951 got the troff glyph name `mc'.
954 \-Tutf8 is now available on EBCDIC hosts.
957 Strings can take arguments, using this syntax: \e*[foo\~arg1\~arg2\~.\|.\|.].
958 Example:
960 .in 2m
962 .ft C
963 \&.ds xxx This is a \e\e$1 test.
964 \e*[xxx nice]
965 .ft P
970 It is now possible to have whitespace between the first and second dot (or
971 the name of the ending macro) to end a macro definition.
972 Example:
974 .in 2m
976 .ft C
977 \&.de !
978 \&..
980 \&.de foo
981 \&.  nop Hello, I'm `foo'.
982 \&.  nop I will now define `bar'.
983 \&.  de bar !
984 \&.    nop Hello, I'm `bar'.
985 \&.  !
986 \&..
987 .ft P
992 `.fn' is a new string-valued register which returns the (internal) real
993 font name; styles and families are properly concatenated.
996 Three new read/write registers `seconds', `minutes', and `hours' contain
997 the current time, set at start-up of troff.
998 Use the `af' request to control their output format.
1001 The new request `fchar' can be used to provide fallback characters.
1002 It has the same syntax as the `char' request; the only difference is that
1003 a character defined with `.char' hides the glyph with the same name in the
1004 current font, whereas a character defined with `.fchar' is checked only if
1005 the particular glyph isn't found in the current font.
1006 This test happens before checking special fonts.
1009 In analogy to the `tmc' request, `.writec' is the same as `.write' but
1010 doesn't emit a final newline.
1013 The new request `itc' is a variant of `.it' for which a line interrupted
1014 with \ec counts as one input line.
1017 Two new requests `ds1' and `as1' which are similar to `ds' and `as' but
1018 with compatibility mode disabled during expansion of strings defined by
1019 them.
1022 The syntax of the `substring' request has been changed:
1023 The first character in a string now has index\~0, the last character
1024 has index\~\-1.
1025 Note that this is an incompatible change.
1028 To emit strings directly to the intermediate output, a new `output'
1029 request has been added; it is similar to `\e!' used at the top level.
1032 `.hpf' has been extended.
1033 It can now handle most TeX hyphenation pattern files without
1034 modification.
1035 To do that, the commands \epatterns, \ehyphenation, and \eendinput are
1036 recognized.
1037 Please refer to groff_diff.7 for more information.
1040 `hpfcode' is a new request to provide an input encoding mapping for the
1041 `hpf' request.
1044 The new request `hpfa' appends hyphenation patterns (`hpf' replaces
1045 already existing patterns).
1048 A new request `ami' (append macro indirect) has been added.
1049 The first and second parameter of `ami' are taken from string registers
1050 rather than directly; this very special request is needed to make
1051 `trace.tmac' independent from the escape character (which might even
1052 be disabled).
1055 The new request `sizes' is similar to the `sizes' command in DESC files.
1056 It expects the same syntax; the data must be on a single line, and the
1057 final `0' can be omitted.
1060 `trin' (translate input) is a new request which is similar to `tr' with
1061 the exception that the `asciify' request will use the character code (if
1062 any) before the character translation.
1063 Example:
1065 .in 2m
1067 .ft C
1068 \&.trin ax
1069 \&.di xxx
1071 \&.br
1072 \&.di
1073 \&.xxx
1074 \&.trin aa
1075 \&.asciify xxx
1076 \&.xxx
1077 .ft P
1081 The result is `x\~a'.  Using `tr', the result would be `x\~x'.
1084 The request `pvs' isn't new, but hasn't been documented before.
1085 It adds vertical space after a line has been output.
1086 This makes it an alternative to the `ls' request to produce
1087 double-spaced documents.
1088 The read-only register `.pvs' holds the current amount of the
1089 post-vertical line space.
1092 For compatibility with plan 9's troff, multiple `pi' requests are
1093 supported:
1095 .in 2m
1097 .ft C
1098 \&.pi foo
1099 \&.pi bar
1100 .ft P
1104 is now equivalent to
1106 .in 2m
1107 .ft C
1108 \&.pi foo | bar
1109 .ft P
1113 A new escape sequence `\eO' is available to disable and enable glyph
1114 output.
1115 Please see groff_diff.man and groff.texinfo for more details.
1118 The escapes `\e%', `\e&', `\e)', and `\e:' no longer cause an error in \eX;
1119 they are ignored now.
1120 Additionally `\e\ ' and `\e~' are converted to single space characters.
1123 The default tab distance in nroff mode is now 0.8i to be compatible
1124 with UNIX troff.
1127 Using the latin-1 input character 0xAD (soft hyphen) for the `shc'
1128 request was a bad idea.
1129 Instead, it is now translated to `\e%', and the default hyphenation
1130 character is again \e[hy].
1131 Note that the glyph \e[shc] is not useful for typographic purposes;
1132 it only exists to have glyph names for all latin-1 characters.
1133 .ULE
1135 .SH 2
1136 Macro Packages
1138 .ULS
1140 .MTO df191@\:ncf.ca "Peter Schaffter"
1141 has contributed a new major macro package called `mom', mainly for
1142 non-scientific writers, which takes care of many typographic issues.
1143 It comes with a complete reference (in HTML format) and some examples.
1144 `mom' has been designed to format documents for PostScript output only.
1147 Two macros `AT' (AT&T) and `UC' (Univ. of California) have been added to
1148 the man macros for compatibility with older BSD releases.
1151 Both the man and mdoc macro packages now use the LL and LT registers for
1152 setting the line and title length, respectively (similar to those
1153 registers in the ms macro package).
1154 If not set on the command line or in a macro file loaded before the macro
1155 package itself, they default to 78n in nroff mode and 6.5i in troff mode.
1158 The `\-xwidth' specifier in the mdoc macro package has been removed.
1159 Its functionality is now integrated directly into `\-width'.
1160 Similarly, `\-column' has been extended to has this functionality also.
1163 A new macro `Ex' has been added to the mdoc macro package to document an
1164 exit status.
1167 `troff.man' has been split.  Differences to UNIX troff are now documented
1168 in the new man page `groff_diff.man'.
1171 The PSPIC macro has been extended to work with DVI output (`pspic.tmac' is
1172 now automatically loaded for \-Tdvi), using a dvips special to load the EPS
1173 file.
1176 The trace.tmac package now traces calls to `am' also.
1177 Additionally, it works in compatibility mode.
1180 `troff.1' has been split.
1181 Differences to UNIX troff are now documented in the new man page
1182 `groff_diff.7'.
1185 `groff_mwww.7' has been renamed to `groff_www.7'.
1186 The file mwww.tmac has been removed.
1189 `groff_ms.7' has been completely rewritten.
1190 It now contains a complete reference to the ms macros.
1193 `groff_trace.7' documents the trace macro package.
1196 Changes in www.tmac
1198 Note that HTML support is still in alpha change, so it is rather likely
1199 that both macro names and macro syntax will change.
1200 Some of the macros mentioned below aren't really new but haven't been
1201 documented properly before.
1203 .ULS
1205 The following macros have been renamed:
1207 .in 2m
1209 MAILTO -> MTO
1210 IMAGE  -> IMG
1211 LINE   -> HR
1216 For consistency, the macros `URL', `FTL', and `MTO' now all have the
1217 address as the first parameter followed by the description.
1220 By default, grohtml generates links to all section headings at the top
1221 of the document.
1222 Use the new `LK' macro to specify a different place.
1225 For specifying the background color and a background image, use the
1226 new macros `BCL' and `BGIMG', respectively.
1229 The macro `NHR' has been added; it suppresses the generation of top and
1230 bottom rules which grohtml emits by default.
1233 The new macro `HX' determines the cut-off point for automatic link
1234 generation to headings.
1237 The image position parameter names in `IMG' have been changed to `\-L',
1238 `\-R', and `\-C'.
1241 New macro `PIMG' for inclusion of a PNG image (it will automatically
1242 convert it into an EPS file if not \-Thtml is used).
1245 New macro `MPIMG' for putting a PNG image into the left or right margin
1246 (it will automatically convert it into an EPS file if not \-Thtml is used).
1249 New macros `HnS', `HnE' to start and end a header line block.
1252 New macro `DC' to produce dropcap characters.
1255 New macro `HTL' to generate an HTML title line only but no H1 heading.
1258 New macros `ULS' and `ULE' to start and end an unordered list.
1259 The new macro `LI' inserts a list item.
1260 .ULE
1261 .ULE
1264 .SH 2
1265 groff
1267 .ULS
1269 The new command line `\-c' disables color output (which is always disabled
1270 in compatibility mode).
1271 .ULE
1274 .SH 2
1275 Nroff
1277 .ULS
1279 Two new command line options `\-c' and `\-C'; the former passes `\-c' to
1280 grotty (switching to the old output scheme); the latter passes `\-C' to
1281 groff (enabling compatibility mode).
1282 .ULE
1285 .SH 2
1288 .ULS
1290 New keywords `color' (or `colour', `colored', `coloured'), `outline' (or
1291 `outlined'), and `shaded' are available.
1292 `outline' sets the color of the outline, `shaded' the fill color, and
1293 `color' sets both.
1294 Example:
1296 .in 2m
1297 .ft C
1298 circle shaded "green" outline "black" ;
1299 .ft P
1302 Filled arrows always use the outline color for filling.
1304 Color support for TeX output is not implemented yet.
1305 .ULE
1308 .SH 2
1309 Pic2graph
1311 .ULS
1313 A new script contributed by
1314 .MTO esr@\:thyrsus.com "Eric S.\~Raymond" .
1315 It converts a PIC diagram into a cropped image.
1316 Since it uses gs and the PNM library, virtually all graphics formats
1317 are available for output.
1318 .ULE
1321 .SH 2
1322 Eqn2graph
1324 .ULS
1326 A new script contributed by
1327 .MTO esr@\:thyrsus.com "Eric S.\~Raymond" .
1328 It converts an EQN diagram into a cropped image.
1329 Since it uses gs and the PNM library, virtually all graphics formats
1330 are available for output.
1331 .ULE
1334 .SH 2
1335 Groffer
1337 .ULS
1339 A new script contributed by
1340 .MTO bwarken@mayn.de "Bernd Warken" .
1341 It displays groff files and man pages on X and tty, taking care of most
1342 parameters automatically.
1343 .ULE
1346 .SH 2
1347 Grog
1349 .ULS
1351 Documents using the mom macro package are recognized.
1352 .ULE
1355 .SH 2
1356 grops
1358 .ULS
1360 Color support has been added.
1363 A new option `\-p' is available to select the output paper size.
1364 It has the same syntax as the new `papersize' keyword in the DESC file.
1365 .ULE
1368 .SH 2
1369 Grodvi
1371 .ULS
1373 By default, font sizes are now available in the range 5\-10000pt, similar
1374 to PS fonts.
1375 If you want the old behaviour (i.e., font sizes at discrete values only),
1376 insert the following at the start of your document:
1378 .in 2m
1380 .ft C
1381 \&.if '\e*[.T]'dvi' \e
1382 \&.  sizes 500 600 700 800 900 1000 1095 1200 1400 1440 1600 \e
1383 \&         1728 1800 2000 2074 2200 2400 2488 2800 3600
1384 .ft P
1389 A new font file HBI (using cmssbxo10; this is slanted sans serif bold
1390 extended) has been added.
1393 Two font families are now available: `T' and `H'.
1396 EC and TC fonts have been integrated.
1397 Use `\-mec' (calling the file ec.tmac) to switch to them.
1398 Those fonts give a much better coverage of the symbols defined by groff
1399 than the CM fonts.
1401 Note that ec.tmac must be called before any language-specific files; it
1402 doesn't take care of hcode values.
1405 Color support has been added.
1406 For drawing commands, colors are translated to gray values currently.
1407 .ULE
1410 .TAG grotty
1411 .SH 2
1412 Grotty
1414 .ULS
1416 Color support has been added, using the SGR (ISO\~6429, sometimes called
1417 ANSI color) escape sequences.
1420 SGR escape sequences are now used by default for underlining and bold
1421 printing also, no longer using the backspace character trick.
1422 To revert to the old behaviour, use the `\-c' switch.
1424 Note that you have to use the `\-R' option of `less' to make SGR escapes
1425 display correctly.
1426 On the other hand, terminal programs and consoles like `xterm' which
1427 support SGR sequences natively can directly display the output of grotty.
1428 Consequently, the options `\-b', `\-B', `\-u', and `\-U' work only in
1429 combination with `\-c' and are ignored silently otherwise.
1431 For the `man' program, it may be necessary to add the `\-R' option of
1432 `less' to the $PAGER environment variable; alternatively, you can use
1433 `man's `\-P' option (or adapt its configuration file accordingly).
1434 See man(1) for more details.
1436 .TAG GROFF_NO_SGR
1438 If the environment variable GROFF_NO_SGR is set, SGR output is disabled,
1439 reverting to the old behaviour.
1442 A new special \eX'tty:\~sgr\~n' has been added; if n is non-zero or missing,
1443 enable SGR output (the default).
1446 If the new option `\-i' is used (only in SGR mode), grotty sends escape
1447 sequences to set the italic font attribute instead of the underline
1448 attribute for italic fonts.
1449 Note that many terminals don't have support for this (including xterm).
1450 .ULE
1453 .SH 2
1454 grohtml
1456 .ULS
1458 Color support for glyphs has been added.
1461 New option `\-h' to select the style of headings in HTML output.
1464 New option `\-b' to set the background colour to white.
1467 New options `\-a' and `\-g' to control the number of bits for anti-aliasing
1468 used for text and graphics, respectively.
1469 Default value is\~4; 0\~means no anti-aliasing.
1472 groff character/glyph entities now map onto HTML\~4 character entities.
1473 .ULE
1476 .SH 2
1477 Grolbp
1479 .ULS
1481 Valid paper sizes are now specified as with the new `papersize' keyword
1482 in the DESC file.
1483 Specifically, the old custom paper type format `custAAAxBBB' is no longer
1484 supported.
1485 .ULE
1488 .SH 2
1489 Miscellaneous
1491 .ULS
1493 A new manual page `ditroff.7' is available.
1496 The groff texinfo manual will now be installed, together with a bunch
1497 of examples.
1500 A new keyword `papersize' has been added to the DESC file format.
1501 Its argument is either
1503 .ULS
1505 a predefined paper format (e.g. `A4' or `letter')
1508 a file name pointing to a file which must contain a paper size
1509 specification in its first line (e.g. `/etc/papersize')
1512 a custom paper size definition like `35c,4i'
1513 .ULE
1515 See groff_font(5) for more details.
1516 This keyword only affects the physical dimensions of the output medium;
1517 grops, grolj4, and grolbp use it currently.
1518 troff completely ignores it.
1519 .ULE
1523 \s[-2]\f[I]This document was produced using
1524 .URL http://groff.ffii.org/ groff-\n[.x].\n[.y].\n[.Y] .
1526 The image at the top has been contributed by Imogen Mulley (born 1991),
1527 based on a similar picture found on the
1528 .URL http://www.gnu.org "GNU server" .
1530 .\" EOF