'\" e .\" The above line should force the use of eqn as a preprocessor .ig groff_diff.man Last update : 26 Oct 2006 This file is part of groff, the GNU roff type-setting system. It is the source of the man-page groff_diff(7). Copyright (C) 1989, 2001, 2002, 2003, 2004, 2006 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 AUTHORS, 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 .\" -------------------------------------------------------------------- . .do nr groff_diff_C \n[.C] .cp 0 . .mso www.tmac . .if n \{\ . mso tty-char.tmac . ftr CR R . ftr CI I . ftr CB B .\} . .if '\*[.T]'dvi' \ . ftr CB CW . .\" 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 . . .\" -------------------------------------------------------------------- .\" start of macro definitions . .eo . .de c .. . .de TQ . br . ns . TP \$1 .. .de Text . RI "\$*" .. .de Topic . TP 2m . Text \[bu] .. .de squoted . ds @arg1 \$1 . shift .\" Text \[oq]\f[CB]\*[@arg1]\f[]\[cq]\$* . Text \[oq]\f[B]\*[@arg1]\f[]\[cq]\$* . rm @arg1 .. .c A shell command line .de ShellCommand . br . IR "shell#" "\h'1m'\f[CB]\$*\f[]\/" .. .c reference of a request or macro .de request . ds @arg1 \$1 . shift 1 .\" Text \f[CB]\*[@arg1]\f[]\$* . Text \f[B]\*[@arg1]\f[]\$* . rm @arg1 .. .als option request . .c representation of an escape sequence .de esc . ds @arg1 \$1 . shift .\" Text \f[CB]\[rs]\*[@arg1]\f[]\$* . Text \f[B]\[rs]\*[@arg1]\&\f[]\$* . rm @arg1 .. .ec .\" end of macro definitions . .\" from old groff_out.man .ie \n(.g \ . ds ic \/ .el \ . ds ic \^ . . .\" -------------------------------------------------------------------- .\" 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 freely available Unix\~7 of the 1970s, documented in the .I Troff User's Manual by .I Osanna and .IR Kernighan . This inludes the roff language as well as the intermediate output format (troff output). . .P The section .I SEE ALSO gives pointers to both the classical .I roff and the modern .I groff documentation. . . .\" -------------------------------------------------------------------- .SH "GROFF LANGUAGE" .\" -------------------------------------------------------------------- . 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 (glyphs), 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. . .TP .BI \[rs][ xxx ] Print the special character (glyph) called .IR xxx . . .TP .BI \[rs][ "comp1 comp2 .\|.\|." ] Print composite glyph consisting of multiple components. . Example: `\[rs][A\~ho]' is capital letter A with ogonek which finally maps to glyph name `u0041_0328'. . See the .I groff info file for details how a glyph name for a composite glyph is constructed, and .BR groff_char (@MAN7EXT@) for list of glyph name components used composite glyph names. . .TP .BI \[rs]f[ xxx ] Set font .IR xxx . . Additionally, .B \[rs]f[] is a new syntax equal to .BR \[rs]fP , i.e., to return to the previous font. . .TP .BI \[rs]*[ "xxx arg1 arg2 .\|.\|." ] Interpolate string .IR xxx , taking .IR arg1 , .IR arg2 , .I .\|.\|.\& as arguments. . .TP .BI \[rs]n[ 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 \[rs]H escape sequence, and those variants of the .B \[rs]s escape sequence that take a numeric expression as their argument. . .P For example, suppose sizescale is 1000; then a scaled point is equivalent to a millipoint; the call .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 \[rs]n[.s] returns the pointsize in points as decimal fraction. . There is also a new number register .B \[rs]n[.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\~\c .B s which multiplies by the number of units in a scaled point. . So, for example, .B \[rs]n[.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 the .B defcolor request. . For example, 0.5f = 32768u. . .TP .IB e1 >? e2 The maximum of .I e1 and .IR e2 . . .TP .IB e1