* doc/fdl.texi: Updated to version 1.2. Reported by Bernd Warken.
[s-roff.git] / doc / webpage.ms
blob94973ea65477b5fc9c61d7926b0157bca9065147
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
124 .URL "ftp://\:ftp.gnu.org/\:gnu/\:groff" "anonymous ftp" .
126 The current development version of groff is available from a
127 .URL "http://\:savannah.gnu.org/\:cvs/\:?group=groff" "CVS repository" .
128 You can access it by first selecting a parent directory in
129 which to create a working copy (call it, say, ~/cvswork), and then
130 executing the commands
132 .in 2m
134 .ft C
135 cd ~/cvswork
136 CVS_RSH=ssh; export CVS_RSH
137 cvs -d:ext:anoncvs@savannah.gnu.org/cvsroot/groff -z5 co groff
138 .ft P
142 (Note that you need an SSH client for security reasons.)
144 This will create a subdirectory, ~/cvswork/groff, with a `checked out'
145 copy of the CVS repository.
146 An update of this working copy may be
147 achieved, at any later time by invoking the commands
149 .in 2m
151 .ft C
152 cd ~/cvswork/groff
153 CVS_RSH=ssh cvs -z5 update -dP
154 .ft P
158 Please read the CVS info pages for further details.
160 Finally, it is possible to access the CVS with a
161 .URL http://\:savannah.gnu.org/\:cvs/\:?group=groff "web browser" .
163 Alternatively, you can download snapshots (which are updated twice a day).
164 The complete groff source as a single file is available
165 .URL http://\:groff.ffii.org/\:groff/\:devel/\:groff-current.tar.gz here .
167 A diff file relative to groff-\[la]version\[ra], the latest official groff
168 release is available at
170 .in 2m
171 .ft C
172 http://groff.ffii.org/groff/devel/groff-\[la]version\[ra]-current.diff.gz
173 .ft P
176 Assuming that groff-\[la]version\[ra].tar.gz and
177 groff-\[la]version\[ra]-current.diff.gz are in the same directory, do the
178 following to apply the diff file:
180 .in 2m
182 .ft C
183 tar xzvf groff-\[la]version\[ra].tar.gz
184 cd groff-\[la]version\[ra]
185 gunzip -c ../groff-\[la]version\[ra]-current.diff.gz | patch -p1
186 .ft P
190 Depending on your requirements, you may need at least some of the
191 following tools to build groff directly from its source:
193 .in 2m
195 ghostscript
196 the psutils package
197 the netpbm package
198 texinfo 4.8
199 bison \[>=] 1.875b or byacc
203 Note that texinfo and bison or byacc are required only for building from
204 CVS sources (either a checked out working copy, or a daily snapshot).
205 They are not required for building from a stable release tarball.
206 Also note that the version numbers stated are the minimum supported.
207 No version of texinfo < 4.8 will work, and the original release of bison
208 1.875 is known not to work; you \fImay\fP find that bison releases < 1.875
209 will work, but in case of difficulty, please update to a later version
210 \fIbefore\fP posting a bug report.
212 For \fIall\fP sources, you need ghostscript for creation of either PDF or
213 HTML output; the netpbm and psutils packages are required only for HTML
214 output.
215 If you don't intend to produce output in either of these formats, then
216 these packages are unnecessary.
218 Please report bugs using the form in the file BUG-REPORT; the idea of this
219 is to make sure that FSF has all the information it needs to fix the bug.
220 At the very least, read the BUG-REPORT form and make sure that you supply
221 all the information that it asks for.
222 Even if you are not sure that something is a bug, report it using
223 BUG-REPORT: this will enable us to determine whether it really is a bug or
224 not.
226 Three mailing lists are available:
228 .ULS
230 .MTO bug-groff@gnu.org bug-groff@gnu.org
231 for reporting bugs
234 .MTO groff@gnu.org groff@gnu.org
235 for general discussion of groff
238 .MTO groff-commit@gnu.org groff-commit@gnu.org
239 a read-only list showing commitments to the CVS repository
240 .ULE
242 You can post mails directly to the `bug-groff' list, without subscribing;
243 to post mails to the `groff' list you must subscribe to it.
245 To subscribe, send e-mail to \[la]list\[ra]-request@\[la]domain\[ra]
246 (example:
247 .MTO groff-request@\:gnu.org groff-request@\:gnu.org
248 for the `groff' list) with the word `subscribe' in either the
249 subject or body of the e-mail (don't include the quotes).
250 Alternatively, you may subscribe by visiting the web pages at
252 .in 2m
254 .URL http://lists.gnu.org/mailman/listinfo/bug-groff
255 .URL http://lists.gnu.org/mailman/listinfo/groff
256 .URL http://lists.gnu.org/mailman/listinfo/groff-commit
260 Each of these web pages also provides a link to a browseable archive of
261 postings to the corresponding mailing list.
263 GNU groff was written by
264 .MTO jjc@\:jclark.com "James Clark" .
265 It is now maintained by
266 .MTO Ted.Harding@\:nessie.mcc.ac.uk "Ted Harding"
268 .MTO wl@\:gnu.org "Werner Lemberg" .
272 NEWS VERSION 1.19.2
274 .SH 2 troff
276 .ULS
278 Analogously to the .ft and \ef pair, two new requests `gcolor' and
279 `fcolor' (which pair with \em and \eM, respectively) have been added to
280 set the glyph and background colours.
283 A new read-only, string-valued register `.sty' returns the name of the
284 current style.
287 Two new conditional operators `F\~\[la]name\[ra]' and `S\~\[la]name\[ra]'
288 have been added.
289 `F' is true if a font \[la]name\[ra] exists.
290 `S' is true if a style \[la]name\[ra] has been registered.
293 Cyrillic characters have been added to the `utf8' and `html' output
294 devices.
295 .ULE
298 .SH 2
301 .ULS
303 The `by' argument in a `for' loop can now be negative if it is additive.
304 For the multiplicative case, it must be greater than zero.
305 .ULE
308 .SH 2
311 .ULS
313 The following keywords aren't new but haven't been documented previously:
315 .in 2m
316 \fBundef NAME\fP (to undefine a macro)
318 \fBcopy "FILE"\fP (a synonym for `include')
320 \fBspace n\fP (to modify the vertical spacing before and after an equation)
324 The following macros aren't new but haven't been documented previously:
326 .in 2m
327 \fBAlpha, .\|.\|., Omega\fP (the same as `ALPHA', .\|.\|., `OMEGA')
329 \fBldots\fP (three dots on the base line)
331 \fBdollar\fP (a dollar glyph)
335 The following keywords have been extended.  Again, this isn't new but
336 hasn't been documented previously:
338 .in 2m
339 .ft B
340 col n { .\|.\|. }
342 lcol n { .\|.\|. }
344 rcol n { .\|.\|. }
346 ccol n { .\|.\|. }
348 pile n { .\|.\|. }
350 lpile n { .\|.\|. }
352 rpile n { .\|.\|. }
354 cpile n { .\|.\|. }
355 .ft P
356 (set vertical spacing between rows to\~N)
357 .ULE
360 .SH 2
361 grohtml
363 .ULS
365 This device driver has been raised to beta stage; its set of tags should
366 be stable now.
369 New command line option `\-s' to set the base point size.
372 New command line option `\-S' to set the split level while generating
373 multiple files.
374 .ULE
377 .SH 2
378 gxditview
380 .ULS
382 On platforms which have the X\~Window System this program is now built and
383 installed automatically.
384 .ULE
387 .SH 2
388 xtotroff
390 .ULS
392 This program to create font definition files for xditview isn't new but
393 hasn't been installed previously.
394 .ULE
397 .SH 2
398 groffer
400 .ULS
402 A security problem (reported as CAN-2004-0969) has been fixed.
403 .ULE
406 .SH 2
407 gdiffmk
409 .ULS
411 A new script contributed by Mike Bianchi.
412 It compares two groff, nroff, or troff documents and creates an output with
413 added margin characters (using `.mc') to indicate the differences.
414 .ULE
417 .SH 2
418 pdfroff
420 .ULS
422 A new wrapper script contributed by Keith Marshall to easily create PDF
423 documents with groff.
424 .ULE
427 .SH 2
428 macro packages
430 .ULS
432 ms.tmac
434 .ULS
436 Support for fractional point sizes: A value for the `PS', `VS', `FPS',
437 and `VPS' register larger than or equal to 1000 is always divided by 1000.
438 For example, `.nr\~PS\~10250' sets the document's font size to 10.25 points.
441 The `Ds' and `De' macros provided in ms since groff version 1.19 have
442 been removed; the equivalent `DS' and `DE' macros should be used instead.
443 X11 documents which actually use `Ds' and `De' always load a
444 specific macro file from the X11 distribution (`macros.t') which
445 provides proper definitions for the two macros.
448 The following registers have been added for improving layout control:
450 .IP PORPHANS
451 Defines number of lines following `LP', `PP', `QP', `IP' or `XP' which
452 must be kept together, before any automatic page break.
454 .IP HORPHANS
455 Sets number of lines of following paragraph which must be kept with a
456 heading, defined by `NH' or `SH', before any automatic page break.
458 .IP GROWPS
459 Sets the first level of heading (set with `NH') which will keep the
460 same point size as body text.
462 .IP PSINCR
463 Sets the point size increment for each level of heading (set with
464 `NH'), below the threshold level set by `GROWPS'; e.g., if
465 \en[PS]\~=\~10, \en[GROWPS]\~=\~3 and \en[PSINCR]\~=\~2.0p, then `.NH\~1'
466 will produce 14pt headings, `.NH\~2' will produce 12pt, and all other levels
467 will remain at 10pt (because \en[PS]\~=\~10).
470 The `SH' macro now accepts a numeric argument, to make heading size
471 match that of `NH' with same argument value when the `GROWPS'/`PSINCR'
472 feature is enabled.
473 .ULE
475 Please refer to the documentation of the ms package for other, minor
476 improvements.
479 me.tmac
481 The section type set with the `++' request is available in the `_M'
482 register.
483 This isn't new but hasn't been documented before.
486 www.tmac
488 The `HR' macro no longer causes an empty line for non-HTML devices.
490 A new macro `HEAD' has been added to directly add data to the
491 <head>...</head> block.
493 New macros `OLS' and `OLE' to start and end an ordered list.
495 New macros `DLS' and `DLE' to start and end a definition list.
496 .ULE
499 .SH 2
500 pdfmark
502 .ULS
504 A new macro package contributed by Keith Marshall which implements PDF
505 marks.
506 This is in alpha stage currently.
507 .ULE
510 .SH 2
511 miscellaneous
513 .ULS
515 Two new keywords to the DESC file have been added which are needed for
516 grohtml: `image_generator' and `unscaled_charwidths'.
517 The former gives the name of the program which creates PNG images,
518 and the latter makes troff always use unscaled character widths.
519 .ULE
523 NEWS VERSION 1.19.1
525 .SH 2
526 groff
528 .ULS
530 The argument of the command line option `\-I' is now also passed to troff
531 and grops, specifying a directory to search for files on the command line,
532 files named in `so' and `psbb' requests, and files named in \eX'ps:\~file'
533 and \eX'ps:\~import' escapes.
536 If option `\-V' is used more than once, the commands will be both printed
537 on standard error and run.
538 .ULE
541 .SH 2
542 troff
544 .ULS
546 Two new read-only, string-valued registers `.m' and `.M' return the
547 name of the current drawing and background color, respectively.
550 New read-only register `.U' which is set to\~1 if in safer mode and set
551 to\~0 if in unsafe mode.
554 An input encoding file for \%latin-5 (a.k.a.\& ISO \%8859-9) has been
555 added.
556 Example use:
558 .in 2m
559 .ft C
560 groff \-Tdvi \-mlatin5 my_file > my_file.dvi
561 .ft R
564 Note that some output devices don't support all glyphs of this encoding.
567 If the `return' request is called with an argument, it exits twice,
568 namely the current macro and the macro one level higher.
569 This is used to define a wrapper macro for `return' in trace.tmac.
572 For completeness, two new requests have been added: `dei1' and `ami1'.
573 They are equivalent to `dei' and `ami', respectively, but the macros
574 are executed with compatibility mode off (similar to `de1' and `am1').
577 New command line option `\-I' to specify a directory for files (both
578 those on the command line and those named in `psbb' requests).
579 This is also handled by the groff wrapper program.
582 Since version 1.19 you can say `.vs\~0'.
583 Older versions emit a warning and convert this to `.vs\~\en[.V]'.
585 This hasn't been documented properly.
586 Note that `.vs\~0' isn't saved in a diversion since it doesn't result
587 in vertical motion.
588 .ULE
591 .SH 2
594 .ULS
596 Dashed and dotted ellipses have been implemented.
597 .ULE
600 .SH 2
603 .ULS
605 New key character `x' to make tbl call a user-defined macro on a table
606 cell.
607 Patch by
608 .MTO hj.oertel@\:surfeu.de "Heinz-J\[:u]rgen Oertel" .
609 .ULE
612 .SH 2
613 grap2graph
615 .ULS
617 A new script contributed by
618 .MTO esr@\:thyrsus.com "Eric S. Raymond" .
619 It converts a grap diagram into a cropped image.
620 Since it uses gs and the PNM library, virtually all graphics formats
621 are available for output.
622 [Note that the grap program itself isn't part of the groff package;
623 see the file MORE.STUFF how to obtain grap.]
624 .ULE
627 .SH 2
628 grohtml
630 .ULS
632 New option `\-j' to emit output splitted into multiple files.
633 .ULE
636 .SH 2
637 grops
639 .ULS
641 New command line option `\-I' to specify a directory to search for files
642 on the command line and files named in \eX'ps:\~import' and \eX'ps:\~file'
643 escapes.
644 This is also handled by the groff wrapper program.
647 The default value for the `broken' keyword in the DESC file is now\~0.
648 .ULE
651 .SH 2
652 grolj4
654 .ULS
656 A new man page `lj4_font(5)' documents how fonts are accessed with
657 grolj4.
660 The built-in fonts for LJ4 and newer PCL\~5 devices have been completely
661 revised, mainly to access as much glyphs as possible.
662 The provided metric files should be compatible with recent PCL\~5 printers
663 also.
664 Additionally, font description files have been added for the Arial and
665 Times New Roman family, the MS symbol, and Wingdings fonts.
666 .ULE
669 .SH 2
670 afmtodit
672 .ULS
674 New option `\-x' to prevent use of built-in Adobe Glyph List.
675 .ULE
678 .SH 2
679 hpftodit
681 .ULS
683 Completely revised to handle HP TrueType metric files also.
684 See the hpftodit manual page for more details.
685 .ULE
688 .SH 2
689 groffer
691 .ULS
693 This version is a rewrite of groffer in many parts, but it is kept in
694 the old single script style.
696 .ULS
698 New options: \-\-text (\-\-mode\~text), \-\-tty-viewer, \-\-X (\-\-mode\~X),
699 \-\-X-viewer, \-\-html (\-\-mode\~html), \-\-html-view, \-\-apropos-data,
700 \-\-apropos-devel, \-\-apropos-progs.
703 New documentation file README_SH.
706 Enhancement of the configuration files and the `apropos' handling.
707 .ULE
708 .ULE
711 .SH 2
712 macro packages
714 .ULS
716 www.tmac: New macro `JOBNAME' to split output into multiple files.
719 In mdoc, multiple calls to `.Lb' are now supported in the LIBRARY
720 section.
721 .ULE
725 NEWS VERSION 1.19
727 .SH 2
728 troff
730 .ULS
732 Input encoding files for \%latin-9 (a.k.a.\& \%latin-0 and ISO \%8859-15)
733 and \%latin-2 (ISO \%8859-2) have been added.
734 Example use:
736 .in 2m
737 .ft C
738 groff -Tdvi -mlatin9 my_file > my_file.dvi
739 .ft P
742 You still need proper fonts with the necessary glyphs.
743 Out of the box, the groff package supports \%latin-9 only for \-Tps,
744 \-Tdvi, and \-Tutf8, and \%latin-2 only for \-Tdvi and \-Tutf8.
747 Composite glyphs are now supported.
748 To do this, a subset of the Adobe Glyph List (AGL) Algorithm as described in
749 .URL http://partners.adobe.com/asn/tech/type/unicodegn.jsp \
750      http://partners.adobe.com/asn/tech/type/unicodegn.jsp
751 is used to construct glyph names based on Unicode character codes.
752 The existing groff glyph names are frozen; no glyph names which can't be
753 constructed algorithmically will be added in the future.
755 The \e[...] escape sequence has been extended to specify multiple glyph
756 components.
757 Example:
759 .in 2m
760 .ft C
761 \e[A ho]
762 .ft R
765 this accesses a glyph with the name `u0041_0328'.
767 Some groff glyphs which are useful as composites map to `wrong' Unicode
768 code points.
769 For example, `ho' maps to U+02DB which is a spacing ogonek, whereas a
770 non-spacing ogonek U+0328 is needed for composite glyphs.
771 The new request
773 .in 2m
774 .ft C
775 \&.composite from to
776 .ft R
779 will change the mapping while a composite glyph name is constructed.
780 To make \e[A\~ho] yield the expected result,
782 .in 2m
783 .ft C
784 \&.composite ho u0328
785 .ft R
788 is needed.
789 [The new file `composite.tmac' loaded at start-up already
790 contains proper calls to `.composite'.]
792 Please refer to the info pages of groff and to the groff_char man page
793 for more details.
796 A new request `fschar' has been added to define font-specific fallback
797 characters.
798 They are searched after the list of fonts declared with the
799 `fspecial' request but before the list of fonts declared with `special'.
802 Fallback characters defined with `fschar' can be removed with the
803 new `rfschar' request.
806 A new request `schar' has been added to define global fallback
807 characters.
808 They are searched after the list of fonts declared with the
809 `special' request but before the already mounted special fonts.
812 In groff versions 1.18 and 1.18.1, \eD'f\~...'\& didn't move the current
813 point horizontally.
814 Despite of being silly, this change has been reverted for backwards
815 compatibility.
816 Consequently, the intermediate output command `Df' also moves the 
817 position horizontally again.
819 \eD'f\~...'\& is deprecated since it depends on the horizontal resolution
820 of the output device (given with the `hor' parameter in the DESC file).
821 Use the new \eD'Fg\~...'\& escape instead.
824 For orthogonality, new \eD subcommands to change the fill color are
825 available:
827 .in 2m
828 .ft C
829 \eD'Fr ...' \f[R](rgb)\f[]
831 \eD'Fc ...' \f[R](cmy)\f[]
833 \eD'Fg ...' \f[R](gray)\f[]
835 \eD'Fk ...' \f[R](cmyk)\f[]
837 \eD'Fd' \f[R](default color)\f[]
838 .ft R
841 The arguments are the same as with the `defcolor' request.
842 The current position is \f[I]not\f[] changed.
845 The values set with \eH and \eS are now available in number registers
846 \en[.height] and \en[.slant], respectively.
849 The `.pe' number register isn't new but hasn't been documented before.
850 It is set to\~1 during a page ejection caused by the `bp' request.
853 The new glyph symbol `tno' is a textual variant of `no'.
856 The new glyph symbol `+e' represents U+03F5, GREEK LUNATE EPSILON SYMBOL.
857 (Well, it is not really new since it has been previously supported by
858 grolj4.)
859 The mapping for both the dvi and lj4 symbol font has been
860 changed accordingly so that Greek small letter epsilon, `*e', has the
861 same glyph shape as with other devices.
862 .ULE
865 .SH 2
866 grops
868 .ULS
870 The font `freeeuro.pfa' has been added to provide various default glyph
871 shapes for `eu' and `Eu'.
874 It is now possible to access all glyphs in a Type\~1 font, not only 256
875 (provided the font file created by afmtodit has proper entries).
876 grops constructs additional encoding vectors on the fly if necessary.
879 The paper size is now emitted via the %%DocumentMedia and PageSize
880 mechanisms so that it is no longer required to tell `gv' or `ps2pdf'
881 about the paper size.
882 The `broken' flag value\~16 omits this feature
883 (the used PostScript command `setpagedevice' is a LanguageLevel\~2
884 extension).
885 Patch by
886 .MTO egil@\:kvaleberg.no "Egil Kvaleberg" .
889 Non-slanted PostScript metrics have been changed again; they no longer
890 contain negative left italic correction values.
891 This assures correct spacing with eqn.
892 .ULE
895 .SH 2
896 grodvi
898 .ULS
900 The font cmtex10 has been added as the special font `SC' to the DVI fonts.
901 It is used as a font-specific special font for CW and CWI.
904 New options \-l and \-p to set landscape orientation and the paper size.
905 grodvi now emits a `papersize' special which is understood by DVI drivers
906 like dvips.
908 Consequently, the DESC file should contain a `papersize' keyword.
911 The glyph shapes for \e[*f] and \e[*e] have been exchanged with \e[+f] and
912 \e[+e], respectively, to be in sync with all other devices.
915 Glyphs \e[HE] and \e[DI] have been replaced with \e[u2662] and \e[u2661],
916 respectively, since the former two glyphs have a black (filled) shape
917 which grodvi doesn't provide by default (it never has actually).
918 .ULE
921 .SH 2
922 grolj4
924 .ULS
926 The glyphs \e[*e] and \e[+e] have been exchanged to be in sync with
927 all other devices.
930 The glyph \e[~=] is now called \e[|=].  Similar to other devices, \e[~=]
931 is now another name for glyph \e[~~].
932 .ULE
935 .SH 2
936 grotty
938 .ULS
940 New option `\-r'.
941 It is similar to the \-i option except it tells grotty to
942 use the `reverse video' attribute to render italic fonts.
943 .ULE
946 .SH 2
949 .ULS
951 New command `figname' to set the name of a picture's output box in TeX
952 mode.
953 .ULE
956 .SH 2
957 refer
959 .ULS
961 The environment variable `REFER' to override the name of the default
962 database isn't new but hasn't been documented before.
963 .ULE
966 .SH 2
967 soelim
969 .ULS
971 New option `\-r' to avoid emission of `.lf' lines.
974 New option `\-t' to emit TeX comment lines (giving current file and the
975 line number) instead of `.lf' lines.
976 .ULE
979 .SH 2
980 afmtodit
982 .ULS
984 Unencoded glyphs in an AFM file are output also (since grops can now emit
985 multiple encoding vectors for a single font).
988 New option `\-m' to prevent negative left italic correction values.
991 The mapping and encoding file together with file `DESC' are now searched
992 in the default font directory also.
993 Please refer to the man page of afmtodit for more details.
994 .ULE
997 .SH 2
998 macro packages
1000 .ULS
1002 .MTO kollar@\:alltel.net "Larry Kollar"
1003 and others made the man macros more customizable.
1005 .ULS
1007 New command line options \-rFT, \-rIN, and \-rSN to set the vertical
1008 location of the footer line, the body text indentation, and the
1009 sub-subheading indentation.
1012 New command line option \-rHY (similar to the ms macros) to control
1013 hyphenation.
1016 New macros `.PT' and `.BT' to print the header and footer strings.
1017 They can be replaced with a customized version in `man.local'.
1020 The string `HF' now holds the typeface to print headings and
1021 subheadings.
1024 Similar to the ms macros, the LT register now defaults to LL if not
1025 explicitly specified on the command line.
1026 .ULE
1029 troff's start-up file `troffrc' now includes `papersize.tmac' to set
1030 the paper size with the command line option `-dpaper=<size>'.
1032 Possible values for `<size>' are the same as the predefined `papersize'
1033 values in the DESC file (only lowercase; see the groff_font man page)
1034 except \%a7-d7.
1035 An appended `l' (ell) character denotes landscape orientation.
1036 Examples: `a4', `c3l', `letterl'.
1038 Most output drivers need additional command line switches `\-p' and
1039 `\-l' to override the default paper length and orientation as set in
1040 the driver specific DESC file.
1042 For example, use the following for PS output on A4 paper in landscape
1043 orientation:
1045 .in 2m
1046 .ft C
1047 groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps
1048 .ft R
1050 .ULE
1054 NEWS VERSION 1.18.1
1056 .SH 2
1057 troff
1059 .ULS
1061 The non-slanted PostScript font definition files have been regenerated to
1062 include left and right italic correction values.
1063 Applying those to a glyph (this is, prepending the glyph with `\e,' and
1064 appending `\e/' to the glyph) sets the glyph width to the real value given
1065 by the horizontal bounding box values.
1066 Without those escapes, the advance width for the particular glyph is used
1067 (which can differ considerably).
1069 Most users will neither need this feature nor notice a difference in
1070 existing documents (provided \e, and \e/ is used as advertised, namely for
1071 italic fonts only); its main goal is to improve image generation with
1072 grohtml.
1074 This is an experimental change, and feedback is welcome.
1075 .ULE
1077 .SH 2
1080 .ULS
1082 Added global option `nospaces' to ignore leading and trailing spaces in data
1083 items.
1084 .ULE
1086 .SH 2
1087 grolbp
1089 .ULS
1091 The option \-w (\-\-linewidth) has been added (similar to other device
1092 drivers) to set the default line width.
1093 .ULE
1095 .SH 2
1098 .ULS
1100 Support for b-spline and Bezier curves has been added.
1101 .ULE
1103 .SH 2
1104 groffer
1106 .ULS
1108 New option \-\-shell to select the shell under wich groffer shall run.
1109 .ULE
1111 .SH 2
1112 Macro Packages
1114 .ULS
1116 The string `Am' (producing an ampersand) has been added to mdoc for
1117 compatibility with NetBSD.
1120 `.IX' is now deprecated for mom; you should use `.IQ' (Indent Quit)
1121 instead.
1124 In mom, new inlines `FWD', `BCK', `UP', and `DOWN' deal with horizontal
1125 and vertical movements; please refer to contrib/mom/NEWS for more
1126 details.
1129 New macro ENDNOTES_HDRFTR_CENTER for mom to better control headers.
1130 .ULE
1132 .SH 2
1133 Miscellaneous
1135 .ULS
1137 The `papersize' keyword in the DESC file now accepts multiple arguments.
1138 It is scanned from left to the right, and the first valid argument is used.
1139 This makes it possible to provide a fallback paper size.
1141 Example:
1143 .in 2m
1144 .ft C
1145 papersize /etc/papersize a4
1146 .ft P
1150 A local font directory has been prepended to the default font path; it
1151 defaults to /usr/local/share/groff/site-font.  Similar to the normal
1152 font searching process, files must be placed into a dev\f[I]XXX\f[]
1153 subdirectory, e.g.
1155 .in 2m
1156 .ft C
1157 /usr/local/share/groff/site-font/devps/FOO
1158 .ft P
1161 for a PostScript font definition file FOO.
1162 .ULE
1166 NEWS VERSION 1.18
1168 This section describes recent user-visible changes in groff.
1169 Bug fixes are not described.
1170 There are more details in the man pages.
1172 .ad c
1173 \s[+5]\m[red]\
1174 Please read the changes below regarding
1175 .ie '\*[.T]'html' \
1176 .  URL #grotty grotty ,
1177 .el \
1178 .  nop grotty,
1179 groff's tty frontend.\
1180 \m[]\s[0]
1182 .ad n
1184 .SH 2
1185 Troff
1187 .ULS
1189 Color support has been added to troff and pic (and to the device drivers
1190 grops, grodvi, grotty, and grohtml -- other preprocessors and drivers will
1191 follow).
1192 A new function `defcolor' defines colors; the escape sequence `\em' sets the
1193 drawing color, the escape sequence `\eM' specifies the background color for
1194 closed objects created with \eD'.\|.\|.' commands.
1195 `\em[]' and `\eM[]' switch back to the previous color.
1196 `\em' and `\eM' correspond to the new troff output command sets starting
1197 with `m' and `DF'.
1198 The device-specific default color is called `default' and can't be
1199 redefined.
1201 Use the `color' request to toggle the usage of colors (default is on); the
1202 read-only register `.color' is\~0 if colors are not active, and non-zero
1203 otherwise.
1205 The old `Df' output command is mapped onto `DFg'; all color output
1206 commands don't change the current font position (consequently, `Df'
1207 doesn't either).
1209 Outputting color can be disabled in troff and groff with the option\~\-c
1210 (it is always disabled in compatibility mode).
1211 See the section on grotty for the
1212 .ie '\*[.T]'html' \
1213 .  URL #GROFF_NO_SGR GROFF_NO_SGR
1214 .el \
1215 . nop GROFF_NO_SGR
1216 environment variable also.
1218 For defining color components as fractions between 0 and\~1, a new scaling
1219 indicator `f' has been defined: 1f\~=\~65536u.
1220 For testing whether a color is defined (with .if and .ie), a new
1221 conditional operator `m' is available.
1223 More details can be found in the groff_diff.7 manual page and in
1224 groff.texinfo.
1227 Similar to \em and \eM, \ef[] switches back to the previous font.
1228 \efP (and \ef[P]) is still valid for backwards compatibility.
1231 The new escape \eF is the same as `.fam'; \eF[] switches back to previous
1232 family -- \eF[P] selects family `P'.
1235 Two new glyph symbols are available: `eu' is the official Euro symbol;
1236 `Eu' is a font-specific glyph variant.
1239 The new glyph symbols `t+\-', `tdi', and `tmu' are textual variants of
1240 `+\-', `di', and `mu', respectively.
1243 Latin-1 character 181 (PS name `mu', Unicode name U+00B5 MICRO SIGN) has
1244 got the troff glyph name `mc'.
1247 \-Tutf8 is now available on EBCDIC hosts.
1250 Strings can take arguments, using this syntax: \e*[foo\~arg1\~arg2\~.\|.\|.].
1251 Example:
1253 .in 2m
1255 .ft C
1256 \&.ds xxx This is a \e\e$1 test.
1257 \e*[xxx nice]
1258 .ft P
1263 It is now possible to have whitespace between the first and second dot (or
1264 the name of the ending macro) to end a macro definition.
1265 Example:
1267 .in 2m
1269 .ft C
1270 \&.de !
1271 \&..
1273 \&.de foo
1274 \&.  nop Hello, I'm `foo'.
1275 \&.  nop I will now define `bar'.
1276 \&.  de bar !
1277 \&.    nop Hello, I'm `bar'.
1278 \&.  !
1279 \&..
1280 .ft P
1285 `.fn' is a new string-valued register which returns the (internal) real
1286 font name; styles and families are properly concatenated.
1289 Three new read/write registers `seconds', `minutes', and `hours' contain
1290 the current time, set at start-up of troff.
1291 Use the `af' request to control their output format.
1294 The new request `fchar' can be used to provide fallback characters.
1295 It has the same syntax as the `char' request; the only difference is that
1296 a character defined with `.char' hides the glyph with the same name in the
1297 current font, whereas a character defined with `.fchar' is checked only if
1298 the particular glyph isn't found in the current font.
1299 This test happens before checking special fonts.
1302 In analogy to the `tmc' request, `.writec' is the same as `.write' but
1303 doesn't emit a final newline.
1306 The new request `itc' is a variant of `.it' for which a line interrupted
1307 with \ec counts as one input line.
1310 Two new requests `ds1' and `as1' which are similar to `ds' and `as' but
1311 with compatibility mode disabled during expansion of strings defined by
1312 them.
1315 The syntax of the `substring' request has been changed:
1316 The first character in a string now has index\~0, the last character
1317 has index\~\-1.
1318 Note that this is an incompatible change.
1321 To emit strings directly to the intermediate output, a new `output'
1322 request has been added; it is similar to `\e!' used at the top level.
1325 `.hpf' has been extended.
1326 It can now handle most TeX hyphenation pattern files without
1327 modification.
1328 To do that, the commands \epatterns, \ehyphenation, and \eendinput are
1329 recognized.
1330 Please refer to groff_diff.7 for more information.
1333 `hpfcode' is a new request to provide an input encoding mapping for the
1334 `hpf' request.
1337 The new request `hpfa' appends hyphenation patterns (`hpf' replaces
1338 already existing patterns).
1341 A new request `ami' (append macro indirect) has been added.
1342 The first and second parameter of `ami' are taken from string registers
1343 rather than directly; this very special request is needed to make
1344 `trace.tmac' independent from the escape character (which might even
1345 be disabled).
1348 The new request `sizes' is similar to the `sizes' command in DESC files.
1349 It expects the same syntax; the data must be on a single line, and the
1350 final `0' can be omitted.
1353 `trin' (translate input) is a new request which is similar to `tr' with
1354 the exception that the `asciify' request will use the character code (if
1355 any) before the character translation.
1356 Example:
1358 .in 2m
1360 .ft C
1361 \&.trin ax
1362 \&.di xxx
1364 \&.br
1365 \&.di
1366 \&.xxx
1367 \&.trin aa
1368 \&.asciify xxx
1369 \&.xxx
1370 .ft P
1374 The result is `x\~a'.  Using `tr', the result would be `x\~x'.
1377 The request `pvs' isn't new, but hasn't been documented before.
1378 It adds vertical space after a line has been output.
1379 This makes it an alternative to the `ls' request to produce
1380 double-spaced documents.
1381 The read-only register `.pvs' holds the current amount of the
1382 post-vertical line space.
1385 For compatibility with plan 9's troff, multiple `pi' requests are
1386 supported:
1388 .in 2m
1390 .ft C
1391 \&.pi foo
1392 \&.pi bar
1393 .ft P
1397 is now equivalent to
1399 .in 2m
1400 .ft C
1401 \&.pi foo | bar
1402 .ft P
1406 A new escape sequence `\eO' is available to disable and enable glyph
1407 output.
1408 Please see groff_diff.man and groff.texinfo for more details.
1411 The escapes `\e%', `\e&', `\e)', and `\e:' no longer cause an error in \eX;
1412 they are ignored now.
1413 Additionally `\e\ ' and `\e~' are converted to single space characters.
1416 The default tab distance in nroff mode is now 0.8i to be compatible
1417 with UNIX troff.
1420 Using the latin-1 input character 0xAD (soft hyphen) for the `shc'
1421 request was a bad idea.
1422 Instead, it is now translated to `\e%', and the default hyphenation
1423 character is again \e[hy].
1424 Note that the glyph \e[shc] is not useful for typographic purposes;
1425 it only exists to have glyph names for all latin-1 characters.
1426 .ULE
1428 .SH 2
1429 Macro Packages
1431 .ULS
1433 .MTO df191@\:ncf.ca "Peter Schaffter"
1434 has contributed a new major macro package called `mom', mainly for
1435 non-scientific writers, which takes care of many typographic issues.
1436 It comes with a complete reference (in HTML format) and some examples.
1437 `mom' has been designed to format documents for PostScript output only.
1440 Two macros `AT' (AT&T) and `UC' (Univ. of California) have been added to
1441 the man macros for compatibility with older BSD releases.
1444 Both the man and mdoc macro packages now use the LL and LT registers for
1445 setting the line and title length, respectively (similar to those
1446 registers in the ms macro package).
1447 If not set on the command line or in a macro file loaded before the macro
1448 package itself, they default to 78n in nroff mode and 6.5i in troff mode.
1451 The `\-xwidth' specifier in the mdoc macro package has been removed.
1452 Its functionality is now integrated directly into `\-width'.
1453 Similarly, `\-column' has been extended to has this functionality also.
1456 A new macro `Ex' has been added to the mdoc macro package to document an
1457 exit status.
1460 `troff.man' has been split.  Differences to UNIX troff are now documented
1461 in the new man page `groff_diff.man'.
1464 The PSPIC macro has been extended to work with DVI output (`pspic.tmac' is
1465 now automatically loaded for \-Tdvi), using a dvips special to load the EPS
1466 file.
1469 The trace.tmac package now traces calls to `am' also.
1470 Additionally, it works in compatibility mode.
1473 `troff.1' has been split.
1474 Differences to UNIX troff are now documented in the new man page
1475 `groff_diff.7'.
1478 `groff_mwww.7' has been renamed to `groff_www.7'.
1479 The file mwww.tmac has been removed.
1482 `groff_ms.7' has been completely rewritten.
1483 It now contains a complete reference to the ms macros.
1486 `groff_trace.7' documents the trace macro package.
1489 Changes in www.tmac
1491 Note that HTML support is still in alpha change, so it is rather likely
1492 that both macro names and macro syntax will change.
1493 Some of the macros mentioned below aren't really new but haven't been
1494 documented properly before.
1496 .ULS
1498 The following macros have been renamed:
1500 .in 2m
1502 MAILTO -> MTO
1503 IMAGE  -> IMG
1504 LINE   -> HR
1509 For consistency, the macros `URL', `FTL', and `MTO' now all have the
1510 address as the first parameter followed by the description.
1513 By default, grohtml generates links to all section headings at the top
1514 of the document.
1515 Use the new `LK' macro to specify a different place.
1518 For specifying the background color and a background image, use the
1519 new macros `BCL' and `BGIMG', respectively.
1522 The macro `NHR' has been added; it suppresses the generation of top and
1523 bottom rules which grohtml emits by default.
1526 The new macro `HX' determines the cut-off point for automatic link
1527 generation to headings.
1530 The image position parameter names in `IMG' have been changed to `\-L',
1531 `\-R', and `\-C'.
1534 New macro `PIMG' for inclusion of a PNG image (it will automatically
1535 convert it into an EPS file if not \-Thtml is used).
1538 New macro `MPIMG' for putting a PNG image into the left or right margin
1539 (it will automatically convert it into an EPS file if not \-Thtml is used).
1542 New macros `HnS', `HnE' to start and end a header line block.
1545 New macro `DC' to produce dropcap characters.
1548 New macro `HTL' to generate an HTML title line only but no H1 heading.
1551 New macros `ULS' and `ULE' to start and end an unordered list.
1552 The new macro `LI' inserts a list item.
1553 .ULE
1554 .ULE
1557 .SH 2
1558 groff
1560 .ULS
1562 The new command line `\-c' disables color output (which is always disabled
1563 in compatibility mode).
1564 .ULE
1567 .SH 2
1568 Nroff
1570 .ULS
1572 Two new command line options `\-c' and `\-C'; the former passes `\-c' to
1573 grotty (switching to the old output scheme); the latter passes `\-C' to
1574 groff (enabling compatibility mode).
1575 .ULE
1578 .SH 2
1581 .ULS
1583 New keywords `color' (or `colour', `colored', `coloured'), `outline' (or
1584 `outlined'), and `shaded' are available.
1585 `outline' sets the color of the outline, `shaded' the fill color, and
1586 `color' sets both.
1587 Example:
1589 .in 2m
1590 .ft C
1591 circle shaded "green" outline "black" ;
1592 .ft P
1595 Filled arrows always use the outline color for filling.
1597 Color support for TeX output is not implemented yet.
1598 .ULE
1601 .SH 2
1602 Pic2graph
1604 .ULS
1606 A new script contributed by
1607 .MTO esr@\:thyrsus.com "Eric S.\~Raymond" .
1608 It converts a PIC diagram into a cropped image.
1609 Since it uses gs and the PNM library, virtually all graphics formats
1610 are available for output.
1611 .ULE
1614 .SH 2
1615 Eqn2graph
1617 .ULS
1619 A new script contributed by
1620 .MTO esr@\:thyrsus.com "Eric S.\~Raymond" .
1621 It converts an EQN diagram into a cropped image.
1622 Since it uses gs and the PNM library, virtually all graphics formats
1623 are available for output.
1624 .ULE
1627 .SH 2
1628 Groffer
1630 .ULS
1632 A new script contributed by
1633 .MTO bwarken@mayn.de "Bernd Warken" .
1634 It displays groff files and man pages on X and tty, taking care of most
1635 parameters automatically.
1636 .ULE
1639 .SH 2
1640 Grog
1642 .ULS
1644 Documents using the mom macro package are recognized.
1645 .ULE
1648 .SH 2
1649 grops
1651 .ULS
1653 Color support has been added.
1656 A new option `\-p' is available to select the output paper size.
1657 It has the same syntax as the new `papersize' keyword in the DESC file.
1658 .ULE
1661 .SH 2
1662 Grodvi
1664 .ULS
1666 By default, font sizes are now available in the range 5\-10000pt, similar
1667 to PS fonts.
1668 If you want the old behaviour (i.e., font sizes at discrete values only),
1669 insert the following at the start of your document:
1671 .in 2m
1673 .ft C
1674 \&.if '\e*[.T]'dvi' \e
1675 \&.  sizes 500 600 700 800 900 1000 1095 1200 1400 1440 1600 \e
1676 \&         1728 1800 2000 2074 2200 2400 2488 2800 3600
1677 .ft P
1682 A new font file HBI (using cmssbxo10; this is slanted sans serif bold
1683 extended) has been added.
1686 Two font families are now available: `T' and `H'.
1689 EC and TC fonts have been integrated.
1690 Use `\-mec' (calling the file ec.tmac) to switch to them.
1691 Those fonts give a much better coverage of the symbols defined by groff
1692 than the CM fonts.
1694 Note that ec.tmac must be called before any language-specific files; it
1695 doesn't take care of hcode values.
1698 Color support has been added.
1699 For drawing commands, colors are translated to gray values currently.
1700 .ULE
1703 .TAG grotty
1704 .SH 2
1705 Grotty
1707 .ULS
1709 Color support has been added, using the SGR (ISO\~6429, sometimes called
1710 ANSI color) escape sequences.
1713 SGR escape sequences are now used by default for underlining and bold
1714 printing also, no longer using the backspace character trick.
1715 To revert to the old behaviour, use the `\-c' switch.
1717 Note that you have to use the `\-R' option of `less' to make SGR escapes
1718 display correctly.
1719 On the other hand, terminal programs and consoles like `xterm' which
1720 support SGR sequences natively can directly display the output of grotty.
1721 Consequently, the options `\-b', `\-B', `\-u', and `\-U' work only in
1722 combination with `\-c' and are ignored silently otherwise.
1724 For the `man' program, it may be necessary to add the `\-R' option of
1725 `less' to the $PAGER environment variable; alternatively, you can use
1726 `man's `\-P' option (or adapt its configuration file accordingly).
1727 See man(1) for more details.
1729 .TAG GROFF_NO_SGR
1731 If the environment variable GROFF_NO_SGR is set, SGR output is disabled,
1732 reverting to the old behaviour.
1735 A new special \eX'tty:\~sgr\~n' has been added; if n is non-zero or missing,
1736 enable SGR output (the default).
1739 If the new option `\-i' is used (only in SGR mode), grotty sends escape
1740 sequences to set the italic font attribute instead of the underline
1741 attribute for italic fonts.
1742 Note that many terminals don't have support for this (including xterm).
1743 .ULE
1746 .SH 2
1747 grohtml
1749 .ULS
1751 Color support for glyphs has been added.
1754 New option `\-h' to select the style of headings in HTML output.
1757 New option `\-b' to set the background colour to white.
1760 New options `\-a' and `\-g' to control the number of bits for anti-aliasing
1761 used for text and graphics, respectively.
1762 Default value is\~4; 0\~means no anti-aliasing.
1765 groff character/glyph entities now map onto HTML\~4 character entities.
1766 .ULE
1769 .SH 2
1770 Grolbp
1772 .ULS
1774 Valid paper sizes are now specified as with the new `papersize' keyword
1775 in the DESC file.
1776 Specifically, the old custom paper type format `custAAAxBBB' is no longer
1777 supported.
1778 .ULE
1781 .SH 2
1782 Miscellaneous
1784 .ULS
1786 A new manual page `ditroff.7' is available.
1789 The groff texinfo manual will now be installed, together with a bunch
1790 of examples.
1793 A new keyword `papersize' has been added to the DESC file format.
1794 Its argument is either
1796 .ULS
1798 a predefined paper format (e.g. `A4' or `letter')
1801 a file name pointing to a file which must contain a paper size
1802 specification in its first line (e.g. `/etc/papersize')
1805 a custom paper size definition like `35c,4i'
1806 .ULE
1808 See groff_font(5) for more details.
1809 This keyword only affects the physical dimensions of the output medium;
1810 grops, grolj4, and grolbp use it currently.
1811 troff completely ignores it.
1812 .ULE
1816 \s[-2]\f[I]This document was produced using
1817 .URL http://groff.ffii.org/ groff-\n[.x].\n[.y].\n[.Y] .
1819 The image at the top has been contributed by Imogen Mulley (born 1991),
1820 based on a similar picture found on the
1821 .URL http://www.gnu.org "GNU server" .
1823 .\" EOF