* NEWS, README, TODO, PROJECTS, PROBLEMS, MANIFEST, doc/webpage.ms,
[s-roff.git] / doc / webpage.ms
blob32696214bcef2f3c02e6e47b6362590721f4ffd4
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
12 .mso www.tmac
14 .de blm-macro
15 .  nr tmp \\n[.i]
16 .  LP
17 .  in \\n[tmp]u
19 .blm blm-macro
21 .HX 0
23 .defcolor mydarkred rgb 0.65f 0.1f 0.2f
24 .defcolor mydarkgreen rgb 0.1f 0.5f 0.2f
25 .defcolor mydarkblue rgb 0.1f 0.2f 0.6f
27 .ds GNU \m[mydarkred]G\m[]\m[mydarkgreen]N\m[]\m[mydarkblue]U\m[]
29 .HTL
30 .NHR
32 Home of Groff (GNU Troff).
34 .HTML-IMAGE-LEFT
35 .PSPIC -L gnu.eps 2i 2i
36 .ie r ps4html \
37 .  nop \v'-0.66i'\h'2.0i'\s[100]\*[GNU] Troff\s0
38 .el \
39 .  nop \v'-0.66i'\h'2.0i'\s[60]\*[GNU] Troff\s0
40 .HTML-IMAGE-END
42 .HnS 1
43 .HR
44 GNU Troff
45 .URL http://\:groff.ffii.org/ (Groff)
46 \[em] a
47 .URL http://\:www.gnu.org/ GNU
48 project.
49 Hosted by
50 .URL http://\:ffii.org/ FFII .
51 .HR
52 .HnE
53 .LK
55 .DC T HE mydarkred
56 groff (GNU Troff) software
57 is a typesetting package which reads plain text mixed with
58 formatting commands and produces formatted output.
59 Groff now supports HTML.
62 .SH
63 Download
65 The source code of the currently released versions of groff is
66 available at the 
67 .URL "ftp://\:groff.ffii.org/\:pub/\:groff/" "FFII host (Germany)" ,
68 .URL "ftp://\:ftp.gnu.org/\:gnu/\:groff/" "GNU host (USA)" ,
69 and its mirrors.
71 The USA site also contains more old, obsolete versions.
73 The most actual pre-release, development version is available from a
74 CVS repository, see below.
76 Development snapshots (produced twice a day from the CVS repository)
77 can be downloaded with FTP from
78 .URL "ftp://\:groff.ffii.org/\:pub/\:groff/devel" here .
80 For a special version of groff on the Microsoft operating systems, see
81 .URL "http://\:gnuwin32.sf.net/\:packages/\:groffl.htm" "Groff for Windows" .
83 GNU troff is released under the
84 .URL http://\:www.gnu.org/\:copyleft/\:gpl.html "GNU Copyright License" .
86 User issues lead:
87 .MTO Ted.Harding@\:nessie.mcc.ac.uk "Ted Harding"
88 .br
89 Technical issues lead:
90 .MTO wl@\:gnu.org "Werner Lemberg"
93 .SH
94 README
96 This is the GNU groff document formatting system.
97 The version number is given in the file VERSION.
99 Included in this release are implementations of troff, pic, eqn, tbl,
100 grn, refer, \-man, \-mdoc, and \-ms macros, and drivers for PostScript,
101 TeX dvi format, HP LaserJet 4 printers, Canon CAPSL printers, HTML format
102 (still alpha), and typewriter-like devices.
103 Also included is a modified version of the Berkeley \-me macros, an enhanced
104 version of the X11 xditview previewer, and an implementation of the \-mm
105 macros contributed by
106 .MTO jh@\:axis.se "J\[:o]rgen H\[:a]gg" .
108 See the file INSTALL for installation instructions.
109 You will require a C++ compiler.
111 The file NEWS describes recent user-visible changes to groff.
113 Groff is free software.
114 See the file COPYING for copying permission.
116 The file PROBLEMS describes various problems that have been encountered in
117 compiling, installing, and running groff.
119 The most recent released version of groff is always available by anonymous
120 ftp from ftp.gnu.org in the directory pub/\:gnu/\:groff.
122 A CVS repository is available, containing the current development
123 version of groff.
124 You can access it with the commands
126 .in 2m
128 .ft C
129 export CVSROOT=:pserver:anoncvs@anoncvs.ffii.org:/var/cvs
130 cvs login
131 cvs -z9 co groff
132 .ft P
136 (if the prompt for the password appears, just press the enter key).
137 After a successful login you no longer need the first two commands; an
138 update of a checked out repository should be done with
140 .in 2m
141 .ft C
142 cvs -z9 update -dP
143 .ft P
146 Please read the info pages of cvs for further details.
148 Alternatively, you can download snapshots (which are updated twice a day)
149 from
150 .URL ftp://\:ftp.ffii.org/\:pub/\:groff/\:devel/\:groff-current.tar.gz here
151 or a diff file relative to the latest official groff release as
153 .in 2m
154 .ft C
155 ftp://ftp.ffii.org/pub/groff/devel/groff-\[la]version\[ra]-current.diff.gz
156 .ft P
159 Assuming that groff-\[la]version\[ra].tar.gz and
160 groff-\[la]version\[ra]-current.diff.gz are in the same directory, do the
161 following to apply the diff file:
163 .in 2m
165 .ft C
166 tar xzvf groff-\[la]version\[ra].tar.gz
167 cd groff-\[la]version\[ra]
168 gunzip -c ../groff-\[la]version\[ra]-current.diff.gz | patch -p1
169 .ft P
173 Finally, it is possible to access the CVS with a browser by pointing it
176 .in 2m
177 .URL http://www.ffii.org/cgi-bin/viewcvs.cgi/groff \
178      http://www.ffii.org/cgi-bin/viewcvs.cgi/groff
181 Please report bugs using the form in the file BUG-REPORT; the idea of this
182 is to make sure that FSF has all the information it needs to fix the bug.
183 At the very least, read the BUG-REPORT form and make sure that you supply
184 all the information that it asks for.
185 Even if you are not sure that something is a bug, report it using
186 BUG-REPORT: this will enable us to determine whether it really is a bug or
187 not.
189 Three mailing lists are available:
191 .ULS
193 .MTO bug-groff@gnu.org bug-groff@gnu.org
194 for reporting bugs
197 .MTO groff@ffii.org groff@ffii.org
198 for general discussion of groff
201 .MTO groff-commit@ffii.org groff-commit@ffii.org
202 a read-only list showing logs of commitments to the CVS repository
203 .ULE
205 Note that groff@gnu.org is an alias for
206 .MTO groff@\:ffii.org groff@\:ffii.org ;
207 you must be subscribed to the `groff' list to send mails.
209 To subscribe, send e-mail to \[la]list\[ra]-request@\[la]domain\[ra]
210 (example:
211 .MTO groff-request@\:ffii.org groff-request@\:ffii.org )
212 with the word `subscribe' in either the
213 subject or body of the e-mail (don't include the quotes) or have a look
214 at the
215 .URL http://\:ffii.org/\:mailman/\:listinfo/\:groff/ \
216      "groff mailing list webpage" .
218 GNU groff was written by
219 .MTO jjc@\:jclark.com "James Clark" .
220 It is now maintained by
221 .MTO Ted.Harding@\:nessie.mcc.ac.uk "Ted Harding"
223 .MTO wl@\:gnu.org "Werner Lemberg" .
227 NEWS VERSION 1.19.1
229 .SH 2
230 groff
232 .ULS
234 The argument of the command line option `\-I' is now also passed to troff
235 and grops, specifying a directory to search for files on the command line,
236 files named in `so' and `psbb' requests, and files named in \eX'ps:\~file'
237 and \eX'ps:\~import' escapes.
240 If option `\-V' is used more than once, the commands will be both printed
241 on standard error and run.
242 .ULE
245 .SH 2
246 troff
248 .ULS
250 Two new read-only, string-valued registers `.m' and `.M' return the
251 name of the current drawing and background color, respectively.
254 New read-only register `.U' which is set to\~1 if in safer mode and set
255 to\~0 if in unsafe mode.
258 An input encoding file for \%latin-5 (a.k.a.\& ISO \%8859-9) has been
259 added.
260 Example use:
262 .in 2m
263 .ft C
264 groff \-Tdvi \-mlatin5 my_file > my_file.dvi
265 .ft R
268 Note that some output devices don't support all glyphs of this encoding.
271 If the `return' request is called with an argument, it exits twice,
272 namely the current macro and the macro one level higher.
273 This is used to define a wrapper macro for `return' in trace.tmac.
276 For completeness, two new requests have been added: `dei1' and `ami1'.
277 They are equivalent to `dei' and `ami', respectively, but the macros
278 are executed with compatibility mode off (similar to `de1' and `am1').
281 New command line option `\-I' to specify a directory for files (both
282 those on the command line and those named in `psbb' requests).
283 This is also handled by the groff wrapper program.
286 Since version 1.19 you can say `.vs\~0'.
287 Older versions emit a warning and convert this to `.vs\~\en[.V]'.
289 This hasn't been documented properly.
290 Note that `.vs\~0' isn't saved in a diversion since it doesn't result
291 in vertical motion.
292 .ULE
295 .SH 2
298 .ULS
300 Dashed and dotted ellipses have been implemented.
301 .ULE
304 .SH 2
307 .ULS
309 New key character `x' to make tbl call a user-defined macro on a table
310 cell.
311 Patch by
312 .MTO hj.oertel@\:surfeu.de "Heinz-Jürgen Oertel" .
313 .ULE
316 .SH 2
317 grap2graph
319 .ULS
321 A new script contributed by
322 .MTO esr@\:thyrsus.com "Eric S. Raymond" .
323 It converts a grap diagram into a cropped image.
324 Since it uses gs and the PNM library, virtually all graphics formats
325 are available for output.
326 [Note that the grap program itself isn't part of the groff package;
327 see the file MORE.STUFF how to obtain grap.]
328 .ULE
331 .SH 2
332 grohtml
334 .ULS
336 New option `\-j' to emit output splitted into multiple files.
337 .ULE
340 .SH 2
341 grops
343 .ULS
345 New command line option `\-I' to specify a directory to search for files
346 on the command line and files named in \eX'ps:\~import' and \eX'ps:\~file'
347 escapes.
348 This is also handled by the groff wrapper program.
351 The default value for the `broken' keyword in the DESC file is now\~0.
352 .ULE
355 .SH 2
356 grolj4
358 .ULS
360 A new man page `lj4_font(5)' documents how fonts are accessed with
361 grolj4.
364 The built-in fonts for LJ4 and newer PCL\~5 devices have been completely
365 revised, mainly to access as much glyphs as possible.
366 The provided metric files should be compatible with recent PCL\~5 printers
367 also.
368 Additionally, font description files have been added for the Arial and
369 Times New Roman family, the MS symbol, and Wingdings fonts.
370 .ULE
373 .SH 2
374 afmtodit
376 .ULS
378 New option `\-x' to prevent use of built-in Adobe Glyph List.
379 .ULE
382 .SH 2
383 hpftodit
385 .ULS
387 Completely revised to handle HP TrueType metric files also.
388 See the hpftodit manual page for more details.
389 .ULE
392 .SH 2
393 groffer
395 .ULS
397 This version is a rewrite of groffer in many parts, but it is kept in
398 the old single script style.
400 .ULS
402 New options: \-\-text (\-\-mode\~text), \-\-tty-viewer, \-\-X (\-\-mode\~X),
403 \-\-X-viewer, \-\-html (\-\-mode\~html), \-\-html-view, \-\-apropos-data,
404 \-\-apropos-devel, \-\-apropos-progs.
407 New documentation file README_SH.
410 Enhancement of the configuration files and the `apropos' handling.
411 .ULE
412 .ULE
415 .SH 2
416 macro packages
418 .ULS
420 www.tmac: New macro `JOBNAME' to split output into multiple files.
423 In mdoc, multiple calls to `.Lb' are now supported in the LIBRARY
424 section.
425 .ULE
429 NEWS VERSION 1.19
431 .SH 2
432 troff
434 .ULS
436 Input encoding files for \%latin-9 (a.k.a.\& \%latin-0 and ISO \%8859-15)
437 and \%latin-2 (ISO \%8859-2) have been added.
438 Example use:
440 .in 2m
441 .ft C
442 groff -Tdvi -mlatin9 my_file > my_file.dvi
443 .ft P
446 You still need proper fonts with the necessary glyphs.
447 Out of the box, the groff package supports \%latin-9 only for \-Tps,
448 \-Tdvi, and \-Tutf8, and \%latin-2 only for \-Tdvi and \-Tutf8.
451 Composite glyphs are now supported.
452 To do this, a subset of the Adobe Glyph List (AGL) Algorithm as described in
453 .URL http://partners.adobe.com/asn/tech/type/unicodegn.jsp \
454      http://partners.adobe.com/asn/tech/type/unicodegn.jsp
455 is used to construct glyph names based on Unicode character codes.
456 The existing groff glyph names are frozen; no glyph names which can't be
457 constructed algorithmically will be added in the future.
459 The \e[...] escape sequence has been extended to specify multiple glyph
460 components.
461 Example:
463 .in 2m
464 .ft C
465 \e[A ho]
466 .ft R
469 this accesses a glyph with the name `u0041_0328'.
471 Some groff glyphs which are useful as composites map to `wrong' Unicode
472 code points.
473 For example, `ho' maps to U+02DB which is a spacing ogonek, whereas a
474 non-spacing ogonek U+0328 is needed for composite glyphs.
475 The new request
477 .in 2m
478 .ft C
479 \&.composite from to
480 .ft R
483 will change the mapping while a composite glyph name is constructed.
484 To make \e[A\~ho] yield the expected result,
486 .in 2m
487 .ft C
488 \&.composite ho u0328
489 .ft R
492 is needed.
493 [The new file `composite.tmac' loaded at start-up already
494 contains proper calls to `.composite'.]
496 Please refer to the info pages of groff and to the groff_char man page
497 for more details.
500 A new request `fschar' has been added to define font-specific fallback
501 characters.
502 They are searched after the list of fonts declared with the
503 `fspecial' request but before the list of fonts declared with `special'.
506 Fallback characters defined with `fschar' can be removed with the
507 new `rfschar' request.
510 A new request `schar' has been added to define global fallback
511 characters.
512 They are searched after the list of fonts declared with the
513 `special' request but before the already mounted special fonts.
516 In groff versions 1.18 and 1.18.1, \eD'f\~...'\& didn't move the current
517 point horizontally.
518 Despite of being silly, this change has been reverted for backwards
519 compatibility.
520 Consequently, the intermediate output command `Df' also moves the 
521 position horizontally again.
523 \eD'f\~...'\& is deprecated since it depends on the horizontal resolution
524 of the output device (given with the `hor' parameter in the DESC file).
525 Use the new \eD'Fg\~...'\& escape instead.
528 For orthogonality, new \eD subcommands to change the fill color are
529 available:
531 .in 2m
532 .ft C
533 \eD'Fr ...' \f[R](rgb)\f[]
535 \eD'Fc ...' \f[R](cmy)\f[]
537 \eD'Fg ...' \f[R](gray)\f[]
539 \eD'Fk ...' \f[R](cmyk)\f[]
541 \eD'Fd' \f[R](default color)\f[]
542 .ft R
545 The arguments are the same as with the `defcolor' request.
546 The current position is \f[I]not\f[] changed.
549 The values set with \eH and \eS are now available in number registers
550 \en[.height] and \en[.slant], respectively.
553 The `.pe' number register isn't new but hasn't been documented before.
554 It is set to\~1 during a page ejection caused by the `bp' request.
557 The new glyph symbol `tno' is a textual variant of `no'.
560 The new glyph symbol `+e' represents U+03F5, GREEK LUNATE EPSILON SYMBOL.
561 (Well, it is not really new since it has been previously supported by
562 grolj4.)
563 The mapping for both the dvi and lj4 symbol font has been
564 changed accordingly so that Greek small letter epsilon, `*e', has the
565 same glyph shape as with other devices.
566 .ULE
569 .SH 2
570 grops
572 .ULS
574 The font `freeeuro.pfa' has been added to provide various default glyph
575 shapes for `eu' and `Eu'.
578 It is now possible to access all glyphs in a Type\~1 font, not only 256
579 (provided the font file created by afmtodit has proper entries).
580 grops constructs additional encoding vectors on the fly if necessary.
583 The paper size is now emitted via the %%DocumentMedia and PageSize
584 mechanisms so that it is no longer required to tell `gv' or `ps2pdf'
585 about the paper size.
586 The `broken' flag value\~16 omits this feature
587 (the used PostScript command `setpagedevice' is a LanguageLevel\~2
588 extension).
589 Patch by
590 .MTO egil@\:kvaleberg.no "Egil Kvaleberg" .
593 Non-slanted PostScript metrics have been changed again; they no longer
594 contain negative left italic correction values.
595 This assures correct spacing with eqn.
596 .ULE
599 .SH 2
600 grodvi
602 .ULS
604 The font cmtex10 has been added as the special font `SC' to the DVI fonts.
605 It is used as a font-specific special font for CW and CWI.
608 New options \-l and \-p to set landscape orientation and the paper size.
609 grodvi now emits a `papersize' special which is understood by DVI drivers
610 like dvips.
612 Consequently, the DESC file should contain a `papersize' keyword.
615 The glyph shapes for \e[*f] and \e[*e] have been exchanged with \e[+f] and
616 \e[+e], respectively, to be in sync with all other devices.
619 Glyphs \e[HE] and \e[DI] have been replaced with \e[u2662] and \e[u2661],
620 respectively, since the former two glyphs have a black (filled) shape
621 which grodvi doesn't provide by default (it never has actually).
622 .ULE
625 .SH 2
626 grolj4
628 .ULS
630 The glyphs \e[*e] and \e[+e] have been exchanged to be in sync with
631 all other devices.
634 The glyph \e[~=] is now called \e[|=].  Similar to other devices, \e[~=]
635 is now another name for glyph \e[~~].
636 .ULE
639 .SH 2
640 grotty
642 .ULS
644 New option `\-r'.
645 It is similar to the \-i option except it tells grotty to
646 use the `reverse video' attribute to render italic fonts.
647 .ULE
650 .SH 2
653 .ULS
655 New command `figname' to set the name of a picture's output box in TeX
656 mode.
657 .ULE
660 .SH 2
661 refer
663 .ULS
665 The environment variable `REFER' to override the name of the default
666 database isn't new but hasn't been documented before.
667 .ULE
670 .SH 2
671 soelim
673 .ULS
675 New option `\-r' to avoid emission of `.lf' lines.
678 New option `\-t' to emit TeX comment lines (giving current file and the
679 line number) instead of `.lf' lines.
680 .ULE
683 .SH 2
684 afmtodit
686 .ULS
688 Unencoded glyphs in an AFM file are output also (since grops can now emit
689 multiple encoding vectors for a single font).
692 New option `\-m' to prevent negative left italic correction values.
695 The mapping and encoding file together with file `DESC' are now searched
696 in the default font directory also.
697 Please refer to the man page of afmtodit for more details.
698 .ULE
701 .SH 2
702 macro packages
704 .ULS
706 .MTO kollar@\:alltel.net "Larry Kollar"
707 and others made the man macros more customizable.
709 .ULS
711 New command line options \-rFT, \-rIN, and \-rSN to set the vertical
712 location of the footer line, the body text indentation, and the
713 sub-subheading indentation.
716 New command line option \-rHY (similar to the ms macros) to control
717 hyphenation.
720 New macros `.PT' and `.BT' to print the header and footer strings.
721 They can be replaced with a customized version in `man.local'.
724 The string `HF' now holds the typeface to print headings and
725 subheadings.
728 Similar to the ms macros, the LT register now defaults to LL if not
729 explicitly specified on the command line.
730 .ULE
733 troff's start-up file `troffrc' now includes `papersize.tmac' to set
734 the paper size with the command line option `-dpaper=<size>'.
736 Possible values for `<size>' are the same as the predefined `papersize'
737 values in the DESC file (only lowercase; see the groff_font man page)
738 except \%a7-d7.
739 An appended `l' (ell) character denotes landscape orientation.
740 Examples: `a4', `c3l', `letterl'.
742 Most output drivers need additional command line switches `\-p' and
743 `\-l' to override the default paper length and orientation as set in
744 the driver specific DESC file.
746 For example, use the following for PS output on A4 paper in landscape
747 orientation:
749 .in 2m
750 .ft C
751 groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps
752 .ft R
754 .ULE
758 NEWS VERSION 1.18.1
760 .SH 2
761 troff
763 .ULS
765 The non-slanted PostScript font definition files have been regenerated to
766 include left and right italic correction values.
767 Applying those to a glyph (this is, prepending the glyph with `\e,' and
768 appending `\e/' to the glyph) sets the glyph width to the real value given
769 by the horizontal bounding box values.
770 Without those escapes, the advance width for the particular glyph is used
771 (which can differ considerably).
773 Most users will neither need this feature nor notice a difference in
774 existing documents (provided \e, and \e/ is used as advertised, namely for
775 italic fonts only); its main goal is to improve image generation with
776 grohtml.
778 This is an experimental change, and feedback is welcome.
779 .ULE
781 .SH 2
784 .ULS
786 Added global option `nospaces' to ignore leading and trailing spaces in data
787 items.
788 .ULE
790 .SH 2
791 grolbp
793 .ULS
795 The option \-w (\-\-linewidth) has been added (similar to other device
796 drivers) to set the default line width.
797 .ULE
799 .SH 2
802 .ULS
804 Support for b-spline and Bezier curves has been added.
805 .ULE
807 .SH 2
808 groffer
810 .ULS
812 New option \-\-shell to select the shell under wich groffer shall run.
813 .ULE
815 .SH 2
816 Macro Packages
818 .ULS
820 The string `Am' (producing an ampersand) has been added to mdoc for
821 compatibility with NetBSD.
824 `.IX' is now deprecated for mom; you should use `.IQ' (Indent Quit)
825 instead.
828 In mom, new inlines `FWD', `BCK', `UP', and `DOWN' deal with horizontal
829 and vertical movements; please refer to contrib/mom/NEWS for more
830 details.
833 New macro ENDNOTES_HDRFTR_CENTER for mom to better control headers.
834 .ULE
836 .SH 2
837 Miscellaneous
839 .ULS
841 The `papersize' keyword in the DESC file now accepts multiple arguments.
842 It is scanned from left to the right, and the first valid argument is used.
843 This makes it possible to provide a fallback paper size.
845 Example:
847 .in 2m
848 .ft C
849 papersize /etc/papersize a4
850 .ft P
854 A local font directory has been prepended to the default font path; it
855 defaults to /usr/local/share/groff/site-font.  Similar to the normal
856 font searching process, files must be placed into a dev\f[I]XXX\f[]
857 subdirectory, e.g.
859 .in 2m
860 .ft C
861 /usr/local/share/groff/site-font/devps/FOO
862 .ft P
865 for a PostScript font definition file FOO.
866 .ULE
870 NEWS VERSION 1.18
872 This section describes recent user-visible changes in groff.
873 Bug fixes are not described.
874 There are more details in the man pages.
876 .ad c
877 \s[+5]\m[red]\
878 Please read the changes below regarding
879 .ie '\*[.T]'html' \
880 .  URL #grotty grotty ,
881 .el \
882 .  nop grotty,
883 groff's tty frontend.\
884 \m[]\s[0]
886 .ad n
888 .SH 2
889 Troff
891 .ULS
893 Color support has been added to troff and pic (and to the device drivers
894 grops, grodvi, grotty, and grohtml -- other preprocessors and drivers will
895 follow).
896 A new function `defcolor' defines colors; the escape sequence `\em' sets the
897 drawing color, the escape sequence `\eM' specifies the background color for
898 closed objects created with \eD'.\|.\|.' commands.
899 `\em[]' and `\eM[]' switch back to the previous color.
900 `\em' and `\eM' correspond to the new troff output command sets starting
901 with `m' and `DF'.
902 The device-specific default color is called `default' and can't be
903 redefined.
905 Use the `color' request to toggle the usage of colors (default is on); the
906 read-only register `.color' is\~0 if colors are not active, and non-zero
907 otherwise.
909 The old `Df' output command is mapped onto `DFg'; all color output
910 commands don't change the current font position (consequently, `Df'
911 doesn't either).
913 Outputting color can be disabled in troff and groff with the option\~\-c
914 (it is always disabled in compatibility mode).
915 See the section on grotty for the
916 .ie '\*[.T]'html' \
917 .  URL #GROFF_NO_SGR GROFF_NO_SGR
918 .el \
919 . nop GROFF_NO_SGR
920 environment variable also.
922 For defining color components as fractions between 0 and\~1, a new scaling
923 indicator `f' has been defined: 1f\~=\~65536u.
924 For testing whether a color is defined (with .if and .ie), a new
925 conditional operator `m' is available.
927 More details can be found in the groff_diff.7 manual page and in
928 groff.texinfo.
931 Similar to \em and \eM, \ef[] switches back to the previous font.
932 \efP (and \ef[P]) is still valid for backwards compatibility.
935 The new escape \eF is the same as `.fam'; \eF[] switches back to previous
936 family -- \eF[P] selects family `P'.
939 Two new glyph symbols are available: `eu' is the official Euro symbol;
940 `Eu' is a font-specific glyph variant.
943 The new glyph symbols `t+\-', `tdi', and `tmu' are textual variants of
944 `+\-', `di', and `mu', respectively.
947 Latin-1 character 181 (PS name `mu', Unicode name U+00B5 MICRO SIGN) has
948 got the troff glyph name `mc'.
951 \-Tutf8 is now available on EBCDIC hosts.
954 Strings can take arguments, using this syntax: \e*[foo\~arg1\~arg2\~.\|.\|.].
955 Example:
957 .in 2m
959 .ft C
960 \&.ds xxx This is a \e\e$1 test.
961 \e*[xxx nice]
962 .ft P
967 It is now possible to have whitespace between the first and second dot (or
968 the name of the ending macro) to end a macro definition.
969 Example:
971 .in 2m
973 .ft C
974 \&.de !
975 \&..
977 \&.de foo
978 \&.  nop Hello, I'm `foo'.
979 \&.  nop I will now define `bar'.
980 \&.  de bar !
981 \&.    nop Hello, I'm `bar'.
982 \&.  !
983 \&..
984 .ft P
989 `.fn' is a new string-valued register which returns the (internal) real
990 font name; styles and families are properly concatenated.
993 Three new read/write registers `seconds', `minutes', and `hours' contain
994 the current time, set at start-up of troff.
995 Use the `af' request to control their output format.
998 The new request `fchar' can be used to provide fallback characters.
999 It has the same syntax as the `char' request; the only difference is that
1000 a character defined with `.char' hides the glyph with the same name in the
1001 current font, whereas a character defined with `.fchar' is checked only if
1002 the particular glyph isn't found in the current font.
1003 This test happens before checking special fonts.
1006 In analogy to the `tmc' request, `.writec' is the same as `.write' but
1007 doesn't emit a final newline.
1010 The new request `itc' is a variant of `.it' for which a line interrupted
1011 with \ec counts as one input line.
1014 Two new requests `ds1' and `as1' which are similar to `ds' and `as' but
1015 with compatibility mode disabled during expansion of strings defined by
1016 them.
1019 The syntax of the `substring' request has been changed:
1020 The first character in a string now has index\~0, the last character
1021 has index\~\-1.
1022 Note that this is an incompatible change.
1025 To emit strings directly to the intermediate output, a new `output'
1026 request has been added; it is similar to `\e!' used at the top level.
1029 `.hpf' has been extended.
1030 It can now handle most TeX hyphenation pattern files without
1031 modification.
1032 To do that, the commands \epatterns, \ehyphenation, and \eendinput are
1033 recognized.
1034 Please refer to groff_diff.7 for more information.
1037 `hpfcode' is a new request to provide an input encoding mapping for the
1038 `hpf' request.
1041 The new request `hpfa' appends hyphenation patterns (`hpf' replaces
1042 already existing patterns).
1045 A new request `ami' (append macro indirect) has been added.
1046 The first and second parameter of `ami' are taken from string registers
1047 rather than directly; this very special request is needed to make
1048 `trace.tmac' independent from the escape character (which might even
1049 be disabled).
1052 The new request `sizes' is similar to the `sizes' command in DESC files.
1053 It expects the same syntax; the data must be on a single line, and the
1054 final `0' can be omitted.
1057 `trin' (translate input) is a new request which is similar to `tr' with
1058 the exception that the `asciify' request will use the character code (if
1059 any) before the character translation.
1060 Example:
1062 .in 2m
1064 .ft C
1065 \&.trin ax
1066 \&.di xxx
1068 \&.br
1069 \&.di
1070 \&.xxx
1071 \&.trin aa
1072 \&.asciify xxx
1073 \&.xxx
1074 .ft P
1078 The result is `x\~a'.  Using `tr', the result would be `x\~x'.
1081 The request `pvs' isn't new, but hasn't been documented before.
1082 It adds vertical space after a line has been output.
1083 This makes it an alternative to the `ls' request to produce
1084 double-spaced documents.
1085 The read-only register `.pvs' holds the current amount of the
1086 post-vertical line space.
1089 For compatibility with plan 9's troff, multiple `pi' requests are
1090 supported:
1092 .in 2m
1094 .ft C
1095 \&.pi foo
1096 \&.pi bar
1097 .ft P
1101 is now equivalent to
1103 .in 2m
1104 .ft C
1105 \&.pi foo | bar
1106 .ft P
1110 A new escape sequence `\eO' is available to disable and enable glyph
1111 output.
1112 Please see groff_diff.man and groff.texinfo for more details.
1115 The escapes `\e%', `\e&', `\e)', and `\e:' no longer cause an error in \eX;
1116 they are ignored now.
1117 Additionally `\e\ ' and `\e~' are converted to single space characters.
1120 The default tab distance in nroff mode is now 0.8i to be compatible
1121 with UNIX troff.
1124 Using the latin-1 input character 0xAD (soft hyphen) for the `shc'
1125 request was a bad idea.
1126 Instead, it is now translated to `\e%', and the default hyphenation
1127 character is again \e[hy].
1128 Note that the glyph \e[shc] is not useful for typographic purposes;
1129 it only exists to have glyph names for all latin-1 characters.
1130 .ULE
1132 .SH 2
1133 Macro Packages
1135 .ULS
1137 .MTO df191@\:ncf.ca "Peter Schaffter"
1138 has contributed a new major macro package called `mom', mainly for
1139 non-scientific writers, which takes care of many typographic issues.
1140 It comes with a complete reference (in HTML format) and some examples.
1141 `mom' has been designed to format documents for PostScript output only.
1144 Two macros `AT' (AT&T) and `UC' (Univ. of California) have been added to
1145 the man macros for compatibility with older BSD releases.
1148 Both the man and mdoc macro packages now use the LL and LT registers for
1149 setting the line and title length, respectively (similar to those
1150 registers in the ms macro package).
1151 If not set on the command line or in a macro file loaded before the macro
1152 package itself, they default to 78n in nroff mode and 6.5i in troff mode.
1155 The `\-xwidth' specifier in the mdoc macro package has been removed.
1156 Its functionality is now integrated directly into `\-width'.
1157 Similarly, `\-column' has been extended to has this functionality also.
1160 A new macro `Ex' has been added to the mdoc macro package to document an
1161 exit status.
1164 `troff.man' has been split.  Differences to UNIX troff are now documented
1165 in the new man page `groff_diff.man'.
1168 The PSPIC macro has been extended to work with DVI output (`pspic.tmac' is
1169 now automatically loaded for \-Tdvi), using a dvips special to load the EPS
1170 file.
1173 The trace.tmac package now traces calls to `am' also.
1174 Additionally, it works in compatibility mode.
1177 `troff.1' has been split.
1178 Differences to UNIX troff are now documented in the new man page
1179 `groff_diff.7'.
1182 `groff_mwww.7' has been renamed to `groff_www.7'.
1183 The file mwww.tmac has been removed.
1186 `groff_ms.7' has been completely rewritten.
1187 It now contains a complete reference to the ms macros.
1190 `groff_trace.7' documents the trace macro package.
1193 Changes in www.tmac
1195 Note that HTML support is still in alpha change, so it is rather likely
1196 that both macro names and macro syntax will change.
1197 Some of the macros mentioned below aren't really new but haven't been
1198 documented properly before.
1200 .ULS
1202 The following macros have been renamed:
1204 .in 2m
1206 MAILTO -> MTO
1207 IMAGE  -> IMG
1208 LINE   -> HR
1213 For consistency, the macros `URL', `FTL', and `MTO' now all have the
1214 address as the first parameter followed by the description.
1217 By default, grohtml generates links to all section headings at the top
1218 of the document.
1219 Use the new `LK' macro to specify a different place.
1222 For specifying the background color and a background image, use the
1223 new macros `BCL' and `BGIMG', respectively.
1226 The macro `NHR' has been added; it suppresses the generation of top and
1227 bottom rules which grohtml emits by default.
1230 The new macro `HX' determines the cut-off point for automatic link
1231 generation to headings.
1234 The image position parameter names in `IMG' have been changed to `\-L',
1235 `\-R', and `\-C'.
1238 New macro `PIMG' for inclusion of a PNG image (it will automatically
1239 convert it into an EPS file if not \-Thtml is used).
1242 New macro `MPIMG' for putting a PNG image into the left or right margin
1243 (it will automatically convert it into an EPS file if not \-Thtml is used).
1246 New macros `HnS', `HnE' to start and end a header line block.
1249 New macro `DC' to produce dropcap characters.
1252 New macro `HTL' to generate an HTML title line only but no H1 heading.
1255 New macros `ULS' and `ULE' to start and end an unordered list.
1256 The new macro `LI' inserts a list item.
1257 .ULE
1258 .ULE
1261 .SH 2
1262 groff
1264 .ULS
1266 The new command line `\-c' disables color output (which is always disabled
1267 in compatibility mode).
1268 .ULE
1271 .SH 2
1272 Nroff
1274 .ULS
1276 Two new command line options `\-c' and `\-C'; the former passes `\-c' to
1277 grotty (switching to the old output scheme); the latter passes `\-C' to
1278 groff (enabling compatibility mode).
1279 .ULE
1282 .SH 2
1285 .ULS
1287 New keywords `color' (or `colour', `colored', `coloured'), `outline' (or
1288 `outlined'), and `shaded' are available.
1289 `outline' sets the color of the outline, `shaded' the fill color, and
1290 `color' sets both.
1291 Example:
1293 .in 2m
1294 .ft C
1295 circle shaded "green" outline "black" ;
1296 .ft P
1299 Filled arrows always use the outline color for filling.
1301 Color support for TeX output is not implemented yet.
1302 .ULE
1305 .SH 2
1306 Pic2graph
1308 .ULS
1310 A new script contributed by
1311 .MTO esr@\:thyrsus.com "Eric S.\~Raymond" .
1312 It converts a PIC diagram into a cropped image.
1313 Since it uses gs and the PNM library, virtually all graphics formats
1314 are available for output.
1315 .ULE
1318 .SH 2
1319 Eqn2graph
1321 .ULS
1323 A new script contributed by
1324 .MTO esr@\:thyrsus.com "Eric S.\~Raymond" .
1325 It converts an EQN diagram into a cropped image.
1326 Since it uses gs and the PNM library, virtually all graphics formats
1327 are available for output.
1328 .ULE
1331 .SH 2
1332 Groffer
1334 .ULS
1336 A new script contributed by
1337 .MTO bwarken@mayn.de "Bernd Warken" .
1338 It displays groff files and man pages on X and tty, taking care of most
1339 parameters automatically.
1340 .ULE
1343 .SH 2
1344 Grog
1346 .ULS
1348 Documents using the mom macro package are recognized.
1349 .ULE
1352 .SH 2
1353 grops
1355 .ULS
1357 Color support has been added.
1360 A new option `\-p' is available to select the output paper size.
1361 It has the same syntax as the new `papersize' keyword in the DESC file.
1362 .ULE
1365 .SH 2
1366 Grodvi
1368 .ULS
1370 By default, font sizes are now available in the range 5\-10000pt, similar
1371 to PS fonts.
1372 If you want the old behaviour (i.e., font sizes at discrete values only),
1373 insert the following at the start of your document:
1375 .in 2m
1377 .ft C
1378 \&.if '\e*[.T]'dvi' \e
1379 \&.  sizes 500 600 700 800 900 1000 1095 1200 1400 1440 1600 \e
1380 \&         1728 1800 2000 2074 2200 2400 2488 2800 3600
1381 .ft P
1386 A new font file HBI (using cmssbxo10; this is slanted sans serif bold
1387 extended) has been added.
1390 Two font families are now available: `T' and `H'.
1393 EC and TC fonts have been integrated.
1394 Use `\-mec' (calling the file ec.tmac) to switch to them.
1395 Those fonts give a much better coverage of the symbols defined by groff
1396 than the CM fonts.
1398 Note that ec.tmac must be called before any language-specific files; it
1399 doesn't take care of hcode values.
1402 Color support has been added.
1403 For drawing commands, colors are translated to gray values currently.
1404 .ULE
1407 .TAG grotty
1408 .SH 2
1409 Grotty
1411 .ULS
1413 Color support has been added, using the SGR (ISO\~6429, sometimes called
1414 ANSI color) escape sequences.
1417 SGR escape sequences are now used by default for underlining and bold
1418 printing also, no longer using the backspace character trick.
1419 To revert to the old behaviour, use the `\-c' switch.
1421 Note that you have to use the `\-R' option of `less' to make SGR escapes
1422 display correctly.
1423 On the other hand, terminal programs and consoles like `xterm' which
1424 support SGR sequences natively can directly display the output of grotty.
1425 Consequently, the options `\-b', `\-B', `\-u', and `\-U' work only in
1426 combination with `\-c' and are ignored silently otherwise.
1428 For the `man' program, it may be necessary to add the `\-R' option of
1429 `less' to the $PAGER environment variable; alternatively, you can use
1430 `man's `\-P' option (or adapt its configuration file accordingly).
1431 See man(1) for more details.
1433 .TAG GROFF_NO_SGR
1435 If the environment variable GROFF_NO_SGR is set, SGR output is disabled,
1436 reverting to the old behaviour.
1439 A new special \eX'tty:\~sgr\~n' has been added; if n is non-zero or missing,
1440 enable SGR output (the default).
1443 If the new option `\-i' is used (only in SGR mode), grotty sends escape
1444 sequences to set the italic font attribute instead of the underline
1445 attribute for italic fonts.
1446 Note that many terminals don't have support for this (including xterm).
1447 .ULE
1450 .SH 2
1451 grohtml
1453 .ULS
1455 Color support for glyphs has been added.
1458 New option `\-h' to select the style of headings in HTML output.
1461 New option `\-b' to set the background colour to white.
1464 New options `\-a' and `\-g' to control the number of bits for anti-aliasing
1465 used for text and graphics, respectively.
1466 Default value is\~4; 0\~means no anti-aliasing.
1469 groff character/glyph entities now map onto HTML\~4 character entities.
1470 .ULE
1473 .SH 2
1474 Grolbp
1476 .ULS
1478 Valid paper sizes are now specified as with the new `papersize' keyword
1479 in the DESC file.
1480 Specifically, the old custom paper type format `custAAAxBBB' is no longer
1481 supported.
1482 .ULE
1485 .SH 2
1486 Miscellaneous
1488 .ULS
1490 A new manual page `ditroff.7' is available.
1493 The groff texinfo manual will now be installed, together with a bunch
1494 of examples.
1497 A new keyword `papersize' has been added to the DESC file format.
1498 Its argument is either
1500 .ULS
1502 a predefined paper format (e.g. `A4' or `letter')
1505 a file name pointing to a file which must contain a paper size
1506 specification in its first line (e.g. `/etc/papersize')
1509 a custom paper size definition like `35c,4i'
1510 .ULE
1512 See groff_font(5) for more details.
1513 This keyword only affects the physical dimensions of the output medium;
1514 grops, grolj4, and grolbp use it currently.
1515 troff completely ignores it.
1516 .ULE
1520 \s[-2]\f[I]This document was produced using
1521 .URL http://groff.ffii.org/ groff-\n[.x].\n[.y].\n[.Y] .
1523 The image at the top has been contributed by Imogen Mulley (born 1991),
1524 based on a similar picture found on the
1525 .URL http://www.gnu.org "GNU server" .
1527 .\" EOF