.ig groff_diff.man Last update : 9 Dec 2001 This file is part of groff, the GNU roff type-setting system. Copyright (C) 2000, 2001 Free Software Foundation, Inc. written by James Clark modified by Werner Lemberg Bernd Warken Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being this .ig-section and AUTHOR, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the Free Documentation License is included as a file called FDL in the main directory of the groff source package. .. . .\" -------------------------------------------------------------------- .\" Setup .\" -------------------------------------------------------------------- . .mso www.tmac . .\" define a string tx for the TeX logo .ie t .ds tx T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X .el .ds tx TeX . .de TQ .br .ns .TP \\$1 .. . .\" Like TP, but if specified indent is more than half .\" the current line-length - indent, use the default indent. .de Tp .ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP .el .TP "\\$1" .. . .\" Don't use .ne for TTY devices .de NE .if t .ne \\$1 .. . . .\" -------------------------------------------------------------------- .\" Title .\" -------------------------------------------------------------------- . .TH GROFF_DIFF @MAN7EXT@ "@MDATE@" "Groff Version @VERSION@" .SH NAME groff_diff \- differences between GNU troff and classical troff . . .\" -------------------------------------------------------------------- .SH DESCRIPTION .\" -------------------------------------------------------------------- . This manual page describes the language differences between .IR groff , the GNU .I roff text processing system and the classical .I roff formatter of the free Unix\~7 of the 1970s, documented in the .I Troff User's Manual by .I Osanna and .IR Kernighan . . .P The section .I SEE ALSO gives pointers to both the classical .I roff and the modern .I groff documentation. . .P At the moment, this document is the place of the most actual documentation with the .I groff system. All novelties are first described here and will pervade into the other documents only at a later stage. This might be changed in the future. . . .\" -------------------------------------------------------------------- .SH "NEW FEATURES" .\" -------------------------------------------------------------------- . In this section, all additional features of .I groff compared to the classical Unix\~7 .I troff are described in detail. . . .\" -------------------------------------------------------------------- .SS Long names .\" -------------------------------------------------------------------- . The names of number registers, fonts, strings/\:macros/\:diversions, special characters, and colors can be of any length. In escape sequences, additionally to the classical .BI ( xx construction for a two character name, you can use .BI [ xxx ] for a name of arbitrary length, for example in . .TP \w'\ef[xxx]'u+3n .BI \e[ xxx ] Print the special character called .IR xxx . . .TP .BI \ef[ xxx ] Set font .IR xxx . . .TP .BI \e*[ xxx ] Interpolate string .IR xxx . . .TP .BI \en[ xxx ] Interpolate number register .IR xxx . . . .\" -------------------------------------------------------------------- .SS Fractional pointsizes .\" -------------------------------------------------------------------- . A .I scaled point is equal to .B 1/sizescale points, where .B sizescale is specified in the .B DESC file (1 by default). There is a new scale indicator .B z that has the effect of multiplying by sizescale. Requests and escape sequences in troff interpret arguments that represent a pointsize as being in units of scaled points, but they evaluate each such argument using a default scale indicator of .BR z . Arguments treated in this way are the argument to the .B ps request, the third argument to the .B cs request, the second and fourth arguments to the .B tkf request, the argument to the .B \eH escape sequence, and those variants of the .B \es escape sequence that take a numeric expression as their argument. . .P For example, suppose sizescale is 1000; then a scaled point will be equivalent to a millipoint; the request .B .ps\~10.25 is equivalent to .B .ps\~10.25z and so sets the pointsize to 10250 scaled points, which is equal to 10.25 points. . .P The number register .B \en[.s] returns the pointsize in points as decimal fraction. There is also a new number register .B \en[.ps] that returns the pointsize in scaled points. . .P It would make no sense to use the .B z scale indicator in a numeric expression whose default scale indicator was neither .B u nor .BR z , and so .B troff disallows this. Similarly it would make no sense to use a scaling indicator other than .B z or .B u in a numeric expression whose default scale indicator was .BR z , and so .B troff disallows this as well. . .P There is also new scale indicator .B s which multiplies by the number of units in a scaled point. So, for example, .B \en[.ps]s is equal to .BR 1m . Be sure not to confuse the .B s and .B z scale indicators. . . .\" -------------------------------------------------------------------- .SS Numeric expressions .\" -------------------------------------------------------------------- . Spaces are permitted in a number expression within parentheses. . .P .B M indicates a scale of 100ths of an em. .B f indicates a scale of 65536 units, providing fractions for color definitions with .B defcolor request. For example, 0.5f = 32768u. . .TP .IB e1 >? e2 The maximum of .I e1 and .IR e2 . . .TP .IB e1