* doc/groff.css: New file.
[s-roff.git] / doc / webpage.ms
blob3cd70b4255b64627f795e4b5af20008856c5aeb2
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 .HnS 1
48 .HR
49 GNU Troff
50 .URL http://\:groff.ffii.org/ (Groff)
51 \[em] a
52 .URL http://\:www.gnu.org/ GNU
53 project.
54 Hosted by
55 .URL http://\:ffii.org/ FFII .
56 .HR
57 .HnE
58 .LK
60 .LP
61 .DC T HE mydarkred
62 groff (GNU Troff) software
63 is a typesetting package which reads plain text mixed with
64 formatting commands and produces formatted output.
65 Groff now supports HTML.
68 .SH
69 Download
71 The source code of the currently released versions of groff is
72 available at the 
73 .URL "ftp://\:groff.ffii.org/\:pub/\:groff/" "FFII host (Germany)" ,
74 .URL "ftp://\:ftp.gnu.org/\:gnu/\:groff/" "GNU host (USA)" ,
75 and its mirrors.
77 The USA site also contains more old, obsolete versions.
79 The most actual pre-release, development version is available from a
80 CVS repository, see below.
82 Development snapshots (produced twice a day from the CVS repository)
83 can be downloaded with FTP from
84 .URL "ftp://\:groff.ffii.org/\:pub/\:groff/devel" here .
86 For a special version of groff on the Microsoft operating systems, see
87 .URL "http://\:gnuwin32.sf.net/\:packages/\:groffl.htm" "Groff for Windows" .
89 GNU troff is released under the
90 .URL http://\:www.gnu.org/\:copyleft/\:gpl.html "GNU Copyright License" .
92 User issues lead:
93 .MTO Ted.Harding@\:nessie.mcc.ac.uk "Ted Harding"
94 .br
95 Technical issues lead:
96 .MTO wl@\:gnu.org "Werner Lemberg"
99 .SH
100 README
102 This is the GNU groff document formatting system.
103 The version number is given in the file VERSION.
105 Included in this release are implementations of troff, pic, eqn, tbl,
106 grn, refer, \-man, \-mdoc, and \-ms macros, and drivers for PostScript,
107 TeX dvi format, HP LaserJet 4 printers, Canon CAPSL printers, HTML format
108 (still alpha), and typewriter-like devices.
109 Also included is a modified version of the Berkeley \-me macros, an enhanced
110 version of the X11 xditview previewer, and an implementation of the \-mm
111 macros contributed by
112 .MTO jh@\:axis.se "J\[:o]rgen H\[:a]gg" .
114 See the file INSTALL for installation instructions.
115 You will require a C++ compiler.
117 The file NEWS describes recent user-visible changes to groff.
119 Groff is free software.
120 See the file COPYING for copying permission.
122 The file PROBLEMS describes various problems that have been encountered in
123 compiling, installing, and running groff.
125 The most recent released version of groff is always available by anonymous
126 ftp from ftp.gnu.org in the directory pub/\:gnu/\:groff.
128 A CVS repository is available, containing the current development
129 version of groff.
130 You can access it with the commands
132 .in 2m
134 .ft C
135 export CVSROOT=:pserver:anoncvs@anoncvs.ffii.org:/var/cvs
136 cvs login
137 cvs -z9 co groff
138 .ft P
142 (if the prompt for the password appears, just press the enter key).
143 After a successful login you no longer need the first two commands; an
144 update of a checked out repository should be done with
146 .in 2m
147 .ft C
148 cvs -z9 update -dP
149 .ft P
152 Please read the info pages of cvs for further details.
154 Alternatively, you can download snapshots (which are updated twice a day)
155 from
156 .URL ftp://\:ftp.ffii.org/\:pub/\:groff/\:devel/\:groff-current.tar.gz here
157 or a diff file relative to the latest official groff release as
159 .in 2m
160 .ft C
161 ftp://ftp.ffii.org/pub/groff/devel/groff-\[la]version\[ra]-current.diff.gz
162 .ft P
165 Assuming that groff-\[la]version\[ra].tar.gz and
166 groff-\[la]version\[ra]-current.diff.gz are in the same directory, do the
167 following to apply the diff file:
169 .in 2m
171 .ft C
172 tar xzvf groff-\[la]version\[ra].tar.gz
173 cd groff-\[la]version\[ra]
174 gunzip -c ../groff-\[la]version\[ra]-current.diff.gz | patch -p1
175 .ft P
179 Finally, it is possible to access the CVS with a browser by pointing it
182 .in 2m
183 .URL http://www.ffii.org/cgi-bin/viewcvs.cgi/groff \
184      http://www.ffii.org/cgi-bin/viewcvs.cgi/groff
187 Please report bugs using the form in the file BUG-REPORT; the idea of this
188 is to make sure that FSF has all the information it needs to fix the bug.
189 At the very least, read the BUG-REPORT form and make sure that you supply
190 all the information that it asks for.
191 Even if you are not sure that something is a bug, report it using
192 BUG-REPORT: this will enable us to determine whether it really is a bug or
193 not.
195 Three mailing lists are available:
197 .ULS
199 .MTO bug-groff@gnu.org bug-groff@gnu.org
200 for reporting bugs
203 .MTO groff@ffii.org groff@ffii.org
204 for general discussion of groff
207 .MTO groff-commit@ffii.org groff-commit@ffii.org
208 a read-only list showing logs of commitments to the CVS repository
209 .ULE
211 Note that groff@gnu.org is an alias for
212 .MTO groff@\:ffii.org groff@\:ffii.org ;
213 you must be subscribed to the `groff' list to send mails.
215 To subscribe, send e-mail to \[la]list\[ra]-request@\[la]domain\[ra]
216 (example:
217 .MTO groff-request@\:ffii.org groff-request@\:ffii.org )
218 with the word `subscribe' in either the
219 subject or body of the e-mail (don't include the quotes) or have a look
220 at the
221 .URL http://\:ffii.org/\:mailman/\:listinfo/\:groff/ \
222      "groff mailing list webpage" .
224 GNU groff was written by
225 .MTO jjc@\:jclark.com "James Clark" .
226 It is now maintained by
227 .MTO Ted.Harding@\:nessie.mcc.ac.uk "Ted Harding"
229 .MTO wl@\:gnu.org "Werner Lemberg" .
233 NEWS VERSION 1.19.1
235 .SH 2
236 groff
238 .ULS
240 The argument of the command line option `\-I' is now also passed to troff
241 and grops, specifying a directory to search for files on the command line,
242 files named in `so' and `psbb' requests, and files named in \eX'ps:\~file'
243 and \eX'ps:\~import' escapes.
246 If option `\-V' is used more than once, the commands will be both printed
247 on standard error and run.
248 .ULE
251 .SH 2
252 troff
254 .ULS
256 Two new read-only, string-valued registers `.m' and `.M' return the
257 name of the current drawing and background color, respectively.
260 New read-only register `.U' which is set to\~1 if in safer mode and set
261 to\~0 if in unsafe mode.
264 An input encoding file for \%latin-5 (a.k.a.\& ISO \%8859-9) has been
265 added.
266 Example use:
268 .in 2m
269 .ft C
270 groff \-Tdvi \-mlatin5 my_file > my_file.dvi
271 .ft R
274 Note that some output devices don't support all glyphs of this encoding.
277 If the `return' request is called with an argument, it exits twice,
278 namely the current macro and the macro one level higher.
279 This is used to define a wrapper macro for `return' in trace.tmac.
282 For completeness, two new requests have been added: `dei1' and `ami1'.
283 They are equivalent to `dei' and `ami', respectively, but the macros
284 are executed with compatibility mode off (similar to `de1' and `am1').
287 New command line option `\-I' to specify a directory for files (both
288 those on the command line and those named in `psbb' requests).
289 This is also handled by the groff wrapper program.
292 Since version 1.19 you can say `.vs\~0'.
293 Older versions emit a warning and convert this to `.vs\~\en[.V]'.
295 This hasn't been documented properly.
296 Note that `.vs\~0' isn't saved in a diversion since it doesn't result
297 in vertical motion.
298 .ULE
301 .SH 2
304 .ULS
306 Dashed and dotted ellipses have been implemented.
307 .ULE
310 .SH 2
313 .ULS
315 New key character `x' to make tbl call a user-defined macro on a table
316 cell.
317 Patch by
318 .MTO hj.oertel@\:surfeu.de "Heinz-Jürgen Oertel" .
319 .ULE
322 .SH 2
323 grap2graph
325 .ULS
327 A new script contributed by
328 .MTO esr@\:thyrsus.com "Eric S. Raymond" .
329 It converts a grap diagram into a cropped image.
330 Since it uses gs and the PNM library, virtually all graphics formats
331 are available for output.
332 [Note that the grap program itself isn't part of the groff package;
333 see the file MORE.STUFF how to obtain grap.]
334 .ULE
337 .SH 2
338 grohtml
340 .ULS
342 New option `\-j' to emit output splitted into multiple files.
343 .ULE
346 .SH 2
347 grops
349 .ULS
351 New command line option `\-I' to specify a directory to search for files
352 on the command line and files named in \eX'ps:\~import' and \eX'ps:\~file'
353 escapes.
354 This is also handled by the groff wrapper program.
357 The default value for the `broken' keyword in the DESC file is now\~0.
358 .ULE
361 .SH 2
362 grolj4
364 .ULS
366 A new man page `lj4_font(5)' documents how fonts are accessed with
367 grolj4.
370 The built-in fonts for LJ4 and newer PCL\~5 devices have been completely
371 revised, mainly to access as much glyphs as possible.
372 The provided metric files should be compatible with recent PCL\~5 printers
373 also.
374 Additionally, font description files have been added for the Arial and
375 Times New Roman family, the MS symbol, and Wingdings fonts.
376 .ULE
379 .SH 2
380 afmtodit
382 .ULS
384 New option `\-x' to prevent use of built-in Adobe Glyph List.
385 .ULE
388 .SH 2
389 hpftodit
391 .ULS
393 Completely revised to handle HP TrueType metric files also.
394 See the hpftodit manual page for more details.
395 .ULE
398 .SH 2
399 groffer
401 .ULS
403 This version is a rewrite of groffer in many parts, but it is kept in
404 the old single script style.
406 .ULS
408 New options: \-\-text (\-\-mode\~text), \-\-tty-viewer, \-\-X (\-\-mode\~X),
409 \-\-X-viewer, \-\-html (\-\-mode\~html), \-\-html-view, \-\-apropos-data,
410 \-\-apropos-devel, \-\-apropos-progs.
413 New documentation file README_SH.
416 Enhancement of the configuration files and the `apropos' handling.
417 .ULE
418 .ULE
421 .SH 2
422 macro packages
424 .ULS
426 www.tmac: New macro `JOBNAME' to split output into multiple files.
429 In mdoc, multiple calls to `.Lb' are now supported in the LIBRARY
430 section.
431 .ULE
435 NEWS VERSION 1.19
437 .SH 2
438 troff
440 .ULS
442 Input encoding files for \%latin-9 (a.k.a.\& \%latin-0 and ISO \%8859-15)
443 and \%latin-2 (ISO \%8859-2) have been added.
444 Example use:
446 .in 2m
447 .ft C
448 groff -Tdvi -mlatin9 my_file > my_file.dvi
449 .ft P
452 You still need proper fonts with the necessary glyphs.
453 Out of the box, the groff package supports \%latin-9 only for \-Tps,
454 \-Tdvi, and \-Tutf8, and \%latin-2 only for \-Tdvi and \-Tutf8.
457 Composite glyphs are now supported.
458 To do this, a subset of the Adobe Glyph List (AGL) Algorithm as described in
459 .URL http://partners.adobe.com/asn/tech/type/unicodegn.jsp \
460      http://partners.adobe.com/asn/tech/type/unicodegn.jsp
461 is used to construct glyph names based on Unicode character codes.
462 The existing groff glyph names are frozen; no glyph names which can't be
463 constructed algorithmically will be added in the future.
465 The \e[...] escape sequence has been extended to specify multiple glyph
466 components.
467 Example:
469 .in 2m
470 .ft C
471 \e[A ho]
472 .ft R
475 this accesses a glyph with the name `u0041_0328'.
477 Some groff glyphs which are useful as composites map to `wrong' Unicode
478 code points.
479 For example, `ho' maps to U+02DB which is a spacing ogonek, whereas a
480 non-spacing ogonek U+0328 is needed for composite glyphs.
481 The new request
483 .in 2m
484 .ft C
485 \&.composite from to
486 .ft R
489 will change the mapping while a composite glyph name is constructed.
490 To make \e[A\~ho] yield the expected result,
492 .in 2m
493 .ft C
494 \&.composite ho u0328
495 .ft R
498 is needed.
499 [The new file `composite.tmac' loaded at start-up already
500 contains proper calls to `.composite'.]
502 Please refer to the info pages of groff and to the groff_char man page
503 for more details.
506 A new request `fschar' has been added to define font-specific fallback
507 characters.
508 They are searched after the list of fonts declared with the
509 `fspecial' request but before the list of fonts declared with `special'.
512 Fallback characters defined with `fschar' can be removed with the
513 new `rfschar' request.
516 A new request `schar' has been added to define global fallback
517 characters.
518 They are searched after the list of fonts declared with the
519 `special' request but before the already mounted special fonts.
522 In groff versions 1.18 and 1.18.1, \eD'f\~...'\& didn't move the current
523 point horizontally.
524 Despite of being silly, this change has been reverted for backwards
525 compatibility.
526 Consequently, the intermediate output command `Df' also moves the 
527 position horizontally again.
529 \eD'f\~...'\& is deprecated since it depends on the horizontal resolution
530 of the output device (given with the `hor' parameter in the DESC file).
531 Use the new \eD'Fg\~...'\& escape instead.
534 For orthogonality, new \eD subcommands to change the fill color are
535 available:
537 .in 2m
538 .ft C
539 \eD'Fr ...' \f[R](rgb)\f[]
541 \eD'Fc ...' \f[R](cmy)\f[]
543 \eD'Fg ...' \f[R](gray)\f[]
545 \eD'Fk ...' \f[R](cmyk)\f[]
547 \eD'Fd' \f[R](default color)\f[]
548 .ft R
551 The arguments are the same as with the `defcolor' request.
552 The current position is \f[I]not\f[] changed.
555 The values set with \eH and \eS are now available in number registers
556 \en[.height] and \en[.slant], respectively.
559 The `.pe' number register isn't new but hasn't been documented before.
560 It is set to\~1 during a page ejection caused by the `bp' request.
563 The new glyph symbol `tno' is a textual variant of `no'.
566 The new glyph symbol `+e' represents U+03F5, GREEK LUNATE EPSILON SYMBOL.
567 (Well, it is not really new since it has been previously supported by
568 grolj4.)
569 The mapping for both the dvi and lj4 symbol font has been
570 changed accordingly so that Greek small letter epsilon, `*e', has the
571 same glyph shape as with other devices.
572 .ULE
575 .SH 2
576 grops
578 .ULS
580 The font `freeeuro.pfa' has been added to provide various default glyph
581 shapes for `eu' and `Eu'.
584 It is now possible to access all glyphs in a Type\~1 font, not only 256
585 (provided the font file created by afmtodit has proper entries).
586 grops constructs additional encoding vectors on the fly if necessary.
589 The paper size is now emitted via the %%DocumentMedia and PageSize
590 mechanisms so that it is no longer required to tell `gv' or `ps2pdf'
591 about the paper size.
592 The `broken' flag value\~16 omits this feature
593 (the used PostScript command `setpagedevice' is a LanguageLevel\~2
594 extension).
595 Patch by
596 .MTO egil@\:kvaleberg.no "Egil Kvaleberg" .
599 Non-slanted PostScript metrics have been changed again; they no longer
600 contain negative left italic correction values.
601 This assures correct spacing with eqn.
602 .ULE
605 .SH 2
606 grodvi
608 .ULS
610 The font cmtex10 has been added as the special font `SC' to the DVI fonts.
611 It is used as a font-specific special font for CW and CWI.
614 New options \-l and \-p to set landscape orientation and the paper size.
615 grodvi now emits a `papersize' special which is understood by DVI drivers
616 like dvips.
618 Consequently, the DESC file should contain a `papersize' keyword.
621 The glyph shapes for \e[*f] and \e[*e] have been exchanged with \e[+f] and
622 \e[+e], respectively, to be in sync with all other devices.
625 Glyphs \e[HE] and \e[DI] have been replaced with \e[u2662] and \e[u2661],
626 respectively, since the former two glyphs have a black (filled) shape
627 which grodvi doesn't provide by default (it never has actually).
628 .ULE
631 .SH 2
632 grolj4
634 .ULS
636 The glyphs \e[*e] and \e[+e] have been exchanged to be in sync with
637 all other devices.
640 The glyph \e[~=] is now called \e[|=].  Similar to other devices, \e[~=]
641 is now another name for glyph \e[~~].
642 .ULE
645 .SH 2
646 grotty
648 .ULS
650 New option `\-r'.
651 It is similar to the \-i option except it tells grotty to
652 use the `reverse video' attribute to render italic fonts.
653 .ULE
656 .SH 2
659 .ULS
661 New command `figname' to set the name of a picture's output box in TeX
662 mode.
663 .ULE
666 .SH 2
667 refer
669 .ULS
671 The environment variable `REFER' to override the name of the default
672 database isn't new but hasn't been documented before.
673 .ULE
676 .SH 2
677 soelim
679 .ULS
681 New option `\-r' to avoid emission of `.lf' lines.
684 New option `\-t' to emit TeX comment lines (giving current file and the
685 line number) instead of `.lf' lines.
686 .ULE
689 .SH 2
690 afmtodit
692 .ULS
694 Unencoded glyphs in an AFM file are output also (since grops can now emit
695 multiple encoding vectors for a single font).
698 New option `\-m' to prevent negative left italic correction values.
701 The mapping and encoding file together with file `DESC' are now searched
702 in the default font directory also.
703 Please refer to the man page of afmtodit for more details.
704 .ULE
707 .SH 2
708 macro packages
710 .ULS
712 .MTO kollar@\:alltel.net "Larry Kollar"
713 and others made the man macros more customizable.
715 .ULS
717 New command line options \-rFT, \-rIN, and \-rSN to set the vertical
718 location of the footer line, the body text indentation, and the
719 sub-subheading indentation.
722 New command line option \-rHY (similar to the ms macros) to control
723 hyphenation.
726 New macros `.PT' and `.BT' to print the header and footer strings.
727 They can be replaced with a customized version in `man.local'.
730 The string `HF' now holds the typeface to print headings and
731 subheadings.
734 Similar to the ms macros, the LT register now defaults to LL if not
735 explicitly specified on the command line.
736 .ULE
739 troff's start-up file `troffrc' now includes `papersize.tmac' to set
740 the paper size with the command line option `-dpaper=<size>'.
742 Possible values for `<size>' are the same as the predefined `papersize'
743 values in the DESC file (only lowercase; see the groff_font man page)
744 except \%a7-d7.
745 An appended `l' (ell) character denotes landscape orientation.
746 Examples: `a4', `c3l', `letterl'.
748 Most output drivers need additional command line switches `\-p' and
749 `\-l' to override the default paper length and orientation as set in
750 the driver specific DESC file.
752 For example, use the following for PS output on A4 paper in landscape
753 orientation:
755 .in 2m
756 .ft C
757 groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps
758 .ft R
760 .ULE
764 NEWS VERSION 1.18.1
766 .SH 2
767 troff
769 .ULS
771 The non-slanted PostScript font definition files have been regenerated to
772 include left and right italic correction values.
773 Applying those to a glyph (this is, prepending the glyph with `\e,' and
774 appending `\e/' to the glyph) sets the glyph width to the real value given
775 by the horizontal bounding box values.
776 Without those escapes, the advance width for the particular glyph is used
777 (which can differ considerably).
779 Most users will neither need this feature nor notice a difference in
780 existing documents (provided \e, and \e/ is used as advertised, namely for
781 italic fonts only); its main goal is to improve image generation with
782 grohtml.
784 This is an experimental change, and feedback is welcome.
785 .ULE
787 .SH 2
790 .ULS
792 Added global option `nospaces' to ignore leading and trailing spaces in data
793 items.
794 .ULE
796 .SH 2
797 grolbp
799 .ULS
801 The option \-w (\-\-linewidth) has been added (similar to other device
802 drivers) to set the default line width.
803 .ULE
805 .SH 2
808 .ULS
810 Support for b-spline and Bezier curves has been added.
811 .ULE
813 .SH 2
814 groffer
816 .ULS
818 New option \-\-shell to select the shell under wich groffer shall run.
819 .ULE
821 .SH 2
822 Macro Packages
824 .ULS
826 The string `Am' (producing an ampersand) has been added to mdoc for
827 compatibility with NetBSD.
830 `.IX' is now deprecated for mom; you should use `.IQ' (Indent Quit)
831 instead.
834 In mom, new inlines `FWD', `BCK', `UP', and `DOWN' deal with horizontal
835 and vertical movements; please refer to contrib/mom/NEWS for more
836 details.
839 New macro ENDNOTES_HDRFTR_CENTER for mom to better control headers.
840 .ULE
842 .SH 2
843 Miscellaneous
845 .ULS
847 The `papersize' keyword in the DESC file now accepts multiple arguments.
848 It is scanned from left to the right, and the first valid argument is used.
849 This makes it possible to provide a fallback paper size.
851 Example:
853 .in 2m
854 .ft C
855 papersize /etc/papersize a4
856 .ft P
860 A local font directory has been prepended to the default font path; it
861 defaults to /usr/local/share/groff/site-font.  Similar to the normal
862 font searching process, files must be placed into a dev\f[I]XXX\f[]
863 subdirectory, e.g.
865 .in 2m
866 .ft C
867 /usr/local/share/groff/site-font/devps/FOO
868 .ft P
871 for a PostScript font definition file FOO.
872 .ULE
876 NEWS VERSION 1.18
878 This section describes recent user-visible changes in groff.
879 Bug fixes are not described.
880 There are more details in the man pages.
882 .ad c
883 \s[+5]\m[red]\
884 Please read the changes below regarding
885 .ie '\*[.T]'html' \
886 .  URL #grotty grotty ,
887 .el \
888 .  nop grotty,
889 groff's tty frontend.\
890 \m[]\s[0]
892 .ad n
894 .SH 2
895 Troff
897 .ULS
899 Color support has been added to troff and pic (and to the device drivers
900 grops, grodvi, grotty, and grohtml -- other preprocessors and drivers will
901 follow).
902 A new function `defcolor' defines colors; the escape sequence `\em' sets the
903 drawing color, the escape sequence `\eM' specifies the background color for
904 closed objects created with \eD'.\|.\|.' commands.
905 `\em[]' and `\eM[]' switch back to the previous color.
906 `\em' and `\eM' correspond to the new troff output command sets starting
907 with `m' and `DF'.
908 The device-specific default color is called `default' and can't be
909 redefined.
911 Use the `color' request to toggle the usage of colors (default is on); the
912 read-only register `.color' is\~0 if colors are not active, and non-zero
913 otherwise.
915 The old `Df' output command is mapped onto `DFg'; all color output
916 commands don't change the current font position (consequently, `Df'
917 doesn't either).
919 Outputting color can be disabled in troff and groff with the option\~\-c
920 (it is always disabled in compatibility mode).
921 See the section on grotty for the
922 .ie '\*[.T]'html' \
923 .  URL #GROFF_NO_SGR GROFF_NO_SGR
924 .el \
925 . nop GROFF_NO_SGR
926 environment variable also.
928 For defining color components as fractions between 0 and\~1, a new scaling
929 indicator `f' has been defined: 1f\~=\~65536u.
930 For testing whether a color is defined (with .if and .ie), a new
931 conditional operator `m' is available.
933 More details can be found in the groff_diff.7 manual page and in
934 groff.texinfo.
937 Similar to \em and \eM, \ef[] switches back to the previous font.
938 \efP (and \ef[P]) is still valid for backwards compatibility.
941 The new escape \eF is the same as `.fam'; \eF[] switches back to previous
942 family -- \eF[P] selects family `P'.
945 Two new glyph symbols are available: `eu' is the official Euro symbol;
946 `Eu' is a font-specific glyph variant.
949 The new glyph symbols `t+\-', `tdi', and `tmu' are textual variants of
950 `+\-', `di', and `mu', respectively.
953 Latin-1 character 181 (PS name `mu', Unicode name U+00B5 MICRO SIGN) has
954 got the troff glyph name `mc'.
957 \-Tutf8 is now available on EBCDIC hosts.
960 Strings can take arguments, using this syntax: \e*[foo\~arg1\~arg2\~.\|.\|.].
961 Example:
963 .in 2m
965 .ft C
966 \&.ds xxx This is a \e\e$1 test.
967 \e*[xxx nice]
968 .ft P
973 It is now possible to have whitespace between the first and second dot (or
974 the name of the ending macro) to end a macro definition.
975 Example:
977 .in 2m
979 .ft C
980 \&.de !
981 \&..
983 \&.de foo
984 \&.  nop Hello, I'm `foo'.
985 \&.  nop I will now define `bar'.
986 \&.  de bar !
987 \&.    nop Hello, I'm `bar'.
988 \&.  !
989 \&..
990 .ft P
995 `.fn' is a new string-valued register which returns the (internal) real
996 font name; styles and families are properly concatenated.
999 Three new read/write registers `seconds', `minutes', and `hours' contain
1000 the current time, set at start-up of troff.
1001 Use the `af' request to control their output format.
1004 The new request `fchar' can be used to provide fallback characters.
1005 It has the same syntax as the `char' request; the only difference is that
1006 a character defined with `.char' hides the glyph with the same name in the
1007 current font, whereas a character defined with `.fchar' is checked only if
1008 the particular glyph isn't found in the current font.
1009 This test happens before checking special fonts.
1012 In analogy to the `tmc' request, `.writec' is the same as `.write' but
1013 doesn't emit a final newline.
1016 The new request `itc' is a variant of `.it' for which a line interrupted
1017 with \ec counts as one input line.
1020 Two new requests `ds1' and `as1' which are similar to `ds' and `as' but
1021 with compatibility mode disabled during expansion of strings defined by
1022 them.
1025 The syntax of the `substring' request has been changed:
1026 The first character in a string now has index\~0, the last character
1027 has index\~\-1.
1028 Note that this is an incompatible change.
1031 To emit strings directly to the intermediate output, a new `output'
1032 request has been added; it is similar to `\e!' used at the top level.
1035 `.hpf' has been extended.
1036 It can now handle most TeX hyphenation pattern files without
1037 modification.
1038 To do that, the commands \epatterns, \ehyphenation, and \eendinput are
1039 recognized.
1040 Please refer to groff_diff.7 for more information.
1043 `hpfcode' is a new request to provide an input encoding mapping for the
1044 `hpf' request.
1047 The new request `hpfa' appends hyphenation patterns (`hpf' replaces
1048 already existing patterns).
1051 A new request `ami' (append macro indirect) has been added.
1052 The first and second parameter of `ami' are taken from string registers
1053 rather than directly; this very special request is needed to make
1054 `trace.tmac' independent from the escape character (which might even
1055 be disabled).
1058 The new request `sizes' is similar to the `sizes' command in DESC files.
1059 It expects the same syntax; the data must be on a single line, and the
1060 final `0' can be omitted.
1063 `trin' (translate input) is a new request which is similar to `tr' with
1064 the exception that the `asciify' request will use the character code (if
1065 any) before the character translation.
1066 Example:
1068 .in 2m
1070 .ft C
1071 \&.trin ax
1072 \&.di xxx
1074 \&.br
1075 \&.di
1076 \&.xxx
1077 \&.trin aa
1078 \&.asciify xxx
1079 \&.xxx
1080 .ft P
1084 The result is `x\~a'.  Using `tr', the result would be `x\~x'.
1087 The request `pvs' isn't new, but hasn't been documented before.
1088 It adds vertical space after a line has been output.
1089 This makes it an alternative to the `ls' request to produce
1090 double-spaced documents.
1091 The read-only register `.pvs' holds the current amount of the
1092 post-vertical line space.
1095 For compatibility with plan 9's troff, multiple `pi' requests are
1096 supported:
1098 .in 2m
1100 .ft C
1101 \&.pi foo
1102 \&.pi bar
1103 .ft P
1107 is now equivalent to
1109 .in 2m
1110 .ft C
1111 \&.pi foo | bar
1112 .ft P
1116 A new escape sequence `\eO' is available to disable and enable glyph
1117 output.
1118 Please see groff_diff.man and groff.texinfo for more details.
1121 The escapes `\e%', `\e&', `\e)', and `\e:' no longer cause an error in \eX;
1122 they are ignored now.
1123 Additionally `\e\ ' and `\e~' are converted to single space characters.
1126 The default tab distance in nroff mode is now 0.8i to be compatible
1127 with UNIX troff.
1130 Using the latin-1 input character 0xAD (soft hyphen) for the `shc'
1131 request was a bad idea.
1132 Instead, it is now translated to `\e%', and the default hyphenation
1133 character is again \e[hy].
1134 Note that the glyph \e[shc] is not useful for typographic purposes;
1135 it only exists to have glyph names for all latin-1 characters.
1136 .ULE
1138 .SH 2
1139 Macro Packages
1141 .ULS
1143 .MTO df191@\:ncf.ca "Peter Schaffter"
1144 has contributed a new major macro package called `mom', mainly for
1145 non-scientific writers, which takes care of many typographic issues.
1146 It comes with a complete reference (in HTML format) and some examples.
1147 `mom' has been designed to format documents for PostScript output only.
1150 Two macros `AT' (AT&T) and `UC' (Univ. of California) have been added to
1151 the man macros for compatibility with older BSD releases.
1154 Both the man and mdoc macro packages now use the LL and LT registers for
1155 setting the line and title length, respectively (similar to those
1156 registers in the ms macro package).
1157 If not set on the command line or in a macro file loaded before the macro
1158 package itself, they default to 78n in nroff mode and 6.5i in troff mode.
1161 The `\-xwidth' specifier in the mdoc macro package has been removed.
1162 Its functionality is now integrated directly into `\-width'.
1163 Similarly, `\-column' has been extended to has this functionality also.
1166 A new macro `Ex' has been added to the mdoc macro package to document an
1167 exit status.
1170 `troff.man' has been split.  Differences to UNIX troff are now documented
1171 in the new man page `groff_diff.man'.
1174 The PSPIC macro has been extended to work with DVI output (`pspic.tmac' is
1175 now automatically loaded for \-Tdvi), using a dvips special to load the EPS
1176 file.
1179 The trace.tmac package now traces calls to `am' also.
1180 Additionally, it works in compatibility mode.
1183 `troff.1' has been split.
1184 Differences to UNIX troff are now documented in the new man page
1185 `groff_diff.7'.
1188 `groff_mwww.7' has been renamed to `groff_www.7'.
1189 The file mwww.tmac has been removed.
1192 `groff_ms.7' has been completely rewritten.
1193 It now contains a complete reference to the ms macros.
1196 `groff_trace.7' documents the trace macro package.
1199 Changes in www.tmac
1201 Note that HTML support is still in alpha change, so it is rather likely
1202 that both macro names and macro syntax will change.
1203 Some of the macros mentioned below aren't really new but haven't been
1204 documented properly before.
1206 .ULS
1208 The following macros have been renamed:
1210 .in 2m
1212 MAILTO -> MTO
1213 IMAGE  -> IMG
1214 LINE   -> HR
1219 For consistency, the macros `URL', `FTL', and `MTO' now all have the
1220 address as the first parameter followed by the description.
1223 By default, grohtml generates links to all section headings at the top
1224 of the document.
1225 Use the new `LK' macro to specify a different place.
1228 For specifying the background color and a background image, use the
1229 new macros `BCL' and `BGIMG', respectively.
1232 The macro `NHR' has been added; it suppresses the generation of top and
1233 bottom rules which grohtml emits by default.
1236 The new macro `HX' determines the cut-off point for automatic link
1237 generation to headings.
1240 The image position parameter names in `IMG' have been changed to `\-L',
1241 `\-R', and `\-C'.
1244 New macro `PIMG' for inclusion of a PNG image (it will automatically
1245 convert it into an EPS file if not \-Thtml is used).
1248 New macro `MPIMG' for putting a PNG image into the left or right margin
1249 (it will automatically convert it into an EPS file if not \-Thtml is used).
1252 New macros `HnS', `HnE' to start and end a header line block.
1255 New macro `DC' to produce dropcap characters.
1258 New macro `HTL' to generate an HTML title line only but no H1 heading.
1261 New macros `ULS' and `ULE' to start and end an unordered list.
1262 The new macro `LI' inserts a list item.
1263 .ULE
1264 .ULE
1267 .SH 2
1268 groff
1270 .ULS
1272 The new command line `\-c' disables color output (which is always disabled
1273 in compatibility mode).
1274 .ULE
1277 .SH 2
1278 Nroff
1280 .ULS
1282 Two new command line options `\-c' and `\-C'; the former passes `\-c' to
1283 grotty (switching to the old output scheme); the latter passes `\-C' to
1284 groff (enabling compatibility mode).
1285 .ULE
1288 .SH 2
1291 .ULS
1293 New keywords `color' (or `colour', `colored', `coloured'), `outline' (or
1294 `outlined'), and `shaded' are available.
1295 `outline' sets the color of the outline, `shaded' the fill color, and
1296 `color' sets both.
1297 Example:
1299 .in 2m
1300 .ft C
1301 circle shaded "green" outline "black" ;
1302 .ft P
1305 Filled arrows always use the outline color for filling.
1307 Color support for TeX output is not implemented yet.
1308 .ULE
1311 .SH 2
1312 Pic2graph
1314 .ULS
1316 A new script contributed by
1317 .MTO esr@\:thyrsus.com "Eric S.\~Raymond" .
1318 It converts a PIC diagram into a cropped image.
1319 Since it uses gs and the PNM library, virtually all graphics formats
1320 are available for output.
1321 .ULE
1324 .SH 2
1325 Eqn2graph
1327 .ULS
1329 A new script contributed by
1330 .MTO esr@\:thyrsus.com "Eric S.\~Raymond" .
1331 It converts an EQN diagram into a cropped image.
1332 Since it uses gs and the PNM library, virtually all graphics formats
1333 are available for output.
1334 .ULE
1337 .SH 2
1338 Groffer
1340 .ULS
1342 A new script contributed by
1343 .MTO bwarken@mayn.de "Bernd Warken" .
1344 It displays groff files and man pages on X and tty, taking care of most
1345 parameters automatically.
1346 .ULE
1349 .SH 2
1350 Grog
1352 .ULS
1354 Documents using the mom macro package are recognized.
1355 .ULE
1358 .SH 2
1359 grops
1361 .ULS
1363 Color support has been added.
1366 A new option `\-p' is available to select the output paper size.
1367 It has the same syntax as the new `papersize' keyword in the DESC file.
1368 .ULE
1371 .SH 2
1372 Grodvi
1374 .ULS
1376 By default, font sizes are now available in the range 5\-10000pt, similar
1377 to PS fonts.
1378 If you want the old behaviour (i.e., font sizes at discrete values only),
1379 insert the following at the start of your document:
1381 .in 2m
1383 .ft C
1384 \&.if '\e*[.T]'dvi' \e
1385 \&.  sizes 500 600 700 800 900 1000 1095 1200 1400 1440 1600 \e
1386 \&         1728 1800 2000 2074 2200 2400 2488 2800 3600
1387 .ft P
1392 A new font file HBI (using cmssbxo10; this is slanted sans serif bold
1393 extended) has been added.
1396 Two font families are now available: `T' and `H'.
1399 EC and TC fonts have been integrated.
1400 Use `\-mec' (calling the file ec.tmac) to switch to them.
1401 Those fonts give a much better coverage of the symbols defined by groff
1402 than the CM fonts.
1404 Note that ec.tmac must be called before any language-specific files; it
1405 doesn't take care of hcode values.
1408 Color support has been added.
1409 For drawing commands, colors are translated to gray values currently.
1410 .ULE
1413 .TAG grotty
1414 .SH 2
1415 Grotty
1417 .ULS
1419 Color support has been added, using the SGR (ISO\~6429, sometimes called
1420 ANSI color) escape sequences.
1423 SGR escape sequences are now used by default for underlining and bold
1424 printing also, no longer using the backspace character trick.
1425 To revert to the old behaviour, use the `\-c' switch.
1427 Note that you have to use the `\-R' option of `less' to make SGR escapes
1428 display correctly.
1429 On the other hand, terminal programs and consoles like `xterm' which
1430 support SGR sequences natively can directly display the output of grotty.
1431 Consequently, the options `\-b', `\-B', `\-u', and `\-U' work only in
1432 combination with `\-c' and are ignored silently otherwise.
1434 For the `man' program, it may be necessary to add the `\-R' option of
1435 `less' to the $PAGER environment variable; alternatively, you can use
1436 `man's `\-P' option (or adapt its configuration file accordingly).
1437 See man(1) for more details.
1439 .TAG GROFF_NO_SGR
1441 If the environment variable GROFF_NO_SGR is set, SGR output is disabled,
1442 reverting to the old behaviour.
1445 A new special \eX'tty:\~sgr\~n' has been added; if n is non-zero or missing,
1446 enable SGR output (the default).
1449 If the new option `\-i' is used (only in SGR mode), grotty sends escape
1450 sequences to set the italic font attribute instead of the underline
1451 attribute for italic fonts.
1452 Note that many terminals don't have support for this (including xterm).
1453 .ULE
1456 .SH 2
1457 grohtml
1459 .ULS
1461 Color support for glyphs has been added.
1464 New option `\-h' to select the style of headings in HTML output.
1467 New option `\-b' to set the background colour to white.
1470 New options `\-a' and `\-g' to control the number of bits for anti-aliasing
1471 used for text and graphics, respectively.
1472 Default value is\~4; 0\~means no anti-aliasing.
1475 groff character/glyph entities now map onto HTML\~4 character entities.
1476 .ULE
1479 .SH 2
1480 Grolbp
1482 .ULS
1484 Valid paper sizes are now specified as with the new `papersize' keyword
1485 in the DESC file.
1486 Specifically, the old custom paper type format `custAAAxBBB' is no longer
1487 supported.
1488 .ULE
1491 .SH 2
1492 Miscellaneous
1494 .ULS
1496 A new manual page `ditroff.7' is available.
1499 The groff texinfo manual will now be installed, together with a bunch
1500 of examples.
1503 A new keyword `papersize' has been added to the DESC file format.
1504 Its argument is either
1506 .ULS
1508 a predefined paper format (e.g. `A4' or `letter')
1511 a file name pointing to a file which must contain a paper size
1512 specification in its first line (e.g. `/etc/papersize')
1515 a custom paper size definition like `35c,4i'
1516 .ULE
1518 See groff_font(5) for more details.
1519 This keyword only affects the physical dimensions of the output medium;
1520 grops, grolj4, and grolbp use it currently.
1521 troff completely ignores it.
1522 .ULE
1526 \s[-2]\f[I]This document was produced using
1527 .URL http://groff.ffii.org/ groff-\n[.x].\n[.y].\n[.Y] .
1529 The image at the top has been contributed by Imogen Mulley (born 1991),
1530 based on a similar picture found on the
1531 .URL http://www.gnu.org "GNU server" .
1533 .\" EOF