Virgin import of FSF groff v1.19

This commit is contained in:
Ruslan Ermilov 2003-05-01 13:09:50 +00:00
parent 3018e8e5c7
commit bdbe8a18ed
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/vendor/groff/dist/; revision=114402
511 changed files with 119332 additions and 17915 deletions

File diff suppressed because it is too large Load Diff

View File

@ -6,7 +6,7 @@ This file contains information that supplements those instructions.
MS-Windows, see the file arch/djgpp/README.)
groff is written in C++, so you will need a C++ compiler. The C++
source files use a suffix of `.cc', so your C++ compiler must be able
source files use a suffix of `.cpp', so your C++ compiler must be able
to handle this. If you don't already have a C++ compiler, I suggest
gcc 2.7.1 or later (gcc version 2 includes GNU C++ as well as GNU C).
From gcc 2.5, it is no longer necessary to install libg++: the C++
@ -44,7 +44,7 @@ subdirectory.
To get a DVI, PDF, or HTML version of the groff texinfo manual, say `make
groff.dvi', `make groff.pdf', or `make groff.html', respectively, in the
`doc' subdirectory (after compiling the groff package). Note that you
need texinfo version 4.2 or newer as a prerequisite.
need texinfo version 4.3 or newer as a prerequisite.
If you have problems, read the PROBLEMS file. If this doesn't help
send a bug report using the form in the file BUG-REPORT.

View File

@ -1,10 +1,10 @@
MANIFEST
Last update: 21 Dec 2001
Last update: 13 Apr 2003
This file is part of groff, the GNU roff type-setting system.
Copyright (C) 2001 Free Software Foundation, Inc.
Copyright (C) 2001, 2003 Free Software Foundation, Inc.
written by Bernd Warken <bwarken@mayn.de>
maintained by Werner Lemberg <wl@gnu.org>
@ -50,6 +50,8 @@ the groff source distribution.
djgpp Data special for the 32-bit DOS compiler djgpp.
./contrib Part of groff, but maintained by other people.
eqn2graph Convert equations created with EQN into different
graphical formats.
groffer A wrapper to conveniently view roff files.
mm The groff mm macro package.
mom The groff mom macro package.
@ -107,8 +109,6 @@ the groff source distribution.
nroff Emulate classical nroff text formatter.
troff Main roff formatter program.
./src/xditview A groff (pre)viewer for the X Window System.
./src/utils Utility programs around groff.
addftinfo Add information to old troff font files for use with groff.
afmtodit Create font description files for the PostScript device.
@ -116,9 +116,11 @@ the groff source distribution.
indxbib Make inverted index for bibliographic databases.
lkbib Search bibliographic databases.
lookbib Interactively search bibliographic databases.
pfbtops Translate a PostScript font in .pfb format to ASCII.
pfbtops Translate a PostScript font in PFB format to PFA.
tfmtodit Create font description files for TeX DVI device.
./src/xditview A groff (pre)viewer for the X Window System.
./tmac Macro files.
@ -141,12 +143,13 @@ The groff documentation is scattered upon several places.
4) The roff parser
The parsing of the roff language is done by troff. The input is
transformed into "nodes" by `src/roff/troff/node.cc'. From these, the
intermediate output is generated.
The parsing of the roff language is done by troff. The input is converted
to tokens in `src/roff/troff/input.cpp' and transformed into `nodes' by
`src/roff/troff/env.cpp' and `src/roff/troff/node.cpp'. From these, the
intermediate output is generated (also in `node.cpp').
5) Postprocessing
The parser for the intermediate output and the postprocessing is in
`src/libs/libdriver/input.cc'. This is used by all postprocessors.
`src/libs/libdriver/input.cpp'. This is used by all postprocessors.

View File

@ -9,7 +9,7 @@ MAKEFILEPARTS=\
all: $(PROG) $(MANPAGES)
$(PROG): $(OBJS) $(XLIBS)
$(LINK.cc) -o $@ $(OBJS) $(XLIBS) $(LIBS) $(MLIB)
$(LINK.cpp) -o $@ $(OBJS) $(XLIBS) $(LIBS) $(MLIB)
install_bin: install_prog
install_prog: $(PROG)
@ -30,4 +30,4 @@ pure: $(PROG).pure
$(PROG).pure: $(OBJS) $(XLIBS)
$(PURIFY) $(PURIFYCCFLAGS) \
$(LINK.cc) -o $@ $(OBJS) $(XLIBS) $(LIBS) $(MLIB)
$(LINK.cpp) -o $@ $(OBJS) $(XLIBS) $(LIBS) $(MLIB)

View File

@ -23,14 +23,14 @@ SHELL=/bin/sh
INCLUDES=-I. -I$(srcdir) \
-I$(top_builddir)/src/include -I$(top_srcdir)/src/include
ALL_CCFLAGS=$(INCLUDES) $(CCDEFINES) $(CCFLAGS) $(CPPFLAGS)
COMPILE.cc=$(CCC) $(ALL_CCFLAGS) -c
COMPILE.cpp=$(CCC) $(ALL_CCFLAGS) -c
ALL_CFLAGS=$(INCLUDES) $(CDEFINES) $(CFLAGS) $(CPPFLAGS)
COMPILE.c=$(CC) $(ALL_CFLAGS) -c
LINK.cc=$(CCC) $(CCFLAGS) $(LDFLAGS)
LINK.cpp=$(CCC) $(CCFLAGS) $(LDFLAGS)
LINK.c=$(CC) $(CFLAGS) $(LDFLAGS)
LIBGROFF=$(top_builddir)/src/libs/libgroff/libgroff.a
LIBBIB=$(top_builddir)/src/libs/libbib/libbib.a
LIBDRIVER=$(top_builddir)/src/libs/libdriver/libdriver.a
LIBGROFF=$(top_builddir)/src/libs/libgroff/libgroff.$(LIBEXT)
LIBBIB=$(top_builddir)/src/libs/libbib/libbib.$(LIBEXT)
LIBDRIVER=$(top_builddir)/src/libs/libdriver/libdriver.$(LIBEXT)
MLIB=
XLIBS=
YTABH=
@ -96,21 +96,21 @@ extraclean: distclean
-rm -f \#* *~ =* core junk grot old temp tmp tem
.SUFFIXES:
.SUFFIXES: .o .obj .cc .c .y .man .n
.SUFFIXES: .o .obj .cpp .c .y .man .n
.cc.o:
$(COMPILE.cc) $<
.cpp.o:
$(COMPILE.cpp) $<
.c.o:
$(COMPILE.c) $<
.cc.obj:
$(COMPILE.cc) $<
.cpp.obj:
$(COMPILE.cpp) $<
.c.obj:
$(COMPILE.c) $<
.y.cc:
.y.cpp:
if test -n "$(YTABH)"; then \
$(YACC) $(YACCFLAGS) -d $<; \
else \
@ -122,7 +122,7 @@ extraclean: distclean
if test -n "$(YTABH)"; then mv y_tab.h $(YTABH); fi
# The next rule is needed for make of Solaris 2.5.1 to override its
# built-in .y.o rule (which takes precedence over the .y.cc rule above).
# built-in .y.o rule (which takes precedence over the .y.cpp rule above).
.y.o:
if test -n "$(YTABH)"; then \
$(YACC) $(YACCFLAGS) -d $<; \
@ -133,7 +133,7 @@ extraclean: distclean
-test -f y.tab.c && mv y.tab.c y_tab.c
mv y_tab.c $(YTABC)
if test -n "$(YTABH)"; then mv y_tab.h $(YTABH); fi
$(COMPILE.cc) $(YTABC)
$(COMPILE.cpp) $(YTABC)
.man.n:
@echo Making $@ from $<
@ -246,10 +246,18 @@ install_dev:
$(INSTALL_DATA) $(srcdir)/$$f $(fontsubdir)/$$f; \
fi; \
done
-for f in $(DEVSCRIPTS); do \
rm -f $(fontsubdir)/$$f; \
if test -f $$f; then \
$(INSTALL_SCRIPT) $$f $(fontsubdir)/$$f; \
else \
$(INSTALL_SCRIPT) $(srcdir)/$$f $(fontsubdir)/$$f; \
fi; \
done
.PHONY: uninstall_dev
uninstall_dev:
-for f in $(DEVFILES); do rm -f $(fontsubdir)/$$f; done
-for f in $(DEVFILES) $(DEVSCRIPTS); do rm -f $(fontsubdir)/$$f; done
-if test -d $(fontsubdir)/generate; then \
rmdir $(fontsubdir)/generate; \
fi
@ -261,8 +269,13 @@ depend_src: depend.temp
depend.temp: FORCE
> depend.temp;
if test -f "$(srcdir)/$(YTABC)"; then \
ytabc="$(srcdir)/$(YTABC)"; \
else \
ytabc="$(YTABC)"; \
fi; \
test -z "$(CCSRCS)$(YTABC)" \
|| $(CCC) $(ALL_CCFLAGS) -MM $(CCSRCS) $(YTABC) >>depend.temp
|| $(CCC) $(ALL_CCFLAGS) -MM $(CCSRCS) $$ytabc >>depend.temp
test -z "$(CSRCS)" \
|| $(CC) $(ALL_CFLAGS) -MM $(CSRCS) >>depend.temp
if test -n "$(YTABH)"; then \

View File

@ -1,4 +1,4 @@
all: $(DEVFILES)
all: $(DEVFILES) $(DEVSCRIPTS)
install_data: install_dev
uninstall_sub: uninstall_dev
install_dev: $(DEVFILES)
install_dev: $(DEVFILES) $(DEVSCRIPTS)

View File

@ -1,4 +1,4 @@
# Copyright (C) 1989-2000, 2001, 2002 Free Software Foundation, Inc.
# Copyright (C) 1989-2000, 2001, 2002, 2003 Free Software Foundation, Inc.
# Written by James Clark (jjc@jclark.com)
#
# This file is part of groff.
@ -21,6 +21,7 @@ srcdir=@srcdir@
top_srcdir=@top_srcdir@
VPATH=@srcdir@
top_builddir=@groff_top_builddir@
SEP=@PATH_SEPARATOR@
version=`cat $(top_srcdir)/VERSION`
# No additional number if revision is zero.
@ -120,7 +121,7 @@ localfontdir=$(dataprogramdir)/site-font
legacyfontdir=/usr/lib/font
# `fontpath' says where to look for dev*/*.
fontpath=$(localfontdir):$(fontdir):$(legacyfontdir)
fontpath=$(localfontdir)$(SEP)$(fontdir)$(SEP)$(legacyfontdir)
# `tmacdir' says where to install macros.
tmacdir=$(datasubdir)/tmac
@ -136,11 +137,16 @@ localtmacdir=$(dataprogramdir)/site-tmac
# directory will be always added.
# `troffrc' and `troffrc-end' (and `eqnrc') are searched neither in the
# current nor in the home directory.
tmacpath=$(systemtmacdir):$(localtmacdir):$(tmacdir)
tmacpath=$(systemtmacdir)$(SEP)$(localtmacdir)$(SEP)$(tmacdir)
# `sys_tmac_prefix' is prefix (if any) for system macro packages.
sys_tmac_prefix=@sys_tmac_prefix@
# `pnmtops_nosetpage' is the command to be run to generate an eps
# file. Some versions of pnmtops provide the -nosetpage option.
# We detect this and use it if present.
pnmtops_nosetpage=@pnmtops_nosetpage@
# `tmac_wrap' is list of system macro packages that should be made
# available to groff by creating a corresponding macro package
# in the groff macro directory that references the system macro
@ -214,7 +220,7 @@ make_install_html=@make_install_html@
# -DHAVE_CC_LIMITS_H if you have a C++ <limits.h>
# -DHAVE_MATH_H if you have <math.h>
# -DHAVE_CC_OSFCN_H if you have a C++ <osfcn.h>
# -DHAVE_STDINT_H if you have <stdint.h>
# -DHAVE_CC_STDINT_H if you have a C++ <stdint.h>
# -DHAVE_STDLIB_H if you have <stdlib.h>
# -DHAVE_STRING_H if you have <string.h>
# -DHAVE_STRINGS_H if you have <strings.h>
@ -230,6 +236,7 @@ make_install_html=@make_install_html@
# -DHAVE_MMAP if you have mmap()
# -DHAVE_PUTENV if you have putenv()
# -DHAVE_RENAME if you have rename()
# -DHAVE_SETLOCALE if you have setlocale()
# -DHAVE_SNPRINTF if you have snprintf()
# -DHAVE_STRCASECMP if you have strcasecmp()
# -DHAVE_STRNCASECMP if you have strncasecmp()
@ -244,6 +251,9 @@ make_install_html=@make_install_html@
# -DNEED_DECLARATION_PCLOSE if your C++ <stdio.h> doesn't declare pclose()
# -DNEED_DECLARATION_POPEN if your C++ <stdio.h> doesn't declare popen()
# -DNEED_DECLARATION_PUTENV if your C++ <stdlib.h> doesn't declare putenv()
# -DNEED_DECLARATION_RAND if your C++ <stdlib.h> doesn't declare rand()
# -DNEED_DECLARATION_SNPRINTF if your C++ <stdio.h> doesn't declare snprintf()
# -DNEED_DECLARATION_SRAND if your C++ <stdlib.h> doesn't declare srand()
# -DNEED_DECLARATION_STRCASECMP if your C++ <string.h> doesn't declare
# strcasecmp()
# -DNEED_DECLARATION_STRNCASECMP
@ -265,12 +275,13 @@ DEFINES=@DEFS@
# Include
#
# {fmod,getcwd,mkstemp,putenv,snprintf,strerror,strtol}.$(OBJEXT)
# {fmod,getcwd,mkstemp,putenv,snprintf,strcasecmp,
# strerror,strncasecmp,strtol}.$(OBJEXT)
#
# in LIBOBJS if your C library is missing the corresponding function.
LIBOBJS=@LIBOBJS@
# `CCC' is the compiler for C++ (.cc) files.
# `CCC' is the compiler for C++ (.cpp) files.
CCC=@CXX@
CC=@CC@
# CCDEFINES are definitions for C++ compilations.
@ -286,6 +297,8 @@ YACCFLAGS=-v
EXEEXT=@EXEEXT@
OBJEXT=@OBJEXT@
# a simple heuristic assumption
LIBEXT=`case $(OBJEXT) in obj) echo lib;; *) echo a;; esac`
LIBS=@LIBS@
LIBM=@LIBM@
RANLIB=@RANLIB@
@ -317,85 +330,88 @@ PURIFYCCFLAGS=
# copy of $(MDEFINES) when making individual directories; this could
# cause the argument list to become too long on some systems.
MDEFINES= \
"MAKEOVERRIDES=$(MAKEOVERRIDES)" \
"PAGE=$(PAGE)" \
"AR=$(AR)" \
"BROKEN_SPOOLER_FLAGS=$(BROKEN_SPOOLER_FLAGS)" \
"CC=$(CC)" \
"CCC=$(CCC)" \
"CCDEFINES=$(CCDEFINES)" \
"CCFLAGS=$(CCFLAGS)" \
"CDEFINES=$(CDEFINES)" \
"CFLAGS=$(CFLAGS)" \
"DEVICE=$(DEVICE)" \
"TTYDEVDIRS=$(TTYDEVDIRS)" \
"OTHERDEVDIRS=$(OTHERDEVDIRS)" \
"PSPRINT=$(PSPRINT)" \
"DVIPRINT=$(DVIPRINT)" \
"version=$(version)" \
"revision=$(revision)" \
"top_srcdir=$(top_srcdir)" \
"top_builddir=$(top_builddir)" \
"prefix=$(prefix)" \
"exec_prefix=$(exec_prefix)" \
"g=$(g)" \
"ETAGS=$(ETAGS)" \
"ETAGSCCFLAG=$(ETAGSCCFLAG)" \
"ETAGSFLAGS=$(ETAGSFLAGS)" \
"EXEEXT=$(EXEEXT)" \
"INSTALL_DATA=$(INSTALL_DATA)" \
"INSTALL_INFO=$(INSTALL_INFO)" \
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
"LDFLAGS=$(LDFLAGS)" \
"LIBEXT=$(LIBEXT)" \
"LIBM=$(LIBM)" \
"LIBOBJS=$(LIBOBJS)" \
"LIBS=$(LIBS)" \
"MAKEOVERRIDES=$(MAKEOVERRIDES)" \
"OBJEXT=$(OBJEXT)" \
"OTHERDEVDIRS=$(OTHERDEVDIRS)" \
"PAGE=$(PAGE)" \
"PERLPATH=$(PERLPATH)" \
"PSPRINT=$(PSPRINT)" \
"PURIFY=$(PURIFY)" \
"PURIFYCCFLAGS=$(PURIFYCCFLAGS)" \
"RANLIB=$(RANLIB)" \
"SEP=$(SEP)" \
"SH_SCRIPT_SED_CMD=$(SH_SCRIPT_SED_CMD)" \
"TTYDEVDIRS=$(TTYDEVDIRS)" \
"YACC=$(YACC)" \
"YACCFLAGS=$(YACCFLAGS)" \
"bindir=$(bindir)" \
"common_words_file=$(common_words_file)" \
"datadir=$(datadir)" \
"dataprogramdir=$(dataprogramdir)" \
"datasubdir=$(datasubdir)" \
"infodir=$(infodir)" \
"docdir=$(docdir)" \
"exampledir=$(exampledir)" \
"exec_prefix=$(exec_prefix)" \
"fontdir=$(fontdir)" \
"fontpath=$(fontpath)" \
"g=$(g)" \
"htmldocdir=$(htmldocdir)" \
"indexdir=$(indexdir)" \
"indexext=$(indexext)" \
"indexname=$(indexname)" \
"infodir=$(infodir)" \
"legacyfontdir=$(legacyfontdir)" \
"libdir=$(libdir)" \
"libprogramdir=$(libprogramdir)" \
"bindir=$(bindir)" \
"fontdir=$(fontdir)" \
"localfontdir=$(localfontdir)" \
"legacyfontdir=$(legacyfontdir)" \
"fontpath=$(fontpath)" \
"tmacdir=$(tmacdir)" \
"systemtmacdir=$(systemtmacdir)" \
"localtmacdir=$(localtmacdir)" \
"tmacpath=$(tmacpath)" \
"indexext=$(indexext)" \
"indexdir=$(indexdir)" \
"indexname=$(indexname)" \
"common_words_file=$(common_words_file)" \
"manroot=$(manroot)" \
"man1ext=$(man1ext)" \
"man1dir=$(man1dir)" \
"man5ext=$(man5ext)" \
"man5dir=$(man5dir)" \
"man7ext=$(man7ext)" \
"man7dir=$(man7dir)" \
"make_html=$(make_html)" \
"make_install_html=$(make_install_html)" \
"man1dir=$(man1dir)" \
"man1ext=$(man1ext)" \
"man5dir=$(man5dir)" \
"man5ext=$(man5ext)" \
"man7dir=$(man7dir)" \
"man7ext=$(man7ext)" \
"manroot=$(manroot)" \
"mkinstalldirs=$(mkinstalldirs)" \
"tmac_wrap=$(tmac_wrap)" \
"prefix=$(prefix)" \
"revision=$(revision)" \
"sys_tmac_prefix=$(sys_tmac_prefix)" \
"pnmtops_nosetpage=$(pnmtops_nosetpage)" \
"systemtmacdir=$(systemtmacdir)" \
"tmac_an_prefix=$(tmac_an_prefix)" \
"tmac_s_prefix=$(tmac_s_prefix)" \
"tmac_m_prefix=$(tmac_m_prefix)" \
"EXEEXT=$(EXEEXT)" \
"OBJEXT=$(OBJEXT)" \
"CCC=$(CCC)" \
"CC=$(CC)" \
"CCDEFINES=$(CCDEFINES)" \
"CDEFINES=$(CDEFINES)" \
"CCFLAGS=$(CCFLAGS)" \
"CFLAGS=$(CFLAGS)" \
"LDFLAGS=$(LDFLAGS)" \
"YACC=$(YACC)" \
"YACCFLAGS=$(YACCFLAGS)" \
"LIBM=$(LIBM)" \
"LIBS=$(LIBS)" \
"LIBOBJS=$(LIBOBJS)" \
"RANLIB=$(RANLIB)" \
"AR=$(AR)" \
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
"INSTALL_DATA=$(INSTALL_DATA)" \
"INSTALL_INFO=$(INSTALL_INFO)" \
"ETAGS=$(ETAGS)" \
"ETAGSFLAGS=$(ETAGSFLAGS)" \
"ETAGSCCFLAG=$(ETAGSCCFLAG)" \
"PERLPATH=$(PERLPATH)" \
"SH_SCRIPT_SED_CMD=$(SH_SCRIPT_SED_CMD)" \
"PURIFY=$(PURIFY)" \
"PURIFYCCFLAGS=$(PURIFYCCFLAGS)"
"tmac_s_prefix=$(tmac_s_prefix)" \
"tmac_wrap=$(tmac_wrap)" \
"tmacdir=$(tmacdir)" \
"tmacpath=$(tmacpath)" \
"top_builddir=$(top_builddir)" \
"top_srcdir=$(top_srcdir)" \
"version=$(version)"
SHELL=/bin/sh
INCDIRS=src/include

View File

@ -1,4 +1,4 @@
LIBCLEAN=lib$(LIB).a
LIBCLEAN=lib$(LIB).$(LIBEXT)
MAKEFILEPARTS=\
$(top_srcdir)/Makefile.comm \
$(top_builddir)/Makefile.cfg \
@ -6,9 +6,9 @@ MAKEFILEPARTS=\
$(top_srcdir)/Makefile.lib \
Makefile.dep
all: lib$(LIB).a
all: lib$(LIB).$(LIBEXT)
lib$(LIB).a: $(OBJS)
lib$(LIB).$(LIBEXT): $(OBJS)
$(AR) r $@ $?
$(RANLIB) $@

View File

@ -5,6 +5,7 @@ DISTCLEANFILES=\
stamp-h \
Makefile \
src/xditview/Imakefile \
$(srcdir)/src/xditview/gxditview._man \
src/include/config.h
CLEANADD=Makefile.cfg conftest*

View File

@ -1,6 +1,227 @@
This file describes recent user-visible changes in groff. Bug fixes are not
described. There are more details in the man and info pages.
VERSION 1.19
============
Troff
-----
o Input encoding files for latin-9 (a.k.a. latin-0 and ISO 8859-15) and
latin-2 (ISO 8859-2) have been added. Example use:
groff -Tdvi -mlatin9 my_file > my_file.dvi
You still need proper fonts with the necessary glyphs. Out of the box,
the groff package supports latin-9 only for -Tps, -Tdvi, and -Tutf8,
and latin-2 only for -Tdvi and -Tutf8.
o Composite glyphs are now supported. To do this, a subset of the Adobe
Glyph List (AGL) Algorithm as described in
http://partners.adobe.com/asn/developer/typeforum/unicodegn.html
is used to construct glyph names based on Unicode character codes. The
existing groff glyph names are frozen; no glyph names which can't be
constructed algorithmically will be added in the future.
The \[...] escape sequence has been extended to specify multiple glyph
components. Example:
\[A ho]
this accesses a glyph with the name `u0041_0328'.
Some groff glyphs which are useful as composites map to `wrong' Unicode
code points. For example, `ho' maps to U+02DB which is a spacing
ogonek, whereas a non-spacing ogonek U+0328 is needed for composite
glyphs. The new request
.composite from to
will change the mapping while a composite glyph name is constructed.
To make \[A ho] yield the expected result,
.composite ho u0328
is needed. [The new file `composite.tmac' loaded at start-up already
contains proper calls to `.composite'.]
Please refer to the info pages of groff and to the groff_char man page
for more details.
o A new request `fschar' has been added to define font-specific fallback
characters. They are searched after the list of fonts declared with the
`fspecial' request but before the list of fonts declared with `special'.
o Fallback characters defined with `fschar' can be removed with the
new `rfschar' request.
o A new request `schar' has been added to define global fallback
characters. They are searched after the list of fonts declared with the
`special' request but before the already mounted special fonts.
o In groff versions 1.18 and 1.18.1, \D'f ...' didn't move the current
point horizontally. Despite of being silly, this change has been
reverted for backwards compatibility. Consequently, the intermediate
output command `Df' also moves the position horizontally again.
\D'f ...' is deprecated since it depends on the horizontal resolution of
the output device (given with the `hor' parameter in the DESC file).
Use the new \D'Fg ...' escape instead.
o For orthogonality, new \D subcommands to change the fill color are
available:
\D'Fr ...' (rgb)
\D'Fc ...' (cmy)
\D'Fg ...' (gray)
\D'Fk ...' (cmyk)
\D'Fd' (default color)
The arguments are the same as with the `defcolor' request. The current
position is *not* changed.
o The values set with \H and \S are now available in number registers
\n[.height] and \n[.slant], respectively.
o The `.pe' number register isn't new but hasn't been documented before.
It is set to 1 during a page ejection caused by the `bp' request.
o The new glyph symbol `tno' is a textual variant of `no'.
o The new glyph symbol `+e' represents U+03F5, GREEK LUNATE EPSILON SYMBOL.
(Well, it is not really new since it has been previously supported by
grolj4.) The mapping for both the dvi and lj4 symbol font has been
changed accordingly so that Greek small letter epsilon, `*e', has the
same glyph shape as with other devices.
Grops
-----
o The font `freeeuro.pfa' has been added to provide various default glyph
shapes for `eu' and `Eu'.
o It is now possible to access all glyphs in a Type 1 font, not only 256
(provided the font file created by afmtodit has proper entries). grops
constructs additional encoding vectors on the fly if necessary.
o The paper size is now emitted via the %%DocumentMedia and PageSize
mechanisms so that it is no longer required to tell `gv' or `ps2pdf'
about the paper size. The `broken' flag value 16 omits this feature
(the used PostScript command `setpagedevice' is a LanguageLevel 2
extension). Patch by Egil Kvaleberg <egil@kvaleberg.no>.
o Non-slanted PostScript metrics have been changed again; they no longer
contain negative left italic correction values. This assures correct
spacing with eqn.
Grodvi
------
o The font cmtex10 has been added as the special font `SC' to the DVI fonts.
It is used as a font-specific special font for CW and CWI.
o New options -l and -p to set landscape orientation and the paper size.
grodvi now emits a `papersize' special which is understood by DVI drivers
like dvips.
Consequently, the DESC file should contain a `papersize' keyword.
o The glyph shapes for \[*f] and \[*e] have been exchanged with \[+f] and
\[+e], respectively, to be in sync with all other devices.
o Glyphs \[HE] and \[DI] have been replaced with \[u2662] and \[u2661],
respectively, since the former two glyphs have a black (filled) shape
which grodvi doesn't provide by default (it never has actually).
Grolj4
------
o The glyphs \[*e] and \[+e] have been exchanged to be in sync with
all other devices.
o The glyph \[~=] is now called \[|=]. Similar to other devices, \[~=]
is now another name for glyph \[~~].
Grotty
------
o New option `-r'. It is similar to the -i option except it tells grotty to
use the `reverse video' attribute to render italic fonts.
Pic
---
o New command `figname' to set the name of a picture's output box in TeX
mode.
Refer
-----
o The environment variable `REFER' to override the name of the default
database isn't new but hasn't been documented before.
Soelim
------
o New option `-r' to avoid emission of `.lf' lines.
o New option `-t' to emit TeX comment lines (giving current file and the
line number) instead of `.lf' lines.
Afmtodit
--------
o Unencoded glyphs in an AFM file are output also (since grops can now emit
multiple encoding vectors for a single font).
o New option `-m' to prevent negative left italic correction values.
o The mapping and encoding file together with file `DESC' are now searched
in the default font directory also. Please refer to the man page of
afmtodit for more details.
Macro Packages
--------------
o Larry Kollar <kollar@alltel.net> and others made the man macros more
customizable.
. New command line options -rFT, -rIN, and -rSN to set the vertical
location of the footer line, the body text indentation, and the
sub-subheading indentation.
. New command line option -rHY (similar to the ms macros) to control
hyphenation.
. New macros `.PT' and `.BT' to print the header and footer strings.
They can be replaced with a customized version in `man.local'.
. The string `HF' now holds the typeface to print headings and
subheadings.
. Similar to the ms macros, the LT register now defaults to LL if not
explicitly specified on the command line.
o troff's start-up file `troffrc' now includes `papersize.tmac' to set
the paper size with the command line option `-dpaper=<size>'.
Possible values for `<size>' are the same as the predefined `papersize'
values in the DESC file (only lowercase; see the groff_font man page)
except a7-d7. An appended `l' (ell) character denotes landscape
orientation. Examples: `a4', `c3l', `letterl'.
Most output drivers need additional command line switches `-p' and
`-l' to override the default paper length and orientation as set in
the driver specific DESC file.
For example, use the following for PS output on A4 paper in landscape
orientation:
groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps
VERSION 1.18.1
==============
@ -8,11 +229,11 @@ Troff
-----
o The non-slanted PostScript font definition files have been regenerated to
include left and right italic correction values. Applying those to a glyph
(this is, prepending the glyph with `\,' and appending `\/' to the glyph)
sets the glyph width to the real value given by the horizontal bounding
box values. Without those escapes, the advance width for the particular
glyph is used (which can differ considerably).
include left and right italic correction values. Applying those to a
glyph (this is, prepending the glyph with `\,' and appending `\/' to the
glyph) sets the glyph width to the real value given by the horizontal
bounding box values. Without those escapes, the advance width for the
particular glyph is used (which can differ considerably).
Most users will neither need this feature nor notice a difference in
existing documents (provided \, and \/ is used as advertised, namely for

View File

@ -38,10 +38,10 @@ or, if you want to be portable to older troff versions, as follows:
* groff can't handle my troff document. It works fine with AT&T
troff.
Read the section on incompatibilities in gtroff(1). Try using the -C
option. Alternatively there's the sed script `tmac/fixmacros.sed'
which will attempt to edit a file of macros so that it can be used
with groff without the -C flag.
Read the section on incompatibilities in groff_diff(7). Try using
the -C option. Alternatively there's the sed script
`tmac/fixmacros.sed' which will attempt to edit a file of macros so
that it can be used with groff without the -C flag.
----------------------------------------------------------------------
@ -69,7 +69,7 @@ slow computers.)
* Groff doesn't use the font names I'm used to.
Use the `ftr' request. See (g)troff(1).
Use the `ftr' request. See groff_diff(7).
----------------------------------------------------------------------
@ -119,18 +119,8 @@ comments, you can do it like this:
There seem to be many different styles of page header and footer
produced by different versions of the -man macros. You will need to
modify tmac/an-old.tmac to suit your personal taste. For example, if
you want the center of the page header to say
System Programmer's Manual
you will need to change the line
.el .ds an-extra3 \"System Programmer's Manual
to
.el .ds an-extra3 System Programmer's Manual
put modified macros from tmac/an-old.tmac into man.local. More
information is available in groff_man(7).
----------------------------------------------------------------------
@ -335,18 +325,26 @@ are available in the devps directory.
* I've configured groff for A4 paper, but gtroff still seems to think
that the length of a page (as returned by `\n(.p') is 11 inches.
This is intentional. The PAGE option is used only by grops. For
compatibility with ditroff, the default page length in gtroff is
always 11 inches. The page length can be changed with the `pl'
request.
This is intentional. The PAGE option during configuration is used
only by grops. For compatibility with ditroff, the default page
length in gtroff is always 11 inches. The page length can be changed
with the `pl' request.
A convenient way to set paper dimensions is to use the -dpaper option
of groff, together with proper -P options for the postprocessor
(overriding the default). For example, use the following for PS
output on A4 paper in landscape orientation:
groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps
See groff_tmac(5) for more information.
----------------------------------------------------------------------
* When I print the output groff -Tps, the output is always shifted up
by about 0.7 inches; I'm using 8.5x11 inch paper.
* When I print the output of groff -Tps, the output is always shifted
up by about 0.7 inches; I'm using 8.5x11 inch paper.
Make sure that PAGE is defined to be `letter' in the top-level
Makefile.
Make sure that the paper size is `letter'. See groff_tmac(5).
----------------------------------------------------------------------
@ -421,12 +419,14 @@ You have at least 3 options:
* Groff seems to generate level 3 Postscript, but my printer is only a
level 1 or 2 PostScript printer.
In fact groff generates only level 1 PostScript. The `%!PS-Adobe-3.0'
comment at the beginning of PostScript output generated by groff
indicates that the file conforms to version 3.0 of the Adobe Document
Structuring Conventions. The output generated by groff should be
printable on any PostScript printer. Problems with groff output's not
printing are most often caused by the spooling system.
In fact groff generates only level 2 PostScript (or rather level 1
with some extensions; see grops(1) for more information how to disable
them). The `%!PS-Adobe-3.0' comment at the beginning of PostScript
output generated by groff indicates that the file conforms to
version 3.0 of the Adobe Document Structuring Conventions. The output
generated by groff should be printable on any PostScript printer.
Problems with groff output's not printing are most often caused by the
spooling system.
@ -613,8 +613,12 @@ Compilation Problems
y.tab.c: In function `int yyparse()':
y.tab.c: `size_t' undeclared in namespace `std'
This is a bug in bison 1.32. Don't use this version. 1.28 or 1.33 works
fine. Alternatively, use yacc or byacc.
* bison reports conflicts (either on stderr or in the `pic.output'
file) while processing `pic.y', and the produced pic binary doesn't
work at all.
You need bison version 1.875b or greater. Alternatively, use yacc or
byacc.
----------------------------------------------------------------------
@ -783,3 +787,9 @@ patch is available. Use GCC 2.95.2 or later instead.
Make sure -DCFRONT_ANSI_BUG is included in DEFINES in the top-level
Makefile. If that doesn't solve the problem, define INT_MIN as
-INT_MAX in libgroff/lib.h.
----------------------------------------------------------------------
* When compiling on MacOS X, groff compiles but does not run well.
Use ./configure CXX=g++2 then make as usual.

6
contrib/groff/README.CVS Normal file
View File

@ -0,0 +1,6 @@
You need the following tools to build groff directly from CVS:
the netpbm package
texinfo >= 4.3
bison >= 1.875b or byacc
ghostscript

View File

@ -1 +1 @@
1
0

View File

@ -1 +1 @@
1.18
1.19

View File

@ -63,25 +63,82 @@ dnl
AC_DEFUN(GROFF_HTML_PROGRAMS,
[make_html=html
make_install_html=install_html
missing=
AC_CHECK_PROG(pnmcut, pnmcut, found, missing)
if test $pnmcut = missing; then
missing="$missing pnmcut"
fi
AC_CHECK_PROG(pnmcrop, pnmcrop, found, missing)
if test $pnmcrop = missing; then
missing="$missing pnmcrop"
fi
AC_CHECK_PROG(pnmtopng, pnmtopng, found, missing)
if test $pnmtopng = missing; then
missing="$missing pnmtopng"
fi
AC_CHECK_PROG(gs, gs gsos2, found, missing)
if test $gs = missing; then
missing="$missing gs"
fi
AC_CHECK_PROG(psselect, psselect, found, missing)
case "x$pnmcut$pnmcrop$pnmtopng$gs$psselect" in
*missing*)
if test $psselect = missing; then
missing="$missing psselect"
fi
AC_CHECK_PROG(pnmtops, pnmtops, found, missing)
if test $pnmtops = missing; then
missing="$missing pnmtops"
fi
if test -n "$missing"; then
cnt=0
for i in $missing
do
cnt=`expr $cnt + 1`
eval "prog$cnt=$i"
done
plural="s"
case $cnt in
1)
plural=""
progs="\`$prog1'" ;;
2)
progs="\`$prog1' and \`$prog2'" ;;
3)
progs="\`$prog1', \`$prog2', and \`$prog3'" ;;
4)
progs="\`$prog1', \`$prog2', \`$prog3', and \`$prog4'" ;;
5)
progs="\`$prog1', \`$prog2', \`$prog3', \`$prog4', and \`$prog5'" ;;
6)
progs="\`$prog1', \`$prog2', \`$prog3', \`$prog4', \`$prog5', and \`$prog6'" ;;
esac
make_html=
make_install_html=
AC_MSG_WARN([
Since one or more of the above five programs can't be found in the path,
the HTML backend of groff (grohtml) won't work properly. Consequently,
no documentation in HTML format is built and installed.
]) ;;
esac
The program$plural
$progs
can't be found in the path, thus the HTML backend of groff (grohtml)
won't work properly. Consequently, no documentation in HTML format
is built and installed.
])
fi
AC_SUBST(make_html)
AC_SUBST(make_install_html)])dnl
dnl
dnl check to see whether pnmtops can handle the -nosetpage option
dnl
AC_DEFUN(GROFF_PNMTOPS_NOSETPAGE,
[AC_MSG_CHECKING([whether pnmtops can handle the -nosetpage option])
if echo P2 2 2 255 0 1 2 0 | pnmtops -nosetpage > /dev/null 2>&1 ; then
AC_MSG_RESULT(yes)
pnmtops_nosetpage="pnmtops -nosetpage"
else
AC_MSG_RESULT(no)
pnmtops_nosetpage="pnmtops"
fi
AC_SUBST(pnmtops_nosetpage)
])dnl
dnl
dnl
dnl GROFF_CSH_HACK(if hack present, if not present)
dnl
@ -188,6 +245,17 @@ AC_MSG_RESULT(no))
AC_LANG_POP(C++)])dnl
dnl
dnl
AC_DEFUN(GROFF_STDINT_H,
[AC_LANG_PUSH(C++)
AC_MSG_CHECKING([C++ <stdint.h>])
AC_TRY_COMPILE([#include <stdint.h>],
[uint32_t x; int32_t y;],
AC_MSG_RESULT(yes);AC_DEFINE(HAVE_CC_STDINT_H, 1,
[Define if you have a C++ <stdint.h>.]),
AC_MSG_RESULT(no))
AC_LANG_POP(C++)])dnl
dnl
dnl
AC_DEFUN(GROFF_TIME_T,
[AC_LANG_PUSH(C++)
AC_MSG_CHECKING([for declaration of time_t])
@ -545,12 +613,12 @@ fi
AC_LANG_POP(C++)])dnl
dnl
dnl
dnl If mkstemp() isn't available, use our own mkstemp.cc file.
dnl If mkstemp() isn't available, use our own mkstemp.cpp file.
dnl
AC_DEFUN(GROFF_MKSTEMP,
[AC_MSG_CHECKING([for mkstemp])
AC_LANG_PUSH(C++)
AC_LIBSOURCE(mkstemp.cc)
AC_LIBSOURCE(mkstemp.cpp)
AC_TRY_LINK([#include <stdlib.h>
#include <unistd.h>
int (*f) (char *);],

View File

@ -267,7 +267,7 @@ PACKAGE_VERSION=
PACKAGE_STRING=
PACKAGE_BUGREPORT=
ac_unique_file="src/roff/groff/groff.cc"
ac_unique_file="src/roff/groff/groff.cpp"
# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
@ -305,7 +305,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS groff_top_builddir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX TTYDEVDIRS OTHERDEVDIRS LPR LP LPQ PSPRINT DVIPRINT PERLPATH YACC RANLIB ac_ct_RANLIB INSTALL_INFO INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S SH_SCRIPT_SED_CMD CPP EGREP LIBM LIBOBJS BROKEN_SPOOLER_FLAGS PAGE g sys_tmac_prefix tmac_wrap pnmcut pnmcrop pnmtopng gs psselect make_html make_install_html LTLIBOBJS'
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS groff_top_builddir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX TTYDEVDIRS OTHERDEVDIRS LPR LP LPQ PSPRINT DVIPRINT PERLPATH YACC RANLIB ac_ct_RANLIB INSTALL_INFO INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S SH_SCRIPT_SED_CMD CPP EGREP LIBM LIBOBJS BROKEN_SPOOLER_FLAGS PAGE g sys_tmac_prefix tmac_wrap pnmcut pnmcrop pnmtopng gs psselect pnmtops make_html make_install_html pnmtops_nosetpage LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@ -3459,9 +3459,8 @@ done
for ac_header in stdlib.h unistd.h dirent.h limits.h sys/dir.h \
string.h strings.h math.h stdint.h sys/time.h
string.h strings.h math.h sys/time.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
if eval "test \"\${$as_ac_Header+set}\" = set"; then
@ -4093,6 +4092,246 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
echo "$as_me:$LINENO: checking whether rand must be declared" >&5
echo $ECHO_N "checking whether rand must be declared... $ECHO_C" >&6
ac_ext=cc
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
if test "${groff_cv_decl_needed_rand+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
#include "confdefs.h"
#include <stdio.h>
#ifdef HAVE_STRING_H
#include <string.h>
#endif
#ifdef HAVE_STRINGS_H
#include <strings.h>
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_MATH_H
#include <math.h>
#endif
int
main ()
{
#ifndef rand
char *p = (char *) rand;
#endif
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
groff_cv_decl_needed_rand=no
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
groff_cv_decl_needed_rand=yes
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $groff_cv_decl_needed_rand" >&5
echo "${ECHO_T}$groff_cv_decl_needed_rand" >&6
if test $groff_cv_decl_needed_rand = yes; then
cat >>confdefs.h <<\_ACEOF
#define NEED_DECLARATION_RAND 1
_ACEOF
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
echo "$as_me:$LINENO: checking whether snprintf must be declared" >&5
echo $ECHO_N "checking whether snprintf must be declared... $ECHO_C" >&6
ac_ext=cc
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
if test "${groff_cv_decl_needed_snprintf+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
#include "confdefs.h"
#include <stdio.h>
#ifdef HAVE_STRING_H
#include <string.h>
#endif
#ifdef HAVE_STRINGS_H
#include <strings.h>
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_MATH_H
#include <math.h>
#endif
int
main ()
{
#ifndef snprintf
char *p = (char *) snprintf;
#endif
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
groff_cv_decl_needed_snprintf=no
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
groff_cv_decl_needed_snprintf=yes
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $groff_cv_decl_needed_snprintf" >&5
echo "${ECHO_T}$groff_cv_decl_needed_snprintf" >&6
if test $groff_cv_decl_needed_snprintf = yes; then
cat >>confdefs.h <<\_ACEOF
#define NEED_DECLARATION_SNPRINTF 1
_ACEOF
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
echo "$as_me:$LINENO: checking whether srand must be declared" >&5
echo $ECHO_N "checking whether srand must be declared... $ECHO_C" >&6
ac_ext=cc
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
if test "${groff_cv_decl_needed_srand+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
#include "confdefs.h"
#include <stdio.h>
#ifdef HAVE_STRING_H
#include <string.h>
#endif
#ifdef HAVE_STRINGS_H
#include <strings.h>
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_MATH_H
#include <math.h>
#endif
int
main ()
{
#ifndef srand
char *p = (char *) srand;
#endif
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
groff_cv_decl_needed_srand=no
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
groff_cv_decl_needed_srand=yes
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $groff_cv_decl_needed_srand" >&5
echo "${ECHO_T}$groff_cv_decl_needed_srand" >&6
if test $groff_cv_decl_needed_srand = yes; then
cat >>confdefs.h <<\_ACEOF
#define NEED_DECLARATION_SRAND 1
_ACEOF
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
echo "$as_me:$LINENO: checking whether strcasecmp must be declared" >&5
echo $ECHO_N "checking whether strcasecmp must be declared... $ECHO_C" >&6
ac_ext=cc
@ -4453,6 +4692,57 @@ ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
echo "$as_me:$LINENO: checking C++ <stdint.h>" >&5
echo $ECHO_N "checking C++ <stdint.h>... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
#include "confdefs.h"
#include <stdint.h>
int
main ()
{
uint32_t x; int32_t y;
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6;
cat >>confdefs.h <<\_ACEOF
#define HAVE_CC_STDINT_H 1
_ACEOF
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi
rm -f conftest.$ac_objext conftest.$ac_ext
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_ext=cc
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
echo "$as_me:$LINENO: checking for inttypes.h" >&5
echo $ECHO_N "checking for inttypes.h... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
@ -5118,7 +5408,10 @@ LIBS="$LIBS -lc $LIBM"
for ac_func in fmod getcwd putenv snprintf strerror strtol
for ac_func in fmod getcwd putenv snprintf strcasecmp \
strerror strncasecmp strtol
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
echo "$as_me:$LINENO: checking for $ac_func" >&5
@ -5196,8 +5489,7 @@ LIBS="$saved_libs"
for ac_func in gettimeofday isatty rename strcasecmp strncasecmp strsep
for ac_func in gettimeofday isatty rename setlocale strsep
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
echo "$as_me:$LINENO: checking for $ac_func" >&5
@ -5660,6 +5952,7 @@ echo "${ECHO_T}$tmac_wrap" >&6
make_html=html
make_install_html=install_html
missing=
# Extract the first word of "pnmcut", so it can be a program name with args.
set dummy pnmcut; ac_word=$2
echo "$as_me:$LINENO: checking for $ac_word" >&5
@ -5696,6 +5989,9 @@ else
echo "${ECHO_T}no" >&6
fi
if test $pnmcut = missing; then
missing="$missing pnmcut"
fi
# Extract the first word of "pnmcrop", so it can be a program name with args.
set dummy pnmcrop; ac_word=$2
echo "$as_me:$LINENO: checking for $ac_word" >&5
@ -5732,6 +6028,9 @@ else
echo "${ECHO_T}no" >&6
fi
if test $pnmcrop = missing; then
missing="$missing pnmcrop"
fi
# Extract the first word of "pnmtopng", so it can be a program name with args.
set dummy pnmtopng; ac_word=$2
echo "$as_me:$LINENO: checking for $ac_word" >&5
@ -5768,6 +6067,9 @@ else
echo "${ECHO_T}no" >&6
fi
if test $pnmtopng = missing; then
missing="$missing pnmtopng"
fi
# Extract the first word of "gs gsos2", so it can be a program name with args.
set dummy gs gsos2; ac_word=$2
echo "$as_me:$LINENO: checking for $ac_word" >&5
@ -5804,6 +6106,9 @@ else
echo "${ECHO_T}no" >&6
fi
if test $gs = missing; then
missing="$missing gs"
fi
# Extract the first word of "psselect", so it can be a program name with args.
set dummy psselect; ac_word=$2
echo "$as_me:$LINENO: checking for $ac_word" >&5
@ -5840,23 +6145,103 @@ else
echo "${ECHO_T}no" >&6
fi
case "x$pnmcut$pnmcrop$pnmtopng$gs$psselect" in
*missing*)
if test $psselect = missing; then
missing="$missing psselect"
fi
# Extract the first word of "pnmtops", so it can be a program name with args.
set dummy pnmtops; ac_word=$2
echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_pnmtops+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test -n "$pnmtops"; then
ac_cv_prog_pnmtops="$pnmtops" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_pnmtops="found"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
test -z "$ac_cv_prog_pnmtops" && ac_cv_prog_pnmtops="missing"
fi
fi
pnmtops=$ac_cv_prog_pnmtops
if test -n "$pnmtops"; then
echo "$as_me:$LINENO: result: $pnmtops" >&5
echo "${ECHO_T}$pnmtops" >&6
else
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi
if test $pnmtops = missing; then
missing="$missing pnmtops"
fi
if test -n "$missing"; then
cnt=0
for i in $missing
do
cnt=`expr $cnt + 1`
eval "prog$cnt=$i"
done
plural="s"
case $cnt in
1)
plural=""
progs="\`$prog1'" ;;
2)
progs="\`$prog1' and \`$prog2'" ;;
3)
progs="\`$prog1', \`$prog2', and \`$prog3'" ;;
4)
progs="\`$prog1', \`$prog2', \`$prog3', and \`$prog4'" ;;
5)
progs="\`$prog1', \`$prog2', \`$prog3', \`$prog4', and \`$prog5'" ;;
6)
progs="\`$prog1', \`$prog2', \`$prog3', \`$prog4', \`$prog5', and \`$prog6'" ;;
esac
make_html=
make_install_html=
{ echo "$as_me:$LINENO: WARNING:
Since one or more of the above five programs can't be found in the path,
the HTML backend of groff (grohtml) won't work properly. Consequently,
no documentation in HTML format is built and installed.
The program$plural
$progs
can't be found in the path, thus the HTML backend of groff (grohtml)
won't work properly. Consequently, no documentation in HTML format
is built and installed.
" >&5
echo "$as_me: WARNING:
Since one or more of the above five programs can't be found in the path,
the HTML backend of groff (grohtml) won't work properly. Consequently,
no documentation in HTML format is built and installed.
" >&2;} ;;
esac
The program$plural
$progs
can't be found in the path, thus the HTML backend of groff (grohtml)
won't work properly. Consequently, no documentation in HTML format
is built and installed.
" >&2;}
fi
echo "$as_me:$LINENO: checking whether pnmtops can handle the -nosetpage option" >&5
echo $ECHO_N "checking whether pnmtops can handle the -nosetpage option... $ECHO_C" >&6
if echo P2 2 2 255 0 1 2 0 | pnmtops -nosetpage > /dev/null 2>&1 ; then
echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
pnmtops_nosetpage="pnmtops -nosetpage"
else
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
pnmtops_nosetpage="pnmtops"
fi
ac_config_files="$ac_config_files stamp-h"
@ -6495,8 +6880,10 @@ s,@pnmcrop@,$pnmcrop,;t t
s,@pnmtopng@,$pnmtopng,;t t
s,@gs@,$gs,;t t
s,@psselect@,$psselect,;t t
s,@pnmtops@,$pnmtops,;t t
s,@make_html@,$make_html,;t t
s,@make_install_html@,$make_install_html,;t t
s,@pnmtops_nosetpage@,$pnmtops_nosetpage,;t t
s,@LTLIBOBJS@,$LTLIBOBJS,;t t
CEOF

View File

@ -1,7 +1,7 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT
AC_CONFIG_HEADERS(src/include/config.h:src/include/config.hin)
AC_CONFIG_SRCDIR([src/roff/groff/groff.cc])
AC_CONFIG_SRCDIR([src/roff/groff/groff.cpp])
dnl checks for programs
GROFF_SRCDIR
GROFF_BUILDDIR
@ -24,7 +24,7 @@ GROFF_CSH_HACK(SH_SCRIPT_SED_CMD='1s/.*/:/', SH_SCRIPT_SED_CMD='1s/a/a/')
AC_SUBST(SH_SCRIPT_SED_CMD)
dnl checks for headers
AC_CHECK_HEADERS(stdlib.h unistd.h dirent.h limits.h sys/dir.h \
string.h strings.h math.h stdint.h sys/time.h)
string.h strings.h math.h sys/time.h)
GROFF_ISC_SYSV3
GROFF_POSIX
GROFF_SRAND
@ -33,12 +33,16 @@ GROFF_NEED_DECLARATION(hypot)
GROFF_NEED_DECLARATION(popen)
GROFF_NEED_DECLARATION(pclose)
GROFF_NEED_DECLARATION(putenv)
GROFF_NEED_DECLARATION(rand)
GROFF_NEED_DECLARATION(snprintf)
GROFF_NEED_DECLARATION(srand)
GROFF_NEED_DECLARATION(strcasecmp)
GROFF_NEED_DECLARATION(strncasecmp)
GROFF_SYS_NERR
GROFF_SYS_ERRLIST
GROFF_OSFCN_H
GROFF_LIMITS_H
GROFF_STDINT_H
GROFF_INTTYPES_H
dnl checks for typedefs
GROFF_UNSIGNED_LONG_LONG
@ -52,9 +56,10 @@ dnl checks for functions
AC_FUNC_MMAP
saved_libs="$LIBS"
LIBS="$LIBS -lc $LIBM"
AC_REPLACE_FUNCS(fmod getcwd putenv snprintf strerror strtol)
AC_REPLACE_FUNCS(fmod getcwd putenv snprintf strcasecmp \
strerror strncasecmp strtol)
LIBS="$saved_libs"
AC_CHECK_FUNCS(gettimeofday isatty rename strcasecmp strncasecmp strsep)
AC_CHECK_FUNCS(gettimeofday isatty rename setlocale strsep)
GROFF_MKSTEMP
AC_DECL_SYS_SIGLIST
dnl checks for compiler characteristics
@ -68,6 +73,7 @@ GROFF_PAGE
GROFF_G
GROFF_TMAC
GROFF_HTML_PROGRAMS
GROFF_PNMTOPS_NOSETPAGE
AC_CONFIG_FILES(stamp-h, [echo timestamp > stamp-h])
AC_CONFIG_FILES([Makefile doc/Makefile src/xditview/Imakefile])
AC_OUTPUT

View File

@ -1,3 +1,100 @@
2003-01-22 Bernd Warken <bwarken@mayn.de>
________________________________________________________________
* release of groffer 0.9.4
* groffer.sh: corrections for some restrictive shells
- Possible exit codes in actual `ash' are between 0 and 63. To
handle even deeper restrictions, use 7 as maximal code instead
of 255 as replacement for error -1.
- Remove variables $_BAD2 and $_BAD3.
- Replace `trap' argument `EXIT' by 0 and write new fuctions
`trap_clean' and `trap_set' to handle the restrictions of `trap'
for some shells.
- Correct wrong $MANPATH to $_MAN_PATH in function
`man_do_filespec'.
- Test existence of directory before deleting it in the
`clean_up' definitions.
- Correct help output in `usage' (called by `--help').
* TODO:
Remove mention of `shoop' and `apropos'.
2002-10-21 Bernd Warken <bwarken@mayn.de>
________________________________________________________________
* release of groffer 0.9.3
* groffer.sh: new temporary subdirectory
- Generate temporary subdirectory for storing temporary files
with better names in future groffer versions (name:
"groffer$$" in usual temporary directory).
- Use `umask 000' for temporary files to allow cleaning up
for everyone after a system break.
- Change both clean_up() functions (for normal shell and
for main_display() subshell) to handle the new subdirectory.
- clean_up_secondary() and $_TMP_PREFIX are unnecessary now, so
they were removed.
* Makefile.sub: `sed' commands for "groffer:"
- Remove "@g@" entry (not used in "groffer.sh").
- Add global replace for "@BINDIR@" and "@VERSION@" for future
usage.
* TODO: think about...
- writing part of groffer in C/C++.
- handling several files with different macro packages.
2002-10-17 Bernd Warken <bwarken@mayn.de>
________________________________________________________________
* fixes of groffer 0.9.2
* groffer.sh:
Terminate main_parse_MANOPT() if $MANOPT is empty or consists
of space characters only.
* groffer.man: some fixes in "GROFFER OPTIONS"
- New macro ".Header_CB" for CB font in .TP headers; used for
definition of variables in option --mode.
- Fix some option references to refer to long options.
* README:
New file for general information on the groffer source; it is
not installed.
2002-10-14 Bernd Warken <bwarken@mayn.de>
* Makefile.sub:
add replacement "@BINDIR@" to "$(bindir)" for "groffer:"
* groffer.sh:
Define $_this as "@BINDIR@/${_PROGRAM_NAME}" to save the right
installation position of groffer for the special shell calling.
* groffer.man:
Remove double definition of filespec parameters.
2002-10-13 Bernd Warken <bwarken@mayn.de>
________________________________________________________________
* release of groffer 0.9.2
* groffer.sh: fixes
- Fix some 'sed' functions: two in func_stack_dump(), one in
base_name(), add 'sed' command in list_from_cmdline().
- Finish main_parse_MANOPT() if $MANOPT is empty.
- Sort $_OPTS_GROFF_SHORT_NA like groff short options (but
unchanged).
- Fix some comments.
* groffer.man: make it more readable (but no additions)
- A shortened section "SYNOPSIS" is followed by a simplified
section "DESCRIPTION".
- The options from "SYNOPSIS" go to new section "OPTION
OVERVIEW" with all groffer options in a single subsection.
- The details of all groffer options are described in section
"GROFFER OPTIONS".
- New macro for file names ".File_name".
- "Option Parsing" is moved to section "COMPATIBILITY".
- Fix some "EXAMPLES".
2002-09-30 Bernd Warken <bwarken@mayn.de>
________________________________________________________________
* release of groffer 0.9.1

View File

@ -2,7 +2,7 @@
# File position: <groff-source>/contrib/groffer/Makefile.sub
# Last update: 23 June 2002
# Last update: 21 October 2002
# Copyright (C) 2001,2002 Free Software Foundation, Inc.
# Written by Werner Lemberg <wl@gnu.org>
@ -33,8 +33,8 @@ all: groffer
groffer: groffer.sh
rm -f $@; \
sed -e "s|@g@|$(g)|g" \
-e "s|@VERSION@|$(version)$(revision)|" \
sed -e "s|@BINDIR@|$(bindir)|g" \
-e "s|@VERSION@|$(version)$(revision)|g" \
-e $(SH_SCRIPT_SED_CMD) $(srcdir)/groffer.sh >$@; \
chmod +x $@

View File

@ -0,0 +1,23 @@
The `groffer' program is the easiest way to read `groff' documents.
All input is sent to `grog' and then to `groff' such that no special
`groff' arguments must be determined.
`groffer' also has many built-in `man' functionalities to find and
read the manual pages on UNIX and similar operating systems. It
accepts the information from an installed `man' program, but tries to
find a man path by itself if there isn't any.
So far, `groffer' is a shell script. It should run on any POSIX or
Bourne style shell, but it runs the fastest if the `ash' shell is
installed on the system. This shell is found out and started
automatically. There are efforts to port part of the shell script to
C/C++ to increase the speed independent of the shell.
For reporting bugs of `groffer', groff's free mailing list
<bug-groff@gnu.org> can be used. For a general discussion, the
<groff@gnu.org> is more useful; see the `README' file in the top
directory of the `groff' source package for more details on this
mailing list.
`groffer' is a `groff contrib' project that was written by Bernd
Warken <bwarken@mayn.de>.

View File

@ -2,9 +2,9 @@
# File position: <groff-source>/contrib/groffer/TODO
# Last update: 30 Sep 2002
# Last update: 22 Jan 2003
# Copyright (C) 2001,2002 Free Software Foundation, Inc.
# Copyright (C) 2001,2002,2003 Free Software Foundation, Inc.
# Written by Bernd Warken <bwarken@mayn.de>
# This file is part of groff.
@ -32,9 +32,10 @@ Optimization:
- Optimize man path determination in manpath_add_lang_sys() for speed
by building-up the man path only by and by as far as necessary
(not trivial).
- To increase the running speed write part of the groffer shell script
in C/C++.
Features:
- Consider using the `shoop' package (OOP for `sh').
- Revise option handling of `grog'.
- `gxditview' needs a complete shower.
@ -42,9 +43,11 @@ Revision:
- Should there be a native implementation for `--apropos'?
- Revise the `--all' feature to better reflect GNU man.
- The debug function stack is buggy (no effect on normal operation).
- The actual `groff' and `grog' do not support file arguments each
of which has a different macro package (except `man' and `doc'). So
`roffer' should create several display files for such arguments.
Documentation:
- Write a README file.
- Improve the documentation of the search algorithm for man pages in
both the groffer script and the man page `groffer.man'.
- In `groff.man', add more documentation for parts that were taken over

File diff suppressed because it is too large Load Diff

View File

@ -2,9 +2,9 @@
# groffer - display groff files
# File position: <groff-source>/contrib/groffer/groffer
# Source file position: <groff-source>/contrib/groffer/groffer.sh
# Copyright (C) 2001,2002 Free Software Foundation, Inc.
# Copyright (C) 2001,2002,2003 Free Software Foundation, Inc.
# Written by Bernd Warken <bwarken@mayn.de>
# This file is part of groff.
@ -29,8 +29,10 @@ export _PROGRAM_VERSION;
export _LAST_UPDATE;
_PROGRAM_NAME='groffer';
_PROGRAM_VERSION='0.9.1';
_LAST_UPDATE='30 Sep 2002';
_PROGRAM_VERSION='0.9.4';
_LAST_UPDATE='22 Jan 2003';
# This program is installed with groff version @VERSION@.
########################################################################
# Determine the shell under which to run this script;
@ -44,9 +46,7 @@ if test "${_groffer_run}" != 'second'; then
export _groffer_run;
export _this;
#_this="@BINDIR@/${_PROGRAM_NAME}";
_this='groffer.sh';
_this="@BINDIR@/${_PROGRAM_NAME}";
###########################
# _get_opt_shell ("$@")
@ -217,7 +217,6 @@ _DEBUG_LM='no'; # disable landmark messages
# base_name (path)
# catz (<file>)
# clean_up ()
# clean_up_secondary ()
# diag (text>*)
# dirname_append (<path> [<dir...>])
# dirname_chop (<path>)
@ -271,6 +270,8 @@ _DEBUG_LM='no'; # disable landmark messages
# tmp_cat ()
# tmp_create (<suffix>?)
# to_tmp (<filename>)
# trap_clean ()
# trap_set (<functionname>)
# usage ()
# version ()
# warning (<string>)
@ -366,9 +367,8 @@ _SQUOTE="'";
_TAB=' ';
# function return values; `0' means ok; other values are error codes
export _ALL_EXIT;
export _BAD;
export _BAD2;
export _BAD3;
export _ERROR;
export _GOOD;
export _NO;
@ -377,9 +377,9 @@ export _YES;
_GOOD='0'; # return ok
_BAD='1'; # return negatively, error code `1'
_BAD2='2'; # return negatively, error code `2'
_BAD3='3'; # return negatively, error code `3'
_ERROR='255'; # for syntax errors; no `-1' in `ash'
_ERROR='7'; # for syntax errors; no `-1' in `ash'
_ALL_EXIT="${_GOOD} ${_BAD} ${_ERROR}"; # all exit codes (for `trap_set')
_NO="${_BAD}";
_YES="${_GOOD}";
@ -492,8 +492,8 @@ _OPTS_GROFFER_LONG_ARG="'background' 'bd' 'bg' 'bw' 'default-modes' \
##### options inhereted from groff
_OPTS_GROFF_SHORT_NA="'a' 'b' 'c' 'e' 'g' 'i' 'l' 'p' 's' 't' 'z' \
'C' 'E' 'G' 'N' 'R' 'S' 'U' 'V'";
_OPTS_GROFF_SHORT_NA="'a' 'b' 'c' 'C' 'e' 'E' 'g' 'G' 'i' 'l' 'N' 'p' \
'R' 's' 'S' 't' 'U' 'V' 'z'";
_OPTS_GROFF_SHORT_ARG="'d' 'f' 'F' 'I' 'L' 'm' 'M' 'n' 'o' 'P' 'r' \
'w' 'W'";
_OPTS_GROFF_LONG_NA="";
@ -614,9 +614,9 @@ export _OPT_X; # groff option -X.
export _OPT_XRM; # specify X resource.
export _OPT_Z; # groff option -Z.
# _TMP_* temporary files
export _TMP_DIR; # directory for temporary files
export _TMP_DIR; # groff directory for temporary files
export _TMP_DIR_SUB; # groffer directory for temporary files
export _TMP_CAT; # stores concatenation of everything
export _TMP_PREFIX; # dir and base name for temporary files
export _TMP_STDIN; # stores stdin, if any
# these variables are preset in section `Preset' after the rudim. test
@ -674,8 +674,8 @@ _HAS_OPTS_POSIX='';
# _TMP_* temporary files
_TMP_DIR='';
_TMP_DIR_SUB='';
_TMP_CAT='';
_TMP_PREFIX='';
_TMP_STDIN='';
@ -790,19 +790,10 @@ landmark "1: debugging functions";
#
clean_up()
{
clean_up_secondary;
rm -f "${_TMP_CAT}";
}
##############
# clean_up_secondary ()
#
# Clean up temporary files without $_TMP_CAT.
#
clean_up_secondary()
{
rm -f "${_TMP_STDIN}";
if test -d "${_TMP_DIR}"; then
rm -f "${_TMP_DIR}"/*;
rmdir "${_TMP_DIR}";
fi;
}
@ -1044,9 +1035,9 @@ func_stack_dump()
_rest="${_FUNC_STACK}";
while test "${_rest}" != ''; do
# get part before the first bang `!'.
diag "$(echo -n "${_rest}" | sed -e 's/^\([^!]*\)!.*$/\1/')";
# delete part up to the first bang `!'.
_rest="$(echo -n "${_rest}" | sed -e 's/^!*[^!]*!*//')";
diag "$(echo -n "${_rest}" | sed -e 's/!.*$//')";
# delete part before and including the first bang `!'.
_rest="$(echo -n "${_rest}" | sed -e 's/^[^!]*!//')";
done;
;;
*)
@ -1219,8 +1210,8 @@ base_name()
do_nothing;
;;
*/*)
# delete everything up to last slash `/'.
echo -n "$1" | sed -e '\|^.*/*\([^/]*\)$|s||\1|';
# delete everything before and including the last slash `/'.
echo -n "$1" | sed -e '\|^.*//*\([^/]*\)$|s||\1|';
;;
*)
echo -n "$1";
@ -1279,14 +1270,6 @@ fi;
# defined above
########################################################################
# clean_up_secondary ()
#
# Do the second but final cleaning up.
#
# defined above
########################################################################
# diag (<text>*)
#
@ -1926,7 +1909,7 @@ list_from_args()
########################################################################
# list_from_cmdline (<s_n> <s_a> <l_n> <l_n> [<cmdline_arg>...])
# list_from_cmdline (<s_n> <s_a> <l_n> <l_a> [<cmdline_arg>...])
#
# Transform command line arguments into a normalized form.
#
@ -2033,20 +2016,20 @@ list_from_cmdline()
# get next short option from cluster (first char of $_rest)
_optchar="$(echo -n "${_rest}" | sed -e 's/^\(.\).*$/\1/')";
# remove first character from ${_rest};
_rest="$(echo -n "${_rest}" | 's/^.//')";
_rest="$(echo -n "${_rest}" | sed -e 's/^.//')";
if list_has "${_short_n}" "${_optchar}"; then
_result="$(list_append "${_result}" "-${_optchar}")";
continue;
elif list_has "${_short_a}" "${_optchar}"; then
# remove leading character
case "${_optchar}" in
/) # cannot use normal `sed' separator
/)
_rest="$(echo -n "${_rest}" | sed -e '\|^.|s|||')";
;;
?)
_rest="$(echo -n "${_rest}" | sed -e 's/^.//')";
;;
*)
??*)
error "${_fn} several chars parsed for short option."
;;
esac;
@ -2283,7 +2266,7 @@ man_do_filespec()
local _spec;
local _string;
local s;
if is_empty "${MANPATH}"; then
if is_empty "${_MAN_PATH}"; then
eval "${return_bad}";
fi;
if is_empty "$1"; then
@ -2915,7 +2898,7 @@ if test "${_HAS_COMPRESSION}" = 'yes'; then
{
local _f;
func_check save_stdin = 0 "$@";
_f="$(tmp_create)";
_f="${_TMP_DIR}"/INPUT;
cat >"${_f}";
catz "${_f}" >"${_TMP_STDIN}";
rm -f "${_f}";
@ -3007,9 +2990,9 @@ tmp_create()
{
func_check tmp_create '<=' 1 "$@";
local _tmp;
_tmp="${_TMP_PREFIX}${_PROCESS_ID}$1";
_tmp="${_TMP_DIR}/$1";
echo -n >"${_tmp}";
echo -n "${_tmp}";
echo -n "${_tmp}"; # output file name
eval "${return_ok}";
}
@ -3038,6 +3021,44 @@ to_tmp()
}
########################################################################
# trap_clean ()
#
# disable trap on all exit codes ($_ALL_EXIT)
#
# Arguments: 0
# Globals: $_ALL_EXIT
#
trap_clean()
{
func_check trap_clean = 0 "$@";
local i;
for i in ${_ALL_EXIT}; do
trap "" "$i" 2>/dev/null || true;
done;
eval "${return_ok}";
}
########################################################################
# trap_set (<functionname>)
#
# call function on all exit codes ($_ALL_EXIT)
#
# Arguments: 1 (name of a shell function)
# Globals: $_ALL_EXIT
#
trap_set()
{
func_check trap_set = 1 "$@";
local i;
for i in ${_ALL_EXIT}; do
trap "$1" "$i" 2>/dev/null || true;
done;
eval "${return_ok}";
}
########################################################################
# usage ()
#
@ -3054,18 +3075,18 @@ This is free software licensed under the GNU General Public License.
EOF
echo2 "Usage: ${_PROGRAM_NAME} ${_header} [option]... [filespec]...";
echo2 "Usage: ${_PROGRAM_NAME} [option]... [filespec]...";
cat >&2 <<EOF
where "filespec" is one of
"filename" name of a readablefile
"filename" name of a readable file
"-" for standard input
"man:name.n" man page "name" in section "n"
"man:name" man page "name" in first section found
"name.n" man page "name" in section "n"
"name" man page "name" in first section found
and some more (see groff(1) for details).
and some more (see groffer(1) for details).
Display roff files, standard input, and/or Unix manual pages with
in a X window viewer or in a text pager.
@ -3279,7 +3300,7 @@ main_init()
{
func_check main_init = 0 "$@";
# call clean_up() on any signal
trap clean_up 2>/dev/null || true;
trap_set clean_up;
for f in ${_CONFFILES}; do
if is_file "$f"; then
@ -3288,24 +3309,39 @@ main_init()
done;
# determine temporary directory
umask 000;
_TMP_DIR='';
for d in "${GROFF_TMPDIR}" "${TMPDIR}" "${TMP}" "${TEMP}" \
"${TEMPDIR}" "${HOME}"'/tmp' '/tmp' "${HOME}" '.';
do
if test "$d" != ""; then
if test -d "$d" && test -r "$d" && test -w "$d"; then
_TMP_DIR="$d";
break;
_TMP_DIR="${d}/${_PROGRAM_NAME}${_PROCESS_ID}";
if test -d "${_TMP_DIR}"; then
rm -f "${_TMP_DIR}"/*;
break;
else
mkdir "${_TMP_DIR}";
if test ! -d "${_TMP_DIR}"; then
_TMP_DIR='';
continue;
fi;
break;
fi;
fi;
if test ! -w "${_TMP_DIR}"; then
_TMP_DIR='';
continue;
fi;
fi;
done;
unset d;
if test "${_TMP_DIR}" = ""; then
error "Couldn't find a directory for storing temorary files.";
if test "${_TMP_DIR}" = ''; then
error "Couldn't create a directory for storing temporary files.";
fi;
_TMP_PREFIX="${_TMP_DIR}/${_PROGRAM_NAME}";
_TMP_CAT="$(tmp_create)";
_TMP_STDIN="$(tmp_create i)";
_TMP_CAT="$(tmp_create groffer_cat)";
_TMP_STDIN="$(tmp_create groffer_input)";
eval "${return_ok}";
} # main_init()
@ -3313,7 +3349,8 @@ main_init()
########################################################################
# main_parse_MANOPT ()
#
# Parse $MANOPT; this clobbered by the command line.
# Parse $MANOPT to retrieve man options, but only if it is a non-empty
# string; found man arguments can be overwritten by the command line.
#
# Globals:
# in: $MANOPT, $_OPTS_MAN_*
@ -3327,7 +3364,14 @@ main_parse_MANOPT()
local _opt;
local _list;
_list='';
# feed in $MANOPT
if test "${MANOPT}" != ''; then
MANOPT="$(echo -n "${MANOPT}" | \
sed -e 's/^'"${_SPACE}${_SPACE}"'*//')";
fi;
if test "${MANOPT}" = ''; then
eval "${return_ok}";
fi;
# add arguments in $MANOPT by mapping them to groffer options
eval set -- "$(list_from_cmdline \
"${_OPTS_MAN_SHORT_NA}" "${_OPTS_MAN_SHORT_ARG}" \
"${_OPTS_MAN_LONG_NA}" "${_OPTS_MAN_LONG_ARG}" \
@ -4042,7 +4086,7 @@ main_do_fileargs()
_exitcode="${_GOOD}";
fi;
done;
clean_up_secondary;
rm -f "${_TMP_STDIN}";
if is_equal "${_exitcode}" "${_BAD}"; then
eval "${return_bad}";
fi;
@ -4185,7 +4229,7 @@ main_set_resources()
# Globals:
# in: $_DISPLAY_MODE, $_OPT_DEVICE,
# $_ADDOPTS_GROFF, $_ADDOPTS_POST, $_ADDOPTS_X,
# $_REGISTERED_TITLE, $_TMP_PREFIX, $_TMP_CAT,
# $_REGISTERED_TITLE, $_TMP_CAT,
# $_OPT_PAGER $PAGER $_MANOPT_PAGER
#
landmark '19: main_display()';
@ -4218,7 +4262,7 @@ main_display()
_ADDOPTS_GROFF="${_ADDOPTS_GROFF} -T${_OPT_DEVICE}";
fi;
_groggy="$(tmp_cat | eval grog "${_options}")";
trap "" EXIT 2>/dev/null || true;
trap_clean;
# start a new shell program to get another process ID.
sh -c '
set -e;
@ -4233,7 +4277,7 @@ main_display()
{
rm -f "${_modefile}";
}
trap clean_up EXIT 2>/dev/null || true;
trap clean_up 0 2>/dev/null || true;
eval "${_groggy}" "${_ADDOPTS_GROFF}";
) &'
;;
@ -4293,7 +4337,7 @@ main_display()
;;
esac;
_groggy="$(tmp_cat | grog -Tps)";
trap "" EXIT 2>/dev/null || true;
trap_clean;
# start a new shell program to get another process ID.
sh -c '
set -e;
@ -4313,7 +4357,7 @@ main_display()
{
rm -f "${_modefile}";
}
trap clean_up EXIT 2>/dev/null || true;
trap clean_up 0 2>/dev/null || true;
eval "${_DISPLAY_PROG}" ${_DISPLAY_ARGS} "${_modefile}";
) &'
;;
@ -4370,8 +4414,9 @@ main_display()
_do_display()
{
trap "" EXIT 2>/dev/null || true;
# start a new shell program to get another process ID.
trap_clean;
# start a new shell program for another process ID and better
# cleaning-up of the temporary files.
sh -c '
set -e;
_PROCESS_ID="$$";
@ -4383,9 +4428,12 @@ _do_display()
(
clean_up()
{
rm -f "${_modefile}";
if test -d "${_TMP_DIR}"; then
rm -f "${_TMP_DIR}"/*;
rmdir "${_TMP_DIR}";
fi;
}
trap clean_up EXIT 2>/dev/null || true;
trap clean_up 0 2>/dev/null || true;
eval "${_DISPLAY_PROG}" ${_DISPLAY_ARGS} "${_modefile}";
) &'
}

View File

@ -1,3 +1,33 @@
Wed Apr 06:42:35 2003 Joergen Haegg <jh@axis.com>
* the footer was not adjusted by VM due to a missing
pg*extra-footer-size in the calculation of pg*last-pos
Wed Apr 06:04:58 2003 Joergen Haegg <jh@axis.com>
* space adjustments in 4.MT to make it more like
the original
Sun Mar 21:45:10 2003 Joergen Haegg <jh@axis.com>
* removed error check i 4.MT, .AF is not mandatory anymore
Sat Mar 21:56:57 2003 Joergen Haegg <jh@axis.com>
* cov*firm now defined only if arg to AF is non-empty
That will also enable cov*default-firm from the mm locale-file
to work.
Sat Mar 21:05:29 2003 Joergen Haegg <jh@axis.com>
* added .ll in pg@set-env to initialize the
header environment properly
Wed Mar 19 23:02:16 2003 Werner LEMBERG <wl@gnu.org>
* groff_mm.man: Some fixes from Robert D. Goulding
<goulding@Princeton.EDU>.
Wed Sep 09:53:06 2002 Joergen Haegg <jh@axis.com>
* added implicit -mm to mmroff, it's now possible

View File

@ -1,5 +1,5 @@
.\"
.\" $Id: groff_mm.man,v 2.8 2002/05/30 05:39:54 jhaegg Exp $
.\" $Id: groff_mm.man,v 2.9 2003/03/19 22:05:11 wlemb Exp $
.\"
.de T2
.if t .ne 2v
@ -1654,8 +1654,8 @@ Floating displays does not generate line break.
A string containing the word "APPENDIX".
.TP
.B Apptxt
.TP
The current appendix text.
.TP
.B "EM"
Em dash string
.TP
@ -1673,11 +1673,11 @@ Normally "0 0 0 0 0 0 0" which is the same as
"10 10 10 10 10 10 10".
.TP
.B Index
.TP
Contains \fIINDEX\fP.
.B Indcmd
.TP
.B Indcmd
Contains the index command, \fIsort\ -t\et\fP.
.TP
.B Lifg
String containing \fIFigure\fP.
.TP
@ -1845,10 +1845,10 @@ Append a dot after the level one heading number if >\ 0.
Default is\ 1.
.TP
.B H1h
.TP
Copy of number register \fBH1\fP, but it is incremented
just before the page break.
Useful in user defined header macros.
.TP
.B Hb
Heading break level [0:7], default\ 2.
.TP
@ -1866,7 +1866,7 @@ Heading temporary indent [0:2], default\ 1.
2\ ->\ indent to line up with text part of preceding heading
.TP
.B Hps
Numbervariable with the heading pre-space level.
Number variable with the heading pre-space level.
If the heading-level
is less than or equal to \fBHps\fP, then two lines will precede the
section heading instead of one.

View File

@ -3,8 +3,8 @@
.ds RE \\$2
..
.\"
.\" $Id: m.tmac,v 2.15 2002/08/07 23:23:34 wlemb Exp $
.@revision $Revision: 2.15 $
.\" $Id: m.tmac,v 2.18 2003/04/02 04:44:59 jhaegg Exp $
.@revision $Revision: 2.18 $
.ig
Copyright (C) 1991-2000 Free Software Foundation, Inc.
@ -1130,8 +1130,8 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%]
.\"
.\" last-pos points to the position of the footer and bottom
.\" block below foot-notes.
.nr pg*last-pos \\n[@pl]u-(\\n[pg*block-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]u)
.if \\n[D]>2 .tm pg*last-pos \\n[@pl]u-(\\n[pg*block-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]u) = \\n[pg*last-pos]
.nr pg*last-pos \\n[@pl]u-(\\n[pg*block-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]u+\\n[pg*extra-footer-size]u)
.if \\n[D]>2 .tm pg*last-pos \\n[@pl]u-(\\n[pg*block-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]u+\\n[pg*extra-footer-size]u) = \\n[pg*last-pos]
..
.de pg@enable-trap
.wh \\n[pg*foot-trap]u pg@footer
@ -1246,7 +1246,7 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%]
.\" FOOTER
.de pg@footer
.ec
.if \\n[D]>2 .tm Footer# \\n[%] (\\n[.F]:\\n[c.])
.if \\n[D]>2 .tm Footer# \\n[%] (\\n[.F]:\\n[c.]) nl=\\n[nl]
.pg@disable-trap
.\".debug footer
.tbl@bottom-hook
@ -1254,7 +1254,7 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%]
.\" move to the exact start of footer.
'sp |\\n[pg*foot-trap]u+1v
.\"
.if \\n[D]>3 .tm FOOTER after .sp
.if \\n[D]>3 .tm FOOTER after .sp, nl=\\n[nl]
.\" print footnotes
.if d ft*div .ft@print
.\"
@ -1269,6 +1269,7 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%]
.de pg@print-footer
.\" jump to the position just below the foot-notes.
'sp |\\n[pg*last-pos]u+1v
.if \\n[D]>3 .tm print-footer nl=\\n[nl]
.\" check if there are any bottom block
.if d pg*block-div .pg@block
.\"
@ -1311,6 +1312,7 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%]
. vs \\n[pg*vs]u
.\}
.lt \\n[@ll]u
.ll \\n[@ll]u
..
.\"-------------------------
.de PH
@ -2959,7 +2961,7 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%]
.\"-------------------
.de AF
.cov@title-end
.ds cov*firm \\$1
.if !''\\$1' .ds cov*firm \\$1
..
.de AST
.ds cov*abs-name \\$1

View File

@ -1,11 +1,11 @@
.\"------------
.\" $Id: 4.MT,v 2.0 2000/09/14 03:40:25 jhaegg Exp $
.\" $Id: 4.MT,v 2.2 2003/04/02 04:06:40 jhaegg Exp $
.\" Cover sheet. Memorandum type 4
.\"------------
.de cov@print-title
.if !d cov*title .@error title (.TL) not defined!
.MOVE 2.4c
.S +4
.MOVE 2.8c
.S +2
.ad c
.fi
.B
@ -14,27 +14,28 @@
.S
.R
.ad b
.PGFORM
..
.\"------------
.de cov@print-authors
.SP 0.5
.I
.S +1
.nr cov*i 0 1
.while \\n+[cov*i]<=\\n[cov*au] \{\
.ce
\\*[cov*au!\\n[cov*i]!1]
.br
.\}
.S
.R
.PGFORM
..
.\"------------
.de cov@print-firm
.if !d cov*firm .@error firm (.AF) not defined!
.SP 0.5
.ce
.if d cov*firm \{\
. SP 0.5
. ce
\\*[cov*firm]
.\}
..
.\"------------
.de cov@print-abstract
@ -64,7 +65,7 @@
. if d cov*abstract \{\
. if !\n[cov*abs-arg] .cov@print-abstract
. \}
. SP 3
. SP 2
. nr hd*cur-bline \n[nl]
. ds cov*mt-printed
. pg@enable-top-trap

View File

@ -11,9 +11,27 @@ questions and suggestions, or contact me directly at:
========================================================================
Version 1.1.3c
==============
Version 1.1.5
=============
Draft and revision not appearing in page headers.
---Fixed---
\*[RULE] not working properly with indents and justified copy.
---Fixed---
Post-epigraph spacing in TYPEWRITE causing some first pages to run too
deep.
---Fixed---
Spacing of docheaders in TYPEWRITE not always consistent.
---Fixed---
Version 1.1.4
=============
Blockquotes that span pages running too deep.
---Fixed---
Version 1.1.3
=============

View File

@ -1,3 +1,43 @@
*Sun Feb 16 2003
o Added James Ramsey's proposed CHAPTER_TITLE macro, along with his
rewritten START macro and his utility macros to make START easier
to read.
o Expanded handling of CHAPTER_TITLE to encompass TYPEWRITE, as well as
plugging it into the docheaders. Made CHAPTER_TITLE backwardly
compatible so that pre-1.1.5 docs using CHAPTER_STRING to create a
chapter title remain unaffected when groffed with 1.1.5.
o Created control macros for CHAPTER_TITLE FAMILY, FONT and SIZE.
Added defaults for handling of CHAPTER title to DEFAULTS. Documented
CHAPTER_TITLE and everything that goes along with it.
o Fixed broken draft and revision in headers/footers.
o Fixed \*[RULE] so that it behaves properly with indents and justified
copy.
o Fixed/tweaked handling of epigraph spacing in TYPEWRITE.
o Fixed broken spacing of docheaders in TYPEWRITE.
*Mon Feb 3 2003
o Fixed an oversight in CLOSING for DOCTYPE LETTER (closing wasn't
being set flush left)
*Sun Sep 29 2002
o Changed .ne in .HEAD when PRINTSTYLE TYPESET from 5 to 4. With 5,
heads required at least 2 lines of text underneath or they'd be
defered to the next page, which created too much whitespace at the
end of the page. Heads will now be processed on the same page if the
head plus at least one line of text underneath fits. I figure it's
easier for the user to break to a new page manually if this behaviour
is unsatisfactory than to massage the page to fix the excess
whitespace.
*Sun Aug 25 2002
o Changed .IX to .IQ. The older form still works, but emits a message

View File

@ -1,4 +1,4 @@
# Copyright (C) 2002 Free Software Foundation, Inc.
# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
# Written by Werner Lemberg (wl@gnu.org)
#
# This file is part of groff.
@ -17,20 +17,23 @@
# with groff; see the file COPYING. If not, write to the Free Software
# Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# These may be overridden if cross-compiling.
GROFFBIN=$(top_builddir)/src/roff/groff/groff
GROFF_BIN_PATH=`echo $(groff_bin_dirs) | sed -e 's| *|:|g'`
groff_bin_dirs=\
$(top_builddir)/src/roff/groff \
$(top_builddir)/src/roff/troff \
$(top_builddir)/src/devices/grops
groff_bin_path=`echo $(groff_bin_dirs) | sed -e 's| *|:|g'`
FFLAG=-F$(top_builddir)/font -F$(top_srcdir)/font
TFLAG=-M$(top_builddir)/tmac -M$(top_srcdir)/tmac -M$(srcdir)
GROFF=GROFF_COMMAND_PREFIX=''; \
export GROFF_COMMAND_PREFIX; \
GROFF_BIN_PATH=$(groff_bin_path); \
GROFF_BIN_PATH=$(GROFF_BIN_PATH); \
export GROFF_BIN_PATH; \
$(top_builddir)/src/roff/groff/groff $(FFLAG) $(TFLAG)
$(GROFFBIN) $(FFLAG) $(TFLAG)
MAN7=\
groff_mom.n

View File

@ -1,3 +1,29 @@
Release 1.1.5
-------------
***NEW***
Added James Ramsey's CHAPTER_TITLE macro as well as control macros to
go with it. Thanks James. Also from James came a patch to handle
START differenty which has been incorporated into om.tmac. Thanks
again, James.
Some bits and pieces of the docs have been tweaked, but nothing
changed. Hopefully, the changes will make parts of the docs easier to
read and navigate.
***FIXES***
o \*[RULE]
o broken draft and revision in docheaders
o post-epigraph spacing in TYPEWRITE
o header spacing in TYPEWRITE
------------------------------------------------------------------------
Release 1.1.4
-------------

View File

@ -7,8 +7,8 @@ keyword .ALD .ALIAS .ALWAYS_FULLSPACE_QUOTES .ATTRIBUTE_STRING
keyword .AUTHOR .AUTHOR_FAMILY .AUTHOR_FONT .AUTHOR_SIZE .AUTOLEAD
keyword .BLOCKQUOTE .BLOCKQUOTE_FAMILY .BLOCKQUOTE_FONT .BLOCKQUOTE_QUAD .BLOCKQUOTE_SIZE
keyword .B_MARGIN .BR .BR_AT_LINE_KERN .BREAK_QUOTE
keyword .CAPS .CENTER .CENTRE .CHAPTER
keyword .CHAPTER_STRING .CITATION .CITE .CLOSING
keyword .CAPS .CENTER .CENTRE
keyword .CHAPTER .CHAPTER_TITLE CHAPTER_STRING .CITATION .CITE .CLOSING
keyword .COLLATE .COL_BREAK .COL_BREAK .COL_NEXT .COLUMNS
keyword .COMMENT .CONDENSE .COPYSTYLE
keyword .DATE .DEFAULTS

View File

@ -137,9 +137,10 @@ sit amet. Accusam et justo duo do\%lo\%res et ea rebum
\# a collated document, but if the page trap has already deposited one
\# there, COLLATE can't undo it. Hence, we turn the trap off
\# (TRAP OFF), set the line, and put in an EL afterwards.
\#
\# Normally, all this isn't necessary when collating documents,
\# but if you ever have the problem of a page header printing at the
\# top of a collated document, this is how you get around it.
\# top of a collated document, now you know how to get around it.
\#
.TRAP OFF
.RIGHT
@ -405,11 +406,11 @@ justo duo do\%lo\%res et ea rebum.
Sanctus est lorem ipsum dolor sit amet, consetetur sadipscing. Elitr,
sed diam nonumy eirmod tempor, invidunt ut labore et do\%lo\%re magna
ali\%quyam. Erat sed diam voluptua, at vero eos et accusam et justo
duo do\%lo\%res et ea rebum amet. Consetetur sadipsc-
duo do\%lo\%res et ea rebum amet. Consetetur sadipsc\%
ing elitr sed diam nonumy eirmod tempor invidunt ut
.BREAK_QUOTE \" Needed because blockquote crosses page AND contain footnotes
ing elitr sed diam nonumy eirmod tempor invidunt ut labore.
Et do\%lo\%re magna ali\%quyam erat, sed diam voluptua, at vero.
Eos et accusam et justo duo.\c
labore. Et do\%lo\%re magna ali\%quyam erat, sed diam voluptua, at
vero. Eos et accusam et justo duo.\c
.FOOTNOTE
Labore et do\%lo\%re magna ali\%quyam erat sed diam voluptua.
.FOOTNOTE OFF

View File

@ -763,7 +763,9 @@ in the string(s) you pass to <strong>HEAD</strong>
For example,
<p>
<pre>
.HEAD "\[ALD3]Text of head
.HEAD "\[ALD3]Text of head"
or
.HEAD "\[DOWN 3p]Text of head"
</pre>
will lower the baseline of the head by three points. Note that
@ -774,6 +776,8 @@ the escape in the string for each line, like this:
<p>
<pre>
.HEAD "\[ALD3]First line" "\[ALD3]Next line"
or
.HEAD "\[DOWN 3p]First line" "\[DOWN 3p]Next line"
</pre>
@ -880,7 +884,7 @@ the next in ascending order (i.e. the last subhead number + 1), invoke
Your next subhead will be numbered &quot;4&quot; and subsequent
subheads will be numbered in ascending order from &quot;4&quot;.
<a name="#SUBHEAD_INLINES"><h3><u>Vertical inline escapes inside subheads</u></h3></a>
<a name="SUBHEAD_INLINES"><h3><u>Vertical inline escapes inside subheads</u></h3></a>
See
<a href="#HEAD_INLINES">Vertical inline escapes inside heads</a>.
The information there applies equally to subheads.

View File

@ -675,7 +675,8 @@ She also puts the same thing in the middle of
<p>
If you're not using <strong>DOCTYPE CHAPTER</strong>, the macro serves
no purpose and <strong>mom</strong> ignores it.
<a name="CHAPTER_STRING"></a>
<p>
<a name="CHAPTER_STRING"><strong>CHAPTER_STRING<strong></a>
<p>
If you're not writing in English, you can ask <strong>mom</strong>
to use the word for chapter in your own language by telling
@ -688,8 +689,42 @@ like this:
You can also use <strong>CHAPTER_STRING</strong> if you want
&quot;CHAPTER&quot; instead of &quot;Chapter&quot; in the doc- and
page-headers. (See also the
<a href="#CHAPTER_NOTE">Special Note on CHAPTER</a>.)
page-headers.
<br>
<!---CHAPTER_TITLE--->
<hr width="66%" align="left">
<p>
<a name="CHAPTER_TITLE"></a>
Macro: <strong>CHAPTER_TITLE</strong> <var>&quot;&lt;chapter title&gt;&quot;</var>
<p>
If, either in addition to or instead of &quot;Chapter #&quot; appearing
at the top of chapters, you want your chapter to have a title, use
<strong>CHAPTER_TITLE</strong> with your title enclosed in
double-quotes, like this:
<p>
<pre>
.CHAPTER_TITLE "The DMCA Nazis"
</pre>
If you've used
<a href="#CHAPTER">CHAPTER</a> to give the chapter a number,
&quot;Chapter #&quot; and the title will appear at the top of the
chapter, like this:
<p>
<pre>
Chapter 1
The DMCA Nazis
</pre>
In such a case, by default, only the chapter's title will appear in the
page headers, not &quot;Chapter #&quot;.
<p>
If you omit <strong>CHAPTER</strong> when setting up your reference
macros, only the title will appear, both at the top of page one and in
subsequent page headers.
<br>
<!---DRAFT--->
@ -710,13 +745,16 @@ default), <strong>mom</strong> ignores <strong>DRAFT</strong>.
<strong>Mom</strong> prints the draft number beside the word
&quot;Draft&quot; in the middle part of
<a href="definitions.html#TERMS_HEADER">page headers</a>.
<p>
<a name="DRAFT_STRING"><strong>DRAFT STRING<strong></a>
<p>
If you're not writing in English, you can ask <strong>mom</strong>
to use the word for draft in your own language by telling
her what it is with the <strong>DRAFT_STRING</strong> macro,
like this:
<p>
<pre>
.DRAFT_STRING "Ébauche"
.DRAFT_STRING "Jet"
</pre>
<!---REVISION--->
@ -738,6 +776,9 @@ accepts a
<strong>Mom</strong> prints the revision number beside the shortform
&quot;Rev.&quot; in the middle part of
<a href="definitions.html#TERMS_HEADER">page headers</a>.
<p>
<a name="REVISION_STRING"><strong>REVISION STRING</strong></a>
<p>
If you're not writing in English, you can ask <strong>mom</strong>
to use the word for revision, or a shortform therof in your own language
by telling her what it is with the <strong>REVISION_STRING</strong>
@ -807,24 +848,30 @@ for how <strong>mom</strong>'s outputs each part of the page header.)
<p>
<strong>CHAPTER</strong> prints &quot;Chapter #&quot; in place of a
<a href="definitions.html#TERMS_DOCHEADER">docheader</a>
(# is what you gave to
<a href="#CHAPTER">CHAPTER</a>),
or, if you omit the <strong>CHAPTER</strong> macro and give the chapter
a title with
<a href="#CHAPTER_STRING">CHAPTER_STRING</a>,
<strong>mom</strong> prints the chapter title. Page headers contain the
author, the title of the book (which you gave with
(# is what you gave to the
<a href="#REFERENCE_MACROS">reference macro</a>
<a href="#CHAPTER">CHAPTER</a>).
If you give the chapter a title with
<a href="#CHAPTER_TITLE">CHAPTER TITLE</a>,
<strong>mom</strong> prints &quot;Chapter #&quot; and the title
underneath. If you omit the <strong>CHAPTER</strong> reference
macro but supply a
<a href="#CHAPTER_TITLE">CHAPTER_TITLE</a>,
<strong>mom</strong> prints only the chapter title. <em>(*For
backward compatability with pre-1.1.5 versions of</em>
<strong>mom</strong><em>, you can also supply a chapter title by
ommitting the</em> <strong>CHAPTER</strong> <em>reference macro and
supplying a chapter title with
<a href="#CHAPTER_STRING">CHAPTER_STRING</a>.
<p>
The page headers in <strong>DOCTYPE CHAPTER</a> contain the author,
the title of the book (which you gave with
<a href="#TITLE">TITLE</a>),
and &quot;Chapter #&quot; (or the chapter title). See
<a href="headfootpage.html#HEADER_STYLE">Default Specs for Headers</a>
for <strong>mom</strong>'s default type parameters for each part of
the page header.
<p>
<em>*See the
<a href="#CHAPTER_NOTE">Special Note on CHAPTER</a>
below for how you can make DOCTYPE CHAPTER print something
other than &quot;Chapter #&quot; as its docheader.</em>
<p>
<strong>NAMED</strong> takes an additional argument: a name
for this particular kind of document (e.g. outline, synopsis,
abstract, memorandum), enclosed in double-quotes.
@ -841,35 +888,6 @@ for how <strong>mom</strong>'s outputs each part of the page header.)
the section
<a href="letters.html#INTRO">Writing Letters</a>
for instructions on using <strong>mom</strong> to format letters.
<a name="CHAPTER_NOTE"><h3><u>Special Note on CHAPTER</u></h3></a>
In novels, new chapters are generally (but not always)
introduced by &quot;Chapter #&quot;. Other types of documents
(reports and so on) often require specific titles for chapters.
If your document is of this latter type, use <strong>DOCTYPE
CHAPTER</strong> in the following way:
<br>
<ol>
<li>Omit the
<a href="#REFERENCE_MACROS">reference macro</a>
<a href="#CHAPTER">CHAPTER</a>
<li>Invoke
<a href="#CHAPTER_STRING">.CHAPTER_STRING</a>
with the title you'd like the chapter to have (enclosed
in double-quotes, of course).
</ol>
<p>
Here's a recipe for setting up a chapter entitled &quot;The DMCA
Nazis&quot;.
<pre>
.AUTHOR &quot;Outraged Hacker&quot;
.TITLE &quot;Limiting Copyright&quot;
\#
.DOCTYPE CHAPTER
.PRINTSTYLE TYPESET
\#
.CHAPTER_STRING &quot;The DMCA Nazis&quot;
</pre>
<br>
<!---PRINTSTYLE--->
@ -1123,7 +1141,7 @@ adjusted to fill pages fully to the bottom margin.
</ul>
<hr width="66%" align="left">
<a name="TYPE_BEFORE_START"><h2><u>Using typesetting macros prior to START</u></h2></a>
<a name="TYPE_BEFORE_START"><h2><u>Using the typesetting macros prior to START</u></h2></a>
When used before the
<a href="#START">START</a>
@ -1306,6 +1324,15 @@ compensate:
(Document type) bold italic, underscored, 3 points larger than running text
</pre>
If the
<a href="#DOCTYPE">DOCTYPE</a>
is CHAPTER,
<pre>
Chapter # bold, 4 points larger than running text
Chapter Title bold italic, 4 points larger than running text
</pre>
<p>
The
<a href="definitions.html#TERMS_FAMILY">family</a>
is the prevailing family of the whole document.
@ -1313,7 +1340,7 @@ is the prevailing family of the whole document.
<h3><u>The docheader macros to:</u></h3>
<ol>
<li><a href="#CHANGE_START">Change the starting position</a>
<li><a href="#ADJUST_LEADING">Adjust the leading</a>
<li><a href="#ADJUST_LEADING">Adjust the docheader leading</a>
<li><a href="#CHANGE_FAMILY">Change the family of docheader elements</a>
<li><a href="#CHANGE_FONT">Change the font of docheader elements</a>
<li><a href="#CHANGE_SIZE">Adjust the size of docheader elements</a>
@ -1357,9 +1384,14 @@ to place them where you want.
<a name="ADJUST_LEADING"><h3><u>2. Adjust the leading</u></h3></a>
The
<a href="definitions.html#TERMS_LEADING">leading</a> of
docheaders is the same as running text. If you'd like a
different leading, say, 2 points more than the lead of running
text, use:
docheaders is the same as running text (except when
<a href="#DOCTYPE">DOCTYPE</a>
is <strong>CHAPTER</a> <em>and both</em> a chapter number and a
chapter title have been supplied, in which case the default is 4 points
more than running text.)
<p>
If you'd like your docheaders to have a different leading, say, 2
points more than the lead of running text, use:
<p>
<pre>
.DOCHEADER_LEAD +2p
@ -1378,6 +1410,7 @@ of each docheader element separately:
<p>
<ul>
<li><strong>TITLE_FAMILY</strong> <var>&lt;family&gt;</var>
<li><strong>CHAPTER_TITLE_FAMILY</strong> <var>&lt;family&gt;</var>
<li><strong>SUBTITLE_FAMILY</strong> <var>&lt;family&gt;</var>
<li><strong>AUTHOR_FAMILY</strong> <var>&lt;family&gt;</var>
<li><strong>DOCTYPE_FAMILY</strong> <var>&lt;family&gt;</var> (if
@ -1393,6 +1426,7 @@ of each docheader element separately:
<p>
<ul>
<li><strong>TITLE_FONT</strong> <var>R | B | I | BI</var>
<li><strong>CHAPTER_TITLE_FONT</strong> <var>R | B | I | BI</var>
<li><strong>SUBTITLE_FONT</strong> <var>R | B | I | BI</var>
<li><strong>AUTHOR_FONT</strong> <var>R | B | I | BI</var>
<li><strong>DOCTYPE_FONT</strong> <var>R | B | I | BI</var> (if
@ -1410,8 +1444,8 @@ The following macros let you adjust the point size of each docheader
element separately.
<p>
<strong>Mom</strong> calculates the point size
of docheader elements from the point size of paragraphs, so you
must prepend a + or - sign to the argument. Points is
of docheader elements from the point size of paragraphs in running
text, so you must prepend a + or - sign to the argument. Points is
assumed as the
<a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>,
so there's no need to append a unit to the argument. Fractional point
@ -1421,6 +1455,9 @@ sizes are allowed.
<li><strong>TITLE_SIZE</strong> <var>&lt;+/-points&gt;</var>
<br>
default = +3.5 (+4 if docheader title is &quot;Chapter #&quot;)
<li><strong>CHAPTER_TITLE_SIZE</strong> <var>&lt;+/-points&gt;</var>
<br>
default = +4
<li><strong>SUBTITLE_SIZE</strong> <var>&lt;+/-points&gt;</var>
<br>
default = +0
@ -1436,6 +1473,7 @@ default = +3
Simply pass the appropriate macro the size adjustment you want.
<a name="CHANGE_ATTRIBUTE"><h3><u>6. Change the attribution string (&quot;by&quot;)</u></h3></a>
<p>
If you're not writing in English, you can change what
<strong>mom</strong> prints where &quot;by&quot; appears in
docheaders. For example,
@ -1582,7 +1620,7 @@ or (god help us) an epigraph, you must do the following in order for
<!========================================================================>
<a name="START_MACRO">
<h2><u>Initiate document processing</u></h2>
<h2><u>Start document processing</u></h2>
</a>
In order to use <strong>mom</strong>'s document element macros

View File

@ -552,6 +552,7 @@ When the line is output, the space remaining on the line, after
account, is split into four (because there are four # signs).
One quarter of the space is inserted between Date and Signature,
the remainder is inserted after Signature.
<a name="PAD_EXAMPLE"></a>
<p>
One rarely wants merely to insert space in a line; one usually
wants to fill it with something, hence <strong>PAD</strong> is

View File

@ -344,6 +344,22 @@ example:
</pre>
The above draws a rule the full measure of the 6-pica line length.
Please note that <strong>\*[$RULE]</strong> should appear on a line by
itself and that it draws the rule to the full measure, hence it
<em>cannot</em> be used to fill the remainder of a partial line with
a rule in this way:
<p>
<pre>
Signature__________________________________________
</pre>
If you wish to accomplish this effect, you have to use
<strong>\*[RULE]</strong> in conjunction with the
<a href="goodies.html#PAD"><strong>PAD</strong></a>
macro and
<a href="typesetting.html#STRING_TABS">string tabs</a>.
(See the example provided with
<a href="goodies.html#PAD_EXAMPLE"><strong>.PAD</strong></a>.
<p>
See groff's
<a href="#INLINE_LINEDRAWING_GROFF">Horizontal line drawing function</a>

View File

@ -179,7 +179,7 @@ text editor as they are on the printed page.
<p>
Unfortunately, in computerland, &quot;easy,&quot;
&quot;comprehensible,&quot; and &quot;readable&quot; often mean
&quot;you're stuck with what you're get.&quot; No document formatting
&quot;you're stuck with what you get.&quot; No document formatting
system can give you exactly what you want all the time, every time.
Documents, it seems, always need to be tweaked, either to satisfy a
typographic whim or to clarify some aspect of their content.

View File

@ -212,6 +212,7 @@ p Output line horiz position at end of $PAD_STRING
#Q_AT_TOP Does a quote start at the top of a new page? (toggle)
#QUAD In autoquad mode? (toggle)
#RESTORE_LEAD Lead value in effect prior to AUTOLEAD
#RESTORE_LINE_LENGTH Restores actual line length in RULE
#RESTORE_PT_SIZE Stores current point size (in units) prior to underscore
#R_INDENT Value of right indent
#RLD RLD value
@ -242,6 +243,7 @@ u Horiz position of start of underscore
+++STRINGS+++
$COND_PERCENT Percentage by which to pseudo-condense type
$CURRENT_QUAD Restores current quad value in RULE
$CURRENT_TAB Current tab number
$DC_ADJUST +|- # of points to subtract from dropcap
$DC_FAM Drop cap family
@ -352,12 +354,13 @@ DOCUMENT PROCESSING
Document info
-------------
AUTHOR Author
CHAPTER Chapter number
DRAFT Draft number
REVISION Revision number
SUBTITLE Doc subtitle
TITLE Doc title
AUTHOR Author
CHAPTER Chapter number
CHAPTER_TITLE Chapter title
DRAFT Draft number
REVISION Revision number
SUBTITLE Doc subtitle
TITLE Doc title
Document style
--------------
@ -408,6 +411,9 @@ BLOCKQUOTE_FONT Font to use in blockquotes
BLOCKQUOTE_QUAD How to quad blockquotes
BLOCKQUOTE_SIZE How much to de/increase point size of bquotes
CHAPTER_STRING What to print whenever the word "chapter" is required
CHAPTER_TITLE_FAMILY Family to use for chapter title in doc header
CHAPTER_TITLE_FONT Font to use for chapter title in doc header
CHAPTER_TITLE_SIZE ps in/decrease of chapter title (relative to size of running text)
COLUMNS Print in columns
DOC_FAMILY Overall doc family
DOCHEADER_ADVANCE Start position of docheader (relative to top of page)
@ -608,7 +614,6 @@ TRAPS Sets hdrftr traps; optionally adjusts #DOC_LEAD to fill pag
#CAP_HEIGHT_ADJUST Tallest cap height of strings LEFT, CENTER, and RIGHT in footers; used to place rule over footer
#CAPS_WAS_ON In HDRFTR, to re-enable running text CAPS (toggle)
#CENTER_CAP_HEIGHT Cap height of center string in headers/footers
#CHAPTER The chapter number
#CLOSING Is there a closing (for letters)? 1=yes
#COL_L_LENGTH Line length of columns
#COL_NEXT Was COL_NEXT invoked? (toggle; used in FOOTER)
@ -801,12 +806,19 @@ $AUTHOR_1...9 Document author(s)
$AUTHOR_FAM Family to use for author in doc header
$AUTHOR_FT Font to use for author in doc header
$AUTHOR_SIZE_CHANGE ps in/decrease of author in doc header*
$AUTHOR_PT_SIZE Absolute ps of authors
$BQUOTE_FAM Family to use for blockquotes
$BQUOTE_FT Font to use for blockquotes
$BQUOTE_QUAD Quad value for blockquotes
$BQUOTE_SIZE_CHANGE ps in/decrease of blockquotes*
$CENTER_TITLE What to put in the middle of header title
$CHAPTER The chapter number
$CHAPTER_STRING What to print whenever the word "chapter" is required
$CHAPTER_TITLE Chapter title (if there is one)
$CHAPTER_TITLE_FAM Family of chapter title
$CHAPTER_TITLE_FT Font of chapter title
$CHAPTER_TITLE_SIZE_CHANGE ps in/decrease of chapter title*
$CHAPTER_TITLE_PT_SIZE Absolute ps of chapter title
$COPY_STYLE DRAFT or FINAL
$DOC_FAM Predominant font family used in the document
$DOC_QUAD Quad used for body text (justified or left)
@ -814,6 +826,7 @@ $DOC_TYPE Document type (default, chapter, named, letter)
$DOCTYPE_FAM Family to use for DOCTYPE string in doc header
$DOCTYPE_FT Font to use for DOCTYPE string in doc header
$DOCTYPE_SIZE_CHANGE ps in/decrease of DOCTYPE string in doc header*
$DOCTYPE_PT_SIZE Absolute ps of DOCTYPE
$DRAFT_STRING What to print whenever the word "draft" is required
$EN_FAMILY Family for endnotes
$EN_FT Font for endnotes
@ -880,11 +893,13 @@ $SH_SIZE_CHANGE ps in/decrease of subheads*
$SUBTITLE Document subtitle
$SUBTITLE_FAM Family to use for subtitle in doc header
$SUBTITLE_FT Font to use for subtitle in doc header
$SUBTITLE_SIZE_CHANGE Font to use for subtitle in doc header
$SUBTITLE_SIZE_CHANGE ps in/decrease of subtitle*
$SUBTITLE_PT_SIZE Absolute ps of subtitle
$SUITE The #SUITE number register
$TITLE Document title
$TITLE_FAM Family to use for title in doc header
$TITLE_FT Font to use for title in doc header
$TITLE_PT_SIZE Absolute point size of title in docheader
$TITLE_SIZE_CHANGE ps in/decrease of title in doc header*
$USERDEF_HDRFTR_RECTO User defined header/footer recto string
$USERDEF_HDRFTR_VERSO User defined header/footer verso string

View File

@ -115,8 +115,9 @@
<li><a href="docprocessing.html#SUBTITLE">5.3.2.2 SUBTITLE</a>
<li><a href="docprocessing.html#AUTHOR">5.3.2.3 AUTHOR</a>
<li><a href="docprocessing.html#CHAPTER">5.3.2.4 CHAPTER</a>
<li><a href="docprocessing.html#DRAFT">5.3.2.5 DRAFT</a>
<li><a href="docprocessing.html#REVISION">5.3.2.6 REVISION</a>
<li><a href="docprocessing.html#CHAPTER_TITLE">5.3.2.5 CHAPTER_TITLE</a>
<li><a href="docprocessing.html#DRAFT">5.3.2.6 DRAFT</a>
<li><a href="docprocessing.html#REVISION">5.3.2.7 REVISION</a>
</ul>
<li><a href="docprocessing.html#DOCSTYLE_MACROS"><strong>5.3.3 The Docstyle Macros</strong></a>
<ul>

View File

@ -1085,14 +1085,21 @@ systems, where it stood for "End Line." Conceptually,
with no linefeed.
<p>
Every once in a while, the need arises for breaking a line without
advancing on the page. Imagine, for example, that you're working from
marked-up copy. The markup indicates 24 points of space between
two given lines, but the prevailing line spacing is 12.5 points.
You may find it more convenient to break the first line with
<strong>EL</strong> and instruct <strong>mom</strong> to advance 24
points to the next line, rather than calculating the lead that needs
to be added to 12.5 to get 24. To demonstrate:
<em>Note to groff jocks:</em> <strong>EL</strong> is
unrelated to groff's <strong>.el</strong>. If you find the
similarity confusing, you may want to alias <strong>EL</strong> as
<strong>EOL</strong>.
<p>
<strong>EL</strong>'s function is simple: it breaks a line without
advancing on the page. As an example of where you might use it,
imagine that you're working from marked-up copy. The markup
indicates 24 points of space between two given lines, but the
prevailing line spacing is 12.5 points. You may find it more
convenient to break the first line with <strong>EL</strong> and
instruct <strong>mom</strong> to advance 24 points to the next line
instead of calculating the lead that needs to be added to 12.5 to
get 24. To demonstrate:
<p>
<pre>
.LS 12.5

View File

@ -2,7 +2,7 @@
.\"
.\" Mom -- a typesetting/document-processing macro set for groff.
.\"
.\" Copyright (C) 2002 Free Software Foundation, Inc.
.\" Copyright (C) 2002, 2003 Free Software Foundation, Inc.
.\" Written by Peter Schaffter (df191@ncf.ca)
.\"
.\" This file is part of groff.
@ -23,7 +23,7 @@
.\"
.
.
\# Version 1.1.4
\# Version 1.1.5
\# -------------
\#
.if (\n[.x]\n[.y] < 118) \
@ -442,10 +442,6 @@
.ds PREV \EfP
.ds S \Es
\#
\# ADDITIONAL STRINGS
\# ------------------
.ds RULE \El'\En(.lu'
\#
\#
\# =====================================================================
\#
@ -1629,7 +1625,7 @@
\[`a] \[^a] \['a] \[:a] \[oa] \[~a] \[ae] \[`e] \[^e] \['e] \[:e] \[`i] \
\[^i] \['i] \[:i] \[`o] \[^o] \['o] \[:o] \[~o] \[/o] \[`u] \[^u] \['u] \
\[:u] \[,c] \[Sd] \[~n] \[Tp] \['y] \[:y] \[ss] \
1 2 3 4 5 6 7 8 9 0
' 1 2 3 4 5 6 7 8 9 0
. \}
.END
\#
@ -1788,7 +1784,7 @@
\[`a] \[^a] \['a] \[:a] \[oa] \[~a] \[ae] \[`e] \[^e] \['e] \[:e] \[`i] \
\[^i] \['i] \[:i] \[`o] \[^o] \['o] \[:o] \[~o] \[/o] \[`u] \[^u] \['u] \
\[:u] \[,c] \[Sd] \[~n] \[Tp] \['y] \[:y] \[ss] \
1 2 3 4 5 6 7 8 9 0
' 1 2 3 4 5 6 7 8 9 0
.END
\#
\#
@ -2282,6 +2278,35 @@
.END
\#
\#
\# RULE
\# ----
\# *Argument:
\# <none>
\# *Function:
\# Draws a rule the length of the current measure.
\# *Notes:
\#
.MAC RULE END
. if \\n(.j=1 \{\
. ds $CURRENT_QUAD \\*[$QUAD_VALUE]
. nf
. \}
. ie \\n[#INDENT_ACTIVE] \{\
. nr #RESTORE_L_LENGTH \\n(.l
. if \\n[#INDENT_BOTH_ACTIVE] \{ .ll \\n(.lu-\\n[#BL_INDENT]u \}
. if \\n[#INDENT_LEFT_ACTIVE] \{ .ll \\n(.lu-\\n[#L_INDENT]u \}
. PRINT \El'\En(.lu'
. ll \\n[#RESTORE_L_LENGTH]u
. rr #RESTORE_L_LENGTH]u
. \}
. el \{\
. PRINT \El'\En(.lu'
. \}
. QUAD \\*[$CURRENT_QUAD]
. rm $CURRENT_QUAD
. EL
.END
\#
\# =====================================================================
\#
\# +++WORD AND SENTENCE SPACING+++
@ -3201,7 +3226,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. nr #COPY_STYLE 1
. if !r#DRAFT \{ .DRAFT 1 \}
. \}
. if '\\*[$COPY_STYLE]'FINAL' \{ .nr #COPY_STYLE 2 \}
. if '\\*[$COPY_STYLE]'FINAL' \{ .nr #COPY_STYLE 2 \}
. if !d$CHAPTER_STRING \{ .CHAPTER_STRING "Chapter" \}
. if !d$DRAFT_STRING \{ .DRAFT_STRING "Draft" \}
. if !d$REVISION_STRING \{ .REVISION_STRING "Rev." \}
@ -3235,49 +3260,106 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
\# Chapter
. if \\n[#DOC_TYPE]=2 \{\
\# Copystyle DRAFT
. ie \\n[#COPY_STYLE]=1 \{\
. ie \\n[#PAGENUM_STYLE_SET] \{ .PAGENUM_STYLE \\*[$PAGENUM_STYLE] \}
. el \{ .PAGENUM_STYLE roman \}
. if \\n[#USER_DEF_HDRFTR_CENTER]=0 \{\
. ie \\n[#DRAFT_WITH_PAGENUM] \{\
. ie '\\*[$CHAPTER]'' \{ .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \\*[$CHAPTER] \}
. el \{ .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \}
. ie '\\*[$CHAPTER]'' \{\
. ie !'\\*[$CHAPTER_TITLE]'' \{\
. ds $HDRFTR_CENTER \\*[$CHAPTER_TITLE]
. \}
. el \{ .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \}
. \}
. el \{\
. ie !'\\*[$CHAPTER_TITLE]'' \{\
. ds \\*[$CHAPTER_TITLE]
. \}
. el \{ .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \\*[$CHAPTER] \}
. \}
. \}
. el \{\
. ie !\\n[#REVISION] \{\
. ie '\\*[$CHAPTER]'' \{\
. ds $HDRFTR_CENTER \
\\*[$CHAPTER_STRING], \
\\*[$DRAFT_STRING] \\n[#DRAFT]
. ie !'\\*[$CHAPTER_TITLE]'' \{\
. ds $HDRFTR_CENTER \
\\*[$CHAPTER_TITLE], \
\\*[$DRAFT_STRING] \\n[#DRAFT]
. \}
. el \{\
. ds $HDRFTR_CENTER \
\\*[$CHAPTER_STRING], \
\\*[$DRAFT_STRING] \\n[#DRAFT]
. \}
. \}
. el \{\
. ds $HDRFTR_CENTER \
\\*[$CHAPTER_STRING] \\*[$CHAPTER], \
\\*[$DRAFT_STRING] \\n[#DRAFT]
. ie !'\\*[$CHAPTER_TITLE]'' \{\
. ds $HDRFTR_CENTER \
\\*[$CHAPTER_TITLE], \
\\*[$DRAFT_STRING] \\n[#DRAFT]
. \}
. el \{\
. ds $HDRFTR_CENTER \
\\*[$CHAPTER_STRING] \\*[$CHAPTER], \
\\*[$DRAFT_STRING] \\n[#DRAFT]
. \}
. \}
. \}
. el \{\
. ie '\\*[$CHAPTER]'' \{\
. el \{\
\\*[$CHAPTER_STRING], \
\\*[$DRAFT_STRING] \\n[#DRAFT], \
\\*[$REVISION_STRING] \\n[#REVISION]
. ie !'\\*[$CHAPTER_TITLE]'' \{\
. ds $HDRFTR_CENTER \
\\*[$CHAPTER_TITLE], \
\\*[$DRAFT_STRING] \\n[#DRAFT], \
\\*[$REVISION_STRING] \\n[#REVISION]
. \}
. el \{\
. ds $HDRFTR_CENTER \
\\*[$CHAPTER_STRING], \
\\*[$DRAFT_STRING] \\n[#DRAFT], \
\\*[$REVISION_STRING] \\n[#REVISION]
. \}
. \}
. ds $HDRFTR_CENTER \
\\*[$CHAPTER_STRING] \\*[$CHAPTER], \
\\*[$DRAFT_STRING] \\n[#DRAFT], \
\\*[$REVISION_STRING] \\n[#REVISION]
. el \{\
. ie !'\\*[$CHAPTER_TITLE]'' \{\
. ds $HDRFTR_CENTER \
\\*[$CHAPTER_TITLE], \
\\*[$DRAFT_STRING] \\n[#DRAFT], \
\\*[$REVISION_STRING] \\n[#REVISION]
. \}
. el \{\
. ds $HDRFTR_CENTER \
\\*[$CHAPTER_STRING] \\*[$CHAPTER], \
\\*[$DRAFT_STRING] \\n[#DRAFT], \
\\*[$REVISION_STRING] \\n[#REVISION]
. \}
. \}
. \}
. \}
. \}
. \}
\# Copystyle FINAL
. el \{\
. if \\n[#USER_DEF_HDRFTR_CENTER]=0 \{\
. ie \\n[#PAGENUM_STYLE_SET] \{ .PAGENUM_STYLE \\*[$PAGENUM_STYLE] \}
. el \{ .PAGENUM_STYLE DIGIT \}
. ie '\\*[$CHAPTER]'' \{ .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \}
. el \{ .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \\*[$CHAPTER] \}
. ie '\\*[$CHAPTER]'' \{\
. ie !'\\*[$CHAPTER_TITLE]'' \{\
. ds $HDRFTR_CENTER \\*[$CHAPTER_TITLE]
. \}
. el \{\
. ds $HDRFTR_CENTER \\*[$CHAPTER_STRING]
. \}
. \}
. el \{\
. ie !'\\*[$CHAPTER_TITLE]'' \{\
. ds $HDRFTR_CENTER \\*[$CHAPTER_TITLE]
. \}
. el \{\
. ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \\*[$CHAPTER]
. \}
. \}
. \}
. \}
. \}
@ -3339,6 +3421,11 @@ y\\R'#DESCENDER \\n[.cdp]'
.END
\#
\#
.MAC CHAPTER_TITLE END \" This defines what comes after Chapter #
. ds $CHAPTER_TITLE \\$1
.END
\#
\#
.MAC DRAFT END \"Draft number
. nr #DRAFT \\$1
.END
@ -3354,7 +3441,7 @@ y\\R'#DESCENDER \\n[.cdp]'
.END
\#
\#
.MAC AUTHOR END \"Author. Use "..." with this macro.
.MAC AUTHOR END \"Author. Enclose all args fully in double quotes.
. nr #AUTHOR_NUM -1 1
. while \\n[#NUM_ARGS]>\\n[#AUTHOR_NUM] \{\
. ds $AUTHOR_\\n+[#AUTHOR_NUM] \\$\\n[#AUTHOR_NUM]
@ -3492,6 +3579,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. br
. nr #CLOSING 1
. di CLOSING
. LEFT
.END
\#
\#
@ -3662,13 +3750,24 @@ y\\R'#DESCENDER \\n[.cdp]'
. \}
\# Defaults for printstyle TYPESET
. if \\n[#PRINT_STYLE]=2 \{\
. if !#DOCHEADER_LEAD \{ .DOCHEADER_LEAD +0 \}
. if !r#DOCHEADER_LEAD_ADJ \{\
. ie !'\\*[$CHAPTER_TITLE]'' \{\
. ie !'\\*[$CHAPTER_STRING]'' \{\
. DOCHEADER_LEAD +4p
. \}
. el \{ .DOCHEADER_LEAD +0 \}
. \}
. el \{ .DOCHEADER_LEAD +0 \}
. \}
. if !d$TITLE_FAM \{ .TITLE_FAMILY \\*[$DOC_FAM] \}
. if !d$TITLE_FT \{ .TITLE_FONT B \}
. if !d$TITLE_SIZE_CHANGE \{\
. ie \\n[#DOC_TYPE]=2 \{ .TITLE_SIZE +4 \}
. el \{ .TITLE_SIZE +3.5 \}
. \}
. if !d$CHAPTER_TITLE_FAM \{ .CHAPTER_TITLE_FAMILY \\*[$DOC_FAM] \}
. if !d$CHAPTER_TITLE_FT \{ .CHAPTER_TITLE_FONT BI \}
. if !d$CHAPTER_TITLE_SIZE_CHANGE \{ .CHAPTER_TITLE_SIZE +4 \}
. if !d$SUBTITLE_FAM \{ .SUBTITLE_FAMILY \\*[$DOC_FAM] \}
. if !d$SUBTITLE_FT \{ .SUBTITLE_FONT R \}
. if !d$SUBTITLE_SIZE_CHANGE \{ .SUBTITLE_SIZE +0 \}
@ -3762,6 +3861,113 @@ y\\R'#DESCENDER \\n[.cdp]'
\# are stored in #DOC_L_LENGTH, $DOC_FAM, and #DOC_PT_SIZE for
\# use in the HEADER and FOOTER macros.
\#
.\" First, define some strings for point sizes
\#
.ds $TITLE_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$TITLE_SIZE_CHANGE]
.ds $CHAPTER_TITLE_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$CHAPTER_TITLE_SIZE_CHANGE]
.ds $SUBTITLE_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$SUBTITLE_SIZE_CHANGE]
.ds $AUTHOR_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$AUTHOR_SIZE_CHANGE]
.ds $DOCTYPE_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$DOCTYPE_SIZE_CHANGE]
\#
.\" Next, some utility macros for various routines to prevent repetition
\#
.MAC PRINT_AUTHORS END
. nr #AUTHORS \\n[#AUTHOR_NUM]
. nr #NEXT_AUTHOR 0 1
. while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\
. PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]
. \}
.END
\#
.MAC DEFAULT_DOCHEADER END
. CENTER
. FAMILY \\*[$TITLE_FAM]
. FT \\*[$TITLE_FT]
. PT_SIZE \\*[$TITLE_PT_SIZE]
. LS \\n[#DOCHEADER_LEAD]u
. PRINT \\*[$TITLE]
. if !'\\*[$SUBTITLE]'' \{\
. FAMILY \\*[$SUBTITLE_FAM]
. FT \\*[$SUBTITLE_FT]
. PT_SIZE \\*[$SUBTITLE_PT_SIZE]
. PRINT \\*[$SUBTITLE]
. \}
. if !'\\*[$AUTHOR_1]'' \{\
. FAMILY \\*[$AUTHOR_FAM]
. FT \\*[$AUTHOR_FT]
. PT_SIZE \\*[$AUTHOR_PT_SIZE]
. PRINT \\*[$ATTRIBUTE_STRING]
. PRINT_AUTHORS
. \}
.END
\#
\#
.MAC CHAPTER_DOCHEADER END
. CENTER
. FAMILY \\*[$TITLE_FAM]
. FT \\*[$TITLE_FT]
. PT_SIZE \\*[$TITLE_PT_SIZE]
. LS \\n[#DOCHEADER_LEAD]u
. ie '\\*[$CHAPTER]'' \{\
. ie !'\\*[$CHAPTER_TITLE]'' \{\
. if \\n[#PRINT_STYLE]=2 \{\
. FAMILY \\*[$CHAPTER_TITLE_FAM]
. FT \\*[$CHAPTER_TITLE_FT]
. PT_SIZE \\*[$CHAPTER_TITLE_PT_SIZE]
. LS \\n[#DOCHEADER_LEAD]u
. \}
. PRINT \\*[$CHAPTER_TITLE]
. \}
. el \{\
. PRINT \\*[$CHAPTER_STRING]
. \}
. \}
. el \{\
. PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER]
. if !'\\*[$CHAPTER_TITLE]'' \{\
. if \\n[#PRINT_STYLE]=1 \{ .PRINT \\*[$CHAPTER_TITLE] \}
. if \\n[#PRINT_STYLE]=2 \{\
. FAMILY \\*[$CHAPTER_TITLE_FAM]
. FT \\*[$CHAPTER_TITLE_FT]
. PT_SIZE \\*[$CHAPTER_TITLE_PT_SIZE]
. LS \\n[#DOCHEADER_LEAD]u
. PRINT \\*[$CHAPTER_TITLE]
. RLD \\n[#DOC_LEAD]u \" Just looks better this way
. \}
. \}
. \}
.END
\#
\#
.MAC NAMED_DOCHEADER END
. CENTER
. FAMILY \\*[$TITLE_FAM]
. FT \\*[$TITLE_FT]
. PT_SIZE \\*[$TITLE_PT_SIZE]
. LS \\n[#DOCHEADER_LEAD]u
. PRINT \\*[$TITLE]
. if !'\\*[$SUBTITLE]'' \{\
. FAMILY \\*[$SUBTITLE_FAM]
. FT \\*[$SUBTITLE_FT]
. PT_SIZE \\*[$SUBTITLE_PT_SIZE]
. PRINT \\*[$SUBTITLE]
. \}
. if !'\\*[$AUTHOR_1]'' \{\
. FAMILY \\*[$AUTHOR_FAM]
. FT \\*[$AUTHOR_FT]
. PT_SIZE \\*[$AUTHOR_PT_SIZE]
. PRINT \\*[$ATTRIBUTE_STRING]
. PRINT_AUTHORS
. \}
. FAMILY \\*[$DOCTYPE_FAM]
. FT \\*[$DOCTYPE_FT]
. PT_SIZE \\*[$DOCTYPE_PT_SIZE]
. LS \\n[#DOCHEADER_LEAD]u
. ALD \\n[#DOCHEADER_LEAD]u
. UNDERSCORE "\\*[$DOC_TYPE]
.END
\#
\#
.MAC START END
. if !\\n[#PRINT_STYLE] \{\
. PRINTSTYLE TYPEWRITE
@ -3805,7 +4011,6 @@ y\\R'#DESCENDER \\n[.cdp]'
. if r#ADVANCE_FROM_TOP \{ .rr #ADVANCE_FROM_TOP \}
. \}
. el \{\
. nr #DOCHEADER_LINES 0 1
. if \\n[#PRINT_STYLE]=2 \{ .LS \\n[#DOC_LEAD]u+\\n[#DOCHEADER_LEAD_ADJ]u \}
. nr #DOCHEADER_LEAD \\n[#LEAD]
\# Default
@ -3813,11 +4018,11 @@ y\\R'#DESCENDER \\n[.cdp]'
. PRINT \&
. sp |\\n[#DOCHEADER_ADVANCE]u-1v
. ev TITLE
. CENTER
. L_MARGIN \\n[#DOC_L_MARGIN]u
. LL \\n[#DOC_L_LENGTH]u
. ta \\n(.lu
. if \\n[#PRINT_STYLE]=1 \{\
. CENTER
. fam C
. ft R
. ps 12
@ -3826,82 +4031,53 @@ y\\R'#DESCENDER \\n[.cdp]'
. CAPS
. if !'\\*[$TITLE]'' \{ .UNDERSCORE "\\*[$TITLE]\}
. CAPS OFF
. \}
. if \\n[#PRINT_STYLE]=2 \{\
. FAMILY \\*[$TITLE_FAM]
. FT \\*[$TITLE_FT]
. PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$TITLE_SIZE_CHANGE]
. LS \\n[#DOCHEADER_LEAD]u
. PRINT \\*[$TITLE]
. \\n+[#DOCHEADER_LINES]
. CAPS OFF
. \}
. ev
. ev SUBTITLE
. CENTER
. L_MARGIN \\n[#DOC_L_MARGIN]u
. LL \\n[#DOC_L_LENGTH]u
. ta \\n(.lu
. if !'\\*[$SUBTITLE]'' \{\
. if \\n[#PRINT_STYLE]=1 \{\
. fam C
. ft R
. ps 12
. if !'\\*[$SUBTITLE]'' \{\
. ie \\n[#SINGLE_SPACE] \{ .vs \\n[#DOC_LEAD]u*2u \}
. el \{ .vs \\n[#DOC_LEAD]u \}
. \}
. if \\n[#PRINT_STYLE]=2 \{\
. FAMILY \\*[$SUBTITLE_FAM]
. FT \\*[$SUBTITLE_FT]
. PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$SUBTITLE_SIZE_CHANGE]
. LS \\n[#DOCHEADER_LEAD]u
. \}
. PRINT \\*[$SUBTITLE]
. \\n+[#DOCHEADER_LINES]
. \}
. if '\\*[$SUBTITLE]'' \{\
. if \\n[#PRINT_STYLE]=1 \{\
. \}
. if '\\*[$SUBTITLE]'' \{\
. ALD \\n[#DOC_LEAD]u
. \}
. \}
. ev
. ev AUTHOR
. CENTER
. L_MARGIN \\n[#DOC_L_MARGIN]u
. LL \\n[#DOC_L_LENGTH]u
. ta \\n(.lu
. if !'\\*[$AUTHOR_1]'' \{\
. if \\n[#PRINT_STYLE]=1 \{\
. fam C
. ft R
. ps 12
. ie !'\\*[$AUTHOR_1]'' \{\
. ie \\n[#SINGLE_SPACE] \{ .vs \\n[#DOC_LEAD]u \}
. el \{ .vs \\n[#DOC_LEAD]u/2u \}
. if !d$SUBTITLE \{\
. ie \\n[#SINGLE_SPACE] \{ .ALD \\n[#DOC_LEAD]u \}
. el \{ .ALD \\n[#DOC_LEAD]u*2u \}
. ie \\n[#SINGLE_SPACE] \{ .ALD \\n[#DOC_LEAD]u \}
. el \{ .ALD \\n[#DOC_LEAD]u*2u \}
. \}
. PRINT \\*[$ATTRIBUTE_STRING]
. nr #AUTHORS \\n[#AUTHOR_NUM]
. nr #NEXT_AUTHOR 0 1
. while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\
. PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]
. \}
. \}
. if \\n[#PRINT_STYLE]=2 \{\
. FAMILY \\*[$AUTHOR_FAM]
. FT \\*[$AUTHOR_FT]
. PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$AUTHOR_SIZE_CHANGE]
. LS \\n[#DOCHEADER_LEAD]u
. \}
. PRINT \\*[$ATTRIBUTE_STRING]
. \\n+[#DOCHEADER_LINES]
. nr #AUTHORS \\n[#AUTHOR_NUM]
. nr #NEXT_AUTHOR 0 1
. while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\
. PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]
. \\n+[#DOCHEADER_LINES]
. \}
. if \\n[#PRINT_STYLE]=1 \{\
. if \\n[#AUTHOR_LINES]=1 \{\
. ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u \}
. el \{ .RLD \\n[#DOC_LEAD]u \}
. \}
. el \{ .ALD \\n[#DOC_LEAD]u/2u \}
. \}
. \}
. el \{\
. ie !d$SUBTITLE \{\
. ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u*2u \}
. el \{ .RLD \\n[#DOC_LEAD]u \}
. \}
. el \{\
. ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u*2u \}
. el \{ .ALD \\n[#DOC_LEAD]u \}
. \}
. \}
. \}
. if \\n[#PRINT_STYLE]=2 \{\
. DEFAULT_DOCHEADER
. di DOCHEADER_DIVERSION \" This diversion is only
. br \" necessary to find the depth of the
. DEFAULT_DOCHEADER \" docheader
. br
. di
. nr #DOCHEADER_DEPTH \\n(dn-\\n[#DOCHEADER_LEAD] \"Storing the depth (height) of the diversion
. \"in #DOCHEADER_DEPTH
. rm DOCHEADER_DIVERSION \" Removing the diversion macro
. \}
. ev
. \}
@ -3913,29 +4089,44 @@ y\\R'#DESCENDER \\n[.cdp]'
. L_MARGIN \\n[#DOC_L_MARGIN]u
. LL \\n[#DOC_L_LENGTH]u
. ta \\n(.lu
. CENTER
. if \\n[#PRINT_STYLE]=1 \{\
. CENTER
. fam C
. ft R
. ps 12
. ie \\n[#SINGLE_SPACE] \{ .vs \\n[#DOC_LEAD]u*2u \}
. el \{ .vs \\n[#DOC_LEAD]u \}
. vs \\n[#DOC_LEAD]u
. ie '\\*[$CHAPTER]'' \{\
. CAPS
. ie !'\\*[$CHAPTER_TITLE]'' \{\
. PRINT \\*[$CHAPTER_TITLE]
. \}
. el \{\
. CAPS
. PRINT \\*[$CHAPTER_STRING]
. \}
. CAPS OFF
. \}
. el \{\
. CAPS
. PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER]
. CAPS OFF
. if !'\\*[$CHAPTER_TITLE]'' \{\
. if \\n[#SINGLE_SPACE] \{ .ALD \\n[#DOC_LEAD]u \}
. UNDERSCORE "\\*[$CHAPTER_TITLE]
. \}
. \}
. if \\n[#SINGLE_SPACE] \{ .ALD \\n[#DOC_LEAD]u \}
. \}
. if \\n[#PRINT_STYLE]=2 \{\
. FAMILY \\*[$TITLE_FAM]
. FT \\*[$TITLE_FT]
. PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$TITLE_SIZE_CHANGE]
. LS \\n[#DOC_LEAD]u
. \}
. if \\n[#PRINT_STYLE]=1 \{\
. CAPS
. ie '\\*[$CHAPTER]'' \{ .PRINT \\*[$CHAPTER_STRING] \}
. el \{ .PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER] \}
. CAPS OFF
. \}
. if \\n[#PRINT_STYLE]=2 \{\
. ie '\\*[$CHAPTER]'' \{ .PRINT \\*[$CHAPTER_STRING] \}
. el \{ .PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER] \}
. CHAPTER_DOCHEADER
. di DOCHEADER_DIVERSION \" This diversion is only
. br \" necessary to find the depth of the
. CHAPTER_DOCHEADER \" docheader
. br
. di
. nr #DOCHEADER_DEPTH \\n(dn-\\n[#DOCHEADER_LEAD] \" Storing the depth (height) of the diversion
. \" in #DOCHEADER_DEPTH
. rm DOCHEADER_DIVERSION \" Removing the diversion macro
. \}
. ev
. \}
@ -3943,12 +4134,12 @@ y\\R'#DESCENDER \\n[.cdp]'
. if \\n[#DOC_TYPE]=3 \{\
. PRINT \&
. sp |\\n[#DOCHEADER_ADVANCE]u-1v
. ev TITLE
. CENTER
. ev NAMED
. L_MARGIN \\n[#DOC_L_MARGIN]u
. LL \\n[#DOC_L_LENGTH]u
. ta \\n(.lu
. if \\n[#PRINT_STYLE]=1 \{\
. CENTER
. fam C
. ft R
. ps 12
@ -3957,101 +4148,40 @@ y\\R'#DESCENDER \\n[.cdp]'
. CAPS
. if !'\\*[$TITLE]'' \{ .UNDERSCORE "\\*[$TITLE]\}
. CAPS OFF
. \}
. if \\n[#PRINT_STYLE]=2 \{\
. FAMILY \\*[$TITLE_FAM]
. FT \\*[$TITLE_FT]
. PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$TITLE_SIZE_CHANGE]
. LS \\n[#DOCHEADER_LEAD]u
. PRINT \\*[$TITLE]
. \\n+[#DOCHEADER_LINES]
. CAPS OFF
. \}
. ev
. ev SUBTITLE
. CENTER
. L_MARGIN \\n[#DOC_L_MARGIN]u
. LL \\n[#DOC_L_LENGTH]u
. ta \\n(.lu
. if !'\\*[$SUBTITLE]'' \{\
. if \\n[#PRINT_STYLE]=1 \{\
. fam C
. ft R
. ps 12
. if !'\\*[$SUBTITLE]'' \{\
. ie \\n[#SINGLE_SPACE] \{ .vs \\n[#DOC_LEAD]u*2u \}
. el \{ .vs \\n[#DOC_LEAD]u \}
. PRINT \\*[$SUBTITLE]
. \}
. if \\n[#PRINT_STYLE]=2 \{\
. FAMILY \\*[$SUBTITLE_FAM]
. FT \\*[$SUBTITLE_FT]
. PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$SUBTITLE_SIZE_CHANGE]
. LS \\n[#DOCHEADER_LEAD]u
. \}
. PRINT \\*[$SUBTITLE]
. \\n+[#DOCHEADER_LINES]
. \}
. if '\\*[$SUBTITLE]'' \{\
. if \\n[#PRINT_STYLE]=1 \{\
. if '\\*[$SUBTITLE]'' \{\
. ALD \\n[#DOC_LEAD]u
. \}
. \}
. ev
. ev AUTHOR
. CENTER
. L_MARGIN \\n[#DOC_L_MARGIN]u
. LL \\n[#DOC_L_LENGTH]u
. ta \\n(.lu
. if !'\\*[$AUTHOR_1]'' \{\
. if \\n[#PRINT_STYLE]=1 \{\
. fam C
. ft R
. ps 12
. ie !'\\*[$AUTHOR_1]'' \{\
. ie \\n[#SINGLE_SPACE] \{ .vs \\n[#DOC_LEAD]u \}
. el \{ .vs \\n[#DOC_LEAD]u/2u \}
. if !d$SUBTITLE \{\
. ie \\n[#SINGLE_SPACE] \{ .ALD \\n[#DOC_LEAD]u \}
. el \{ .ALD \\n[#DOC_LEAD]u*2u \}
. ie \\n[#SINGLE_SPACE] \{ .ALD \\n[#DOC_LEAD]u \}
. el \{ .ALD \\n[#DOC_LEAD]u*2u \}
. \}
. PRINT \\*[$ATTRIBUTE_STRING]
. nr #AUTHORS \\n[#AUTHOR_NUM]
. nr #NEXT_AUTHOR 0 1
. while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\
. PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]
. \}
. \}
. if \\n[#PRINT_STYLE]=2 \{\
. FAMILY \\*[$AUTHOR_FAM]
. FT \\*[$AUTHOR_FT]
. PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$AUTHOR_SIZE_CHANGE]
. LS \\n[#DOCHEADER_LEAD]u
. \}
. PRINT \\*[$ATTRIBUTE_STRING]
. \\n+[#DOCHEADER_LINES]
. nr #AUTHORS \\n[#AUTHOR_NUM]
. nr #NEXT_AUTHOR 0 1
. while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\
. PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]
. \\n+[#DOCHEADER_LINES]
. \}
. if \\n[#PRINT_STYLE]=1 \{\
. if \\n[#AUTHOR_LINES]=1 \{\
. ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u \}
. el \{ .RLD \\n[#DOC_LEAD]u \}
. el \{ .ALD \\n[#DOC_LEAD]u/2u \}
. \}
. \}
. \}
. ev
. ev DOCTYPE
. CENTER
. L_MARGIN \\n[#DOC_L_MARGIN]u
. LL \\n[#DOC_L_LENGTH]u
. ta \\n(.lu
. if \\n[#PRINT_STYLE]=1 \{\
. fam C
. ft R
. ps 12
. vs \\n[#DOC_LEAD]u
. if '\\*[$AUTHOR_1]'' \{\
. el \{\
. ie !d$SUBTITLE \{\
. ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u*2u \}
. el \{ .RLD \\n[#DOC_LEAD]u \}
. \}
. \}
. el \{\
. ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u*2u \}
. ie \\n[#SINGLE_SPACE] \{ . \}
. el \{ .RLD \\n[#DOC_LEAD]u \}
. \}
. \}
@ -4061,40 +4191,24 @@ y\\R'#DESCENDER \\n[.cdp]'
. if \\n[#SINGLE_SPACE] \{ .ALD \\n[#DOC_LEAD]u \}
. \}
. if \\n[#PRINT_STYLE]=2 \{\
. FAMILY \\*[$DOCTYPE_FAM]
. FT \\*[$DOCTYPE_FT]
. PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$DOCTYPE_SIZE_CHANGE]
. LS \\n[#DOCHEADER_LEAD]u
. ALD \\n[#DOCHEADER_LEAD]u
. \\n+[#DOCHEADER_LINES]
. UNDERSCORE "\\*[$DOC_TYPE]
. \\n+[#DOCHEADER_LINES]
. NAMED_DOCHEADER
. di DOCHEADER_DIVERSION \" This diversion is only
. br \" necessary to find the depth of the
. NAMED_DOCHEADER \" docheader
. br
. di
. nr #DOCHEADER_DEPTH \\n(dn-\\n[#DOCHEADER_LEAD] \"Storing the depth (height) of the diversion
. \"in #DOCHEADER_DEPTH
. rm DOCHEADER_DIVERSION \" Removing the diversion macro
. \}
. ev
. \}
. if !\\n[#DOC_TYPE]=4 \{\
. if \\n[#PRINT_STYLE]=2 \{\
. nr #DEPTH_1 \\n[#DOCHEADER_LINES]*\\n[#DOCHEADER_LEAD]
. nr #DEPTH_2 \\n[#DOCHEADER_LINES]*\\n[#DOC_LEAD]
. ie \\n[#DEPTH_1]<\\n[#DEPTH_2] \{\
. nr #DOCHEADER_SPACE_ADJ \\n[#DEPTH_2]-\\n[#DEPTH_1]
. \}
. el \{\
. nr #DOCHEADER_SPACE_ADJ \\n[#DEPTH_1]-\\n[#DEPTH_2]
. \}
. nr #DOCHEADER_EXTRA_SPACE \\n[#DOCHEADER_SPACE_ADJ] \\n[#DOC_LEAD]
. while \\n[#DOCHEADER_EXTRA_SPACE]>\\n[#DOC_LEAD] \{\
. \\n-[#DOCHEADER_EXTRA_SPACE]
. \}
. if \\n[#DOCHEADER_EXTRA_SPACE]>0 \{\
. ie \\n[#DOCHEADER_LEAD_ADJ]<0 \{\
. ALD \\n[#DOCHEADER_EXTRA_SPACE]u
. \}
. el \{ .ALD \\n[#DOC_LEAD]u-\\n[#DOCHEADER_EXTRA_SPACE]u \}
. \}
. \}
. if \\n[#PRINT_STYLE]=1 \{ .ALD \\n[#DOC_LEAD]u \}
. if \\n[#PRINT_STYLE]=2 \{ .ALD \\n[#DOC_LEAD]u*2u \}
. if \\n[#PRINT_STYLE]=1 \{ .ALD \\n[#DOC_LEAD]u \}
. nr #DOCHEADER_SPACE_ADJ \\n[#DOCHEADER_DEPTH]%\\n[#DOC_LEAD] \"Do we need the units?
. ie !\\n[#DOCHEADER_SPACE_ADJ]=0 \{ .nr #DOCHEADER_EXTRA_SPACE \\n[#DOC_LEAD]u-\\n[#DOCHEADER_SPACE_ADJ]u \}
. el \{ .nr #DOCHEADER_EXTRA_SPACE 0 \}
. if \\n[#PRINT_STYLE]=2 \{ .ALD (\\n[#DOC_LEAD]u*2u)+\\n[#DOCHEADER_EXTRA_SPACE]u \}
. if \\n[#COLUMNS] \{\
. nr #COL_NUM 0 1
. nr #L_LENGTH_FOR_EPI \\n[#L_LENGTH]
@ -4112,7 +4226,6 @@ y\\R'#DESCENDER \\n[.cdp]'
. rr #DOCHEADER_ADVANCE
. rr #ADVANCE_FROM_TOP
. rr #DOCHEADER_SPACE_ADJ
. rr #DOCHEADER_LINES
. rr #DOCHEADER_EXTRA_SPACE
. rr #AUTHORS
. rr #NEXT_AUTHOR
@ -4224,6 +4337,53 @@ y\\R'#DESCENDER \\n[.cdp]'
.END
\#
\#
\# CHAPTER TITLE FAMILY
\# --------------------
\# *Argument:
\# <family to use for the chapter title, if there is one>
\# *Function:
\# Creates or modifies string $CHAPTER_TITLE_FAM.
\# *Notes:
\# Default isame as running text.
\#
.MAC CHAPTER_TITLE_FAMILY END
. ds $CHAPTER_TITLE_FAM \\$1
.END
\#
\#
\# CHAPTER TITLE FONT
\# ------------------
\# *Argument:
\# <font to use for the chapter title, if there is one>
\# *Function:
\# Creates or modifies string $CHAPTER_TITLE_FT.
\# *Notes:
\# Default is bold italic for TYPESET; varies in TYPEWRITE between
\# caps and underscored, depending on whether chapter title stands
\# alone or has CHAPTER # above it.
\#
.MAC CHAPTER_TITLE_FONT END
. ds $CHAPTER_TITLE_FT \\$1
.END
\#
\#
\# CHAPTER TITLE SIZE
\# ------------------
\# *Argument:
\# <+|- number of points by which to in/decrease title at start
\# of the document (relative to running text)>
\# *Function:
\# Creates string $CHAPTER_TITLE_SIZE_CHANGE.
\# *Notes:
\# Must be preceded by a +|- sign, with no space afterwards.
\# Fractional point sizes are allowed.
\# Default is +4 for printstyle TYPESET
\#
.MAC CHAPTER_TITLE_SIZE END
. ds $CHAPTER_TITLE_SIZE_CHANGE \\$1
.END
\#
\#
\# SUBTITLE FAMILY
\# ---------------
\# *Argument:
@ -4850,11 +5010,8 @@ y\\R'#DESCENDER \\n[.cdp]'
. ie \\n[#START] \{\
. nr #EPI_WHITESPACE (\\n[#DOC_LEAD]*\\n[#EPI_LINES])-\\n[#EPI_DEPTH]
. while \\n[#EPI_WHITESPACE]>\\n[#DOC_LEAD] \{ .nr #EPI_WHITESPACE -\\n[#DOC_LEAD] \}
. RLD \\n[#DOC_LEAD]u
. ie \\n[#PRINT_STYLE]=1 \{\
. if \\n[#EPI_WHITESPACE]=\\n[#DOC_LEAD] \{ .ALD \\n[#EPI_WHITESPACE]u/2u \}
. \}
. el \{\
. if \\n[#PRINT_STYLE]=2 \{\
. RLD \\n[#DOC_LEAD]u
. if \\n[#EPI_WHITESPACE]<\\n[#DOC_LEAD] \{\
. ALD \\n[#EPI_LEAD_DIFF]u+(\\n[#EPI_WHITESPACE]u/2u)
. \}
@ -4905,11 +5062,19 @@ y\\R'#DESCENDER \\n[.cdp]'
. EPI_TEXT
. br
. ie \\n[#START] \{\
. if \\n[#EPI_WHITESPACE]<\\n[#DOC_LEAD] \{\
. ALD \\n[#EPI_WHITESPACE]u/2u
. if \\n[#PRINT_STYLE]=1 \{\
. ie \\n[#SINGLE_SPACE] \{ .ALD \\n[#DOC_LEAD]u \}
. el \{\
. if \\n[#EPI_WHITESPACE]=\\n[#DOC_LEAD] \{ .ALD \\n[#DOC_LEAD]u/2u \}
. \}
. \}
. if \\n[#EPI_WHITESPACE]>\\n[#DOC_LEAD] \{\
. ALD (\\n[#EPI_WHITESPACE]u/2u)-\\n[#DOC_LEAD]u
. if \\n[#PRINT_STYLE]=2 \{\
. if \\n[#EPI_WHITESPACE]<\\n[#DOC_LEAD] \{\
. ALD \\n[#EPI_WHITESPACE]u/2u
. \}
. if \\n[#EPI_WHITESPACE]>\\n[#DOC_LEAD] \{\
. ALD (\\n[#EPI_WHITESPACE]u/2u)-\\n[#DOC_LEAD]u
. \}
. \}
. \}
. el \{\
@ -6382,7 +6547,7 @@ y\\R'#DESCENDER \\n[.cdp]'
. if r#EPIGRAPH \{ .rr #EPIGRAPH \}
. if \\n[#PRINT_STYLE]=1 \{ .ne 3 \}
. if \\n[#PRINT_STYLE]=2 \{\
. ie \\n[#HEAD_SPACE] \{ .ne 5 \}
. ie \\n[#HEAD_SPACE] \{ .ne 4 \}
. el \{ .ne 3 \}
. \}
. ie \\n[#START] \{\
@ -7492,9 +7657,13 @@ y\\R'#DESCENDER \\n[.cdp]'
. ie \\n[#START] \{ . \}
. el \{\
. ie \\n[#FULLSPACE_QUOTES] \{\
. ALD \\n[#DOC_LEAD]u
. ie \\n[#ENDNOTE] \{ .ALD \\n[#EN_LEAD]u \}
. el \{ .ALD \\n[#DOC_LEAD]u \}
. \}
. el \{\
. ie \\n[#ENDNOTE] \{ .ALD \\n[#EN_LEAD]u/2u \}
. el \{ .ALD \\n[#DOC_LEAD]u/2u \}
. \}
. el \{ .ALD \\n[#DOC_LEAD]u/2u \}
. \}
. \}
. \}
@ -7503,7 +7672,10 @@ y\\R'#DESCENDER \\n[.cdp]'
. ie r#HEAD \{\
. if \\n[#HEAD]=1 \{ . \}
. \}
. el \{ .ALD \\n[#EN_LEAD]u \}
. el \{\
. ie \\n[#ENDNOTE] \{ .ALD \\n[#EN_LEAD]u \}
. el \{ .ALD \\n[#DOC_LEAD]u \}
. \}
. \}
. \}
. \}

View File

@ -32,7 +32,7 @@
# We don't have complete option coverage on eqn because this is primarily
# intended as a pic translator; we can live with eqn defaults.
#
# $Id: pic2graph.sh,v 1.2 2002/07/17 04:55:46 wlemb Exp $
# $Id: pic2graph.sh,v 1.3 2002/12/21 08:32:56 wlemb Exp $
#
groffpic_opts=""
gs_opts=""
@ -44,7 +44,7 @@ while [ "$1" ]
do
case $1 in
-unsafe)
groffpic_opts="-U"
groffpic_opts="-U";;
-format)
format=$2
shift;;

View File

@ -1,4 +1,4 @@
# Copyright (C) 2002 Free Software Foundation, Inc.
# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
# Written by Werner Lemberg <wl@gnu.org>
#
# This file is part of groff.
@ -32,7 +32,12 @@ srcdir=@srcdir@
top_srcdir=@top_srcdir@
VPATH=@srcdir@
top_builddir=@groff_top_builddir@
pnmtops=@pnmtops_nosetpage@
# These may be overridden if cross-compiling.
TROFFBIN=$(top_builddir)/src/roff/troff/troff
GROFFBIN=$(top_builddir)/src/roff/groff/groff
GROFF_BIN_PATH=`echo $(groff_bin_dirs) | sed -e 's| *|:|g'`
# Since info files are distributed within the groff package, no
# autoconf test for the makeinfo binary is done.
@ -58,7 +63,6 @@ groff_bin_dirs=\
$(top_builddir)/src/devices/grolj4 \
$(top_builddir)/src/devices/grolbp \
$(top_builddir)/src/devices/grohtml
groff_bin_path=`echo $(groff_bin_dirs) | sed -e 's| *|:|g'`
version=`cat $(top_srcdir)/VERSION`
# No additional number if revision is zero.
@ -67,13 +71,13 @@ revision=`sed -e 's/^0$$//' -e 's/^[1-9].*$$/.&/' $(top_srcdir)/REVISION`
FFLAG=-F$(top_builddir)/font -F$(top_srcdir)/font
TFLAG=-M$(top_builddir)/tmac -M$(top_srcdir)/tmac
TROFF=$(top_builddir)/src/roff/troff/troff $(TFLAG) $(FFLAG) -ww
TROFF=$(TROFFBIN) $(TFLAG) $(FFLAG) -ww
GROFF=GROFF_COMMAND_PREFIX=''; \
export GROFF_COMMAND_PREFIX; \
GROFF_BIN_PATH=$(groff_bin_path); \
GROFF_BIN_PATH=$(GROFF_BIN_PATH); \
export GROFF_BIN_PATH; \
sed -e "s;@VERSION@;$(version)$(revision);" $< \
| $(top_builddir)/src/roff/groff/groff $(TFLAG) $(FFLAG) -Upet -ww
| $(GROFFBIN) $(TFLAG) $(FFLAG) -Upet -ww
imagedir=img
@ -110,7 +114,7 @@ groff: groff.texinfo
$(MAKEINFO) -I$(srcdir) $(srcdir)/groff.texinfo
gnu.eps: gnu.xpm
xpmtoppm $(srcdir)/gnu.xpm | pnmdepth 15 | pnmtops -noturn >$@
xpmtoppm $(srcdir)/gnu.xpm | pnmdepth 15 | $(pnmtops) -noturn >$@
gnu.png: gnu.xpm
xpmtoppm $(srcdir)/gnu.xpm | pnmdepth 15 | pnmtopng >$@

View File

@ -1,4 +1,4 @@
# Copyright (C) 2002 Free Software Foundation, Inc.
# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
# Written by Werner Lemberg <wl@gnu.org>
#
# This file is part of groff.
@ -17,6 +17,10 @@
# with groff; see the file COPYING. If not, write to the Free Software
# Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# These may be overridden if cross-compiling.
GROFFBIN=$(top_builddir)/src/roff/groff/groff
GROFF_BIN_PATH=`echo $(groff_bin_dirs) | sed -e 's| *|:|g'`
# Since info files are distributed within the groff package, no
# autoconf test for the makeinfo binary is done.
MAKEINFO=makeinfo
@ -33,7 +37,6 @@ groff_bin_dirs=\
$(top_builddir)/src/preproc/html \
$(top_builddir)/src/devices/grops \
$(top_builddir)/src/devices/grohtml
groff_bin_path=`echo $(groff_bin_dirs) | sed -e 's| *|:|g'`
FFLAG=-F$(top_builddir)/font -F$(top_srcdir)/font
TFLAG=-M$(top_builddir)/tmac -M$(top_srcdir)/tmac
@ -41,10 +44,10 @@ TFLAG=-M$(top_builddir)/tmac -M$(top_srcdir)/tmac
GROFF=\
GROFF_COMMAND_PREFIX=''; \
export GROFF_COMMAND_PREFIX; \
GROFF_BIN_PATH=$(groff_bin_path); \
GROFF_BIN_PATH=$(GROFF_BIN_PATH); \
export GROFF_BIN_PATH; \
sed -e "s;@VERSION@;$(version)$(revision);" $< \
| $(top_builddir)/src/roff/groff/groff $(TFLAG) $(FFLAG) -Upet -ww
| $(GROFFBIN) $(TFLAG) $(FFLAG) -Upet -ww
DOCFILES=\
meref.me \
@ -122,7 +125,8 @@ groff: groff.texinfo
$(MAKEINFO) -I$(srcdir) $(srcdir)/groff.texinfo
gnu.eps: gnu.xpm
xpmtoppm $(srcdir)/gnu.xpm | pnmdepth 15 | pnmtops -noturn -rle >$@
xpmtoppm $(srcdir)/gnu.xpm | pnmdepth 15 | \
$(pnmtops_nosetpage) -noturn -rle >$@
gnu.png: gnu.xpm
xpmtoppm $(srcdir)/gnu.xpm | pnmdepth 15 | pnmtopng >$@

View File

@ -1,8 +1,9 @@
This is groff, produced by makeinfo version 4.2 from ./groff.texinfo.
This is groff, produced by makeinfo version 4.3d from ./groff.texinfo.
This manual documents GNU `troff' version 1.18.
This manual documents GNU `troff' version 1.19.
Copyright (C) 1994-2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1994-2000, 2001, 2002, 2003 Free Software Foundation,
Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@ -16,282 +17,285 @@ This manual documents GNU `troff' version 1.18.
modify this GNU Manual, like GNU software. Copies published by
the Free Software Foundation raise funds for GNU development."
INFO-DIR-SECTION Miscellaneous
INFO-DIR-SECTION Typesetting
START-INFO-DIR-ENTRY
* Groff: (groff). The GNU troff document formatting system.
END-INFO-DIR-ENTRY

Indirect:
groff-1: 1001
groff-2: 48538
groff-3: 97766
groff-4: 140652
groff-5: 187441
groff-6: 231433
groff-7: 275695
groff-8: 325582
groff-9: 372274
groff-10: 420373
groff-11: 430355
groff-1: 1006
groff-2: 48734
groff-3: 96786
groff-4: 143635
groff-5: 193057
groff-6: 242522
groff-7: 290092
groff-8: 338472
groff-9: 384440
groff-10: 430986
groff-11: 456663

Tag Table:
(Indirect)
Node: Top1001
Node: Introduction2290
Node: What Is groff?2764
Node: What Is groff?-Footnotes4270
Ref: What Is groff?-Footnote-14339
Node: History4376
Node: groff Capabilities9327
Node: Macro Package Intro10513
Node: Preprocessor Intro11135
Node: Output device intro12631
Node: Credits13095
Node: Invoking groff13599
Node: Groff Options14876
Node: Environment24383
Node: Macro Directories26210
Node: Font Directories27532
Node: Invocation Examples29179
Node: Invocation Examples-Footnotes30377
Ref: Invocation Examples-Footnote-130456
Node: grog30689
Node: Tutorial for Macro Users31958
Node: Basics32378
Node: Basics-Footnotes37183
Ref: Basics-Footnote-137236
Ref: Basics-Footnote-237330
Node: Common Features37444
Node: Paragraphs38230
Node: Sections and Chapters39728
Node: Headers and Footers40219
Node: Page Layout Adjustment41092
Node: Displays41359
Node: Footnotes and Annotations42617
Node: Table of Contents43276
Node: Indices43790
Node: Paper Formats44192
Node: Multiple Columns44565
Node: Font and Size Changes44813
Node: Predefined Strings45115
Node: Preprocessor Support45451
Node: Configuration and Customization46005
Node: Macro Packages46372
Node: man46632
Node: Man options47036
Node: Man usage48538
Node: Man font macros53889
Node: Miscellaneous man macros55415
Node: Predefined man strings56246
Node: Preprocessors in man pages56721
Node: mdoc57303
Node: ms57472
Node: ms Intro57948
Node: General ms Structure58617
Node: General ms Structure-Footnotes61058
Ref: General ms Structure-Footnote-161139
Node: ms Document Control Registers61185
Node: ms Cover Page Macros64241
Node: ms Body Text67159
Node: Paragraphs in ms67628
Node: Headings in ms69181
Node: Highlighting in ms69967
Node: Lists in ms72429
Node: Indents in ms75662
Node: Tabstops in ms76228
Node: ms Displays and Keeps76625
Node: ms Insertions80077
Node: Example multi-page table81628
Node: ms Footnotes82071
Node: ms Page Layout82943
Node: ms Headers and Footers83460
Node: ms Margins84483
Node: ms Multiple Columns84724
Node: ms TOC85525
Node: ms Strings and Special Characters88230
Node: ms Strings and Special Characters-Footnotes90886
Ref: ms Strings and Special Characters-Footnote-190993
Node: Differences from AT&T ms91080
Node: Missing ms Macros91379
Node: Additional ms Macros92123
Node: me93375
Node: mm93533
Node: gtroff Reference93680
Node: Text94608
Node: Filling and Adjusting95130
Node: Hyphenation95843
Node: Sentences96626
Node: Tab Stops97766
Node: Implicit Line Breaks98660
Node: Input Conventions99647
Node: Measurements100431
Node: Measurements-Footnotes102638
Ref: Measurements-Footnote-1102703
Node: Default Units102775
Node: Expressions103821
Node: Identifiers106535
Node: Embedded Commands110391
Node: Requests111138
Node: Request Arguments112726
Node: Request Arguments-Footnotes115077
Ref: Request Arguments-Footnote-1115152
Ref: Request Arguments-Footnote-2115280
Node: Macros115634
Node: Escapes115991
Node: Comments118872
Node: Comments-Footnotes121447
Ref: Comments-Footnote-1121504
Node: Registers121603
Node: Setting Registers122106
Node: Interpolating Registers124388
Node: Auto-increment125192
Node: Assigning Formats126722
Node: Built-in Registers129630
Node: Manipulating Filling and Adjusting132879
Node: Manipulating Hyphenation140652
Node: Manipulating Hyphenation-Footnotes150959
Ref: Manipulating Hyphenation-Footnote-1151048
Node: Manipulating Spacing151123
Node: Tabs and Fields154514
Node: Tabs and Fields-Footnotes160646
Ref: Tabs and Fields-Footnote-1160717
Node: Leaders160795
Node: Leaders-Footnotes162386
Ref: Leaders-Footnote-1162441
Node: Fields162522
Node: Character Translations163938
Node: Troff and Nroff Mode173148
Node: Line Layout175133
Node: Line Control181040
Node: Page Layout183713
Node: Page Control187441
Node: Fonts190921
Node: Changing Fonts191458
Node: Font Families193243
Node: Font Positions197760
Node: Using Symbols200875
Node: Using Symbols-Footnotes208965
Ref: Using Symbols-Footnote-1209032
Ref: Using Symbols-Footnote-2209485
Ref: Using Symbols-Footnote-3209556
Ref: Using Symbols-Footnote-4209795
Node: Special Fonts209858
Node: Artificial Fonts210962
Node: Ligatures and Kerning216170
Node: Sizes221992
Node: Sizes-Footnotes222809
Ref: Sizes-Footnote-1222860
Node: Changing Type Sizes223272
Node: Fractional Type Sizes228416
Node: Strings231433
Node: Conditionals and Loops239418
Node: Operators in Conditionals239635
Node: Operators in Conditionals-Footnotes242271
Ref: Operators in Conditionals-Footnote-1242362
Ref: Operators in Conditionals-Footnote-2242441
Node: if-else242540
Node: while244074
Node: Writing Macros246447
Node: Copy-in Mode250343
Node: Parameters251226
Node: Page Motions253341
Node: Drawing Requests260414
Node: Traps268264
Node: Page Location Traps268869
Node: Diversion Traps273301
Node: Input Line Traps273775
Node: Blank Line Traps274765
Node: End-of-input Traps275037
Node: Diversions275695
Node: Environments282393
Node: Suppressing output286006
Node: Colors287820
Node: I/O290802
Node: Postprocessor Access298807
Node: Miscellaneous300362
Node: Miscellaneous-Footnotes305422
Ref: Miscellaneous-Footnote-1305489
Node: Gtroff Internals305559
Node: Gtroff Internals-Footnotes309281
Ref: Gtroff Internals-Footnote-1309354
Node: Debugging309488
Node: Warnings315098
Node: Warnings-Footnotes318024
Ref: Warnings-Footnote-1318081
Node: Implementation Differences318202
Node: Implementation Differences-Footnotes322826
Ref: Implementation Differences-Footnote-1322919
Node: Preprocessors323054
Node: geqn323355
Node: Invoking geqn323481
Node: gtbl323575
Node: Invoking gtbl323692
Node: gpic323786
Node: Invoking gpic323903
Node: ggrn323997
Node: Invoking ggrn324114
Node: grap324208
Node: grefer324479
Node: Invoking grefer324607
Node: gsoelim324711
Node: Invoking gsoelim324829
Node: Output Devices324938
Node: Special Characters325173
Node: grotty325337
Node: Invoking grotty325478
Node: grops325582
Node: Invoking grops325733
Node: Embedding PostScript325861
Node: grodvi325983
Node: Invoking grodvi326112
Node: grolj4326216
Node: Invoking grolj4326346
Node: grolbp326450
Node: Invoking grolbp326581
Node: grohtml326685
Node: Invoking grohtml326865
Node: grohtml specific registers and strings327021
Node: gxditview327884
Node: Invoking gxditview328012
Node: File formats328131
Node: gtroff Output328401
Node: gtroff Output-Footnotes330237
Ref: gtroff Output-Footnote-1330304
Node: Language Concepts330438
Node: Separation331175
Node: Argument Units333413
Node: Document Parts334553
Node: Command Reference335942
Node: Comment Command336344
Node: Simple Commands336821
Node: Simple Commands-Footnotes342728
Ref: Simple Commands-Footnote-1342799
Node: Graphics Commands342860
Node: Device Control Commands350194
Node: Obsolete Command354229
Node: Intermediate Output Examples355497
Node: Output Language Compatibility358310
Node: Font Files360357
Node: Font Files-Footnotes360966
Ref: Font Files-Footnote-1361027
Node: DESC File Format361088
Node: Font File Format365330
Node: Font File Format-Footnotes371553
Ref: Font File Format-Footnote-1371626
Ref: Font File Format-Footnote-2371717
Node: Installation371936
Node: Copying This Manual372058
Node: GNU Free Documentation License372274
Node: Request Index392134
Node: Escape Index401929
Node: Operator Index406157
Node: Register Index407262
Node: Macro Index414789
Node: String Index420373
Node: Glyph Name Index424697
Node: Font File Keyword Index424983
Node: Program and File Index427384
Node: Concept Index430355
Node: Top1006
Node: Introduction2301
Node: What Is groff?2775
Node: What Is groff?-Footnotes4281
Ref: What Is groff?-Footnote-14350
Node: History4387
Node: groff Capabilities9338
Node: Macro Package Intro10524
Node: Preprocessor Intro11147
Node: Output device intro12643
Node: Credits13107
Node: Invoking groff13611
Node: Groff Options14903
Node: Environment24409
Node: Macro Directories26236
Node: Font Directories27562
Node: Paper Size29204
Node: Invocation Examples30549
Node: Invocation Examples-Footnotes31741
Ref: Invocation Examples-Footnote-131820
Node: grog32053
Node: Tutorial for Macro Users33322
Node: Basics33742
Node: Basics-Footnotes38557
Ref: Basics-Footnote-138610
Ref: Basics-Footnote-238704
Node: Common Features38818
Node: Paragraphs39604
Node: Sections and Chapters41102
Node: Headers and Footers41593
Node: Page Layout Adjustment42466
Node: Displays42733
Node: Footnotes and Annotations43991
Node: Table of Contents44650
Node: Indices45164
Node: Paper Formats45566
Node: Multiple Columns45939
Node: Font and Size Changes46187
Node: Predefined Strings46489
Node: Preprocessor Support46825
Node: Configuration and Customization47379
Node: Macro Packages47746
Node: man48302
Node: Man options48734
Node: Man usage51159
Node: Man font macros57184
Node: Miscellaneous man macros58997
Node: Predefined man strings60715
Node: Preprocessors in man pages61267
Node: Optional man extensions61881
Node: mdoc65860
Node: ms66029
Node: ms Intro66505
Node: General ms Structure67174
Node: General ms Structure-Footnotes69615
Ref: General ms Structure-Footnote-169696
Node: ms Document Control Registers69742
Node: ms Cover Page Macros72798
Node: ms Body Text75716
Node: Paragraphs in ms76185
Node: Headings in ms77738
Node: Highlighting in ms78524
Node: Lists in ms80986
Node: Indents in ms84219
Node: Tabstops in ms84785
Node: ms Displays and Keeps85182
Node: ms Insertions88634
Node: Example multi-page table90185
Node: ms Footnotes90628
Node: ms Page Layout91500
Node: ms Headers and Footers92017
Node: ms Margins93040
Node: ms Multiple Columns93281
Node: ms TOC94082
Node: ms Strings and Special Characters96786
Node: ms Strings and Special Characters-Footnotes99442
Ref: ms Strings and Special Characters-Footnote-199549
Node: Differences from AT&T ms99636
Node: Missing ms Macros99935
Node: Additional ms Macros100679
Node: me101931
Node: mm102089
Node: gtroff Reference102236
Node: Text103154
Node: Filling and Adjusting103713
Node: Hyphenation104426
Node: Sentences105209
Node: Tab Stops106349
Node: Implicit Line Breaks107243
Node: Input Conventions108256
Node: Input Encodings109047
Node: Measurements111008
Node: Measurements-Footnotes113202
Ref: Measurements-Footnote-1113267
Node: Default Units113339
Node: Expressions114385
Node: Identifiers117109
Node: Embedded Commands120965
Node: Requests121712
Node: Request and Macro Arguments123310
Node: Request and Macro Arguments-Footnotes125787
Ref: Request and Macro Arguments-Footnote-1125882
Ref: Request and Macro Arguments-Footnote-2126010
Node: Macros126364
Node: Escapes126741
Node: Comments129622
Node: Comments-Footnotes132202
Ref: Comments-Footnote-1132259
Node: Registers132358
Node: Setting Registers132861
Node: Interpolating Registers135143
Node: Auto-increment135948
Node: Assigning Formats137478
Node: Built-in Registers140386
Node: Manipulating Filling and Adjusting143635
Node: Manipulating Hyphenation152167
Node: Manipulating Hyphenation-Footnotes162506
Ref: Manipulating Hyphenation-Footnote-1162595
Node: Manipulating Spacing162670
Node: Tabs and Fields166677
Node: Tabs and Fields-Footnotes172663
Ref: Tabs and Fields-Footnote-1172734
Node: Leaders172812
Node: Leaders-Footnotes174403
Ref: Leaders-Footnote-1174458
Node: Fields174539
Node: Character Translations175955
Node: Troff and Nroff Mode185165
Node: Line Layout187150
Node: Line Control193057
Node: Page Layout195730
Node: Page Control199458
Node: Fonts and Symbols203051
Node: Changing Fonts203624
Node: Font Families205433
Node: Font Positions209962
Node: Using Symbols213089
Node: Using Symbols-Footnotes227673
Ref: Using Symbols-Footnote-1227740
Ref: Using Symbols-Footnote-2228193
Ref: Using Symbols-Footnote-3228264
Ref: Using Symbols-Footnote-4228503
Node: Special Fonts228566
Node: Artificial Fonts229738
Node: Ligatures and Kerning235224
Node: Sizes241230
Node: Sizes-Footnotes242059
Ref: Sizes-Footnote-1242110
Node: Changing Type Sizes242522
Node: Fractional Type Sizes247658
Node: Strings250675
Node: Conditionals and Loops258670
Node: Operators in Conditionals258887
Node: Operators in Conditionals-Footnotes261523
Ref: Operators in Conditionals-Footnote-1261614
Ref: Operators in Conditionals-Footnote-2261693
Node: if-else261792
Node: while263326
Node: Writing Macros265699
Node: Copy-in Mode269622
Node: Parameters270505
Node: Page Motions272640
Node: Drawing Requests279907
Node: Traps289487
Node: Page Location Traps290092
Node: Diversion Traps295934
Node: Input Line Traps296407
Node: Blank Line Traps297420
Node: End-of-input Traps297692
Node: Diversions298350
Node: Environments305308
Node: Suppressing output309178
Node: Colors310992
Node: I/O313974
Node: Postprocessor Access321986
Node: Miscellaneous323541
Node: Miscellaneous-Footnotes328601
Ref: Miscellaneous-Footnote-1328668
Node: Gtroff Internals328738
Node: Gtroff Internals-Footnotes332460
Ref: Gtroff Internals-Footnote-1332533
Node: Debugging332667
Node: Warnings338472
Node: Warnings-Footnotes341398
Ref: Warnings-Footnote-1341455
Node: Implementation Differences341576
Node: Implementation Differences-Footnotes346197
Ref: Implementation Differences-Footnote-1346290
Node: Preprocessors346425
Node: geqn346726
Node: Invoking geqn346852
Node: gtbl346946
Node: Invoking gtbl347063
Node: gpic347157
Node: Invoking gpic347274
Node: ggrn347368
Node: Invoking ggrn347485
Node: grap347579
Node: grefer347850
Node: Invoking grefer347978
Node: gsoelim348082
Node: Invoking gsoelim348200
Node: Output Devices348309
Node: Special Characters348544
Node: grotty348708
Node: Invoking grotty348849
Node: grops348953
Node: Invoking grops349104
Node: Embedding PostScript349232
Node: grodvi349354
Node: Invoking grodvi349483
Node: grolj4349587
Node: Invoking grolj4349717
Node: grolbp349821
Node: Invoking grolbp349952
Node: grohtml350056
Node: Invoking grohtml350236
Node: grohtml specific registers and strings350392
Node: gxditview351255
Node: Invoking gxditview351383
Node: File formats351502
Node: gtroff Output351772
Node: gtroff Output-Footnotes353608
Ref: gtroff Output-Footnote-1353675
Node: Language Concepts353810
Node: Separation354547
Node: Argument Units356785
Node: Document Parts357925
Node: Command Reference359314
Node: Comment Command359716
Node: Simple Commands360193
Node: Simple Commands-Footnotes366102
Ref: Simple Commands-Footnote-1366173
Node: Graphics Commands366234
Node: Device Control Commands373543
Node: Obsolete Command377579
Node: Intermediate Output Examples378848
Node: Output Language Compatibility381662
Node: Font Files383709
Node: Font Files-Footnotes384318
Ref: Font Files-Footnote-1384379
Node: DESC File Format384440
Node: Font File Format388830
Node: Font File Format-Footnotes395053
Ref: Font File Format-Footnote-1395126
Ref: Font File Format-Footnote-2395217
Node: Installation395436
Node: Copying This Manual395558
Node: GNU Free Documentation License395774
Node: Request Index415634
Node: Escape Index425653
Node: Operator Index429881
Node: Register Index430986
Node: Macro Index438803
Node: String Index445907
Node: Glyph Name Index450296
Node: Font File Keyword Index450582
Node: Program and File Index452983
Node: Concept Index456663

End Tag Table

View File

@ -1,8 +1,9 @@
This is groff, produced by makeinfo version 4.2 from ./groff.texinfo.
This is groff, produced by makeinfo version 4.3d from ./groff.texinfo.
This manual documents GNU `troff' version 1.18.
This manual documents GNU `troff' version 1.19.
Copyright (C) 1994-2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1994-2000, 2001, 2002, 2003 Free Software Foundation,
Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@ -16,7 +17,7 @@ This manual documents GNU `troff' version 1.18.
modify this GNU Manual, like GNU software. Copies published by
the Free Software Foundation raise funds for GNU development."
INFO-DIR-SECTION Miscellaneous
INFO-DIR-SECTION Typesetting
START-INFO-DIR-ENTRY
* Groff: (groff). The GNU troff document formatting system.
END-INFO-DIR-ENTRY
@ -27,9 +28,10 @@ File: groff, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
GNU troff
*********
This manual documents GNU `troff' version 1.18.
This manual documents GNU `troff' version 1.19.
Copyright (C) 1994-2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1994-2000, 2001, 2002, 2003 Free Software Foundation,
Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@ -292,7 +294,7 @@ Macro Packages
Since `groff' provides such low-level facilities, it can be quite
difficult to use by itself. However, `groff' provides a "macro"
facility to specify how certain routine operations (e.g. starting
paragraphs, printing headers and footers, etc.) should be done. These
paragraphs, printing headers and footers, etc.) should be done. These
macros can be collected together into a "macro package". There are a
number of macro packages available; the most common (and the ones
described in this manual) are `man', `mdoc', `me', `ms', and `mm'.
@ -390,6 +392,7 @@ called AT&T `troff' which is the common origin of all `troff' derivates
* Environment::
* Macro Directories::
* Font Directories::
* Paper Size::
* Invocation Examples::

@ -665,7 +668,7 @@ to format a file.
`-rNAME=N'
Set number register C or NAME to the value N. C must be a
one-letter name; NAME can be of arbitrary length. N can be any
`gtroff' numeric expression. All register assignments happen
`gtroff' numeric expression. All register assignments happen
before loading any macro file (including the start-up file).
`-FDIR'
@ -764,14 +767,14 @@ files are (in that order):
/usr/local/lib/groff/site-tmac
/usr/local/share/groff/site-tmac
/usr/local/share/groff/1.18/tmac
/usr/local/share/groff/1.18.2/tmac
assuming that the version of `groff' is 1.18, and the installation
prefix was `/usr/local'. It is possible to fine-tune those
directories during the installation process.
assuming that the version of `groff' is 1.18.2, and the
installation prefix was `/usr/local'. It is possible to fine-tune
those directories during the installation process.

File: groff, Node: Font Directories, Next: Invocation Examples, Prev: Macro Directories, Up: Invoking groff
File: groff, Node: Font Directories, Next: Paper Size, Prev: Macro Directories, Up: Invoking groff
Font Directories
================
@ -805,14 +808,47 @@ files for `grodvi' must be in `/foo/bar/devdvi'.
/usr/local/share/groff/site-font
/usr/local/share/groff/1.18/font
/usr/local/share/groff/1.18.2/font
assuming that the version of `groff' is 1.18, and the installation
prefix was `/usr/local'. It is possible to fine-tune those
directories during the installation process.
assuming that the version of `groff' is 1.18.2, and the
installation prefix was `/usr/local'. It is possible to fine-tune
those directories during the installation process.

File: groff, Node: Invocation Examples, Prev: Font Directories, Up: Invoking groff
File: groff, Node: Paper Size, Next: Invocation Examples, Prev: Font Directories, Up: Invoking groff
Paper Size
==========
In groff, the page size for `gtroff' and for output devices are
handled separately. *Note Page Layout::, for vertical manipulation of
the page size. *Note Line Layout::, for horizontal changes.
A default paper size can be set in the device's `DESC' file. Most
output devices also have a command line option `-p' to override the
default paper size and option `-l' to use landscape orientation. *Note
DESC File Format::, for a description of the `papersize' keyword which
takes the same argument as `-p'.
A convenient shorthand to set a particular paper size for `gtroff'
is command line option `-dpaper=SIZE'. This defines string `paper'
which is processed in file `papersize.tmac' (loaded in the start-up
file `troffrc' by default). Possible values for SIZE are the same as
the predefined values for the `papersize' keyword (but only in
lowercase) except `a7'-`d7'. An appended `l' (ell) character denotes
landscape orientation.
For example, use the following for PS output on A4 paper in landscape
orientation:
groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps
Note that it is up to the particular macro package to respect default
page dimensions set in this way (most do).

File: groff, Node: Invocation Examples, Prev: Paper Size, Up: Invoking groff
Invocation Examples
===================
@ -946,7 +982,7 @@ spaces one line, but
spaces four lines. The number 4 is an argument to the `sp' request
which says to space four lines instead of one. Arguments are separated
from the request and from each other by spaces (_no_ tabs). More
details on this can be found in *Note Request Arguments::.
details on this can be found in *Note Request and Macro Arguments::.
The primary function of `gtroff' is to collect words from input
lines, fill output lines with those words, justify the right-hand margin
@ -1307,6 +1343,18 @@ Macro Packages
This chapter documents the main macro packages that come with
`groff'.
Different main macro packages can't be used at the same time; for
example
groff -m man foo.man -m ms bar.doc
doesn't work. Note that option arguments are processed before
non-option arguments; the above (failing) sample is thus reordered to
groff -m man -m ms foo.man bar.doc
* Menu:
* man::
@ -1333,54 +1381,5 @@ pages are based on it.
* Miscellaneous man macros::
* Predefined man strings::
* Preprocessors in man pages::

File: groff, Node: Man options, Next: Man usage, Prev: man, Up: man
Options
-------
The command line format for using the `man' macros with `groff' is:
groff -m man [ -rLL=LENGTH ] [ -rLT=LENGTH ]
[ -rcR=1 ] [ -rC1 ] [ -rD1 ] [ -rPNNN ]
[ -rSXX ] [ -rXNNN ] [ FILES... ]
It is possible to use `-man' instead of `-m man'.
`-rLL=LENGTH'
Set line length to LENGTH. If not specified, the line length
defaults to 78 en in nroff mode (this is 78 characters per line)
and 6.5 inch otherwise.
`-rLT=LENGTH'
Set title length to LENGTH. If not specified, the title length
defaults to 78 en in nroff mode (this is 78 characters per line)
and 6.5 inch otherwise.
`-rcR=1'
This option (the default if a TTY output device is used) creates a
single, very long page instead of multiple pages. Use `-rcR=0' to
disable it.
`-rC1'
If more than one manual page is given on the command line, number
the pages continuously, rather than starting each at 1.
`-rD1'
Double-sided printing. Footers for even and odd pages are
formatted differently.
`-rPNNN'
Page numbering starts with NNN rather than with 1.
`-rSXX'
Use XX (which can be 10, 11, or 12pt) as the base document font
size instead of the default value of 10pt.
`-rXNNN'
After page NNN, number pages as NNNa, NNNb, NNNc, etc. For
example, the option `-rX2' produces the following page numbers: 1,
2, 2a, 2b, 2c, etc.
* Optional man extensions::

View File

@ -1,8 +1,9 @@
This is groff, produced by makeinfo version 4.2 from ./groff.texinfo.
This is groff, produced by makeinfo version 4.3d from ./groff.texinfo.
This manual documents GNU `troff' version 1.18.
This manual documents GNU `troff' version 1.19.
Copyright (C) 1994-2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1994-2000, 2001, 2002, 2003 Free Software Foundation,
Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@ -16,11 +17,274 @@ This manual documents GNU `troff' version 1.18.
modify this GNU Manual, like GNU software. Copies published by
the Free Software Foundation raise funds for GNU development."
INFO-DIR-SECTION Miscellaneous
INFO-DIR-SECTION Typesetting
START-INFO-DIR-ENTRY
* Groff: (groff). The GNU troff document formatting system.
END-INFO-DIR-ENTRY

File: groff, Node: Register Index, Next: Macro Index, Prev: Operator Index, Up: Top
Register Index
**************
The macro package or program a specific register belongs to is
appended in brackets.
A register name `x' consisting of exactly one character can be
accessed as `\nx'. A register name `xx' consisting of exactly two
characters can be accessed as `\n(xx'. Register names `xxx' of any
length can be accessed as `\n[xxx]'.
* Menu:
* $$: Built-in Registers.
* %: Page Layout.
* .$: Parameters.
* .a: Manipulating Spacing.
* .A: Built-in Registers.
* .b: Artificial Fonts.
* .C: Implementation Differences.
* .c: Built-in Registers.
* .cdp: Environments.
* .ce: Manipulating Filling and Adjusting.
* .cht: Environments.
* .color: Colors.
* .csk: Environments.
* .d: Diversions.
* .ev: Environments.
* .f: Font Positions.
* .F: Built-in Registers.
* .fam: Font Families.
* .fn: Font Families.
* .fp: Font Positions.
* .g: Built-in Registers.
* .h: Diversions.
* .H: Built-in Registers.
* .height: Artificial Fonts.
* .hla: Manipulating Hyphenation.
* .hlc: Manipulating Hyphenation.
* .hlm: Manipulating Hyphenation.
* .hy: Manipulating Hyphenation.
* .hym: Manipulating Hyphenation.
* .hys: Manipulating Hyphenation.
* .i: Line Layout.
* .in: Line Layout.
* .int: Line Control.
* .j: Manipulating Filling and Adjusting.
* .k: Page Motions.
* .kern: Ligatures and Kerning.
* .l: Line Layout.
* .L: Manipulating Spacing.
* .lg: Ligatures and Kerning.
* .linetabs: Tabs and Fields.
* .ll: Line Layout.
* .lt: Page Layout.
* .n: Environments.
* .ne: Page Location Traps.
* .ns: Manipulating Spacing.
* .o: Line Layout.
* .p: Page Layout.
* .P: Built-in Registers.
* .pe: Page Location Traps.
* .pn: Page Layout.
* .ps: Fractional Type Sizes.
* .psr: Fractional Type Sizes.
* .pvs: Changing Type Sizes.
* .rj: Manipulating Filling and Adjusting.
* .s: Changing Type Sizes.
* .slant: Artificial Fonts.
* .sr: Fractional Type Sizes.
* .ss: Manipulating Filling and Adjusting.
* .sss: Manipulating Filling and Adjusting.
* .t: Page Location Traps.
* .T: Built-in Registers.
* .tabs: Tabs and Fields.
* .trunc: Page Location Traps.
* .u: Manipulating Filling and Adjusting.
* .v: Changing Type Sizes.
* .V: Built-in Registers.
* .vpt: Page Location Traps.
* .w: Environments.
* .warn: Debugging.
* .x: Built-in Registers.
* .Y: Built-in Registers.
* .y: Built-in Registers.
* .z: Diversions.
* c.: Built-in Registers.
* ct: Page Motions.
* dl: Diversions.
* dn: Diversions.
* dw: Built-in Registers.
* dy: Built-in Registers.
* FF [ms]: ms Document Control Registers.
* FI [ms]: ms Document Control Registers.
* FL [ms]: ms Document Control Registers.
* FM [ms]: ms Document Control Registers.
* HM [ms]: ms Document Control Registers.
* hours: Built-in Registers.
* hp: Page Motions.
* LL [ms]: ms Document Control Registers.
* llx: Miscellaneous.
* lly: Miscellaneous.
* ln: Built-in Registers.
* LT [ms]: ms Document Control Registers.
* MINGW [ms] <1>: Additional ms Macros.
* MINGW [ms]: ms Document Control Registers.
* minutes: Built-in Registers.
* mo: Built-in Registers.
* nl: Page Control.
* opmaxx: Suppressing output.
* opmaxy: Suppressing output.
* opminx: Suppressing output.
* opminy: Suppressing output.
* PD [ms]: ms Document Control Registers.
* PI [ms]: ms Document Control Registers.
* PO [ms]: ms Document Control Registers.
* PS [ms]: ms Document Control Registers.
* ps4html [grohtml]: grohtml specific registers and strings.
* QI [ms]: ms Document Control Registers.
* rsb: Page Motions.
* rst: Page Motions.
* sb: Page Motions.
* seconds: Built-in Registers.
* skw: Page Motions.
* slimit: Debugging.
* ssc: Page Motions.
* st: Page Motions.
* systat: I/O.
* urx: Miscellaneous.
* ury: Miscellaneous.
* VS [ms]: ms Document Control Registers.
* year: Built-in Registers.
* yr: Built-in Registers.

File: groff, Node: Macro Index, Next: String Index, Prev: Register Index, Up: Top
Macro Index
***********
The macro package a specific macro belongs to is appended in
brackets. They appear without the leading control character (normally
`.').
* Menu:
* 1C [ms]: ms Multiple Columns.
* 2C [ms]: ms Multiple Columns.
* [ [ms]: ms Insertions.
* ] [ms]: ms Insertions.
* AB [ms]: ms Cover Page Macros.
* AE [ms]: ms Cover Page Macros.
* AI [ms]: ms Cover Page Macros.
* AM [ms] <1>: Additional ms Macros.
* AM [ms]: ms Strings and Special Characters.
* AT [man]: Miscellaneous man macros.
* AU [ms]: ms Cover Page Macros.
* B [man]: Man font macros.
* B [ms]: Highlighting in ms.
* B1 [ms]: ms Displays and Keeps.
* B2 [ms]: ms Displays and Keeps.
* BD [ms]: ms Displays and Keeps.
* BI [man]: Man font macros.
* BI [ms]: Highlighting in ms.
* BR [man]: Man font macros.
* BT [man]: Optional man extensions.
* BX [ms]: Highlighting in ms.
* CD [ms]: ms Displays and Keeps.
* CT [man]: Optional man extensions.
* CW [man]: Optional man extensions.
* CW [ms] <1>: Additional ms Macros.
* CW [ms]: Highlighting in ms.
* DA [ms]: ms Cover Page Macros.
* De [man]: Optional man extensions.
* DE [ms]: ms Displays and Keeps.
* Ds [man]: Optional man extensions.
* DS [ms] <1>: Additional ms Macros.
* DS [ms]: ms Displays and Keeps.
* DT [man]: Miscellaneous man macros.
* EE [man]: Optional man extensions.
* EF [ms]: ms Headers and Footers.
* EH [ms]: ms Headers and Footers.
* EN [ms]: ms Insertions.
* EQ [ms]: ms Insertions.
* EX [man]: Optional man extensions.
* FE [ms]: ms Footnotes.
* FS [ms]: ms Footnotes.
* G [man]: Optional man extensions.
* GL [man]: Optional man extensions.
* HB [man]: Optional man extensions.
* HP [man]: Man usage.
* I [man]: Man font macros.
* I [ms]: Highlighting in ms.
* IB [man]: Man font macros.
* ID [ms]: ms Displays and Keeps.
* IP [man]: Man usage.
* IP [ms]: Lists in ms.
* IR [man]: Man font macros.
* IX [ms]: Additional ms Macros.
* KE [ms]: ms Displays and Keeps.
* KF [ms]: ms Displays and Keeps.
* KS [ms]: ms Displays and Keeps.
* LD [ms]: ms Displays and Keeps.
* LG [ms]: Highlighting in ms.
* LP [man]: Man usage.
* LP [ms]: Paragraphs in ms.
* MC [ms]: ms Multiple Columns.
* MS [man]: Optional man extensions.
* ND [ms]: ms Cover Page Macros.
* NE [man]: Optional man extensions.
* NH [ms]: Headings in ms.
* NL [ms]: Highlighting in ms.
* NT [man]: Optional man extensions.
* OF [ms]: ms Headers and Footers.
* OH [ms]: ms Headers and Footers.
* P [man]: Man usage.
* PD [man]: Miscellaneous man macros.
* PE [ms]: ms Insertions.
* Pn [man]: Optional man extensions.
* PN [man]: Optional man extensions.
* PP [man]: Man usage.
* PP [ms]: Paragraphs in ms.
* PS [ms]: ms Insertions.
* PT [man]: Optional man extensions.
* PX [ms]: ms TOC.
* QP [ms]: Paragraphs in ms.
* R [man]: Optional man extensions.
* R [ms]: Highlighting in ms.
* RB [man]: Man font macros.
* RD [ms]: ms Displays and Keeps.
* RE [man]: Man usage.
* RE [ms]: Indents in ms.
* RI [man]: Man font macros.
* RN [man]: Optional man extensions.
* RP [ms]: ms Cover Page Macros.
* RS [man]: Man usage.
* RS [ms]: Indents in ms.
* SB [man]: Man font macros.
* SH [man]: Man usage.
* SH [ms]: Headings in ms.
* SM [man]: Man font macros.
* SM [ms]: Highlighting in ms.
* SS [man]: Man usage.
* TA [ms]: Tabstops in ms.
* TB [man]: Optional man extensions.
* TC [ms]: ms TOC.
* TE [ms]: ms Insertions.
* TH [man]: Man usage.
* TL [ms]: ms Cover Page Macros.
* TP [man]: Man usage.
* TS [ms]: ms Insertions.
* UC [man]: Miscellaneous man macros.
* UL [ms]: Highlighting in ms.
* VE [man]: Optional man extensions.
* VS [man]: Optional man extensions.
* XA [ms]: ms TOC.
* XE [ms]: ms TOC.
* XP [ms]: Paragraphs in ms.
* XS [ms]: ms TOC.

File: groff, Node: String Index, Next: Glyph Name Index, Prev: Macro Index, Up: Top
@ -48,8 +312,8 @@ length can be accessed as `\*[xxx]'.
* .T: Built-in Registers.
* 3 [ms]: ms Strings and Special Characters.
* 8 [ms]: ms Strings and Special Characters.
* <colon> [ms]: ms Strings and Special Characters.
* ? [ms]: ms Strings and Special Characters.
* \*[<colon>] [ms]: ms Strings and Special Characters.
* ^ [ms]: ms Strings and Special Characters.
* _ [ms]: ms Strings and Special Characters.
* ` [ms]: ms Strings and Special Characters.
@ -60,6 +324,7 @@ length can be accessed as `\*[xxx]'.
* CH [ms]: ms Headers and Footers.
* d- [ms]: ms Strings and Special Characters.
* D- [ms]: ms Strings and Special Characters.
* HF [man]: Predefined man strings.
* LF [ms]: ms Headers and Footers.
* LH [ms]: ms Headers and Footers.
* lq [man]: Predefined man strings.
@ -158,6 +423,8 @@ Program and File Index
* an.tmac: man.
* changebar: Miscellaneous.
* composite.tmac: Using Symbols.
* cp1047.tmac: Input Encodings.
* DESC <1>: Special Fonts.
* DESC <2>: Using Symbols.
* DESC <3>: Font Positions.
@ -167,7 +434,9 @@ Program and File Index
* DESC, and font mounting: Font Positions.
* DESC, and use_charnames_in_special: Postprocessor Access.
* ditroff: History.
* ec.tmac: Input Encodings.
* eqn: ms Insertions.
* freeeuro.pfa: Input Encodings.
* geqn: Groff Options.
* geqn, invocation in manual pages: Preprocessors in man pages.
* ggrn: Groff Options.
@ -183,12 +452,19 @@ Program and File Index
* gtbl, invocation in manual pages: Preprocessors in man pages.
* gtroff: Groff Options.
* hyphen.us: Manipulating Hyphenation.
* hyphenex.us: Manipulating Hyphenation.
* latin1.tmac: Input Encodings.
* latin2.tmac: Input Encodings.
* latin9.tmac: Input Encodings.
* makeindex: Indices.
* man, invocation of preprocessors: Preprocessors in man pages.
* man-old.tmac: man.
* man.local <1>: Optional man extensions.
* man.local: Man usage.
* man.tmac: man.
* man.ultrix: Optional man extensions.
* nrchbar: Miscellaneous.
* papersize.tmac: Paper Size.
* perl: I/O.
* pic: ms Insertions.
* post-grohtml: Groff Options.
@ -200,6 +476,7 @@ Program and File Index
* troffrc <1>: Line Layout.
* troffrc <2>: Troff and Nroff Mode.
* troffrc <3>: Manipulating Hyphenation.
* troffrc <4>: Paper Size.
* troffrc: Groff Options.
* troffrc-end <1>: Troff and Nroff Mode.
* troffrc-end <2>: Manipulating Hyphenation.

View File

@ -1,8 +1,9 @@
This is groff, produced by makeinfo version 4.2 from ./groff.texinfo.
This is groff, produced by makeinfo version 4.3d from ./groff.texinfo.
This manual documents GNU `troff' version 1.18.
This manual documents GNU `troff' version 1.19.
Copyright (C) 1994-2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1994-2000, 2001, 2002, 2003 Free Software Foundation,
Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@ -16,7 +17,7 @@ This manual documents GNU `troff' version 1.18.
modify this GNU Manual, like GNU software. Copies published by
the Free Software Foundation raise funds for GNU development."
INFO-DIR-SECTION Miscellaneous
INFO-DIR-SECTION Typesetting
START-INFO-DIR-ENTRY
* Groff: (groff). The GNU troff document formatting system.
END-INFO-DIR-ENTRY
@ -31,7 +32,7 @@ Concept Index
* ", at end of sentence <1>: Using Symbols.
* ", at end of sentence: Sentences.
* ", in a macro argument: Request Arguments.
* ", in a macro argument: Request and Macro Arguments.
* %, as delimiter: Escapes.
* &, as delimiter: Escapes.
* ', as a comment: Comments.
@ -105,7 +106,7 @@ Concept Index
* \<colon>, in \X: Postprocessor Access.
* \<colon>, used as delimiter: Escapes.
* \<RET>, when reading text for a macro: Copy-in Mode.
* \<SP>, difference to \~: Request Arguments.
* \<SP>, difference to \~: Request and Macro Arguments.
* \<SP>, incompatibilities with AT&T troff: Implementation Differences.
* \<SP>, used as delimiter: Escapes.
* \?, in top-level diversion: Diversions.
@ -135,6 +136,7 @@ Concept Index
* \C, and translations: Character Translations.
* \c, incompatibilities with AT&T troff: Implementation Differences.
* \c, used as delimiter: Escapes.
* \D'f ...' and horizontal resolution: Drawing Requests.
* \D, allowed delimiters: Escapes.
* \d, used as delimiter: Escapes.
* \e, and glyph definitions: Using Symbols.
@ -196,7 +198,7 @@ Concept Index
* \}, incompatibilities with AT&T troff: Implementation Differences.
* \}, used as delimiter: Escapes.
* \~, and translations: Character Translations.
* \~, difference to \<SP>: Request Arguments.
* \~, difference to \<SP>: Request and Macro Arguments.
* \~, used as delimiter: Escapes.
* ], as part of an identifier: Identifiers.
* ], at end of sentence <1>: Using Symbols.
@ -217,6 +219,8 @@ Concept Index
* adjusting: Filling and Adjusting.
* adjusting and filling, manipulating: Manipulating Filling and Adjusting.
* adjustment mode register (.j): Manipulating Filling and Adjusting.
* adobe glyph list (AGL): Using Symbols.
* AGL (adobe glyph list): Using Symbols.
* alias, diversion, creating (als): Strings.
* alias, macro, creating (als): Strings.
* alias, number register, creating (aln): Setting Registers.
@ -230,7 +234,7 @@ Concept Index
* appending to a string (as): Strings.
* arc, drawing (\D'a ...'): Drawing Requests.
* argument delimiting characters: Escapes.
* arguments to requests: Request Arguments.
* arguments to requests and macros: Request and Macro Arguments.
* arguments, macro (\$): Parameters.
* arguments, of strings: Strings.
* arithmetic operators: Expressions.
@ -239,7 +243,7 @@ Concept Index
* as, as1 requests, and warnings: Warnings.
* ASCII approximation output register (.A) <1>: Built-in Registers.
* ASCII approximation output register (.A): Groff Options.
* ASCII, encoding: Groff Options.
* ASCII, output encoding: Groff Options.
* asciify request, and writem: I/O.
* assigning formats (af): Assigning Formats.
* assignments, indirect: Interpolating Registers.
@ -276,7 +280,9 @@ Concept Index
* bounding box: Miscellaneous.
* box rule glyph (\[br]): Drawing Requests.
* box, boxa requests, and warnings: Warnings.
* boxa request, and dn (dl): Diversions.
* bp request, and top-level diversion: Page Control.
* bp request, and traps (.pe): Page Location Traps.
* bp request, causing implicit linebreak: Manipulating Filling and Adjusting.
* bp request, using + and -: Expressions.
* br glyph, and cflags: Using Symbols.
@ -319,6 +325,7 @@ Concept Index
* character, control (.): Requests.
* character, control, changing (cc): Character Translations.
* character, defining (char): Using Symbols.
* character, defining fallback (fchar, fschar, schar): Using Symbols.
* character, escape, changing (ec): Character Translations.
* character, escape, while defining glyph: Using Symbols.
* character, field delimiting (fc): Fields.
@ -361,6 +368,7 @@ Concept Index
* code, hyphenation (hcode): Manipulating Hyphenation.
* color, default: Colors.
* colors: Colors.
* colors, fill, unnamed (\D'F...'): Drawing Requests.
* command prefix: Environment.
* command-line options: Groff Options.
* commands, embedded: Embedded Commands.
@ -373,6 +381,7 @@ Concept Index
* comparison operators: Expressions.
* compatibility mode <1>: Implementation Differences.
* compatibility mode: Warnings.
* composite glyph names: Using Symbols.
* conditional block, begin (\{): if-else.
* conditional block, end (\}): if-else.
* conditional page break (ne): Page Control.
@ -401,7 +410,8 @@ Concept Index
* correction, left italic (\,): Ligatures and Kerning.
* cover page macros, [ms]: ms Cover Page Macros.
* cp request, and glyph definitions: Using Symbols.
* cp1047: Groff Options.
* cp1047, input encoding: Input Encodings.
* cp1047, output encoding: Groff Options.
* creating alias, for diversion (als): Strings.
* creating alias, for macro (als): Strings.
* creating alias, for number register (aln): Setting Registers.
@ -418,6 +428,7 @@ Concept Index
* current time, hours (hours): Built-in Registers.
* current time, minutes (minutes): Built-in Registers.
* current time, seconds (seconds): Built-in Registers.
* da request, and dn (dl): Diversions.
* da request, and warnings: Warnings.
* date, day of the month register (dy): Built-in Registers.
* date, day of the week register (dw): Built-in Registers.
@ -433,13 +444,16 @@ Concept Index
* default indentation, resetting [man]: Man usage.
* default units: Default Units.
* defining character (char): Using Symbols.
* defining fallback character (fchar, fschar, schar): Using Symbols.
* defining glyph (char): Using Symbols.
* defining symbol (char): Using Symbols.
* delayed text: Footnotes and Annotations.
* delimited arguments, incompatibilities with AT&T troff: Implementation Differences.
* delimiting character, for fields (fc): Fields.
* delimiting characters for arguments: Escapes.
* depth, of last glyph (.cdp): Environments.
* DESC file, format: DESC File Format.
* device resolution: DESC File Format.
* devices for output <1>: Output Devices.
* devices for output: Output device intro.
* dg glyph, at end of sentence <1>: Using Symbols.
@ -459,6 +473,8 @@ Concept Index
* directory, site-specific: Macro Directories.
* disabling \ (eo): Character Translations.
* disabling hyphenation (\%): Manipulating Hyphenation.
* discardable horizontal space: Manipulating Filling and Adjusting.
* discarded space in traps: Manipulating Spacing.
* displays: Displays.
* displays [ms]: ms Displays and Keeps.
* distance to next trap register (.t): Page Location Traps.
@ -481,10 +497,13 @@ Concept Index
* diversion, unformatting (asciify): Diversions.
* diversion, vertical position in, register (.d): Diversions.
* diversions: Diversions.
* diversions, and traps: Page Location Traps.
* diversions, shared name space with macros and strings: Strings.
* dl register, and da (boxa): Diversions.
* dn register, and da (boxa): Diversions.
* documents, multi-file: Debugging.
* documents, structuring the source code: Requests.
* double quote, in a macro argument: Request Arguments.
* double quote, in a macro argument: Request and Macro Arguments.
* double-spacing (ls) <1>: Manipulating Spacing.
* double-spacing (ls): Basics.
* double-spacing (vs, pvs): Changing Type Sizes.
@ -501,17 +520,18 @@ Concept Index
* drawing requests: Drawing Requests.
* drawing vertical lines (\L): Drawing Requests.
* ds request, and comments: Strings.
* ds request, and double quotes: Request Arguments.
* ds request, and double quotes: Request and Macro Arguments.
* ds request, and leading spaces: Strings.
* ds, ds1 requests, and comments: Comments.
* ds, ds1 requests, and warnings: Warnings.
* dumping number registers (pnr): Debugging.
* dumping symbol table (pm): Debugging.
* dumping traps (ptr): Debugging.
* EBCDIC encoding <1>: Tab Stops.
* EBCDIC encoding: Groff Options.
* EBCDIC encoding: Tab Stops.
* EBCDIC encoding of a tab: Tabs and Fields.
* EBCDIC encoding of backspace: Identifiers.
* EBCDIC, input encoding: Input Encodings.
* EBCDIC, output encoding: Groff Options.
* el request, and warnings: Warnings.
* ellipse, drawing (\D'e ...'): Drawing Requests.
* ellipse, solid, drawing (\D'E ...'): Drawing Requests.
@ -525,12 +545,17 @@ Concept Index
* empty space before a paragraph [man]: Miscellaneous man macros.
* en unit (n): Measurements.
* enabling vertical position traps (vpt): Page Location Traps.
* encoding, ASCII: Groff Options.
* encoding, cp1047: Groff Options.
* encoding, EBCDIC <1>: Tab Stops.
* encoding, EBCDIC: Groff Options.
* encoding, latin-1: Groff Options.
* encoding, utf-8: Groff Options.
* encoding, EBCDIC: Tab Stops.
* encoding, input, cp1047: Input Encodings.
* encoding, input, EBCDIC: Input Encodings.
* encoding, input, latin-1 (ISO 8859-1): Input Encodings.
* encoding, input, latin-2 (ISO 8859-2): Input Encodings.
* encoding, input, latin-9 (latin-0, ISO 8859-15): Input Encodings.
* encoding, output, ASCII: Groff Options.
* encoding, output, cp1047: Groff Options.
* encoding, output, EBCDIC: Groff Options.
* encoding, output, latin-1 (ISO 8859-1): Groff Options.
* encoding, output, utf-8: Groff Options.
* end of conditional block (\}): if-else.
* end-of-input macro (em): End-of-input Traps.
* end-of-input trap, setting (em): End-of-input Traps.
@ -540,7 +565,8 @@ Concept Index
* environment number/name register (.ev): Environments.
* environment variables: Environment.
* environment, copying (evc): Environments.
* environment, last glyph: Environments.
* environment, dimensions of last glyph (.w, .cht, .cdp, .csk): Environments.
* environment, previous line length (.n): Environments.
* environment, switching (ev): Environments.
* environments: Environments.
* eqn, the program: geqn.
@ -570,6 +596,8 @@ Concept Index
* extremum operators (>?, <?): Expressions.
* f unit: Measurements.
* f unit, and colors: Colors.
* fallback character, defining (fchar, fschar, schar): Using Symbols.
* fallback glyph, removing definition (rchar, rfschar): Using Symbols.
* fam request, and changing fonts: Changing Fonts.
* fam request, and font positions: Font Positions.
* families, font: Font Families.
@ -590,6 +618,7 @@ Concept Index
* file, writing to (write): I/O.
* files, font: Font Files.
* files, macro, searching: Macro Directories.
* fill colors, unnamed (\D'F...'): Drawing Requests.
* fill mode <1>: Warnings.
* fill mode <2>: Manipulating Filling and Adjusting.
* fill mode: Implicit Line Breaks.
@ -622,7 +651,7 @@ Concept Index
* font, mounting (fp): Font Positions.
* font, previous (ft, \f[], \fP): Changing Fonts.
* fonts <1>: Changing Fonts.
* fonts: Fonts.
* fonts: Fonts and Symbols.
* fonts, artificial: Artificial Fonts.
* fonts, changing (ft, \f): Changing Fonts.
* fonts, PostScript: Font Families.
@ -649,15 +678,18 @@ Concept Index
* french-spacing: Sentences.
* fspecial request, and font styles: Font Families.
* fspecial request, and font translations: Changing Fonts.
* fspecial request, and glyph search order: Using Symbols.
* fspecial request, and imitating bold: Artificial Fonts.
* ft request, and font translations: Changing Fonts.
* geqn, invoking: Invoking geqn.
* geqn, the program: geqn.
* GGL (groff glyph list): Using Symbols.
* ggrn, invoking: Invoking ggrn.
* ggrn, the program: ggrn.
* glossary-style list, example markup [ms]: Lists in ms.
* glyph: Using Symbols.
* glyph for line drawing: Drawing Requests.
* glyph names, composite: Using Symbols.
* glyph pile (\b): Drawing Requests.
* glyph properties (cflags): Using Symbols.
* glyph, box rule (\[br]): Drawing Requests.
@ -666,11 +698,12 @@ Concept Index
* glyph, for line drawing: Drawing Requests.
* glyph, for margins (mc): Miscellaneous.
* glyph, italic correction (\/): Ligatures and Kerning.
* glyph, last, dimensions (.w, .cht, .cdp, .csk): Environments.
* glyph, leader repetition (lc): Leaders.
* glyph, left italic correction (\,): Ligatures and Kerning.
* glyph, numbered (\N) <1>: Using Symbols.
* glyph, numbered (\N): Character Translations.
* glyph, removing definition (rchar): Using Symbols.
* glyph, removing definition (rchar, rfschar): Using Symbols.
* glyph, soft hyphen (hy): Manipulating Hyphenation.
* glyph, tab repetition (tc): Tabs and Fields.
* glyph, underscore (\[ru]): Drawing Requests.
@ -691,6 +724,7 @@ Concept Index
* grodvi, the program: grodvi.
* groff - what is it?: What Is groff?.
* groff capabilities: groff Capabilities.
* groff glyph list (GGL): Using Symbols.
* groff invocation: Invoking groff.
* groff, and pi request: I/O.
* GROFF_BIN_PATH, environment variable: Environment.
@ -730,14 +764,17 @@ Concept Index
* headers: Page Layout.
* headers [ms]: ms Headers and Footers.
* height, font, changing (\H): Artificial Fonts.
* height, of last glyph (.cht): Environments.
* high-water mark register (.h): Diversions.
* history: History.
* home directory: Macro Directories.
* horizontal discardable space: Manipulating Filling and Adjusting.
* horizontal input line position register (hp): Page Motions.
* horizontal input line position, saving (\k): Page Motions.
* horizontal line, drawing (\l): Drawing Requests.
* horizontal motion (\h): Page Motions.
* horizontal output line position register (.k): Page Motions.
* horizontal resolution: DESC File Format.
* horizontal resolution register (.H): Built-in Registers.
* horizontal space (\h): Page Motions.
* horizontal space, unformatting: Strings.
@ -762,7 +799,8 @@ Concept Index
* hyphenation, manipulating: Manipulating Hyphenation.
* i unit: Measurements.
* i/o: I/O.
* IBM cp1047: Groff Options.
* IBM cp1047 input encoding: Input Encodings.
* IBM cp1047 output encoding: Groff Options.
* identifiers: Identifiers.
* identifiers, undefined: Identifiers.
* ie request, and warnings: Warnings.
@ -788,6 +826,11 @@ Concept Index
* input characters and output glyphs, compatibility with AT&T troff: Implementation Differences.
* input characters, invalid: Identifiers.
* input conventions: Input Conventions.
* input encoding, cp1047: Input Encodings.
* input encoding, EBCDIC: Input Encodings.
* input encoding, latin-1 (ISO 8859-1): Input Encodings.
* input encoding, latin-2 (ISO 8859-2): Input Encodings.
* input encoding, latin-9 (latin-9, ISO 8859-15): Input Encodings.
* input file name, current, register (.F): Built-in Registers.
* input level in delimited arguments: Implementation Differences.
* input line continuation (\): Line Control.
@ -830,6 +873,10 @@ Concept Index
* invoking gsoelim: Invoking gsoelim.
* invoking gtbl: Invoking gtbl.
* invoking gxditview: Invoking gxditview.
* ISO 8859-1 (latin-1), input encoding: Input Encodings.
* ISO 8859-1 (latin-1), output encoding: Groff Options.
* ISO 8859-15 (latin-9, latin-0), input encoding: Input Encodings.
* ISO 8859-2 (latin-2), input encoding: Input Encodings.
* italic correction (\/): Ligatures and Kerning.
* italic fonts [man]: Man font macros.
* italic glyph, correction after roman glyph (\,): Ligatures and Kerning.
@ -843,8 +890,13 @@ Concept Index
* kerning enabled register (.kern): Ligatures and Kerning.
* kerning, activating (kern): Ligatures and Kerning.
* kerning, track: Ligatures and Kerning.
* landscape page orientation: Paper Size.
* last glyph, dimensions (.w, .cht, .cdp, .csk): Environments.
* last-requested point size registers (.psr, .sr): Fractional Type Sizes.
* latin-1, encoding: Groff Options.
* latin-1 (ISO 8859-1), input encoding: Input Encodings.
* latin-1 (ISO 8859-1), output encoding: Groff Options.
* latin-2 (ISO 8859-2), input encoding: Input Encodings.
* latin-9 (latin-0, ISO 8859-15), input encoding: Input Encodings.
* layout, line: Line Layout.
* layout, page: Page Layout.
* lc request, and glyph definitions: Using Symbols.
@ -862,6 +914,7 @@ Concept Index
* length of a string (length): Strings.
* length of line (ll): Line Layout.
* length of page (pl): Page Layout.
* length of previous line (.n): Environments.
* length of title line (lt): Page Layout.
* letters, form: I/O.
* level of warnings (warn): Debugging.
@ -883,6 +936,7 @@ Concept Index
* line layout: Line Layout.
* line length (ll): Line Layout.
* line length register (.l): Line Layout.
* line length, previous (.n): Environments.
* line number, input, register (.c, c.): Built-in Registers.
* line number, output, register (ln): Built-in Registers.
* line numbers, printing (nm): Miscellaneous.
@ -923,6 +977,7 @@ Concept Index
* M unit: Measurements.
* m unit: Measurements.
* machine unit (u): Measurements.
* macro arguments: Request and Macro Arguments.
* macro basics: Basics.
* macro directories: Macro Directories.
* macro files, searching: Macro Directories.
@ -948,6 +1003,7 @@ Concept Index
* major version number register (.x): Built-in Registers.
* man macros: Man usage.
* man macros, bold face: Man font macros.
* man macros, custom headers and footers: Optional man extensions.
* man macros, default indentation: Miscellaneous man macros.
* man macros, empty space before a paragraph: Miscellaneous man macros.
* man macros, hanging indentation: Man usage.
@ -958,10 +1014,12 @@ Concept Index
* man macros, moving left margin: Man usage.
* man macros, resetting default indentation: Man usage.
* man macros, tab stops: Miscellaneous man macros.
* man macros, Ultrix-specific: Optional man extensions.
* man pages: man.
* manipulating filling and adjusting: Manipulating Filling and Adjusting.
* manipulating hyphenation: Manipulating Hyphenation.
* manipulating spacing: Manipulating Spacing.
* manmacros, BSD compatibility: Miscellaneous man macros.
* manual pages: man.
* margin for hyphenation (hym): Manipulating Hyphenation.
* margin glyph (mc): Miscellaneous.
@ -1099,6 +1157,7 @@ Concept Index
* operators, unary: Expressions.
* options: Groff Options.
* order of evaluation in expressions: Expressions.
* orientation, landscape: Paper Size.
* orphan lines, preventing with ne: Page Control.
* os request, and no-space mode: Page Control.
* output and input requests: I/O.
@ -1107,6 +1166,11 @@ Concept Index
* output device usage number register (.T): Groff Options.
* output devices <1>: Output Devices.
* output devices: Output device intro.
* output encoding, ASCII: Groff Options.
* output encoding, cp1047: Groff Options.
* output encoding, EBCDIC: Groff Options.
* output encoding, latin-1 (ISO 8859-1): Groff Options.
* output encoding, utf-8: Groff Options.
* output glyphs, and input characters,compatibility with AT&T troff: Implementation Differences.
* output line number register (ln): Built-in Registers.
* output line, continuation (\c): Line Control.
@ -1129,6 +1193,7 @@ Concept Index
* padding character, for fields (fc): Fields.
* page break, conditional (ne): Page Control.
* page control: Page Control.
* page ejecting register (.pe): Page Location Traps.
* page footers: Page Location Traps.
* page headers: Page Location Traps.
* page layout: Page Layout.
@ -1144,8 +1209,10 @@ Concept Index
* page number character, changing (pc): Page Layout.
* page number register (%): Page Layout.
* page offset (po): Line Layout.
* page orientation, landscape: Paper Size.
* page, new (bp): Page Control.
* paper formats: Paper Formats.
* paper size: Paper Size.
* paragraphs: Paragraphs.
* parameters: Parameters.
* parentheses: Expressions.
@ -1190,6 +1257,7 @@ Concept Index
* preprocessors <1>: Preprocessors.
* preprocessors: Preprocessor Intro.
* previous font (ft, \f[], \fP): Changing Fonts.
* previous line length (.n): Environments.
* print current page register (.P): Groff Options.
* printing backslash (\\, \e, \E, \[rs]) <1>: Implementation Differences.
* printing backslash (\\, \e, \E, \[rs]): Escapes.
@ -1208,6 +1276,7 @@ Concept Index
* pvs request, using + and -: Expressions.
* quotes, major: Displays.
* quotes, trailing: Strings.
* radicalex glyph, and cflags: Using Symbols.
* ragged-left: Manipulating Filling and Adjusting.
* ragged-right: Manipulating Filling and Adjusting.
* rc request, and glyph definitions: Using Symbols.
@ -1228,7 +1297,7 @@ Concept Index
* registers, interpolating (\n): Interpolating Registers.
* registers, setting (nr, \R): Setting Registers.
* removing diversion (rm): Strings.
* removing glyph definition (rchar): Using Symbols.
* removing glyph definition (rchar, rfschar): Using Symbols.
* removing macro (rm): Strings.
* removing number register (rr): Setting Registers.
* removing request (rm): Strings.
@ -1238,14 +1307,17 @@ Concept Index
* renaming number register (rnn): Setting Registers.
* renaming request (rn): Strings.
* renaming string (rn): Strings.
* request arguments: Request Arguments.
* request arguments: Request and Macro Arguments.
* request, removing (rm): Strings.
* request, renaming (rn): Strings.
* request, undefined: Comments.
* requests: Requests.
* requests for drawing: Drawing Requests.
* requests for input and output: I/O.
* resolution, device: DESC File Format.
* resolution, horizontal: DESC File Format.
* resolution, horizontal, register (.H): Built-in Registers.
* resolution, vertical: DESC File Format.
* resolution, vertical, register (.V): Built-in Registers.
* returning to marked vertical page location (rt): Page Motions.
* revision number register (.Y): Built-in Registers.
@ -1290,9 +1362,11 @@ Concept Index
* size of sentence space register (.sss): Manipulating Filling and Adjusting.
* size of type: Sizes.
* size of word space register (.ss): Manipulating Filling and Adjusting.
* size, paper: Paper Size.
* sizes: Sizes.
* sizes, fractional <1>: Implementation Differences.
* sizes, fractional: Fractional Type Sizes.
* skew, of last glyph (.csk): Environments.
* slant, font, changing (\S): Artificial Fonts.
* soelim, the program: gsoelim.
* soft hyphen character, setting (shc): Manipulating Hyphenation.
@ -1301,6 +1375,7 @@ Concept Index
* solid ellipse, drawing (\D'E ...'): Drawing Requests.
* solid polygon, drawing (\D'P ...'): Drawing Requests.
* sp request, and no-space mode: Manipulating Spacing.
* sp request, and traps: Manipulating Spacing.
* sp request, causing implicit linebreak: Manipulating Filling and Adjusting.
* space between sentences: Sentences.
* space between sentences register (.sss): Manipulating Filling and Adjusting.
@ -1310,12 +1385,15 @@ Concept Index
* space character, zero width (\&) <2>: Ligatures and Kerning.
* space character, zero width (\&): Requests.
* space characters, in expressions: Expressions.
* space, discardable, horizontal: Manipulating Filling and Adjusting.
* space, discarded, in traps: Manipulating Spacing.
* space, horizontal (\h): Page Motions.
* space, horizontal, unformatting: Strings.
* space, unbreakable: Page Motions.
* space, vertical, unit (v): Measurements.
* space, width of a digit (\0): Page Motions.
* spaces with ds: Strings.
* spaces, in a macro argument: Request and Macro Arguments.
* spaces, leading and trailing: Filling and Adjusting.
* spacing: Basics.
* spacing, manipulating: Manipulating Spacing.
@ -1328,8 +1406,10 @@ Concept Index
* special fonts: Using Symbols.
* special fonts, emboldening: Artificial Fonts.
* special request, and font translations: Changing Fonts.
* special request, and glyph search order: Using Symbols.
* spline, drawing (\D'~ ...'): Drawing Requests.
* springing a trap: Traps.
* sqrtex glyph, and cflags: Using Symbols.
* stacking glyphs (\b): Drawing Requests.
* standard input, reading from (rd): I/O.
* stderr, printing to (tm, tm1, tmc): Debugging.
@ -1431,6 +1511,8 @@ Concept Index
* trap, planting: Traps.
* trap, springing: Traps.
* traps: Traps.
* traps, and discarded space: Manipulating Spacing.
* traps, and diversions: Page Location Traps.
* traps, blank line: Blank Line Traps.
* traps, diversion: Diversion Traps.
* traps, dumping (ptr): Debugging.
@ -1438,6 +1520,7 @@ Concept Index
* traps, input line: Input Line Traps.
* traps, input line, and interrupted lines (itc): Input Line Traps.
* traps, page location: Page Location Traps.
* traps, sprung by bp request (.pe): Page Location Traps.
* trf request, and invalid characters: I/O.
* trf request, causing implicit linebreak: Manipulating Filling and Adjusting.
* trin request, and asciify: Diversions.
@ -1454,6 +1537,7 @@ Concept Index
* uf request, and font styles: Font Families.
* ul glyph, and cflags: Using Symbols.
* ul request, and font translations: Changing Fonts.
* Ultrix-specific man macros: Optional man extensions.
* unary operators: Expressions.
* unbreakable space: Page Motions.
* undefined identifiers: Identifiers.
@ -1483,6 +1567,7 @@ Concept Index
* unit, z: Measurements.
* units of measurement: Measurements.
* units, default: Default Units.
* unnamed fill colors (\D'F...'): Drawing Requests.
* unnamed glyphs: Using Symbols.
* unnamed glyphs, accessing with \N: Font File Format.
* unsafe mode <1>: I/O.
@ -1491,7 +1576,7 @@ Concept Index
* user's macro tutorial: Tutorial for Macro Users.
* user's tutorial for macros: Tutorial for Macro Users.
* using symbols: Using Symbols.
* utf-8, encoding: Groff Options.
* utf-8, output encoding: Groff Options.
* v unit: Measurements.
* valid numeric expression: Expressions.
* value, incrementing without changing the register: Auto-increment.
@ -1508,6 +1593,7 @@ Concept Index
* vertical position in diversion register (.d): Diversions.
* vertical position trap enable register (.vpt): Page Location Traps.
* vertical position traps, enabling (vpt): Page Location Traps.
* vertical resolution: DESC File Format.
* vertical resolution register (.V): Built-in Registers.
* vertical space unit (v): Measurements.
* vertical spacing: Sizes.
@ -1521,6 +1607,7 @@ Concept Index
* while request, operators to use with: Operators in Conditionals.
* whitespace characters: Identifiers.
* width escape (\w): Page Motions.
* width, of last glyph (.w): Environments.
* word space size register (.ss): Manipulating Filling and Adjusting.
* writing macros: Writing Macros.
* writing to file (write): I/O.

View File

@ -1,8 +1,9 @@
This is groff, produced by makeinfo version 4.2 from ./groff.texinfo.
This is groff, produced by makeinfo version 4.3d from ./groff.texinfo.
This manual documents GNU `troff' version 1.18.
This manual documents GNU `troff' version 1.19.
Copyright (C) 1994-2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1994-2000, 2001, 2002, 2003 Free Software Foundation,
Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@ -16,11 +17,83 @@ This manual documents GNU `troff' version 1.18.
modify this GNU Manual, like GNU software. Copies published by
the Free Software Foundation raise funds for GNU development."
INFO-DIR-SECTION Miscellaneous
INFO-DIR-SECTION Typesetting
START-INFO-DIR-ENTRY
* Groff: (groff). The GNU troff document formatting system.
END-INFO-DIR-ENTRY

File: groff, Node: Man options, Next: Man usage, Prev: man, Up: man
Options
-------
The command line format for using the `man' macros with `groff' is:
groff -m man [ -rLL=LENGTH ] [ -rLT=LENGTH ] [ -rFT=DIST ]
[ -rcR=1 ] [ -rC1 ] [ -rD1 ] [-rHY=FLAGS ]
[ -rPNNN ] [ -rSXX ] [ -rXNNN ]
[ -rIN=LENGTH ] [ -rSN=LENGTH ] [ FILES... ]
It is possible to use `-man' instead of `-m man'.
`-rcR=1'
This option (the default if a TTY output device is used) creates a
single, very long page instead of multiple pages. Use `-rcR=0' to
disable it.
`-rC1'
If more than one manual page is given on the command line, number
the pages continuously, rather than starting each at 1.
`-rD1'
Double-sided printing. Footers for even and odd pages are
formatted differently.
`-rFT=DIST'
Set the position of the footer text to DIST. If positive, the
distance is measured relative to the top of the page, otherwise it
is relative to the bottom. The default is -0.5i.
`-rHY=FLAGS'
Set hyphenation flags. Possible values are 1 to hyphenate without
restrictions, 2 to not hyphenate the last word on a page, 4 to
not hyphenate the last two characters of a word, and 8 to not
hyphenate the first two characters of a word. These values are
additive; the default is 14.
`-rIN=LENGTH'
Set the body text indent to LENGTH. If not specified, the indent
defaults to 7n (7 characters) in nroff mode and 7.2n otherwise.
For nroff, this value should always be an integer multiple of unit
`n' to get consistent indentation.
`-rLL=LENGTH'
Set line length to LENGTH. If not specified, the line length
defaults to 78 en in nroff mode (this is 78 characters per line)
and 6.5 inch otherwise.
`-rLT=LENGTH'
Set title length to LENGTH. If not specified, the title length
defaults to the line length.
`-rPNNN'
Page numbering starts with NNN rather than with 1.
`-rSXX'
Use XX (which can be 10, 11, or 12pt) as the base document font
size instead of the default value of 10pt.
`-rSN=LENGTH'
Set the indent for sub-subheadings to LENGTH. If not specified,
the indent defaults to 3n.
`-rXNNN'
After page NNN, number pages as NNNa, NNNb, NNNc, etc. For
example, the option `-rX2' produces the following page numbers: 1,
2, 2a, 2b, 2c, etc.

File: groff, Node: Man usage, Next: Man font macros, Prev: Man options, Up: man
@ -56,34 +129,37 @@ further customization, put additional macros and requests into the file
Set up an unnumbered section heading sticking out to the left.
Prints out all the text following `SH' up to the end of the line
(or the text in the next line if there is no argument to `SH') in
bold face, one size larger than the base document size.
Additionally, the left margin for the following text is reset to
its default value.
bold face (or the font specified by the string `HF'), one size
larger than the base document size. Additionally, the left margin
and the indentation for the following text is reset to its default
value.
- Macro: .SS [heading]
Set up an unnumbered (sub)section heading. Prints out all the text
following `SS' up to the end of the line (or the text in the next
line if there is no argument to `SS') in bold face, at the same
size as the base document size. Additionally, the left margin for
the following text is reset to its default value.
line if there is no argument to `SS') in bold face (or the font
specified by the string `HF'), at the same size as the base
document size. Additionally, the left margin and the indentation
for the following text is reset to its default value.
- Macro: .TP [nnn]
Set up an indented paragraph with label. The indentation is set to
NNN if that argument is supplied (the default unit is `n' if
omitted), otherwise it is set to the default indentation value.
omitted), otherwise it is set to the previous indentation value
specified with `TP', `IP', or `HP' (or to the default value if
none of them have been used yet).
The first line of text following this macro is interpreted as a
string to be printed flush-left, as it is appropriate for a label.
It is not interpreted as part of a paragraph, so there is no
attempt to fill the first line with text from the following input
lines. Nevertheless, if the label is not as wide as the
indentation, then the paragraph starts at the same line (but
indented), continuing on the following lines. If the label is
wider than the indentation, then the descriptive part of the
paragraph begins on the line following the label, entirely
indented. Note that neither font shape nor font size of the label
is set to a default value; on the other hand, the rest of the text
has default font settings.
indentation the paragraph starts at the same line (but indented),
continuing on the following lines. If the label is wider than the
indentation the descriptive part of the paragraph begins on the
line following the label, entirely indented. Note that neither
font shape nor font size of the label is set to a default value;
on the other hand, the rest of the text has default font settings.
- Macro: .LP
- Macro: .PP
@ -92,18 +168,21 @@ further customization, put additional macros and requests into the file
at the current position, followed by a vertical space downwards by
the amount specified by the `PD' macro. The font size and shape
are reset to the default value (10pt roman if no `-rS' option is
given on the command line). Finally, the current left margin is
restored.
given on the command line). Finally, the current left margin and
the indentation is restored.
- Macro: .IP [designator [nnn]]
Set up an indented paragraph, using DESIGNATOR as a tag to mark
its beginning. The indentation is set to NNN if that argument is
supplied (default unit is `n'), otherwise the default indentation
value is used. Font size and face of the paragraph (but not the
designator) are reset to their default values. To start an
indented paragraph with a particular indentation but without a
designator, use `""' (two double quotes) as the first argument of
`IP'.
supplied (default unit is `n'), otherwise it is set to the
previous indentation value specified with `TP', `IP', or `HP' (or
the default value if none of them have been used yet). Font size
and face of the paragraph (but not the designator) are reset to
their default values.
To start an indented paragraph with a particular indentation but
without a designator, use `""' (two double quotes) as the first
argument of `IP'.
For example, to start a paragraph with bullets as the designator
and 4 en indentation, write
@ -115,18 +194,25 @@ further customization, put additional macros and requests into the file
- Macro: .HP [nnn]
Set up a paragraph with hanging left indentation. The indentation
is set to NNN if that argument is supplied (default unit is `n'),
otherwise the default indentation value is used. Font size and
face are reset to their default values.
otherwise it is set to the previous indentation value specified
with `TP', `IP', or `HP' (or the default value if non of them have
been used yet). Font size and face are reset to their default
values.
- Macro: .RS [nnn]
Move the left margin to the right by the value NNN if specified
(default unit is `n'); otherwise the default indentation value is
used. Calls to the `RS' macro can be nested.
(default unit is `n'); otherwise it is set to the previous
indentation value specified with `TP', `IP', or `HP' (or to the
default value if none of them have been used yet). The
indentation value is then set to the default.
Calls to the `RS' macro can be nested.
- Macro: .RE [nnn]
Move the left margin back to level NNN; if no argument is given,
it moves one level back. The first level (i.e., no call to `RS'
yet) has number 1, and each call to `RS' increases the level by 1.
Move the left margin back to level NNN, restoring the previous left
margin. If no argument is given, it moves one level back. The
first level (i.e., no call to `RS' yet) has number 1, and each call
to `RS' increases the level by 1.
To summarize, the following macros cause a line break with the
insertion of vertical space (which amount can be changed with the `PD'
@ -156,28 +242,34 @@ command line option `-rS=N' is given, use Npt as the default text size.
face font, one point size smaller than the default font.
- Macro: .BI text
Set its arguments alternately in bold face and italic. Thus,
Set its arguments alternately in bold face and italic, without a
space between the arguments. Thus,
.BI this "word and" that
would set "this" and "that" in bold face, and "word and" in
italics.
produces "thisword andthat" with "this" and "that" in bold face,
and "word and" in italics.
- Macro: .IB text
Set its arguments alternately in italic and bold face.
Set its arguments alternately in italic and bold face, without a
space between the arguments.
- Macro: .RI text
Set its arguments alternately in roman and italic.
Set its arguments alternately in roman and italic, without a space
between the arguments.
- Macro: .IR text
Set its arguments alternately in italic and roman.
Set its arguments alternately in italic and roman, without a space
between the arguments.
- Macro: .BR text
Set its arguments alternately in bold face and roman.
Set its arguments alternately in bold face and roman, without a
space between the arguments.
- Macro: .RB text
Set its arguments alternately in roman and bold face.
Set its arguments alternately in roman and bold face, without a
space between the arguments.
- Macro: .B [text]
Set TEXT in bold face. If no text is present on the line where
@ -194,8 +286,8 @@ File: groff, Node: Miscellaneous man macros, Next: Predefined man strings, Pr
Miscellaneous macros
--------------------
The default indentation is 7.2 en for all output devices except for
`grohtml' which ignores indentation.
The default indentation is 7.2n in troff mode and 7n in nroff mode
except for `grohtml' which ignores indentation.
- Macro: .DT
Set tabs every 0.5 inches. Since this macro is always executed
@ -206,10 +298,48 @@ Miscellaneous macros
Adjust the empty space before a new paragraph (or section). The
optional argument gives the amount of space (default unit is `v');
without parameter, the value is reset to its default value (1 line
for TTY devices, 0.4v otherwise).
in nroff mode, 0.4v otherwise).
This affects the macros `SH', `SS', `TP', `LP' (as well as `PP' and
`P'), `IP', and `HP'.
This affects the macros `SH', `SS', `TP', `LP' (as well as `PP'
and `P'), `IP', and `HP'.
The following two macros are included for BSD compatibility.
- Macro: .AT [system [release]]
Alter the footer for use with AT&T manpages. This command exists
only for compatibility; don't use it. The first argument SYSTEM
can be:
`3'
7th Edition (the default)
`4'
System III
`5'
System V
An optional second argument RELEASE to `AT' specifies the release
number (such as "System V Release 3").
- Macro: .UC [version]
Alters the footer for use with BSD manpages. This command exists
only for compatibility; don't use it. The argument can be:
`3'
3rd Berkeley Distribution (the default)
`4'
4th Berkeley Distribution
`5'
4.2 Berkeley Distribution
`6'
4.3 Berkeley Distribution
`7'
4.4 Berkeley Distribution

File: groff, Node: Predefined man strings, Next: Preprocessors in man pages, Prev: Miscellaneous man macros, Up: man
@ -222,6 +352,9 @@ Predefined strings
- String: \*[S]
Switch back to the default font size.
- String: \*[HF]
The typeface used for headings. The default is `B'.
- String: \*[R]
The `registered' sign.
@ -234,7 +367,7 @@ Predefined strings
respectively.

File: groff, Node: Preprocessors in man pages, Prev: Predefined man strings, Up: man
File: groff, Node: Preprocessors in man pages, Next: Optional man extensions, Prev: Predefined man strings, Up: man
Preprocessors in `man' pages
----------------------------
@ -250,6 +383,134 @@ of letters for the needed preprocessors: `e' for `geqn', `r' for
`grefer', `t' for `gtbl'. Modern implementations of the `man' program
read this first line and automatically call the right preprocessor(s).

File: groff, Node: Optional man extensions, Prev: Preprocessors in man pages, Up: man
Optional `man' extensions
-------------------------
Use the file `man.local' for local extensions to the `man' macros or
for style changes.
Custom headers and footers
..........................
In groff versions 1.18.2 and later, you can specify custom headers
and footers by redefining the following macros in `man.local'.
- Macro: .PT
Control the content of the headers. Normally, the header prints
the command name and section number on either side, and the
optional fifth argument to `TH' in the center.
- Macro: .BT
Control the content of the footers. Normally, the footer prints
the page number and the third and fourth arguments to `TH'.
Use the `FT' number register to specify the footer position. The
default is -0.5i.
Ultrix-specific man macros
..........................
The `groff' source distribution includes a file named `man.ultrix',
containing macros compatible with the Ultrix variant of `man'. Copy
this file into `man.local' (or use the `mso' request to load it) to
enable the following macros.
- Macro: .CT key
Print `<CTRL/KEY>'.
- Macro: .CW
Print subsequent text using the constant width (Courier) typeface.
- Macro: .Ds
Begin a non-filled display.
- Macro: .De
End a non-filled display started with `Ds'.
- Macro: .EX [indent]
Begins a non-filled display using the constant width (Courier)
typeface. Use the optional INDENT argument to indent the display.
- Macro: .EE
End a non-filled display started with `EX'.
- Macro: .G [text]
Sets TEXT in Helvetica. If no text is present on the line where
the macro is called, then the text of the next line appears in
Helvetica.
- Macro: .GL [text]
Sets TEXT in Helvetica Oblique. If no text is present on the line
where the macro is called, then the text of the next line appears
in Helvetica Oblique.
- Macro: .HB [text]
Sets TEXT in Helvetica Bold. If no text is present on the line
where the macro is called, then all text up to the next `HB'
appears in Helvetica Bold.
- Macro: .TB [text]
Identical to `HB'.
- Macro: .MS title sect [punct]
Set a manpage reference in Ultrix format. The TITLE is in Courier
instead of italic. Optional punctuation follows the section
number without an intervening space.
- Macro: .NT [`C'] [title]
Begin a note. Print the optional title, or the word "Note",
centered on the page. Text following the macro makes up the body
of the note, and is indented on both sides. If the first argument
is `C', the body of the note is printed centered (the second
argument replaces the word "Note" if specified).
- Macro: .NE
End a note begun with `NT'.
- Macro: .PN path [punct]
Set the path name in constant width (Courier), followed by
optional punctuation.
- Macro: .Pn [punct] path [punct]
When called with two arguments, identical to `PN'. When called
with three arguments, set the second argument in constant width
(Courier), bracketed by the first and third arguments in the
current font.
- Macro: .R
Switch to roman font and turn off any underlining in effect.
- Macro: .RN
Print the string `<RETURN>'.
- Macro: .VS [`4']
Start printing a change bar in the margin if the number `4' is
specified. Otherwise, this macro does nothing.
- Macro: .VE
End printing the change bar begun by `VS'.
Simple example
..............
The following example `man.local' file alters the `SH' macro to add
some extra vertical space before printing the heading. Headings are
printed in Helvetica Bold.
.\" Make the heading fonts Helvetica
.ds HF HB
.
.\" Put more whitespace in front of headings.
.rn SH SH-orig
.de SH
. if t .sp (u;\\n[PD]*2)
. SH-orig \\$*
..

File: groff, Node: mdoc, Next: ms, Prev: man, Up: Macro Packages
@ -1256,7 +1517,7 @@ those headings wrapped in `XS' and `XE' macros.
.NH 2
Methodology
.XS
Methodology
Methodology
.XE
.LP
...
@ -1304,380 +1565,3 @@ a document.
is perhaps initially more difficult, but would save a great deal of
time in the long run if you use `ms' regularly.

File: groff, Node: ms Strings and Special Characters, Prev: ms TOC, Up: ms Page Layout
Strings and Special Characters
..............................
The `ms' macros provide the following predefined strings. You can
change the string definitions to help in creating documents in
languages other than English.
- String: \*[REFERENCES]
Contains the string printed at the beginning of the references
(bibliography) page. The default is `References'.
- String: \*[ABSTRACT]
Contains the string printed at the beginning of the abstract. The
default is `ABSTRACT'.
- String: \*[TOC]
Contains the string printed at the beginning of the table of
contents.
- String: \*[MONTH1]
- String: \*[MONTH2]
- String: \*[MONTH3]
- String: \*[MONTH4]
- String: \*[MONTH5]
- String: \*[MONTH6]
- String: \*[MONTH7]
- String: \*[MONTH8]
- String: \*[MONTH9]
- String: \*[MONTH10]
- String: \*[MONTH11]
- String: \*[MONTH12]
Prints the full name of the month in dates. The default is
`January', `February', etc.
The following special characters are available(1) (*note ms Strings
and Special Characters-Footnote-1::):
- String: \*[-]
Prints an em dash.
- String: \*[*Q]
- String: \*[*U]
Prints typographer's quotes in troff, plain quotes in nroff. `*Q'
is the left quote and `*U' is the right quote.
Improved accent marks are available in the `ms' macros.
- Macro: .AM
Specify this macro at the beginning of your document to enable
extended accent marks and special characters. This is a Berkeley
extension.
To use the accent marks, place them *after* the character being
accented.
The following accent marks are available after invoking the `AM'
macro:
- String: \*[']
Acute accent.
- String: \*[`]
Grave accent.
- String: \*[^]
Circumflex.
- String: \*[,]
Cedilla.
- String: \*[~]
Tilde.
- String: \*[:]
Umlaut.
- String: \*[v]
Hacek.
- String: \*[_]
Macron (overbar).
- String: \*[.]
Underdot.
- String: \*[o]
Ring above.
The following are standalone characters available after invoking the
`AM' macro:
- String: \*[?]
Upside-down question mark.
- String: \*[!]
Upside-down exclamation point.
- String: \*[8]
German ss ligature.
- String: \*[3]
Yogh.
- String: \*[Th]
Uppercase thorn.
- String: \*[th]
Lowercase thorn.
- String: \*[D-]
Uppercase eth.
- String: \*[d-]
Lowercase eth.
- String: \*[q]
Hooked o.
- String: \*[ae]
Lowercase ae ligature.
- String: \*[Ae]
Uppercase AE ligature.

File: groff, Node: ms Strings and Special Characters-Footnotes, Up: ms Strings and Special Characters
(1) For an explanation what special characters are see *Note Special
Characters::.

File: groff, Node: Differences from AT&T ms, Prev: ms Page Layout, Up: ms
Differences from AT&T `ms'
--------------------------
This section lists the (minor) differences between the `groff -ms'
macros and AT&T `troff -ms' macros.
* Menu:
* Missing ms Macros::
* Additional ms Macros::

File: groff, Node: Missing ms Macros, Next: Additional ms Macros, Prev: Differences from AT&T ms, Up: Differences from AT&T ms
`troff' macros not appearing in `groff'
.......................................
Macros missing from `groff -ms' are cover page macros specific to
Bell Labs. The macros known to be missing are:
`.TM'
Technical memorandum; a cover sheet style
`.IM'
Internal memorandum; a cover sheet style
`.MR'
Memo for record; a cover sheet style
`.MF'
Memo for file; a cover sheet style
`.EG'
Engineer's notes; a cover sheet style
`.TR'
Computing Science Tech Report; a cover sheet style
`.OK'
Other keywords
`.CS'
Cover sheet information
`.MH'
A cover sheet macro

File: groff, Node: Additional ms Macros, Prev: Missing ms Macros, Up: Differences from AT&T ms
`groff' macros not appearing in AT&T `troff'
............................................
The `groff -ms' macros have a few minor extensions compared to the
AT&T `troff -ms' macros.
- Macro: .AM
Improved accent marks. *Note ms Strings and Special Characters::,
for details.
- Macro: .DS I
Indented display. The default behavior of AT&T `troff -ms' was to
indent; the `groff' default prints displays flush left with the
body text.
- Macro: .CW
Print text in `constant width' (Courier) font.
- Macro: .IX
Indexing term (printed on standard error). You can write a script
to capture and process an index generated in this manner.
The following additional number registers appear in `groff -ms':
- Register: \n[MINGW]
Specifies a minimum space between columns (for multi-column
output); this takes the place of the `GW' register that was
documented but apparently not implemented in AT&T `troff'.
Several new string registers are available as well. You can change
these to handle (for example) the local language. *Note ms Strings and
Special Characters::, for details.

File: groff, Node: me, Next: mm, Prev: ms, Up: Macro Packages
`me'
====
See the `meintro.me' and `meref.me' documents in groff's `doc'
directory.

File: groff, Node: mm, Prev: me, Up: Macro Packages
`mm'
====
See the `groff_mm(7)' man page (type `man groff_mm' at the command
line).

File: groff, Node: gtroff Reference, Next: Preprocessors, Prev: Macro Packages, Up: Top
`gtroff' Reference
******************
This chapter covers *all* of the facilities of `gtroff'. Users of
macro packages may skip it if not interested in details.
* Menu:
* Text::
* Input Conventions::
* Measurements::
* Expressions::
* Identifiers::
* Embedded Commands::
* Registers::
* Manipulating Filling and Adjusting::
* Manipulating Hyphenation::
* Manipulating Spacing::
* Tabs and Fields::
* Character Translations::
* Troff and Nroff Mode::
* Line Layout::
* Line Control::
* Page Layout::
* Page Control::
* Fonts::
* Sizes::
* Strings::
* Conditionals and Loops::
* Writing Macros::
* Page Motions::
* Drawing Requests::
* Traps::
* Diversions::
* Environments::
* Suppressing output::
* Colors::
* I/O::
* Postprocessor Access::
* Miscellaneous::
* Gtroff Internals::
* Debugging::
* Implementation Differences::

File: groff, Node: Text, Next: Input Conventions, Prev: gtroff Reference, Up: gtroff Reference
Text
====
`gtroff' input files contain text with control commands interspersed
throughout. But, even without control codes, `gtroff' still does
several things with the input text:
* filling and adjusting
* adding additional space after sentences
* hyphenating
* inserting implicit line breaks
* Menu:
* Filling and Adjusting::
* Hyphenation::
* Sentences::
* Tab Stops::
* Implicit Line Breaks::

File: groff, Node: Filling and Adjusting, Next: Hyphenation, Prev: Text, Up: Text
Filling and Adjusting
---------------------
When `gtroff' reads text, it collects words from the input and fits
as many of them together on one output line as it can. This is known as
"filling".
Once `gtroff' has a "filled" line, it tries to "adjust" it. This
means it widens the spacing between words until the text reaches the
right margin (in the default adjustment mode). Extra spaces between
words are preserved, but spaces at the end of lines are ignored.
Spaces at the front of a line cause a "break" (breaks are explained in
*Note Implicit Line Breaks::).
*Note Manipulating Filling and Adjusting::.

File: groff, Node: Hyphenation, Next: Sentences, Prev: Filling and Adjusting, Up: Text
Hyphenation
-----------
Since the odds are not great for finding a set of words, for every
output line, which fit nicely on a line without inserting excessive
amounts of space between words, `gtroff' hyphenates words so that it
can justify lines without inserting too much space between words. It
uses an internal hyphenation algorithm (a simplified version of the
algorithm used within TeX) to indicate which words can be hyphenated
and how to do so. When a word is hyphenated, the first part of the
word is added to the current filled line being output (with an attached
hyphen), and the other portion is added to the next line to be filled.
*Note Manipulating Hyphenation::.

File: groff, Node: Sentences, Next: Tab Stops, Prev: Hyphenation, Up: Text
Sentences
---------
Although it is often debated, some typesetting rules say there
should be different amounts of space after various punctuation marks.
For example, the `Chicago typsetting manual' says that a period at the
end of a sentence should have twice as much space following it as would
a comma or a period as part of an abbreviation.
`gtroff' does this by flagging certain characters (normally `!',
`?', and `.') as "end-of-sentence" characters. When `gtroff'
encounters one of these characters at the end of a line, it appends a
normal space followed by a "sentence space" in the formatted output.
(This justifies one of the conventions mentioned in *Note Input
Conventions::.)
In addition, the following characters and symbols are treated
transparently while handling end-of-sentence characters: `"', `'', `)',
`]', `*', `\[dg]', and `\[rq]'.
See the `cflags' request in *Note Using Symbols::, for more details.
To prevent the insertion of extra space after an end-of-sentence
character (at the end of a line), append `\&'.

View File

@ -1,8 +1,9 @@
This is groff, produced by makeinfo version 4.2 from ./groff.texinfo.
This is groff, produced by makeinfo version 4.3d from ./groff.texinfo.
This manual documents GNU `troff' version 1.18.
This manual documents GNU `troff' version 1.19.
Copyright (C) 1994-2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1994-2000, 2001, 2002, 2003 Free Software Foundation,
Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@ -16,11 +17,389 @@ This manual documents GNU `troff' version 1.18.
modify this GNU Manual, like GNU software. Copies published by
the Free Software Foundation raise funds for GNU development."
INFO-DIR-SECTION Miscellaneous
INFO-DIR-SECTION Typesetting
START-INFO-DIR-ENTRY
* Groff: (groff). The GNU troff document formatting system.
END-INFO-DIR-ENTRY

File: groff, Node: ms Strings and Special Characters, Prev: ms TOC, Up: ms Page Layout
Strings and Special Characters
..............................
The `ms' macros provide the following predefined strings. You can
change the string definitions to help in creating documents in
languages other than English.
- String: \*[REFERENCES]
Contains the string printed at the beginning of the references
(bibliography) page. The default is `References'.
- String: \*[ABSTRACT]
Contains the string printed at the beginning of the abstract. The
default is `ABSTRACT'.
- String: \*[TOC]
Contains the string printed at the beginning of the table of
contents.
- String: \*[MONTH1]
- String: \*[MONTH2]
- String: \*[MONTH3]
- String: \*[MONTH4]
- String: \*[MONTH5]
- String: \*[MONTH6]
- String: \*[MONTH7]
- String: \*[MONTH8]
- String: \*[MONTH9]
- String: \*[MONTH10]
- String: \*[MONTH11]
- String: \*[MONTH12]
Prints the full name of the month in dates. The default is
`January', `February', etc.
The following special characters are available(1) (*note ms Strings
and Special Characters-Footnote-1::):
- String: \*[-]
Prints an em dash.
- String: \*[*Q]
- String: \*[*U]
Prints typographer's quotes in troff, plain quotes in nroff. `*Q'
is the left quote and `*U' is the right quote.
Improved accent marks are available in the `ms' macros.
- Macro: .AM
Specify this macro at the beginning of your document to enable
extended accent marks and special characters. This is a Berkeley
extension.
To use the accent marks, place them *after* the character being
accented.
The following accent marks are available after invoking the `AM'
macro:
- String: \*[']
Acute accent.
- String: \*[`]
Grave accent.
- String: \*[^]
Circumflex.
- String: \*[,]
Cedilla.
- String: \*[~]
Tilde.
- String: \*[:]
Umlaut.
- String: \*[v]
Hacek.
- String: \*[_]
Macron (overbar).
- String: \*[.]
Underdot.
- String: \*[o]
Ring above.
The following are standalone characters available after invoking the
`AM' macro:
- String: \*[?]
Upside-down question mark.
- String: \*[!]
Upside-down exclamation point.
- String: \*[8]
German ss ligature.
- String: \*[3]
Yogh.
- String: \*[Th]
Uppercase thorn.
- String: \*[th]
Lowercase thorn.
- String: \*[D-]
Uppercase eth.
- String: \*[d-]
Lowercase eth.
- String: \*[q]
Hooked o.
- String: \*[ae]
Lowercase ae ligature.
- String: \*[Ae]
Uppercase AE ligature.

File: groff, Node: ms Strings and Special Characters-Footnotes, Up: ms Strings and Special Characters
(1) For an explanation what special characters are see *Note Special
Characters::.

File: groff, Node: Differences from AT&T ms, Prev: ms Page Layout, Up: ms
Differences from AT&T `ms'
--------------------------
This section lists the (minor) differences between the `groff -ms'
macros and AT&T `troff -ms' macros.
* Menu:
* Missing ms Macros::
* Additional ms Macros::

File: groff, Node: Missing ms Macros, Next: Additional ms Macros, Prev: Differences from AT&T ms, Up: Differences from AT&T ms
`troff' macros not appearing in `groff'
.......................................
Macros missing from `groff -ms' are cover page macros specific to
Bell Labs. The macros known to be missing are:
`.TM'
Technical memorandum; a cover sheet style
`.IM'
Internal memorandum; a cover sheet style
`.MR'
Memo for record; a cover sheet style
`.MF'
Memo for file; a cover sheet style
`.EG'
Engineer's notes; a cover sheet style
`.TR'
Computing Science Tech Report; a cover sheet style
`.OK'
Other keywords
`.CS'
Cover sheet information
`.MH'
A cover sheet macro

File: groff, Node: Additional ms Macros, Prev: Missing ms Macros, Up: Differences from AT&T ms
`groff' macros not appearing in AT&T `troff'
............................................
The `groff -ms' macros have a few minor extensions compared to the
AT&T `troff -ms' macros.
- Macro: .AM
Improved accent marks. *Note ms Strings and Special Characters::,
for details.
- Macro: .DS I
Indented display. The default behavior of AT&T `troff -ms' was to
indent; the `groff' default prints displays flush left with the
body text.
- Macro: .CW
Print text in `constant width' (Courier) font.
- Macro: .IX
Indexing term (printed on standard error). You can write a script
to capture and process an index generated in this manner.
The following additional number registers appear in `groff -ms':
- Register: \n[MINGW]
Specifies a minimum space between columns (for multi-column
output); this takes the place of the `GW' register that was
documented but apparently not implemented in AT&T `troff'.
Several new string registers are available as well. You can change
these to handle (for example) the local language. *Note ms Strings and
Special Characters::, for details.

File: groff, Node: me, Next: mm, Prev: ms, Up: Macro Packages
`me'
====
See the `meintro.me' and `meref.me' documents in groff's `doc'
directory.

File: groff, Node: mm, Prev: me, Up: Macro Packages
`mm'
====
See the `groff_mm(7)' man page (type `man groff_mm' at the command
line).

File: groff, Node: gtroff Reference, Next: Preprocessors, Prev: Macro Packages, Up: Top
`gtroff' Reference
******************
This chapter covers *all* of the facilities of `gtroff'. Users of
macro packages may skip it if not interested in details.
* Menu:
* Text::
* Measurements::
* Expressions::
* Identifiers::
* Embedded Commands::
* Registers::
* Manipulating Filling and Adjusting::
* Manipulating Hyphenation::
* Manipulating Spacing::
* Tabs and Fields::
* Character Translations::
* Troff and Nroff Mode::
* Line Layout::
* Line Control::
* Page Layout::
* Page Control::
* Fonts and Symbols::
* Sizes::
* Strings::
* Conditionals and Loops::
* Writing Macros::
* Page Motions::
* Drawing Requests::
* Traps::
* Diversions::
* Environments::
* Suppressing output::
* Colors::
* I/O::
* Postprocessor Access::
* Miscellaneous::
* Gtroff Internals::
* Debugging::
* Implementation Differences::

File: groff, Node: Text, Next: Measurements, Prev: gtroff Reference, Up: gtroff Reference
Text
====
`gtroff' input files contain text with control commands interspersed
throughout. But, even without control codes, `gtroff' still does
several things with the input text:
* filling and adjusting
* adding additional space after sentences
* hyphenating
* inserting implicit line breaks
* Menu:
* Filling and Adjusting::
* Hyphenation::
* Sentences::
* Tab Stops::
* Implicit Line Breaks::
* Input Conventions::
* Input Encodings::

File: groff, Node: Filling and Adjusting, Next: Hyphenation, Prev: Text, Up: Text
Filling and Adjusting
---------------------
When `gtroff' reads text, it collects words from the input and fits
as many of them together on one output line as it can. This is known as
"filling".
Once `gtroff' has a "filled" line, it tries to "adjust" it. This
means it widens the spacing between words until the text reaches the
right margin (in the default adjustment mode). Extra spaces between
words are preserved, but spaces at the end of lines are ignored.
Spaces at the front of a line cause a "break" (breaks are explained in
*Note Implicit Line Breaks::).
*Note Manipulating Filling and Adjusting::.

File: groff, Node: Hyphenation, Next: Sentences, Prev: Filling and Adjusting, Up: Text
Hyphenation
-----------
Since the odds are not great for finding a set of words, for every
output line, which fit nicely on a line without inserting excessive
amounts of space between words, `gtroff' hyphenates words so that it
can justify lines without inserting too much space between words. It
uses an internal hyphenation algorithm (a simplified version of the
algorithm used within TeX) to indicate which words can be hyphenated
and how to do so. When a word is hyphenated, the first part of the
word is added to the current filled line being output (with an attached
hyphen), and the other portion is added to the next line to be filled.
*Note Manipulating Hyphenation::.

File: groff, Node: Sentences, Next: Tab Stops, Prev: Hyphenation, Up: Text
Sentences
---------
Although it is often debated, some typesetting rules say there
should be different amounts of space after various punctuation marks.
For example, the `Chicago typsetting manual' says that a period at the
end of a sentence should have twice as much space following it as would
a comma or a period as part of an abbreviation.
`gtroff' does this by flagging certain characters (normally `!',
`?', and `.') as "end-of-sentence" characters. When `gtroff'
encounters one of these characters at the end of a line, it appends a
normal space followed by a "sentence space" in the formatted output.
(This justifies one of the conventions mentioned in *Note Input
Conventions::.)
In addition, the following characters and symbols are treated
transparently while handling end-of-sentence characters: `"', `'', `)',
`]', `*', `\[dg]', and `\[rq]'.
See the `cflags' request in *Note Using Symbols::, for more details.
To prevent the insertion of extra space after an end-of-sentence
character (at the end of a line), append `\&'.

File: groff, Node: Tab Stops, Next: Implicit Line Breaks, Prev: Sentences, Up: Text
@ -49,7 +428,7 @@ produces
*Note Tabs and Fields::.

File: groff, Node: Implicit Line Breaks, Prev: Tab Stops, Up: Text
File: groff, Node: Implicit Line Breaks, Next: Input Conventions, Prev: Tab Stops, Up: Text
Implicit Line Breaks
--------------------
@ -74,10 +453,10 @@ document may vanish!
is discussed in *Note Manipulating Filling and Adjusting::.

File: groff, Node: Input Conventions, Next: Measurements, Prev: Text, Up: gtroff Reference
File: groff, Node: Input Conventions, Next: Input Encodings, Prev: Implicit Line Breaks, Up: Text
Input Conventions
=================
-----------------
Since `gtroff' does filling automatically, it is traditional in
`groff' not to try and type things in as nicely formatted paragraphs.
@ -95,7 +474,57 @@ These are some conventions commonly used when typing `gtroff' text:
try using spaces to get proper indentation).

File: groff, Node: Measurements, Next: Expressions, Prev: Input Conventions, Up: gtroff Reference
File: groff, Node: Input Encodings, Prev: Input Conventions, Up: Text
Input Encodings
---------------
Currently, the following input encodings are available.
cp1047
This input encoding works only on EBCDIC platforms (and vice
versa, the other input encodings don't work with EBCDIC); the file
`cp1047.tmac' is by default loaded at start-up.
latin-1
This is the default input encoding on non-EBCDIC platforms; the
file `latin1.tmac' is loaded at start-up.
latin-2
To use this encoding, either say `.mso latin2.tmac' at the very
beginning of your document or use `-mlatin2' as a command line
argument for `groff'.
latin-9 (latin-0)
This encoding is intended (at least in Europe) to replace latin-1
encoding. The main difference to latin-1 is that latin-9 contains
the Euro character. To use this encoding, either say
`.mso latin9.tmac' at the very beginning of your document or use
`-mlatin9' as a command line argument for `groff'.
Note that it can happen that some input encoding characters are not
available for a particular output device. For example, saying
groff -Tlatin1 -mlatin9 ...
will fail if you use the Euro character in the input. Usually, this
limitation is present only for devices which have a limited set of
output glyphs (e.g. `-Tascii' and `-Tlatin1'); for other devices it is
usually sufficient to install proper fonts which contain the necessary
glyphs.
Due to the importance of the Euro glyph in Europe, the groff package
now comes with a POSTSCRIPT font called `freeeuro.pfa' which provides
various glyph shapes for the Euro. With other words, latin-9 encoding
is supported for the `-Tps' device out of the box (latin-2 isn't).
By its very nature, `-Tutf8' supports all input encodings; `-Tdvi'
has support for both latin-2 and latin-9 if the command line `-mec' is
used also to load the file `ec.tmac' (which flips to the EC fonts).

File: groff, Node: Measurements, Next: Expressions, Prev: Text, Up: gtroff Reference
Measurements
============
@ -259,14 +688,15 @@ signs indicate increments and decrements.
*Note Setting Registers::, for some examples.
- Escape: \B'ANYTHING'
- Escape: \B'anything'
Return 1 if ANYTHING is a valid numeric expression; or 0 if
ANYTHING is empty or not a valid numeric expression.
Due to the way arguments are parsed, spaces are not allowed in
expressions, unless the entire expression is surrounded by parentheses.
*Note Request Arguments::, and *Note Conditionals and Loops::.
*Note Request and Macro Arguments::, and *Note Conditionals and
Loops::.

File: groff, Node: Identifiers, Next: Embedded Commands, Prev: Expressions, Up: gtroff Reference
@ -322,7 +752,7 @@ after `.[' and `.]' is handled as a special argument to `refer'. For
example, `.[foo' makes `refer' to start a reference, using `foo' as a
parameter.
- Escape: \A'IDENT'
- Escape: \A'ident'
Test whether an identifier IDENT is valid in `gtroff'. It expands
to the character 1 or 0 according to whether its argument (usually
delimited by quotes) is or is not acceptable as the name of a
@ -466,21 +896,23 @@ character prevents this.
* Menu:
* Request Arguments::
* Request and Macro Arguments::

File: groff, Node: Request Arguments, Prev: Requests, Up: Requests
File: groff, Node: Request and Macro Arguments, Prev: Requests, Up: Requests
Request Arguments
.................
Request and Macro Arguments
...........................
Arguments to requests (and macros) are processed much like the shell:
Arguments to requests and macros are processed much like the shell:
The line is split into arguments according to spaces.(1) (*note Request
Arguments-Footnote-1::) An argument which is intended to contain
spaces can either be enclosed in double quotes, or have the spaces
"escaped" with backslashes.
and Macro Arguments-Footnote-1::)
Here are a few examples:
An argument to a macro which is intended to contain spaces can
either be enclosed in double quotes, or have the spaces "escaped" with
backslashes. This is _not_ true for requests.
Here are a few examples for a hypothetical macro `uh':
.uh The Mouse Problem
@ -490,7 +922,7 @@ spaces can either be enclosed in double quotes, or have the spaces
The first line is the `uh' macro being called with 3 arguments, `The',
`Mouse', and `Problem'. The latter two have the same effect of calling
the `uh' macro with one argument, `The Mouse Problem'.(2) (*note
Request Arguments-Footnote-2::)
Request and Macro Arguments-Footnote-2::)
A double quote which isn't preceded by a space doesn't start a macro
argument. If not closing a string, it is printed literally.
@ -543,7 +975,7 @@ obscure behaviour!
Strings::, for more details.

File: groff, Node: Request Arguments-Footnotes, Up: Request Arguments
File: groff, Node: Request and Macro Arguments-Footnotes, Up: Request and Macro Arguments
(1) Plan 9's `troff' implementation also allows tabs for argument
separation - `gtroff' intentionally doesn't support this.
@ -563,9 +995,9 @@ Macros
`gtroff' has a "macro" facility for defining a series of lines which
can be invoked by name. They are called in the same manner as requests
- arguments also may be passed in the same manner.
- arguments also may be passed basically in the same manner.
*Note Writing Macros::, and *Note Request Arguments::.
*Note Writing Macros::, and *Note Request and Macro Arguments::.

File: groff, Node: Escapes, Prev: Macros, Up: Embedded Commands
@ -723,9 +1155,9 @@ forms of escapes is the comment.
as expected.
- Request: .ig yy
Ignore all input until `gtroff' encounters the macro named `.'YY
on a line by itself (or `..' if YY is not specified). This is
- Request: .ig [end]
Ignore all input until `gtroff' encounters the macro named `.'END
on a line by itself (or `..' if END is not specified). This is
useful for commenting out large blocks of text:
@ -786,7 +1218,7 @@ Setting Registers
Define or set registers using the `nr' request or the `\R' escape.
- Request: .nr ident value
- Escape: \R'IDENT VALUE'
- Escape: \R'ident value'
Set number register IDENT to VALUE. If IDENT doesn't exist,
`gtroff' creates it.
@ -809,8 +1241,8 @@ decrement a register.
- Request: .nr ident +value
- Request: .nr ident -value
- Escape: \R'IDENT +VALUE'
- Escape: \R'IDENT -VALUE'
- Escape: \R'ident +value'
- Escape: \R'ident -value'
Increment (decrement) register IDENT by VALUE.
@ -869,11 +1301,11 @@ Interpolating Registers
Numeric registers can be accessed via the `\n' escape.
- Escape: \nI
- Escape: \n(ID
- Escape: \n[IDENT]
- Escape: \ni
- Escape: \n(id
- Escape: \n[ident]
Interpolate number register with name IDENT (one-character name I,
two-character name ID). This means that the value of the register
two-character name ID). This means that the value of the register
is expanded in-place while `gtroff' is parsing the input line.
Nested assignments (also called indirect assignments) are possible.
@ -912,16 +1344,16 @@ to the `nr' request or `\R' escape.
To activate auto-incrementing, the escape `\n' has a special syntax
form.
- Escape: \n+I
- Escape: \n-I
- Escape: \n(+ID
- Escape: \n(-ID
- Escape: \n+(ID
- Escape: \n-(ID
- Escape: \n[+IDENT]
- Escape: \n[-IDENT]
- Escape: \n+[IDENT]
- Escape: \n-[IDENT]
- Escape: \n+i
- Escape: \n-i
- Escape: \n(+id
- Escape: \n(-id
- Escape: \n+(id
- Escape: \n-(id
- Escape: \n[+ident]
- Escape: \n[-ident]
- Escape: \n+[ident]
- Escape: \n-[ident]
Before interpolating, increment or decrement IDENT (one-character
name I, two-character name ID) by the auto-increment value as
specified with the `nr' request (or the `\R' escape). If no
@ -1027,9 +1459,9 @@ using the `af' request.
writeable register, then apply the `af' request to this other
register.
- Escape: \gI
- Escape: \g(ID
- Escape: \g[IDENT]
- Escape: \gi
- Escape: \g(id
- Escape: \g[ident]
Return the current format of the specified register IDENT
(one-character name I, two-character name ID). For example, `\ga'
after the previous example would produce the string `000'. If the
@ -1115,12 +1547,12 @@ appendix *Note Register Index::.
*Note Miscellaneous::, for more information about line numbering.
`.x'
The major version number. For example, if the version number
is 1.03 then `.x' contains `1'.
The major version number. For example, if the version number is
1.03 then `.x' contains `1'.
`.y'
The minor version number. For example, if the version number
is 1.03 then `.y' contains `03'.
The minor version number. For example, if the version number is
1.03 then `.y' contains `03'.
`.Y'
The revision number of `groff'.
@ -1152,223 +1584,3 @@ appendix *Note Register Index::.
register `.T' which contains the current output device (for
example, `latin1' or `ps').

File: groff, Node: Manipulating Filling and Adjusting, Next: Manipulating Hyphenation, Prev: Registers, Up: gtroff Reference
Manipulating Filling and Adjusting
==================================
Various ways of causing "breaks" were given in *Note Implicit Line
Breaks::. The `br' request likewise causes a break. Several other
requests also cause breaks, but implicitly. These are `bp', `ce',
`cf', `fi', `fl', `in', `nf', `rj', `sp', `ti', and `trf'.
- Request: .br
Break the current line, i.e., the input collected so far is emitted
without adjustment.
If the no-break control character is used, `gtroff' suppresses the
break:
a
'br
b
=> a b
Initially, `gtroff' fills and adjusts text to both margins. Filling
can be disabled via the `nf' request and re-enabled with the `fi'
request.
- Request: .fi
- Register: \n[.u]
Activate fill mode (which is the default). This request implicitly
enables adjusting; it also inserts a break in the text currently
being filled. The read-only number register `.u' is set to 1.
The fill mode status is associated with the current environment
(*note Environments::).
See *Note Line Control::, for interaction with the `\c' escape.
- Request: .nf
Activate no-fill mode. Input lines are output as-is, retaining
line breaks and ignoring the current line length. This command
implicitly disables adjusting; it also causes a break. The number
register `.u' is set to 0.
The fill mode status is associated with the current environment
(*note Environments::).
See *Note Line Control::, for interaction with the `\c' escape.
- Request: .ad [mode]
- Register: \n[.j]
Set adjusting mode.
Activation and deactivation of adjusting is done implicitly with
calls to the `fi' or `nf' requests.
MODE can have one of the following values:
`l'
Adjust text to the left margin. This produces what is
traditionally called ragged-right text.
`r'
Adjust text to the right margin, producing ragged-left text.
`c'
Center filled text. This is different to the `ce' request
which only centers text without filling.
`b'
`n'
Justify to both margins. This is the default used by
`gtroff'.
With no argument, `gtroff' adjusts lines in the same way it did
before adjusting was deactivated (with a call to `na', for
example).
text
.ad r
text
.ad c
text
.na
text
.ad \" back to centering
text
The current adjustment mode is available in the read-only number
register `.j'; it can be stored and subsequently used to set
adjustment.
The adjustment mode status is associated with the current
environment (*note Environments::).
- Request: .na
Disable adjusting. This request won't change the current
adjustment mode: A subsequent call to `ad' uses the previous
adjustment setting.
The adjustment mode status is associated with the current
environment (*note Environments::).
- Request: .brp
- Escape: \p
Adjust the current line and cause a break.
In most cases this produces very ugly results since `gtroff'
doesn't have a sophisticated paragraph building algorithm (as TeX
have, for example); instead, `gtroff' fills and adjusts a paragraph
line by line:
This is an uninteresting sentence.
This is an uninteresting sentence.\p
This is an uninteresting sentence.
is formatted as
This is an uninteresting sentence. This is an
uninteresting sentence.
This is an uninteresting sentence.
- Request: .ss word_space_size [sentence_space_size]
- Register: \n[.ss]
- Register: \n[.sss]
Change the minimum size of a space between filled words. It takes
its units as one twelfth of the space width parameter for the
current font. Initially both the WORD_SPACE_SIZE and
SENTENCE_SPACE_SIZE are 12.
If two arguments are given to the `ss' request, the second
argument sets the sentence space size. If the second argument is
not given, sentence space size is set to WORD_SPACE_SIZE. The
sentence space size is used in two circumstances: If the end of a
sentence occurs at the end of a line in fill mode, then both an
inter-word space and a sentence space are added; if two spaces
follow the end of a sentence in the middle of a line, then the
second space is a sentence space. If a second argument is never
given to the `ss' request, the behaviour of UNIX `troff' is the
same as that exhibited by GNU `troff'. In GNU `troff', as in UNIX
`troff', a sentence should always be followed by either a newline
or two spaces.
The read-only number registers `.ss' and `.sss' hold the values of
the parameters set by the first and second arguments of the `ss'
request.
The word space and sentence space values are associated with the
current environment (*note Environments::).
Contrary to AT&T `troff', this request is _not_ ignored if a TTY
output device is used; the given values are then rounded down to a
multiple of 12 (*note Implementation Differences::).
The request is ignored if there is no parameter.
- Request: .ce [nnn]
- Register: \n[.ce]
Center text. While the `.ad c' request also centers text, it
fills the text as well. `ce' does not fill the text it affects.
This request causes a break. The number of lines still to be
centered is associated with the current environment (*note
Environments::).
The following example demonstrates the differences. Here the
input:
.ll 4i
.ce 1000
This is a small text fragment which shows the differences
between the `.ce' and the `.ad c' request.
.ce 0
.ad c
This is a small text fragment which shows the differences
between the `.ce' and the `.ad c' request.
And here the result:
This is a small text fragment which
shows the differences
between the `.ce' and the `.ad c' request.
This is a small text fragment which
shows the differences between the `.ce'
and the `.ad c' request.
With no arguments, `ce' centers the next line of text. NNN
specifies the number of lines to be centered. If the argument is
zero or negative, centering is disabled.
The basic length for centering text is the line length (as set
with the `ll' request) minus the indentation (as set with the `in'
request). Temporary indentation is ignored.
As can be seen in the previous example, it is a common idiom to
turn on centering for a large number of lines, and to turn off
centering after text to be centered. This is useful for any
request which takes a number of lines as an argument.
The `.ce' read-only number register contains the number of lines
remaining to be centered, as set by the `ce' request.
- Request: .rj [nnn]
- Register: \n[.rj]
Justify unfilled text to the right margin. Arguments are
identical to the `ce' request. The `.rj' read-only number
register is the number of lines to be right-justified as set by
the `rj' request. This request causes a break. The number of
lines still to be right-justified is associated with the current
environment (*note Environments::).

View File

@ -1,8 +1,9 @@
This is groff, produced by makeinfo version 4.2 from ./groff.texinfo.
This is groff, produced by makeinfo version 4.3d from ./groff.texinfo.
This manual documents GNU `troff' version 1.18.
This manual documents GNU `troff' version 1.19.
Copyright (C) 1994-2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1994-2000, 2001, 2002, 2003 Free Software Foundation,
Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@ -16,11 +17,257 @@ This manual documents GNU `troff' version 1.18.
modify this GNU Manual, like GNU software. Copies published by
the Free Software Foundation raise funds for GNU development."
INFO-DIR-SECTION Miscellaneous
INFO-DIR-SECTION Typesetting
START-INFO-DIR-ENTRY
* Groff: (groff). The GNU troff document formatting system.
END-INFO-DIR-ENTRY

File: groff, Node: Manipulating Filling and Adjusting, Next: Manipulating Hyphenation, Prev: Registers, Up: gtroff Reference
Manipulating Filling and Adjusting
==================================
Various ways of causing "breaks" were given in *Note Implicit Line
Breaks::. The `br' request likewise causes a break. Several other
requests also cause breaks, but implicitly. These are `bp', `ce',
`cf', `fi', `fl', `in', `nf', `rj', `sp', `ti', and `trf'.
- Request: .br
Break the current line, i.e., the input collected so far is emitted
without adjustment.
If the no-break control character is used, `gtroff' suppresses the
break:
a
'br
b
=> a b
Initially, `gtroff' fills and adjusts text to both margins. Filling
can be disabled via the `nf' request and re-enabled with the `fi'
request.
- Request: .fi
- Register: \n[.u]
Activate fill mode (which is the default). This request implicitly
enables adjusting; it also inserts a break in the text currently
being filled. The read-only number register `.u' is set to 1.
The fill mode status is associated with the current environment
(*note Environments::).
See *Note Line Control::, for interaction with the `\c' escape.
- Request: .nf
Activate no-fill mode. Input lines are output as-is, retaining
line breaks and ignoring the current line length. This command
implicitly disables adjusting; it also causes a break. The number
register `.u' is set to 0.
The fill mode status is associated with the current environment
(*note Environments::).
See *Note Line Control::, for interaction with the `\c' escape.
- Request: .ad [mode]
- Register: \n[.j]
Set adjusting mode.
Activation and deactivation of adjusting is done implicitly with
calls to the `fi' or `nf' requests.
MODE can have one of the following values:
`l'
Adjust text to the left margin. This produces what is
traditionally called ragged-right text.
`r'
Adjust text to the right margin, producing ragged-left text.
`c'
Center filled text. This is different to the `ce' request
which only centers text without filling.
`b'
`n'
Justify to both margins. This is the default used by
`gtroff'.
Finally, MODE can be the numeric argument returned by the `.j'
register.
With no argument, `gtroff' adjusts lines in the same way it did
before adjusting was deactivated (with a call to `na', for
example).
text
.ad r
.nr ad \n[.j]
text
.ad c
text
.na
text
.ad \" back to centering
text
.ad \n[ad] \" back to right justifying
The current adjustment mode is available in the read-only number
register `.j'; it can be stored and subsequently used to set
adjustment.
The adjustment mode status is associated with the current
environment (*note Environments::).
- Request: .na
Disable adjusting. This request won't change the current
adjustment mode: A subsequent call to `ad' uses the previous
adjustment setting.
The adjustment mode status is associated with the current
environment (*note Environments::).
- Request: .brp
- Escape: \p
Adjust the current line and cause a break.
In most cases this produces very ugly results since `gtroff'
doesn't have a sophisticated paragraph building algorithm (as TeX
have, for example); instead, `gtroff' fills and adjusts a paragraph
line by line:
This is an uninteresting sentence.
This is an uninteresting sentence.\p
This is an uninteresting sentence.
is formatted as
This is an uninteresting sentence. This is an
uninteresting sentence.
This is an uninteresting sentence.
- Request: .ss word_space_size [sentence_space_size]
- Register: \n[.ss]
- Register: \n[.sss]
Change the size of a space between words. It takes its units as
one twelfth of the space width parameter for the current font.
Initially both the WORD_SPACE_SIZE and SENTENCE_SPACE_SIZE are 12.
In fill mode, the values specify the minimum distance.
If two arguments are given to the `ss' request, the second
argument sets the sentence space size. If the second argument is
not given, sentence space size is set to WORD_SPACE_SIZE. The
sentence space size is used in two circumstances: If the end of a
sentence occurs at the end of a line in fill mode, then both an
inter-word space and a sentence space are added; if two spaces
follow the end of a sentence in the middle of a line, then the
second space is a sentence space. If a second argument is never
given to the `ss' request, the behaviour of UNIX `troff' is the
same as that exhibited by GNU `troff'. In GNU `troff', as in UNIX
`troff', a sentence should always be followed by either a newline
or two spaces.
The read-only number registers `.ss' and `.sss' hold the values of
the parameters set by the first and second arguments of the `ss'
request.
The word space and sentence space values are associated with the
current environment (*note Environments::).
Contrary to AT&T `troff', this request is _not_ ignored if a TTY
output device is used; the given values are then rounded down to a
multiple of 12 (*note Implementation Differences::).
The request is ignored if there is no parameter.
Another useful application of the `ss' request is to insert
discardable horizontal space, i.e., space which is discarded at a
line break. For example, paragraph-style footnotes could be
separated this way:
.ll 4.5i
1.\ This is the first footnote.\c
.ss 48
.nop
.ss 12
2.\ This is the second footnote.
The result:
1. This is the first footnote. 2. This
is the second footnote.
Note that the `\h' escape produces unbreakable space.
- Request: .ce [nnn]
- Register: \n[.ce]
Center text. While the `.ad c' request also centers text, it
fills the text as well. `ce' does not fill the text it affects.
This request causes a break. The number of lines still to be
centered is associated with the current environment (*note
Environments::).
The following example demonstrates the differences. Here the
input:
.ll 4i
.ce 1000
This is a small text fragment which shows the differences
between the `.ce' and the `.ad c' request.
.ce 0
.ad c
This is a small text fragment which shows the differences
between the `.ce' and the `.ad c' request.
And here the result:
This is a small text fragment which
shows the differences
between the `.ce' and the `.ad c' request.
This is a small text fragment which
shows the differences between the `.ce'
and the `.ad c' request.
With no arguments, `ce' centers the next line of text. NNN
specifies the number of lines to be centered. If the argument is
zero or negative, centering is disabled.
The basic length for centering text is the line length (as set
with the `ll' request) minus the indentation (as set with the `in'
request). Temporary indentation is ignored.
As can be seen in the previous example, it is a common idiom to
turn on centering for a large number of lines, and to turn off
centering after text to be centered. This is useful for any
request which takes a number of lines as an argument.
The `.ce' read-only number register contains the number of lines
remaining to be centered, as set by the `ce' request.
- Request: .rj [nnn]
- Register: \n[.rj]
Justify unfilled text to the right margin. Arguments are
identical to the `ce' request. The `.rj' read-only number
register is the number of lines to be right-justified as set by
the `rj' request. This request causes a break. The number of
lines still to be right-justified is associated with the current
environment (*note Environments::).

File: groff, Node: Manipulating Hyphenation, Next: Manipulating Spacing, Prev: Manipulating Filling and Adjusting, Up: gtroff Reference
@ -122,7 +369,7 @@ There are a number of ways to influence hyphenation.
... check the /var/log/\:httpd/\:access_log file ...
Note that `\X' and `\Y' start a word, that is, the `\%' escape in
(say) ` \X'...'\%foobar' and ` \Y'...'\%foobar' no longer prevents
(say) `\X'...'\%foobar' and `\Y'...'\%foobar' no longer prevents
hyphenation but inserts a hyphenation point at the beginning of
`foobar'; most likely this isn't what you want to do.
@ -186,8 +433,8 @@ There are a number of ways to influence hyphenation.
The set of hyphenation patterns is associated with the current
language set by the `hla' request. The `hpf' request is usually
invoked by the `troffrc' or `troffrc-end' file; by default,
`troffrc' loads hyphenation patterns for American English (in file
`hyphen.us').
`troffrc' loads hyphenation patterns and exceptions for American
English (in files `hyphen.us' and `hyphenex.us').
A second call to `hpf' (for the same language) will replace the
hyphenation patterns with the new ones.
@ -286,6 +533,43 @@ Manipulating Spacing
`gtroff' moves that distance from the top of the page. This
request causes a line break. The default scaling indicator is `v'.
If a vertical trap is sprung during execution of `sp', the amount
of vertical space after the trap is discarded. For example, this
.de xxx
..
.
.wh 0 xxx
.
.pl 5v
foo
.sp 2
bar
.sp 50
baz
results in
foo
bar
baz
The amount of discarded space is available in the number register
`.trunc'.
To protect `sp' against vertical traps, use the `vpt' request:
.vpt 0
.sp -3
.vpt 1
- Request: .ls [nnn]
- Register: \n[.L]
Output NNN-1 blank lines after each line of text. With no
@ -306,7 +590,7 @@ Manipulating Spacing
*Note Changing Type Sizes::, for the requests `vs' and `pvs' as
alternatives to `ls'.
- Escape: \x'SPACING'
- Escape: \x'spacing'
- Register: \n[.a]
Sometimes, extra vertical spacing is only needed occasionally, e.g.
to allow space for a tall construct (like an equation). The `\x'
@ -488,9 +772,7 @@ movement to the next tab stop (much like it did on a typewriter).
* Calling `ta' without an argument removes all tab stops.
* The start-up value of `gtroff' is `T 0.5i' in troff mode and
`T 0.8i' in nroff mode (the latter is done with an explicit
call to the `ta' request in the file `tty.tmac'.
* The start-up value of `gtroff' is `T 0.8i'.
The read-only number register `.tabs' contains a string
representation of the current tab settings suitable for use as an
@ -741,7 +1023,7 @@ can be changed with the `cc' and `c2' requests, respectively.
and end a superscript:
.ds { \v'-.3m'\s'\Es[.s]*60/100'
.ds { \v'-.3m'\s'\En[.s]*60/100'
.ds } \s0\v'.3m'
Another example to demonstrate the differences between the various
@ -1122,195 +1404,3 @@ These dimensions are:
is that the latter takes into account whether a partially
collected line still uses the old line length value.

File: groff, Node: Line Control, Next: Page Layout, Prev: Line Layout, Up: gtroff Reference
Line Control
============
It is important to understand how `gtroff' handles input and output
lines.
Many escapes use positioning relative to the input line. For
example, this
This is a \h'|1.2i'test.
This is a
\h'|1.2i'test.
produces
This is a test.
This is a test.
The main usage of this feature is to define macros which act exactly
at the place where called.
.\" A simple macro to underline a word
.de underline
. nop \\$1\l'|0\[ul]'
..
In the above example, `|0' specifies a negative distance from the
current position (at the end of the just emitted argument `\$1') back
to the beginning of the input line. Thus, the `\l' escape draws a line
from right to left.
`gtroff' makes a difference between input and output line
continuation; the latter is also called "interrupting" a line.
- Escape: \<RET>
- Escape: \c
- Register: \n[.int]
Continue a line. `\<RET>' (this is a backslash at the end of a
line immediately followed by a newline) works on the input level,
suppressing the effects of the following newline in the input.
This is a \
.test
=> This is a .test
The `|' operator is also affected.
`\c' works on the output level. Anything after this escape on the
same line is ignored, except `\R' which works as usual. Anything
before `\c' on the same line will be appended to the current
partial output line. The next non-command line after an
interrupted line counts as a new input line.
The visual results depend on whether no-fill mode is active.
* If no-fill mode is active (using the `nf' request), the next
input text line after `\c' will be handled as a continuation
of the same input text line.
.nf
This is a \c
test.
=> This is a test.
* If fill mode is active (using the `fi' request), a word
interrupted with `\c' will be continued with the text on the
next input text line, without an intervening space.
This is a te\c
st.
=> This is a test.
Note that an intervening control line which causes a break is
stronger than `\c', flushing out the current partial line in the
usual way.
The `.int' register contains a positive value if the last output
line was interrupted with `\c'; this is associated with the
current environment (*note Environments::).

File: groff, Node: Page Layout, Next: Page Control, Prev: Line Control, Up: gtroff Reference
Page Layout
===========
`gtroff' provides some very primitive operations for controlling
page layout.
- Request: .pl [length]
- Request: .pl +length
- Request: .pl -length
- Register: \n[.p]
Set the "page length" to LENGTH (or increment or decrement the
current value by LENGTH). This is the length of the physical
output page. The default scaling indicator is `v'.
The current setting can be found in the read-only number register
`.p'.
Note that this only specifies the size of the page, not the top and
bottom margins. Those are not set by `gtroff' directly. *Note
Traps::, for further information on how to do this.
Negative `pl' values are possible also, but not very useful: No
trap is sprung, and each line is output on a single page (thus
suppressing all vertical spacing).
If no argument or an invalid argument is given, `pl' sets the page
length to 11i.
`gtroff' provides several operations which help in setting up top
and bottom titles (or headers and footers).
- Request: .tl 'left'center'right'
Print a "title line". It consists of three parts: a left
justified portion, a centered portion, and a right justified
portion. The argument separator `'' can be replaced with any
character not occurring in the title line. The `%' character is
replaced with the current page number. This character can be
changed with the `pc' request (see below).
Without argument, `tl' is ignored.
Some notes:
* A title line is not restricted to the top or bottom of a page.
* `tl' prints the title line immediately, ignoring a partially
filled line (which stays untouched).
* It is not an error to omit closing delimiters. For example,
`.tl /foo' is equivalent to `.tl /foo///': It prints a title
line with the left justified word `foo'; the centered and
right justfied parts are empty.
* `tl' accepts the same parameter delimiting characters as the
`\A' escape; see *Note Escapes::.
- Request: .lt [length]
- Request: .lt +length
- Request: .lt -length
- Register: \n[.lt]
The title line is printed using its own line length, which is
specified (or incremented or decremented) with the `lt' request.
Initially, the title line length is set to 6.5i. If a negative
line length is specified (which is not allowed), `gtroff' emits a
warning of type `range' and sets the title line length to zero.
The default scaling indicator is `m'. If `lt' is called without
an argument, the title length is reset to the previous value
before the last call to `lt'.
The current setting of this is available in the `.lt' read-only
number register; it is associated with the current environment
(*note Environments::).
- Request: .pn page
- Request: .pn +page
- Request: .pn -page
- Register: \n[.pn]
Change (increase or decrease) the page number of the _next_ page.
The only argument is the page number; the request is ignored
without a parameter.
The read-only number register `.pn' contains the number of the next
page: either the value set by a `pn' request, or the number of the
current page plus 1.
- Register: \n[%]
A read-write register holding the current page number.
- Request: .pc [char]
Change the page number character (used by the `tl' request) to a
different character. With no argument, this mechanism is disabled.
Note that this doesn't affect the number register `%'.
*Note Traps::.

View File

@ -1,8 +1,9 @@
This is groff, produced by makeinfo version 4.2 from ./groff.texinfo.
This is groff, produced by makeinfo version 4.3d from ./groff.texinfo.
This manual documents GNU `troff' version 1.18.
This manual documents GNU `troff' version 1.19.
Copyright (C) 1994-2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1994-2000, 2001, 2002, 2003 Free Software Foundation,
Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@ -16,13 +17,205 @@ This manual documents GNU `troff' version 1.18.
modify this GNU Manual, like GNU software. Copies published by
the Free Software Foundation raise funds for GNU development."
INFO-DIR-SECTION Miscellaneous
INFO-DIR-SECTION Typesetting
START-INFO-DIR-ENTRY
* Groff: (groff). The GNU troff document formatting system.
END-INFO-DIR-ENTRY

File: groff, Node: Page Control, Next: Fonts, Prev: Page Layout, Up: gtroff Reference
File: groff, Node: Line Control, Next: Page Layout, Prev: Line Layout, Up: gtroff Reference
Line Control
============
It is important to understand how `gtroff' handles input and output
lines.
Many escapes use positioning relative to the input line. For
example, this
This is a \h'|1.2i'test.
This is a
\h'|1.2i'test.
produces
This is a test.
This is a test.
The main usage of this feature is to define macros which act exactly
at the place where called.
.\" A simple macro to underline a word
.de underline
. nop \\$1\l'|0\[ul]'
..
In the above example, `|0' specifies a negative distance from the
current position (at the end of the just emitted argument `\$1') back
to the beginning of the input line. Thus, the `\l' escape draws a line
from right to left.
`gtroff' makes a difference between input and output line
continuation; the latter is also called "interrupting" a line.
- Escape: \<RET>
- Escape: \c
- Register: \n[.int]
Continue a line. `\<RET>' (this is a backslash at the end of a
line immediately followed by a newline) works on the input level,
suppressing the effects of the following newline in the input.
This is a \
.test
=> This is a .test
The `|' operator is also affected.
`\c' works on the output level. Anything after this escape on the
same line is ignored, except `\R' which works as usual. Anything
before `\c' on the same line will be appended to the current
partial output line. The next non-command line after an
interrupted line counts as a new input line.
The visual results depend on whether no-fill mode is active.
* If no-fill mode is active (using the `nf' request), the next
input text line after `\c' will be handled as a continuation
of the same input text line.
.nf
This is a \c
test.
=> This is a test.
* If fill mode is active (using the `fi' request), a word
interrupted with `\c' will be continued with the text on the
next input text line, without an intervening space.
This is a te\c
st.
=> This is a test.
Note that an intervening control line which causes a break is
stronger than `\c', flushing out the current partial line in the
usual way.
The `.int' register contains a positive value if the last output
line was interrupted with `\c'; this is associated with the
current environment (*note Environments::).

File: groff, Node: Page Layout, Next: Page Control, Prev: Line Control, Up: gtroff Reference
Page Layout
===========
`gtroff' provides some very primitive operations for controlling
page layout.
- Request: .pl [length]
- Request: .pl +length
- Request: .pl -length
- Register: \n[.p]
Set the "page length" to LENGTH (or increment or decrement the
current value by LENGTH). This is the length of the physical
output page. The default scaling indicator is `v'.
The current setting can be found in the read-only number register
`.p'.
Note that this only specifies the size of the page, not the top and
bottom margins. Those are not set by `gtroff' directly. *Note
Traps::, for further information on how to do this.
Negative `pl' values are possible also, but not very useful: No
trap is sprung, and each line is output on a single page (thus
suppressing all vertical spacing).
If no argument or an invalid argument is given, `pl' sets the page
length to 11i.
`gtroff' provides several operations which help in setting up top
and bottom titles (or headers and footers).
- Request: .tl 'left'center'right'
Print a "title line". It consists of three parts: a left
justified portion, a centered portion, and a right justified
portion. The argument separator `'' can be replaced with any
character not occurring in the title line. The `%' character is
replaced with the current page number. This character can be
changed with the `pc' request (see below).
Without argument, `tl' is ignored.
Some notes:
* A title line is not restricted to the top or bottom of a page.
* `tl' prints the title line immediately, ignoring a partially
filled line (which stays untouched).
* It is not an error to omit closing delimiters. For example,
`.tl /foo' is equivalent to `.tl /foo///': It prints a title
line with the left justified word `foo'; the centered and
right justfied parts are empty.
* `tl' accepts the same parameter delimiting characters as the
`\A' escape; see *Note Escapes::.
- Request: .lt [length]
- Request: .lt +length
- Request: .lt -length
- Register: \n[.lt]
The title line is printed using its own line length, which is
specified (or incremented or decremented) with the `lt' request.
Initially, the title line length is set to 6.5i. If a negative
line length is specified (which is not allowed), `gtroff' emits a
warning of type `range' and sets the title line length to zero.
The default scaling indicator is `m'. If `lt' is called without
an argument, the title length is reset to the previous value
before the last call to `lt'.
The current setting of this is available in the `.lt' read-only
number register; it is associated with the current environment
(*note Environments::).
- Request: .pn page
- Request: .pn +page
- Request: .pn -page
- Register: \n[.pn]
Change (increase or decrease) the page number of the _next_ page.
The only argument is the page number; the request is ignored
without a parameter.
The read-only number register `.pn' contains the number of the next
page: either the value set by a `pn' request, or the number of the
current page plus 1.
- Register: \n[%]
A read-write register holding the current page number.
- Request: .pc [char]
Change the page number character (used by the `tl' request) to a
different character. With no argument, this mechanism is disabled.
Note that this doesn't affect the number register `%'.
*Note Traps::.

File: groff, Node: Page Control, Next: Fonts and Symbols, Prev: Page Layout, Up: gtroff Reference
Page Control
============
@ -47,6 +240,9 @@ Page Control
`bp' has no effect if not called within the top-level diversion
(*note Diversions::).
The number register `.pe' is set to 1 while `bp' is active. *Note
Page Location Traps::.
- Request: .ne [space]
It is often necessary to force a certain amount of space before a
new page occurs. This is most useful to make sure that there is
@ -125,10 +321,10 @@ Page Control
registers.

File: groff, Node: Fonts, Next: Sizes, Prev: Page Control, Up: gtroff Reference
File: groff, Node: Fonts and Symbols, Next: Sizes, Prev: Page Control, Up: gtroff Reference
Fonts
=====
Fonts and Symbols
=================
`gtroff' can switch fonts at any point in the text.
@ -148,15 +344,15 @@ also at least one symbol font which contains various special symbols
* Ligatures and Kerning::

File: groff, Node: Changing Fonts, Next: Font Families, Prev: Fonts, Up: Fonts
File: groff, Node: Changing Fonts, Next: Font Families, Prev: Fonts and Symbols, Up: Fonts and Symbols
Changing Fonts
--------------
- Request: .ft [font]
- Escape: \fF
- Escape: \f(FN
- Escape: \f[FONT]
- Escape: \ff
- Escape: \f(fn
- Escape: \f[font]
The `ft' request and the `\f' escape change the current font to
FONT (one-character name F, two-character name FN).
@ -200,7 +396,7 @@ Changing Fonts
used. If G is missing or equal to F the translation is undone.

File: groff, Node: Font Families, Next: Font Positions, Prev: Changing Fonts, Up: Fonts
File: groff, Node: Font Families, Next: Font Positions, Prev: Changing Fonts, Up: Fonts and Symbols
Font Families
-------------
@ -220,9 +416,9 @@ different font family on the command line (*note Groff Options::).
- Request: .fam [family]
- Register: \n[.fam]
- Escape: \FF
- Escape: \F(FM
- Escape: \F[FAMILY]
- Escape: \Ff
- Escape: \F(fm
- Escape: \F[family]
- Register: \n[.fn]
Switch font family to FAMILY (one-character name F, two-character
name FM). If no argument is given, switch back to the previous
@ -322,7 +518,7 @@ different font family on the command line (*note Groff Options::).
*Note Font Positions::.

File: groff, Node: Font Positions, Next: Using Symbols, Prev: Font Families, Up: Fonts
File: groff, Node: Font Positions, Next: Using Symbols, Prev: Font Families, Up: Fonts and Symbols
Font Positions
--------------
@ -379,9 +575,9 @@ which various fonts are mounted.
forms to access font positions.
- Request: .ft nnn
- Escape: \fN
- Escape: \f(NN
- Escape: \f[NNN]
- Escape: \fn
- Escape: \f(nn
- Escape: \f[nnn]
Change the current font position to NNN (one-digit position N,
two-digit position NN), which must be a non-negative integer.
@ -403,7 +599,7 @@ forms to access font positions.
*Note Changing Fonts::, for the standard syntax form.

File: groff, Node: Using Symbols, Next: Special Fonts, Prev: Font Positions, Up: Fonts
File: groff, Node: Using Symbols, Next: Special Fonts, Prev: Font Positions, Up: Fonts and Symbols
Using Symbols
-------------
@ -428,7 +624,7 @@ devices use different names for special fonts. Fonts mounted with the
additional special fonts locally (i.e. for a particular font), use the
`fspecial' request.
In summary, `gtroff' tries the following to find a given symbol:
Here the exact rules how `gtroff' searches a given symbol:
* If the symbol has been defined with the `char' request, use it.
This hides a symbol with the same name in the current font.
@ -437,52 +633,178 @@ additional special fonts locally (i.e. for a particular font), use the
* If the symbol has been defined with the `fchar' request, use it.
* Check all fonts given with the `fspecial' request, in the order of
appearance in `fspecial' calls.
* Check whether the current font has a font-specific list of special
fonts; test all fonts in the order of appearance in the last
`fspecial' call if appropriate.
* Check all fonts given with the `special' request, in the order of
appearance in `special' calls (inclusively the special fonts
defined in the `DESC' file, which come first).
* If the symbol has been defined with the `fschar' request for the
current font, use it.
* As a last resort, consult all fonts loaded up to now (in the order
they have been called the first time) for special fonts and check
them.
* Check all fonts in the order of appearance in the last `special'
call.
* If the symbol has been defined with the `schar' request, use it.
* As a last resort, consult all fonts loaded up to now for special
fonts and check them, starting with the lowest font number. Note
that this can sometimes lead to surprising results since the
`fonts' line in the `DESC' file often contains empty positions
which are filled later on. For example, consider the following:
fonts 3 0 0 FOO
This mounts font `foo' at font position 3. We assume that `FOO'
is a special font, containing glyph `foo', and that no font has
been loaded yet. The line
.fspecial BAR BAZ
makes font `BAZ' special only if font `BAR' is active. We further
assume that `BAZ' is really a special font, i.e., the font
description file contains the `special' keyword, and that it also
contains glyph `foo' with a special shape fitting to font `BAR'.
After executing `fspecial', font `BAR' is loaded at font
position 1, and `BAZ' at position 2.
We now switch to a new font `XXX', trying to access glyph `foo'
which is assumed to be missing. There are neither font-specific
special fonts for `XXX' nor any other fonts made special with the
`special' request, so `gtroff' starts the search for special fonts
in the list of already mounted fonts, with increasing font
positions. Consequently, it finds `BAZ' before `FOO' even for
`XXX' which is not the intended behaviour.
*Note Font Files::, and *Note Special Fonts::, for more details.
- Escape: \(NM
- Escape: \[NAME]
Insert a symbol NAME (two-character name NM). There is no special
syntax for one-character names - the natural form `\N' would
collide with escapes.(1) (*note Using Symbols-Footnote-1::)
The list of available symbols is device dependent; see the
`groff_char(7)' man page for a complete list of all glyphs. For
example, say
man -Tdvi groff_char > groff_char.dvi
for a list using the default DVI fonts (not all versions of the `man'
program support the `-T' option). If you want to use an additional
macro package to change the used fonts, `groff' must be called directly:
groff -Tdvi -mec -man groff_char.7 > groff_char.dvi
Glyph names not listed in groff_char(7) are derived algorithmically,
using a simplified version of the Adobe Glyph List (AGL) algorithm
described in
`http://partners.adobe.com/asn/developer/typeforum/unicodegn.html'.
The (frozen) set of glyph names which can't be derived algorithmically
is called "groff glyph list (GGL)".
* A glyph for Unicode character U+XXXX[X[X]] which is not a
composite character will be named `uXXXX[X[X]]'. X must be an
uppercase hexadecimal digit. Examples: `u1234', `u008E',
`u12DB8'. The largest Unicode value is 0x10FFFF. There must be at
least four `X' digits; if necessary, add leading zeroes (after the
`u'). No zero padding is allowed for character codes greater than
0xFFFF. Surrogates (i.e., Unicode values greater than 0xFFFF
represented with character codes from the surrogate area
U+D800-U+DFFF) are not allowed too.
* A glyph representing more than a single input character will be
named
`u' COMPONENT1 `_' COMPONENT2 `_' COMPONENT3 ...
Example: `u0045_0302_0301'.
For simplicity, all Unicode characters which are composites must be
decomposed maximally (this is normalization form D in the Unicode
standard); for example, `u00CA_0301' is not a valid glyph name
since U+00CA (LATIN CAPITAL LETTER E WITH CIRCUMFLEX) can be
further decomposed into U+0045 (LATIN CAPITAL LETTER E) and U+0302
(COMBINING CIRCUMFLEX ACCENT). `u0045_0302_0301' is thus the
glyph name for U+1EBE, LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND
ACUTE.
* groff maintains a table to decompose all algorithmically derived
glyph names which are composites itself. For example, `u0100'
(LATIN LETTER A WITH MACRON) will be automatically decomposed into
`u0041_0304'. Additionally, a glyph name of the GGL is preferred
to an algorithmically derived glyph name; groff also automatically
does the mapping. Example: The glyph `u0045_0302' will be mapped
to `^E'.
* glyph names of the GGL can't be used in composite glyph names; for
example, `^E_u0301' is invalid.
- Escape: \(nm
- Escape: \[name]
- Escape: \[component1 component2 ...]
Insert a symbol NAME (two-character name NM) or a composite glyph
with component glyphs COMPONENT1, COMPONENT2, .... There is no
special syntax for one-character names - the natural form `\N'
would collide with escapes.(1) (*note Using Symbols-Footnote-1::)
If NAME is undefined, a warning of type `char' is generated, and
the escape is ignored. *Note Debugging::, for information about
warnings.
The list of available symbols is device dependent; see the
`groff_char(7)' man page for a complete list for the given output
device. For example, say
groff resolves `\[...]' with more than a single component as
follows:
* Any component which is found in the GGL will be converted to
the `uXXXX' form.
man -Tdvi groff_char > groff_char.dvi
* Any component `uXXXX' which is found in the list of
decomposable glyphs will be decomposed.
for a list using the default DVI fonts (not all versions of the
`man' program support the `-T' option). If you want to use an
additional macro package to change the used fonts, `groff' must be
called directly:
* The resulting elements are then concatenated with `_'
inbetween, dropping the leading `u' in all elements but the
first.
No check for the existence of any component (similar to `tr'
request) will be done.
groff -Tdvi -mec -man groff_char.7 > groff_char.dvi
Examples:
`\[A ho]'
`A' maps to `u0041', `ho' maps to `u02DB', thus the final
glyph name would be `u0041_02DB'. Note this is not the
expected result: The ogonek glyph `ho' is a spacing ogonek,
but for a proper composite a non-spacing ogonek (U+0328) is
necessary. Looking into the file `composite.tmac' one can
find `.composite ho u0328' which changes the mapping of `ho'
while a composite glyph name is constructed, causing the
final glyph name to be `u0041_0328'.
- Escape: \C'XXX'
`\[^E u0301]'
`\[^E aa]'
`\[E a^ aa]'
`\[E ^ ']'
`^E' maps to `u0045_0302', thus the final glyph name is
`u0045_0302_0301' in all forms (assuming proper calls of the
`composite' request).
It is not possible to define glyphs with names like `A ho' within
a groff font file. This is not really a limitation; instead, you
have to define `u0041_0328'.
- Escape: \C'xxx'
Typeset the glyph named XXX.(2) (*note Using Symbols-Footnote-2::)
Normally it is more convenient to use `\[XXX]', but `\C' has the
advantage that it is compatible with newer versions of AT&T
`troff' and is available in compatibility mode.
- Escape: \N'N'
- Request: .composite from to
Map glyph name FROM to glyph name TO if it is used in `\[...]'
with more than one component. See above for examples.
This mapping is based on glyph names only; no check for the
existence of either glyph is done.
A set of default mappings for many accents can be found in the file
`composite.tmac' which is loaded at start-up.
- Escape: \N'n'
Typeset the glyph with code N in the current font (`n' is *not*
the input character code). The number N can be any non-negative
decimal integer. Most devices only have glyphs with codes between
@ -500,6 +822,8 @@ additional special fonts locally (i.e. for a particular font), use the
name of `---'; the `\N' escape sequence is the only way to use
these.
No kerning is applied to glyphs accessed with `\N'.
Some escape sequences directly map onto special glyphs.
- Escape: \'
@ -532,16 +856,17 @@ additional special fonts locally (i.e. for a particular font), use the
`4'
Lines can be broken after the character (initially the
character `-' and the symbols `\(hy' and `\(em' have this
character `-' and the symbols `\[hy]' and `\[em]' have this
property).
`8'
The character overlaps horizontally (initially the symbols
`\(ul\(rn\(ru' have this property).
`\[ul]', `\[rn]', `\[ru]', `\[radicalex', and `\[sqrtex]'
have this property).
`16'
The character overlaps vertically (initially symbol `\(br' has
this property).
The character overlaps vertically (initially symbol `\[br]'
has this property).
`32'
An end-of-sentence character followed by any number of
@ -550,10 +875,12 @@ additional special fonts locally (i.e. for a particular font), use the
words the character is "transparent" for the purposes of
end-of-sentence recognition - this is the same as having a
zero space factor in TeX (initially characters `"')]*' and
the symbols `\(dg\(rq' have this property).
the symbols `\[dg]' and `\[rq]' have this property).
- Request: .char g [string]
- Request: .fchar g [string]
- Request: .fschar f g [string]
- Request: .schar g [string]
Define a new glyph G to be STRING (which can be empty).(4) (*note
Using Symbols-Footnote-4::) Every time glyph G needs to be
printed, STRING is processed in a temporary environment and the
@ -563,7 +890,7 @@ additional special fonts locally (i.e. for a particular font), use the
kerning is applied to this object rather than to individual
characters in STRING.
A glyph defined by this request can be used just like a normal
A glyph defined by these requests can be used just like a normal
glyph provided by the output device. In particular, other
characters can be translated to it with the `tr' or `trin'
requests; it can be made the leader character by the `lc' request;
@ -595,12 +922,30 @@ additional special fonts locally (i.e. for a particular font), use the
current font. `gtroff' carries out this test before checking
special fonts.
`fschar' defines a fallback glyph for font F: `gtroff' checks for
glyphs defined with `fschar' after the list of fonts declared as
font-specific special fonts with the `fspecial' request, but
before the list of fonts declared as global special fonts with the
`special' request.
Finally, the `schar' request defines a global fallback glyph:
`gtroff' checks for glyphs defined with `schar' after the list of
fonts declared as global special fonts with the `special' request,
but before the already mounted special fonts.
*Note Using Symbols::, for a detailed description of the glyph
searching mechanism in `gtroff'.
- Request: .rchar c1 c2 ...
Remove the definitions of glyphs C1, C2, .... This undoes the
effect of a `char' or `fchar' request.
- Request: .rfschar f c1 c2 ...
Remove the definitions of glyphs C1, C2, .... This undoes the
effect of a `char', `fchar', or `schar' request.
It is possible to omit the whitespace between arguments.
The request `rfschar' removes glyph definitions defined with
`fschar' for glyph f.
*Note Special Characters::.

@ -624,7 +969,7 @@ width, depth, and height, nothing else. All manipulations with the
(4) `char' is a misnomer since an output glyph is defined.

File: groff, Node: Special Fonts, Next: Artificial Fonts, Prev: Using Symbols, Up: Fonts
File: groff, Node: Special Fonts, Next: Artificial Fonts, Prev: Using Symbols, Up: Fonts and Symbols
Special Fonts
-------------
@ -639,20 +984,25 @@ searching mechanism in `gtroff'.
Usually, only non-TTY devices have special fonts.
- Request: .special s1 s2 ...
- Request: .fspecial f s1 s2 ...
Use the `special' request to define special fonts. They are
appended to the list of global special fonts in the given order.
The first entries in this list are the fonts defined with the
`fonts' command in the `DESC' file which are marked as special in
the corresponding font description files.
- Request: .special [s1 s2 ...]
- Request: .fspecial f [s1 s2 ...]
Use the `special' request to define special fonts. Initially, this
list is empty.
Use the `fspecial' request to designate special fonts only when
font F font is active. They are appended to the list of special
fonts for F in the given order. Initially, this list is empty.
font F is active. Initially, this list is empty.
Previous calls to `special' or `fspecial' are overwritten; without
arguments, the particular list of special fonts is set to empty.
Special fonts are searched in the order they appear as arguments.
All fonts which appear in a call to `special' or `fspecial' are
loaded.
*Note Using Symbols::, for the exact search order of glyphs.

File: groff, Node: Artificial Fonts, Next: Ligatures and Kerning, Prev: Special Fonts, Up: Fonts
File: groff, Node: Artificial Fonts, Next: Ligatures and Kerning, Prev: Special Fonts, Up: Fonts and Symbols
Artificial Fonts
----------------
@ -663,13 +1013,17 @@ not have a wide variety of fonts, and when `nroff' and `troff' were
separate programs. Most of them are no longer necessary in GNU
`troff'. Nevertheless, they are supported.
- Escape: \H'HEIGHT'
- Escape: \H'+HEIGHT'
- Escape: \H'-HEIGHT'
- Escape: \H'height'
- Escape: \H'+height'
- Escape: \H'-height'
- Register: \n[.height]
Change (increment, decrement) the height of the current font, but
not the width. If HEIGHT is zero, restore the original height.
Default scaling indicator is `z'.
The read-only number register `.height' contains the font height as
set by `\H'.
Currently, only the `-Tps' device supports this feature.
Note that `\H' doesn't produce an input token in `gtroff'. As a
@ -691,9 +1045,13 @@ separate programs. Most of them are no longer necessary in GNU
prints the word `test' twice with the same font height (five
points larger than the current font size).
- Escape: \S'SLANT'
- Escape: \S'slant'
- Register: \n[.slant]
Slant the current font by SLANT degrees. Positive values slant to
the right.
the right. Only integer values are possible.
The read-only number register `.slant' contains the font slant as
set by `\S'.
Currently, only the `-Tps' device supports this feature.
@ -780,7 +1138,7 @@ separate programs. Most of them are no longer necessary in GNU
Default scaling indicator for EM-SIZE is `z'; WIDTH is an integer.

File: groff, Node: Ligatures and Kerning, Prev: Artificial Fonts, Up: Fonts
File: groff, Node: Ligatures and Kerning, Prev: Artificial Fonts, Up: Fonts and Symbols
Ligatures and Kerning
---------------------
@ -797,6 +1155,10 @@ typesetter that was the target of AT&T `troff' also supported `ff',
include ligatures for `ft' and `ct', although GNU `troff' does not
support these (yet).
Only the current font is checked for ligatures and kerns; neither
special fonts nor entities defined with the `char' request (and its
siblings) are taken into account.
- Request: .lg [flag]
- Register: \n[.lg]
Switch the ligature mechanism on or off; if the parameter is
@ -931,7 +1293,7 @@ with this.

File: groff, Node: Sizes, Next: Strings, Prev: Fonts, Up: gtroff Reference
File: groff, Node: Sizes, Next: Strings, Prev: Fonts and Symbols, Up: gtroff Reference
Sizes
=====
@ -963,223 +1325,3 @@ Roman', `Helvetica', and `Courier' can't be used together at 10pt; to
get acceptable output, the size of `Helvetica' has to be reduced by one
point, and the size of `Courier' must be increased by one point.

File: groff, Node: Changing Type Sizes, Next: Fractional Type Sizes, Prev: Sizes, Up: Sizes
Changing Type Sizes
-------------------
- Request: .ps [size]
- Request: .ps +size
- Request: .ps -size
- Escape: \sSIZE
- Register: \n[.s]
Use the `ps' request or the `\s' escape to change (increase,
decrease) the type size (in points). Specify SIZE as either an
absolute point size, or as a relative change from the current size.
The size 0, or no argument, goes back to the previous size.
Default scaling indicator of `size' is `z'. If `size' is zero or
negative, it is set to 1u.
The read-only number register `.s' returns the point size in
points as a decimal fraction. This is a string. To get the point
size in scaled points, use the `.ps' register instead.
`.s' is associated with the current environment (*note
Environments::).
snap, snap,
.ps +2
grin, grin,
.ps +2
wink, wink, \s+2nudge, nudge,\s+8 say no more!
.ps 10
The `\s' escape may be called in a variety of ways. Much like
other escapes there must be a way to determine where the argument
ends and the text begins. Any of the following forms are valid:
`\sN'
Set the point size to N points. N must be either 0 or in the
range 4 to 39.
`\s+N'
`\s-N'
Increase or decrease the point size by N points. N must be
exactly one digit.
`\s(NN'
Set the point size to NN points. NN must be exactly two
digits.
`\s+(NN'
`\s-(NN'
`\s(+NN'
`\s(-NN'
Increase or decrease the point size by NN points. NN must be
exactly two digits.
Note that `\s' doesn't produce an input token in `gtroff'. As a
consequence, it can be used in requests like `mc' (which expects a
single character as an argument) to change the font on the fly:
.mc \s[20]x\s[0]
*Note Fractional Type Sizes::, for yet another syntactical form of
using the `\s' escape.
- Request: .sizes s1 s2 ... sn [0]
Some devices may only have certain permissible sizes, in which case
`gtroff' rounds to the nearest permissible size. The `DESC' file
specifies which sizes are permissible for the device.
Use the `sizes' request to change the permissible sizes for the
current output device. Arguments are in scaled points; the
`sizescale' line in the `DESC' file for the output device provides
the scaling factor. For example, if the scaling factor is 1000,
then the value 12000 is 12 points.
Each argument can be a single point size (such as `12000'), or a
range of sizes (such as `4000-72000'). You can optionally end the
list with a zero.
- Request: .vs [space]
- Request: .vs +space
- Request: .vs -space
- Register: \n[.v]
Change (increase, decrease) the vertical spacing by SPACE. The
default scaling indicator is `p'.
If `vs' is called without an argument, the vertical spacing is
reset to the previous value before the last call to `vs'.
`gtroff' creates a warning of type `range' if SPACE is zero or
negative; the vertical spacing is then set to the vertical
resolution (as given in the `.V' register).
The read-only number register `.v' contains the current vertical
spacing; it is associated with the current environment (*note
Environments::).
The effective vertical line spacing consists of four components.
* The vertical line spacing as set with the `vs' request.
* The "post-vertical line spacing" as set with the `pvs' request.
This is vertical space which will be added after a line has been
output.
* The "extra pre-vertical line space" as set with the `\x' request,
using a negative value. This is vertical space which will be
added once before the current line has been output.
* The "extra post-vertical line space" as set with the `\x' request,
using a positive value. This is vertical space which will be
added once after the current line has been output.
It is usually better to use `vs' or `pvs' instead of `ls' to produce
double-spaced documents: `vs' and `pvs' have a finer granularity for
the inserted vertical space compared to `ls'; furthermore, certain
preprocessors assume single-spacing.
*Note Manipulating Spacing::, for more details on the `\x' escape
and the `ls' request.
- Request: .pvs [space]
- Request: .pvs +space
- Request: .pvs -space
- Register: \n[.pvs]
Change (increase, decrease) the post-vertical spacing by SPACE.
The default scaling indicator is `p'.
If `pvs' is called without an argument, the post-vertical spacing
is reset to the previous value before the last call to `pvs'.
`gtroff' creates a warning of type `range' if SPACE is zero or
negative; the vertical spacing is then set to zero.
The read-only number register `.pvs' contains the current
post-vertical spacing; it is associated with the current
environment (*note Environments::).

File: groff, Node: Fractional Type Sizes, Prev: Changing Type Sizes, Up: Sizes
Fractional Type Sizes
---------------------
A "scaled point" is equal to 1/SIZESCALE points, where SIZESCALE is
specified in the `DESC' file (1 by default). There is a new scale
indicator `z' which has the effect of multiplying by SIZESCALE.
Requests and escape sequences in `gtroff' interpret arguments that
represent a point size as being in units of scaled points, but they
evaluate each such argument using a default scale indicator of `z'.
Arguments treated in this way are the argument to the `ps' request, the
third argument to the `cs' request, the second and fourth arguments to
the `tkf' request, the argument to the `\H' escape sequence, and those
variants of the `\s' escape sequence that take a numeric expression as
their argument (see below).
For example, suppose SIZESCALE is 1000; then a scaled point is
equivalent to a millipoint; the request `.ps 10.25' is equivalent to
`.ps 10.25z' and thus sets the point size to 10250 scaled points, which
is equal to 10.25 points.
`gtroff' disallows the use of the `z' scale indicator in instances
where it would make no sense, such as a numeric expression whose
default scale indicator was neither `u' nor `z'. Similarly it would
make no sense to use a scaling indicator other than `z' or `u' in a
numeric expression whose default scale indicator was `z', and so
`gtroff' disallows this as well.
There is also new scale indicator `s' which multiplies by the number
of units in a scaled point. So, for example, `\n[.ps]s' is equal to
`1m'. Be sure not to confuse the `s' and `z' scale indicators.
- Register: \n[.ps]
A read-only number register returning the point size in scaled
points.
`.ps' is associated with the current environment (*note
Environments::).
- Register: \n[.psr]
- Register: \n[.sr]
The last-requested point size in scaled points is contained in the
`.psr' read-only number register. The last requested point size
in points as a decimal fraction can be found in `.sr'. This is a
string-valued read-only number register.
Note that the requested point sizes are device-independent, whereas
the values returned by the `.ps' and `.s' registers are not. For
example, if a point size of 11pt is requested, and a `sizes'
request (or a `sizescale' line in a `DESC' file) specifies 10.95pt
instead, this value is actually used.
Both registers are associated with the current environment (*note
Environments::).
The `\s' escape has the following syntax for working with fractional
type sizes:
`\s[N]'
`\s'N''
Set the point size to N scaled points; N is a numeric expression
with a default scale indicator of `z'.
`\s[+N]'
`\s[-N]'
`\s+[N]'
`\s-[N]'
`\s'+N''
`\s'-N''
`\s+'N''
`\s-'N''
Increase or or decrease the point size by N scaled points; N is a
numeric expression with a default scale indicator of `z'.
*Note Font Files::.

View File

@ -1,8 +1,9 @@
This is groff, produced by makeinfo version 4.2 from ./groff.texinfo.
This is groff, produced by makeinfo version 4.3d from ./groff.texinfo.
This manual documents GNU `troff' version 1.18.
This manual documents GNU `troff' version 1.19.
Copyright (C) 1994-2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1994-2000, 2001, 2002, 2003 Free Software Foundation,
Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@ -16,11 +17,231 @@ This manual documents GNU `troff' version 1.18.
modify this GNU Manual, like GNU software. Copies published by
the Free Software Foundation raise funds for GNU development."
INFO-DIR-SECTION Miscellaneous
INFO-DIR-SECTION Typesetting
START-INFO-DIR-ENTRY
* Groff: (groff). The GNU troff document formatting system.
END-INFO-DIR-ENTRY

File: groff, Node: Changing Type Sizes, Next: Fractional Type Sizes, Prev: Sizes, Up: Sizes
Changing Type Sizes
-------------------
- Request: .ps [size]
- Request: .ps +size
- Request: .ps -size
- Escape: \ssize
- Register: \n[.s]
Use the `ps' request or the `\s' escape to change (increase,
decrease) the type size (in points). Specify SIZE as either an
absolute point size, or as a relative change from the current size.
The size 0, or no argument, goes back to the previous size.
Default scaling indicator of `size' is `z'. If `size' is zero or
negative, it is set to 1u.
The read-only number register `.s' returns the point size in
points as a decimal fraction. This is a string. To get the point
size in scaled points, use the `.ps' register instead.
`.s' is associated with the current environment (*note
Environments::).
snap, snap,
.ps +2
grin, grin,
.ps +2
wink, wink, \s+2nudge, nudge,\s+8 say no more!
.ps 10
The `\s' escape may be called in a variety of ways. Much like
other escapes there must be a way to determine where the argument
ends and the text begins. Any of the following forms are valid:
`\sN'
Set the point size to N points. N must be either 0 or in the
range 4 to 39.
`\s+N'
`\s-N'
Increase or decrease the point size by N points. N must be
exactly one digit.
`\s(NN'
Set the point size to NN points. NN must be exactly two
digits.
`\s+(NN'
`\s-(NN'
`\s(+NN'
`\s(-NN'
Increase or decrease the point size by NN points. NN must be
exactly two digits.
Note that `\s' doesn't produce an input token in `gtroff'. As a
consequence, it can be used in requests like `mc' (which expects a
single character as an argument) to change the font on the fly:
.mc \s[20]x\s[0]
*Note Fractional Type Sizes::, for yet another syntactical form of
using the `\s' escape.
- Request: .sizes s1 s2 ... sn [0]
Some devices may only have certain permissible sizes, in which case
`gtroff' rounds to the nearest permissible size. The `DESC' file
specifies which sizes are permissible for the device.
Use the `sizes' request to change the permissible sizes for the
current output device. Arguments are in scaled points; the
`sizescale' line in the `DESC' file for the output device provides
the scaling factor. For example, if the scaling factor is 1000,
then the value 12000 is 12 points.
Each argument can be a single point size (such as `12000'), or a
range of sizes (such as `4000-72000'). You can optionally end the
list with a zero.
- Request: .vs [space]
- Request: .vs +space
- Request: .vs -space
- Register: \n[.v]
Change (increase, decrease) the vertical spacing by SPACE. The
default scaling indicator is `p'.
If `vs' is called without an argument, the vertical spacing is
reset to the previous value before the last call to `vs'.
`gtroff' creates a warning of type `range' if SPACE is negative;
the vertical spacing is then set to the vertical resolution (as
given in the `.V' register).
The read-only number register `.v' contains the current vertical
spacing; it is associated with the current environment (*note
Environments::).
The effective vertical line spacing consists of four components.
* The vertical line spacing as set with the `vs' request.
* The "post-vertical line spacing" as set with the `pvs' request.
This is vertical space which will be added after a line has been
output.
* The "extra pre-vertical line space" as set with the `\x' request,
using a negative value. This is vertical space which will be
added once before the current line has been output.
* The "extra post-vertical line space" as set with the `\x' request,
using a positive value. This is vertical space which will be
added once after the current line has been output.
It is usually better to use `vs' or `pvs' instead of `ls' to produce
double-spaced documents: `vs' and `pvs' have a finer granularity for
the inserted vertical space compared to `ls'; furthermore, certain
preprocessors assume single-spacing.
*Note Manipulating Spacing::, for more details on the `\x' escape
and the `ls' request.
- Request: .pvs [space]
- Request: .pvs +space
- Request: .pvs -space
- Register: \n[.pvs]
Change (increase, decrease) the post-vertical spacing by SPACE.
The default scaling indicator is `p'.
If `pvs' is called without an argument, the post-vertical spacing
is reset to the previous value before the last call to `pvs'.
`gtroff' creates a warning of type `range' if SPACE is zero or
negative; the vertical spacing is then set to zero.
The read-only number register `.pvs' contains the current
post-vertical spacing; it is associated with the current
environment (*note Environments::).

File: groff, Node: Fractional Type Sizes, Prev: Changing Type Sizes, Up: Sizes
Fractional Type Sizes
---------------------
A "scaled point" is equal to 1/SIZESCALE points, where SIZESCALE is
specified in the `DESC' file (1 by default). There is a new scale
indicator `z' which has the effect of multiplying by SIZESCALE.
Requests and escape sequences in `gtroff' interpret arguments that
represent a point size as being in units of scaled points, but they
evaluate each such argument using a default scale indicator of `z'.
Arguments treated in this way are the argument to the `ps' request, the
third argument to the `cs' request, the second and fourth arguments to
the `tkf' request, the argument to the `\H' escape sequence, and those
variants of the `\s' escape sequence that take a numeric expression as
their argument (see below).
For example, suppose SIZESCALE is 1000; then a scaled point is
equivalent to a millipoint; the request `.ps 10.25' is equivalent to
`.ps 10.25z' and thus sets the point size to 10250 scaled points, which
is equal to 10.25 points.
`gtroff' disallows the use of the `z' scale indicator in instances
where it would make no sense, such as a numeric expression whose
default scale indicator was neither `u' nor `z'. Similarly it would
make no sense to use a scaling indicator other than `z' or `u' in a
numeric expression whose default scale indicator was `z', and so
`gtroff' disallows this as well.
There is also new scale indicator `s' which multiplies by the number
of units in a scaled point. So, for example, `\n[.ps]s' is equal to
`1m'. Be sure not to confuse the `s' and `z' scale indicators.
- Register: \n[.ps]
A read-only number register returning the point size in scaled
points.
`.ps' is associated with the current environment (*note
Environments::).
- Register: \n[.psr]
- Register: \n[.sr]
The last-requested point size in scaled points is contained in the
`.psr' read-only number register. The last requested point size
in points as a decimal fraction can be found in `.sr'. This is a
string-valued read-only number register.
Note that the requested point sizes are device-independent, whereas
the values returned by the `.ps' and `.s' registers are not. For
example, if a point size of 11pt is requested, and a `sizes'
request (or a `sizescale' line in a `DESC' file) specifies 10.95pt
instead, this value is actually used.
Both registers are associated with the current environment (*note
Environments::).
The `\s' escape has the following syntax for working with fractional
type sizes:
`\s[N]'
`\s'N''
Set the point size to N scaled points; N is a numeric expression
with a default scale indicator of `z'.
`\s[+N]'
`\s[-N]'
`\s+[N]'
`\s-[N]'
`\s'+N''
`\s'-N''
`\s+'N''
`\s-'N''
Increase or or decrease the point size by N scaled points; N is a
numeric expression with a default scale indicator of `z'.
*Note Font Files::.

File: groff, Node: Strings, Next: Conditionals and Loops, Prev: Sizes, Up: gtroff Reference
@ -33,16 +254,16 @@ this is a read-write string variable).
- Request: .ds name [string]
- Request: .ds1 name [string]
- Escape: \*N
- Escape: \*(NM
- Escape: \*[NAME ARG1 ARG2 ...]
- Escape: \*n
- Escape: \*(nm
- Escape: \*[name arg1 arg2 ...]
Define and access a string variable NAME (one-character name N,
two-character name NM). If NAME already exists, `ds' overwrites
the previous definition. Only the syntax form using brackets can
take arguments which are handled identically to macro arguments;
the single exception is that a closing bracket as an argument must
be enclosed in double quotes. *Note Request Arguments::, and
*Note Parameters::.
be enclosed in double quotes. *Note Request and Macro
Arguments::, and *Note Parameters::.
Example:
@ -231,7 +452,7 @@ requests.
.ds xxx abcd\h'3i'efgh
.length yyy \n[xxx]
.length yyy \*[xxx]
\n[yyy]
=> 14
@ -604,12 +825,12 @@ invoked multiple times. Use macros to define common operations.
Note that macro identifiers are shared with identifiers for
strings and diversions.
- Request: .am xx
- Request: .am1 xx
- Request: .ami xx yy
Works similarly to `de' except it appends onto the macro named XX.
So, to make the previously defined `P' macro actually do indented
instead of block paragraphs, add the necessary code to the
- Request: .am name [end]
- Request: .am1 name [end]
- Request: .ami name [end]
Works similarly to `de' except it appends onto the macro named
NAME. So, to make the previously defined `P' macro actually do
indented instead of block paragraphs, add the necessary code to the
existing macro like this:
@ -623,7 +844,7 @@ invoked multiple times. Use macros to define common operations.
a "compatibility restore" input token at the end.
The `ami' request appends indirectly, meaning that `gtroff'
expands strings whose names are XX or YY before performing the
expands strings whose names are NAME or END before performing the
append.
Using `trace.tmac', you can trace calls to `am' and `am1'.
@ -689,9 +910,9 @@ escapes.
Any individual argument can be retrieved with one of the following
escapes:
- Escape: \$N
- Escape: \$(NN
- Escape: \$[NNN]
- Escape: \$n
- Escape: \$(nn
- Escape: \$[nnn]
Retrieve the Nth, NNth or NNNth argument. As usual, the first
form only accepts a single number (larger than zero), the second a
two-digit number (larger or equal to 10), and the third any
@ -714,7 +935,7 @@ escapes:
similar escape is `\$@', which concatenates all the arguments with
each surrounded by double quotes, and separated by spaces. If not
in compatibility mode, the input level of double quotes is
preserved (see *Note Request Arguments::).
preserved (see *Note Request and Macro Arguments::).
- Escape: \$0
The name used to invoke the current macro. The `als' request can
@ -733,7 +954,7 @@ escapes:
.als bar generic-macro
*Note Request Arguments::.
*Note Request and Macro Arguments::.

File: groff, Node: Page Motions, Next: Drawing Requests, Prev: Writing Macros, Up: gtroff Reference
@ -821,7 +1042,7 @@ for vertical motion, `sp'.
The following escapes give fine control of movements about the page.
- Escape: \v'E'
- Escape: \v'e'
Move vertically, usually from the current location on the page (if
no absolute position operator `|' is used). The argument E
specifies the distance to move; positive is downwards and negative
@ -846,12 +1067,15 @@ for vertical motion, `sp'.
- Escape: \d
Move down .5v.
- Escape: \h'E'
- Escape: \h'e'
Move horizontally, usually from the current location (if no
absolute position operator `|' is used). The expression E
indicates how far to move: positive is rightwards and negative
leftwards. The default scaling indicator for this escape is `m'.
This horizontal space is not discarded at the end of a line. To
insert discardable space of a certain length use the `ss' request.
There are a number of special-case escapes for horizontal motion.
- Escape: \<SP>
@ -878,7 +1102,7 @@ for vertical motion, `sp'.
.ds TeX T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X
- Escape: \w'TEXT'
- Escape: \w'text'
- Register: \n[st]
- Register: \n[sb]
- Register: \n[rst]
@ -907,7 +1131,8 @@ for vertical motion, `sp'.
`rsb'
Like the `st' and `sb' registers, but takes account of the
heights and depths of glyphs. With other words, this gives
the highest and lowest point of TEXT.
the highest and lowest point of TEXT. Values below the
baseline are negative.
`ct'
Defines the kinds of glyphs occurring in TEXT:
@ -933,9 +1158,9 @@ for vertical motion, `sp'.
argument, the center of an accent from a roman font should be
placed over that glyph.
- Escape: \kP
- Escape: \k(PS
- Escape: \k[POSITION]
- Escape: \kp
- Escape: \k(ps
- Escape: \k[position]
Store the current horizontal position in the _input_ line in
number register with name POSITION (one-character name P,
two-character name PS). Use this, for example, to return to the
@ -948,15 +1173,15 @@ for vertical motion, `sp'.
A read-only number register containing the current horizontal
output position.
- Escape: \o'ABC'
- Escape: \o'abc'
Overstrike glyphs A, B, C, ...; the glyphs are centered, and the
resulting spacing is the largest width of the affected glyphs.
- Escape: \zG
- Escape: \zg
Print glyph G with zero width, i.e., without spacing. Use this to
overstrike glyphs left-aligned.
- Escape: \Z'ANYTHING'
- Escape: \Z'anything'
Print ANYTHING, then restore the horizontal and vertical position.
The argument may not contain tabs or leaders.
@ -988,8 +1213,8 @@ or `ggrn'. *Note gpic::, and *Note ggrn::, for more information.
All drawing is done via escapes.
- Escape: \l'L'
- Escape: \l'LG'
- Escape: \l'l'
- Escape: \l'lg'
Draw a line horizontally. L is the length of the line to be
drawn. If it is positive, start the line at the current location
and draw to the right; its end point is the new current location.
@ -1022,8 +1247,8 @@ or `ggrn'. *Note gpic::, and *Note ggrn::, for more information.
location to the beginning of the _input_ line - this works because
the line length is negative, not moving the current point.
- Escape: \L'L'
- Escape: \L'LG'
- Escape: \L'l'
- Escape: \L'lg'
Draw vertical lines. Its parameters are similar to the `\l'
escape, except that the default scaling indicator is `v'. The
movement is downwards for positive values, and upwards for
@ -1043,7 +1268,7 @@ or `ggrn'. *Note gpic::, and *Note ggrn::, for more information.
|test.
- Escape: \D'COMMAND ARG ...'
- Escape: \D'command arg ...'
The `\D' escape provides a variety of drawing functions. Note
that on character devices, only vertical and horizontal lines are
supported within `grotty'; other devices may only support a subset
@ -1051,7 +1276,9 @@ or `ggrn'. *Note gpic::, and *Note ggrn::, for more information.
The default scaling indicator for all subcommands of `\D' is `m'
for horizontal distances and `v' for vertical ones. Exceptions
are `\D'f ...'' and `\D't ...'' which use `u' as the default.
are `\D'f ...'' and `\D't ...'' which use `u' as the default, and
`\D'FX ...'' which arguments are treated similar to the `defcolor'
request.
`\D'l DX DY''
Draw a line from the current location to the relative point
@ -1083,30 +1310,35 @@ or `ggrn'. *Note gpic::, and *Note ggrn::, for more information.
`\D'c D''
Draw a circle with a diameter of D with the leftmost point at
the current position.
the current position. After drawing, the current location is
positioned at the rightmost point of the circle.
`\D'C D''
Draw a solid circle with the same parameters as an outlined
circle. No outline is drawn.
Draw a solid circle with the same parameters and behaviour as
an outlined circle. No outline is drawn.
`\D'e X Y''
Draw an ellipse with a horizontal diameter of X and a vertical
diameter of Y with the leftmost point at the current position.
After drawing, the current location is positioned at the
rightmost point of the ellipse.
`\D'E X Y''
Draw a solid ellipse with the same parameters as an outlined
ellipse. No outline is drawn.
Draw a solid ellipse with the same parameters and behaviour
as an outlined ellipse. No outline is drawn.
`\D'a DX1 DY1 DX2 DY2''
Draw an arc clockwise from the current location through the
two specified relative locations (DX1,DY1) and (DX2,DY2).
The coordinates of the first point are relative to the
current position, and the coordinates of the second point are
relative to the first point.
relative to the first point. After drawing, the current
position is moved to the final point of the arc.
`\D'~ DX1 DY1 DX2 DY2 ...''
Draw a spline from the current location to the relative point
(DX1,DY1) and then to (DX2,DY2), and so on.
(DX1,DY1) and then to (DX2,DY2), and so on. The current
position is moved to the terminal point of the drawn curve.
`\D'f N''
Set the shade of gray to be used for filling solid objects
@ -1116,15 +1348,27 @@ or `ggrn'. *Note gpic::, and *Note ggrn::, for more information.
applies only to solid circles, solid ellipses, and solid
polygons. By default, a level of 1000 is used.
Despite of being silly, the current point is moved
horizontally to the right by N.
Don't use this command! It has the serious drawback that it
will be always rounded to the next integer multiple of the
horizontal resolution (the value of the `hor' keyword in the
`DESC' file). Use `\M' (*note Colors::) or `\D'Fg ...''
instead.
`\D'p DX1 DY1 DX2 DY2 ...''
Draw a polygon from the current location to the relative
position (DX1,DY1) and then to (DX2,DY2) and so on. When the
specified data points are exhausted, a line is drawn back to
the starting point.
the starting point. The current position is changed by
adding the sum of all arguments with odd index to the actual
horizontal position and the even ones to the vertical
position.
`\D'P DX1 DY1 DX2 DY2 ...''
Draw a solid polygon with the same parameters as an outlined
polygon. No outline is drawn.
Draw a solid polygon with the same parameters and behaviour
as an outlined polygon. No outline is drawn.
Here a better variant of the box macro to fill the box with
some color. Note that the box must be drawn before the text
@ -1154,9 +1398,27 @@ or `ggrn'. *Note gpic::, and *Note ggrn::, for more information.
current point size (this is the default behaviour of AT&T
`troff').
Despite of being silly, the current point is moved
horizontally to the right by N.
`\D'FSCHEME COLOR_COMPONENTS''
Change current fill color. SCHEME is a single letter
denoting the color scheme: `r' (rgb), `c' (cmy), `k' (cmyk),
`g' (gray), or `d' (default color). The color components use
exactly the same syntax as in the `defcolor' request (*note
Colors::); the command `\D'Fd'' doesn't take an argument.
_No_ position changing!
Examples:
\D'Fg .3' \" same gray as \D'f 700' \D'Fr #0000ff' \"
blue
*Note Graphics Commands::.
- Escape: \b'STRING'
- Escape: \b'string'
"Pile" a sequence of glyphs vertically, and center it vertically
on the current line. Use it to build large brackets and braces.
@ -1198,218 +1460,3 @@ trap is "sprung" if the associated macro is executed.
* Blank Line Traps::
* End-of-input Traps::

File: groff, Node: Page Location Traps, Next: Diversion Traps, Prev: Traps, Up: Traps
Page Location Traps
-------------------
"Page location traps" perform an action when `gtroff' reaches or
passes a certain vertical location on the page. Page location traps
have a variety of purposes, including:
* setting headers and footers
* setting body text in multiple columns
* setting footnotes
- Request: .vpt flag
- Register: \n[.vpt]
Enable vertical position traps if FLAG is non-zero, or disables
them otherwise. Vertical position traps are traps set by the `wh'
or `dt' requests. Traps set by the `it' request are not vertical
position traps. The parameter that controls whether vertical
position traps are enabled is global. Initially vertical position
traps are enabled. The current setting of this is available in the
`.vpt' read-only number register.
- Request: .wh dist [macro]
Set a page location trap. Positive values for DIST set the trap
relative to the top of the page; negative values set the trap
relative to the bottom of the page. Default scaling indicator is
`v'.
MACRO is the name of the macro to execute when the trap is sprung.
If MACRO is missing, remove the first trap (if any) at DIST.
The following is a simple example of how many macro packages set
headers and footers.
.de hd \" Page header
' sp .5i
. tl 'Title''date'
' sp .3i
..
.
.de fo \" Page footer
' sp 1v
. tl ''%''
' bp
..
.
.wh 0 hd \" trap at top of the page
.wh -1i fo \" trap one inch from bottom
A trap at or below the bottom of the page is ignored; it can be
made active by either moving it up or increasing the page length
so that the trap is on the page.
It is possible to have more than one trap at the same location; to
do so, the traps must be defined at different locations, then
moved together with the `ch' request; otherwise the second trap
would replace the first one. Earlier defined traps hide later
defined traps if moved to the same position (the many empty lines
caused by the `bp' request are omitted):
.de a
. nop a
..
.de b
. nop b
..
.de c
. nop c
..
.
.wh 1i a
.wh 2i b
.wh 3i c
.bp
=> a b c
.ch b 1i
.ch c 1i
.bp
=> a
.ch a 0.5i
.bp
=> a b
- Register: \n[.t]
A read-only number register holding the distance to the next trap.
If there are no traps between the current position and the bottom
of the page, it contains the distance to the page bottom. In a
diversion, the distance to the page bottom is infinite (the
returned value is the biggest integer which can be represented in
`groff') if there are no diversion traps.
- Request: .ch macro dist
Change the location of a trap. The first argument is the name of
the macro to be invoked at the trap, and the second argument is
the new location for the trap (note that the parameters are
specified the opposite of the `wh' request). This is useful for
building up footnotes in a diversion to allow more space at the
bottom of the page for them.
Default scaling indicator for DIST is `v'. If DIST is missing,
the trap is removed.
- Register: \n[.ne]
The read-only number register `.ne' contains the amount of space
that was needed in the last `ne' request that caused a trap to be
sprung. Useful in conjunction with the `.trunc' register. *Note
Page Control::, for more information.
- Register: \n[.trunc]
A read-only register containing the amount of vertical space
truncated by the most recently sprung vertical position trap, or,
if the trap was sprung by an `ne' request, minus the amount of
vertical motion produced by the `ne' request. In other words, at
the point a trap is sprung, it represents the difference of what
the vertical position would have been but for the trap, and what
the vertical position actually is.

File: groff, Node: Diversion Traps, Next: Input Line Traps, Prev: Page Location Traps, Up: Traps
Diversion Traps
---------------
- Request: .dt dist macro
Set a trap _within_ a diversion. DIST is the location of the trap
(identical to the `.wh' request; default scaling indicator is `v')
and MACRO is the name of the macro to be invoked. The number
register `.t' still works within diversions. *Note Diversions::,
for more information.

File: groff, Node: Input Line Traps, Next: Blank Line Traps, Prev: Diversion Traps, Up: Traps
Input Line Traps
----------------
- Request: .it n macro
- Request: .itc n macro
Set an input line trap. N is the number of lines of input which
may be read before springing the trap, MACRO is the macro to be
invoked. Request lines are not counted as input lines.
For example, one possible use is to have a macro which prints the
next N lines in a bold font.
.de B
. it \\$1 B-end
. ft B
..
.
.de B-end
. ft R
..
The `itc' request is identical, except that a line interrupted
with `\c' counts as one input line.
Both requests are associated with the current environment (*note
Environments::); switching to another environment disables the
current input trap, and going back reactivates it, restoring the
number of already processed lines.

File: groff, Node: Blank Line Traps, Next: End-of-input Traps, Prev: Input Line Traps, Up: Traps
Blank Line Traps
----------------
- Request: .blm macro
Set a blank line trap. `gtroff' executes MACRO when it encounters
a blank line in the input file.

File: groff, Node: End-of-input Traps, Prev: Blank Line Traps, Up: Traps
End-of-input Traps
------------------
- Request: .em macro
Set a trap at the end of input. MACRO is executed after the last
line of the input file has been processed.
For example, if the document had to have a section at the bottom
of the last page for someone to approve it, the `em' request could
be used.
.de approval
. ne 5v
. sp |(\\n[.t] - 6v)
. in +4i
. lc _
. br
Approved:\t\a
. sp
Date:\t\t\a
..
.
.em approval

View File

@ -1,8 +1,9 @@
This is groff, produced by makeinfo version 4.2 from ./groff.texinfo.
This is groff, produced by makeinfo version 4.3d from ./groff.texinfo.
This manual documents GNU `troff' version 1.18.
This manual documents GNU `troff' version 1.19.
Copyright (C) 1994-2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1994-2000, 2001, 2002, 2003 Free Software Foundation,
Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@ -16,11 +17,267 @@ This manual documents GNU `troff' version 1.18.
modify this GNU Manual, like GNU software. Copies published by
the Free Software Foundation raise funds for GNU development."
INFO-DIR-SECTION Miscellaneous
INFO-DIR-SECTION Typesetting
START-INFO-DIR-ENTRY
* Groff: (groff). The GNU troff document formatting system.
END-INFO-DIR-ENTRY

File: groff, Node: Page Location Traps, Next: Diversion Traps, Prev: Traps, Up: Traps
Page Location Traps
-------------------
"Page location traps" perform an action when `gtroff' reaches or
passes a certain vertical location on the page. Page location traps
have a variety of purposes, including:
* setting headers and footers
* setting body text in multiple columns
* setting footnotes
- Request: .vpt flag
- Register: \n[.vpt]
Enable vertical position traps if FLAG is non-zero, or disables
them otherwise. Vertical position traps are traps set by the `wh'
or `dt' requests. Traps set by the `it' request are not vertical
position traps. The parameter that controls whether vertical
position traps are enabled is global. Initially vertical position
traps are enabled. The current setting of this is available in the
`.vpt' read-only number register.
Note that a page can't be ejected if `vpt' is set to zero.
- Request: .wh dist [macro]
Set a page location trap. Non-negative values for DIST set the
trap relative to the top of the page; negative values set the trap
relative to the bottom of the page. Default scaling indicator is
`v'.
MACRO is the name of the macro to execute when the trap is sprung.
If MACRO is missing, remove the first trap (if any) at DIST.
The following is a simple example of how many macro packages set
headers and footers.
.de hd \" Page header
' sp .5i
. tl 'Title''date'
' sp .3i
..
.
.de fo \" Page footer
' sp 1v
. tl ''%''
' bp
..
.
.wh 0 hd \" trap at top of the page
.wh -1i fo \" trap one inch from bottom
A trap at or below the bottom of the page is ignored; it can be
made active by either moving it up or increasing the page length
so that the trap is on the page.
It is possible to have more than one trap at the same location; to
do so, the traps must be defined at different locations, then
moved together with the `ch' request; otherwise the second trap
would replace the first one. Earlier defined traps hide later
defined traps if moved to the same position (the many empty lines
caused by the `bp' request are omitted in the following example):
.de a
. nop a
..
.de b
. nop b
..
.de c
. nop c
..
.
.wh 1i a
.wh 2i b
.wh 3i c
.bp
=> a b c
.ch b 1i
.ch c 1i
.bp
=> a
.ch a 0.5i
.bp
=> a b
- Register: \n[.t]
A read-only number register holding the distance to the next trap.
If there are no traps between the current position and the bottom
of the page, it contains the distance to the page bottom. In a
diversion, the distance to the page bottom is infinite (the
returned value is the biggest integer which can be represented in
`groff') if there are no diversion traps.
- Request: .ch macro [dist]
Change the location of a trap. The first argument is the name of
the macro to be invoked at the trap, and the second argument is
the new location for the trap (note that the parameters are
specified in opposite order as in the `wh' request). This is
useful for building up footnotes in a diversion to allow more
space at the bottom of the page for them.
Default scaling indicator for DIST is `v'. If DIST is missing,
the trap is removed.
- Register: \n[.ne]
The read-only number register `.ne' contains the amount of space
that was needed in the last `ne' request that caused a trap to be
sprung. Useful in conjunction with the `.trunc' register. *Note
Page Control::, for more information.
Since the `.ne' register is only set by traps it doesn't make much
sense to use it outside of trap macros.
- Register: \n[.trunc]
A read-only register containing the amount of vertical space
truncated by the most recently sprung vertical position trap, or,
if the trap was sprung by an `ne' request, minus the amount of
vertical motion produced by the `ne' request. In other words, at
the point a trap is sprung, it represents the difference of what
the vertical position would have been but for the trap, and what
the vertical position actually is.
Since the `.trunc' register is only set by traps and it doesn't
make much sense to use it outside of trap macros.
- Register: \n[.pe]
A read-only register which is set to 1 while a page is ejected with
the `bp' request (or by the end of input).
Outside of traps this register is always zero. In the following
example, only the second call to `x' is caused by `bp'.
.de x
\&.pe=\\n[.pe]
.br
..
.wh 1v x
.wh 4v x
A line.
.br
Another line.
.br
=> A line.
.pe=0
Another line.
.pe=1
An important fact to consider while designing macros is that
diversions and traps do not interact normally. For example, if a trap
invokes a header macro (while outputting a diversion) which tries to
change the font on the current page, the effect will not be visible
before the diversion has completely been printed (except for input
protected with `\!' or `\?') since the data in the diversion is already
formatted. In most cases, this is not the expected behaviour.

File: groff, Node: Diversion Traps, Next: Input Line Traps, Prev: Page Location Traps, Up: Traps
Diversion Traps
---------------
- Request: .dt dist macro
Set a trap _within_ a diversion. DIST is the location of the trap
(identical to the `wh' request; default scaling indicator is `v')
and MACRO is the name of the macro to be invoked. The number
register `.t' still works within diversions. *Note Diversions::,
for more information.

File: groff, Node: Input Line Traps, Next: Blank Line Traps, Prev: Diversion Traps, Up: Traps
Input Line Traps
----------------
- Request: .it n macro
- Request: .itc n macro
Set an input line trap. N is the number of lines of input which
may be read before springing the trap, MACRO is the macro to be
invoked. Request lines are not counted as input lines.
For example, one possible use is to have a macro which prints the
next N lines in a bold font.
.de B
. it \\$1 B-end
. ft B
..
.
.de B-end
. ft R
..
The `itc' request is identical except that an interrupted text
line (ending with `\c') is not counted as a separate line.
Both requests are associated with the current environment (*note
Environments::); switching to another environment disables the
current input trap, and going back reactivates it, restoring the
number of already processed lines.

File: groff, Node: Blank Line Traps, Next: End-of-input Traps, Prev: Input Line Traps, Up: Traps
Blank Line Traps
----------------
- Request: .blm macro
Set a blank line trap. `gtroff' executes MACRO when it encounters
a blank line in the input file.

File: groff, Node: End-of-input Traps, Prev: Blank Line Traps, Up: Traps
End-of-input Traps
------------------
- Request: .em macro
Set a trap at the end of input. MACRO is executed after the last
line of the input file has been processed.
For example, if the document had to have a section at the bottom
of the last page for someone to approve it, the `em' request could
be used.
.de approval
. ne 5v
. sp |(\\n[.t] - 6v)
. in +4i
. lc _
. br
Approved:\t\a
. sp
Date:\t\t\a
..
.
.em approval

File: groff, Node: Diversions, Next: Environments, Prev: Traps, Up: gtroff Reference
@ -87,7 +344,7 @@ output device).
contains the name of the current diversion (this is a string-valued
register). The read-only number register `.d' contains the current
vertical place in the diversion. If not in a diversion it is the
same as the register `nl'.
same as register `nl'.
- Register: \n[.h]
The "high-water mark" on the current page. It corresponds to the
@ -110,6 +367,10 @@ output device).
- Register: \n[dl]
After completing a diversion, the read-write number registers `dn'
and `dl' contain the vertical and horizontal size of the diversion.
Note that only the just processed lines are counted: For the
computation of `dn' and `dl', the requests `da' and `boxa' are
handled as if `di' and `box' had been used - lines which have been
already stored in a macro are not taken into account.
.\" Center text both horizontally & vertically
@ -150,16 +411,16 @@ output device).
- Escape: \!
- Escape: \?ANYTHING\?
- Escape: \?anything\?
Prevent requests, macros, and escapes from being interpreted when
read into a diversion. This takes the given text and
"transparently" embeds it into the diversion. This is useful for
read into a diversion. Both escapes take the given text and
"transparently" embed it into the diversion. This is useful for
macros which shouldn't be invoked until the diverted text is
actually output.
The `\!' escape transparently embeds text up to and including the
end of the line. The `\?' escape transparently embeds text until
the next occurrence of the `\?' escape. For example:
the next occurrence of the `\?' escape. Example:
\?ANYTHING\?
@ -198,7 +459,7 @@ output device).
- Request: .output string
Emit STRING directly to the `gtroff' intermediate output (subject
to copy-mode interpretation); this is similar to `\!' used at the
to copy-mode interpretation); this is similar to `\!' used at the
top level. An initial double quote in STRING is stripped off to
allow initial blanks.
@ -209,7 +470,7 @@ output device).
Use with caution! It is normally only needed for mark-up used by a
postprocessor which does something with the output before sending
it to the output device, filtering out `string' again.
it to the output device, filtering out STRING again.
- Request: .asciify div
"Unformat" the diversion specified by DIV in such a way that ASCII
@ -333,26 +594,35 @@ environments named `0', `1', and `2'.
* The number of consecutive hyphenated lines (set to zero).
- Register: \n[.w]
- Register: \n[.cht]
- Register: \n[.cdp]
- Register: \n[.csk]
The `\n[.cht]' register contains the maximum extent (above the
baseline) of the last glyph added to the current environment.
The `\n[.w]' register contains the width of the last glyph added
to the current environment.
The `\n[.cdp]' register contains the maximum extent (below the
baseline) of the last glyph added to the current environment.
The `\n[.cht]' register contains the height of the last glyph
added to the current environment.
The `\n[.cdp]' register contains the depth of the last glyph added
to the current environment. It is positive for glyphs extending
below the baseline.
The `\n[.csk]' register contains the "skew" (how far to the right
of the glyph's center that `gtroff' shold place an accent) of the
of the glyph's center that `gtroff' should place an accent) of the
last glyph added to the current environment.
- Register: \n[.n]
The `\n[.n]' register contains the length of the previous output
line in the current environment.

File: groff, Node: Suppressing output, Next: Colors, Prev: Environments, Up: gtroff Reference
Suppressing output
==================
- Escape: \ONUM
- Escape: \Onum
Disable or enable output depending on the value of NUM:
`\O0'
@ -423,7 +693,7 @@ Colors
- Request: .defcolor ident scheme color_components
Define color with name IDENT. SCHEME can be one of the following
values: `rgb' (three components), `cym' (three components), `cmyk'
values: `rgb' (three components), `cmy' (three components), `cmyk'
(four components), and `gray' or `grey' (one component).
Color components can be given either as a hexadecimal string or as
@ -451,9 +721,9 @@ Colors
.defcolor darkgreen rgb 0.1 0.5 0.2
- Escape: \mC
- Escape: \m(CO
- Escape: \m[COLOR]
- Escape: \mc
- Escape: \m(co
- Escape: \m[color]
Set drawing color. The following example shows how to turn the
next four words red.
@ -473,9 +743,9 @@ Colors
.mc \m[red]x\m[]
- Escape: \MC
- Escape: \M(CO
- Escape: \M[COLOR]
- Escape: \Mc
- Escape: \M(co
- Escape: \M[color]
Set background color for filled objects drawn with the `\D'...''
commands.
@ -661,7 +931,7 @@ was not there, `groff' would not know when to stop.
.sy perl -e 'printf ".nr H %d\\n.nr M %d\\n.nr S %d\\n",\
(localtime(time))[2,1,0]' > /tmp/x\n[$$]
(localtime(time))[2,1,0]' > /tmp/x\n[$$]
.so /tmp/x\n[$$]
.sy rm /tmp/x\n[$$]
\nH:\nM:\nS
@ -735,9 +1005,9 @@ was not there, `groff' would not know when to stop.
.close idx
- Escape: \VE
- Escape: \V(EV
- Escape: \V[ENV]
- Escape: \Ve
- Escape: \V(ev
- Escape: \V[env]
Interpolate the contents of the specified environment variable ENV
(one-character name E, two-character name EV) as returned by the
function `getenv'. `\V' is interpreted in copy-in mode.
@ -752,7 +1022,7 @@ Postprocessor Access
postprocessor. This is particularly useful for embedding POSTSCRIPT
into the final document.
- Escape: \X'XXX'
- Escape: \X'xxx'
Embeds its argument into the `gtroff' output preceded with `x X'.
The escapes `\&', `\)', `\%', and `\:' are ignored within `\X',
@ -766,9 +1036,9 @@ into the final document.
`use_charnames_in_special' is currently used by `grohtml' only.
- Escape: \YN
- Escape: \Y(NM
- Escape: \Y[NAME]
- Escape: \Yn
- Escape: \Y(nm
- Escape: \Y[name]
This is approximately equivalent to `\X'\*[NAME]'' (one-character
name N, two-character name NM). However, the contents of the
string or macro NAME are not interpreted; also it is permitted for
@ -1028,10 +1298,10 @@ Debugging
`gtroff' is not easy to debug, but there are some useful features
and strategies for debugging.
- Request: .lf line filename
Change the line number and the file name `gtroff' shall use for
error and warning messages. LINE is the input line number of the
_next_ line.
- Request: .lf line [filename]
Change the line number and optionally the file name `gtroff' shall
use for error and warning messages. LINE is the input line number
of the _next_ line.
Without argument, the request is ignored.
@ -1039,6 +1309,10 @@ and strategies for debugging.
files, then put together with `soelim' and other preprocessors.
Usually, it isn't invoked manually.
Note that other `troff' implementations (including the original
AT&T version) handle `lf' differently. For them, LINE changes the
line number of the _current_ line.
- Request: .tm string
- Request: .tm1 string
- Request: .tmc string
@ -1184,425 +1458,3 @@ occurs. The most verbose level of warnings is `-ww'.
* Warnings::

File: groff, Node: Warnings, Prev: Debugging, Up: Debugging
Warnings
--------
The warnings that can be given to `gtroff' are divided into the
following categories. The name associated with each warning is used by
the `-w' and `-W' options; the number is used by the `warn' request and
by the `.warn' register.
`char'
`1'
Non-existent glyphs.(1) (*note Warnings-Footnote-1::) This is
enabled by default.
`number'
`2'
Invalid numeric expressions. This is enabled by default. *Note
Expressions::.
`break'
`4'
In fill mode, lines which could not be broken so that their length
was less than the line length. This is enabled by default.
`delim'
`8'
Missing or mismatched closing delimiters.
`el'
`16'
Use of the `el' request with no matching `ie' request. *Note
if-else::.
`scale'
`32'
Meaningless scaling indicators.
`range'
`64'
Out of range arguments.
`syntax'
`128'
Dubious syntax in numeric expressions.
`di'
`256'
Use of `di' or `da' without an argument when there is no current
diversion.
`mac'
`512'
Use of undefined strings, macros and diversions. When an undefined
string, macro, or diversion is used, that string is automatically
defined as empty. So, in most cases, at most one warning is given
for each name.
`reg'
`1024'
Use of undefined number registers. When an undefined number
register is used, that register is automatically defined to have a
value of 0. So, in most cases, at most one warning is given for
use of a particular name.
`tab'
`2048'
Use of a tab character where a number was expected.
`right-brace'
`4096'
Use of `\}' where a number was expected.
`missing'
`8192'
Requests that are missing non-optional arguments.
`input'
`16384'
Invalid input characters.
`escape'
`32768'
Unrecognized escape sequences. When an unrecognized escape
sequence `\X' is encountered, the escape character is ignored, and
X is printed.
`space'
`65536'
Missing space between a request or macro and its argument. This
warning is given when an undefined name longer than two characters
is encountered, and the first two characters of the name make a
defined name. The request or macro is not invoked. When this
warning is given, no macro is automatically defined. This is
enabled by default. This warning never occurs in compatibility
mode.
`font'
`131072'
Non-existent fonts. This is enabled by default.
`ig'
`262144'
Invalid escapes in text ignored with the `ig' request. These are
conditions that are errors when they do not occur in ignored text.
`color'
`524288'
Color related warnings.
`all'
All warnings except `di', `mac' and `reg'. It is intended that
this covers all warnings that are useful with traditional macro
packages.
`w'
All warnings.

File: groff, Node: Warnings-Footnotes, Up: Warnings
(1) `char' is a misnomer since it reports missing glyphs - there
aren't missing input characters, only invalid ones.

File: groff, Node: Implementation Differences, Prev: Debugging, Up: gtroff Reference
Implementation Differences
==========================
GNU `troff' has a number of features which cause incompatibilities
with documents written with old versions of `troff'.
Long names cause some incompatibilities. UNIX `troff' interprets
.dsabcd
as defining a string `ab' with contents `cd'. Normally, GNU `troff'
interprets this as a call of a macro named `dsabcd'. Also UNIX `troff'
interprets `\*[' or `\n[' as references to a string or number register
called `['. In GNU `troff', however, this is normally interpreted as
the start of a long name. In compatibility mode GNU `troff' interprets
long names in the traditional way (which means that they are not
recognized as names).
- Request: .cp [n]
- Request: .do cmd
- Register: \n[.C]
If N is missing or non-zero, turn on compatibility mode;
otherwise, turn it off.
The read-only number register `.C' is 1 if compatibility mode is
on, 0 otherwise.
Compatibility mode can be also turned on with the `-C' command line
option.
The `do' request turns off compatibility mode while executing its
arguments as a `gtroff' command.
.do fam T
executes the `fam' request when compatibility mode is enabled.
`gtroff' restores the previous compatibility setting before
interpreting any files sourced by the CMD.
Two other features are controlled by `-C'. If not in compatibility
mode, GNU `troff' preserves the input level in delimited arguments:
.ds xx '
\w'abc\*(xxdef'
In compatibility mode, the string `72def'' is returned; without `-C'
the resulting string is `168' (assuming a TTY output device).
Finally, the escapes `\f', `\H', `\m', `\M', `\R', `\s', and `\S'
are transparent for recognizing the beginning of a line only in
compatibility mode (this is a rather obscure feature). For example,
the code
.de xx
Hallo!
..
\fB.xx\fP
prints `Hallo!' in bold face if in compatibility mode, and `.xx' in
bold face otherwise.
GNU `troff' does not allow the use of the escape sequences `\|',
`\^', `\&', `\{', `\}', `\<SP>', `\'', `\`', `\-', `\_', `\!', `\%',
and `\c' in names of strings, macros, diversions, number registers,
fonts or environments; UNIX `troff' does. The `\A' escape sequence
(*note Identifiers::) may be helpful in avoiding use of these escape
sequences in names.
Fractional point sizes cause one noteworthy incompatibility. In
UNIX `troff' the `ps' request ignores scale indicators and thus
.ps 10u
sets the point size to 10 points, whereas in GNU `troff' it sets the
point size to 10 scaled points. *Note Fractional Type Sizes::, for
more information.
In GNU `troff' there is a fundamental difference between
(unformatted) input characters and (formatted) output glyphs.
Everything that affects how a glyph is output is stored with the glyph
node; once a glyph node has been constructed it is unaffected by any
subsequent requests that are executed, including `bd', `cs', `tkf',
`tr', or `fp' requests. Normally glyphs are constructed from input
characters at the moment immediately before the glyph is added to the
current output line. Macros, diversions and strings are all, in fact,
the same type of object; they contain lists of input characters and
glyph nodes in any combination. A glyph node does not behave like an
input character for the purposes of macro processing; it does not
inherit any of the special properties that the input character from
which it was constructed might have had. For example,
.di x
\\\\
.br
.di
.x
prints `\\' in GNU `troff'; each pair of input backslashes is turned
into one output backslash and the resulting output backslashes are not
interpreted as escape characters when they are reread. UNIX `troff'
would interpret them as escape characters when they were reread and
would end up printing one `\'. The correct way to obtain a printable
backslash is to use the `\e' escape sequence: This always prints a
single instance of the current escape character, regardless of whether
or not it is used in a diversion; it also works in both GNU `troff' and
UNIX `troff'.(1) (*note Implementation Differences-Footnote-1::) To
store, for some reason, an escape sequence in a diversion that will be
interpreted when the diversion is reread, either use the traditional
`\!' transparent output facility, or, if this is unsuitable, the new
`\?' escape sequence.
*Note Diversions::, and *Note Gtroff Internals::, for more
information.

File: groff, Node: Implementation Differences-Footnotes, Up: Implementation Differences
(1) To be completely independent of the current escape character,
use `\(rs' which represents a reverse solidus (backslash) glyph.

File: groff, Node: Preprocessors, Next: Output Devices, Prev: gtroff Reference, Up: Top
Preprocessors
*************
This chapter describes all preprocessors that come with `groff' or
which are freely available.
* Menu:
* geqn::
* gtbl::
* gpic::
* ggrn::
* grap::
* grefer::
* gsoelim::

File: groff, Node: geqn, Next: gtbl, Prev: Preprocessors, Up: Preprocessors
`geqn'
======
* Menu:
* Invoking geqn::

File: groff, Node: Invoking geqn, Prev: geqn, Up: geqn
Invoking `geqn'
---------------

File: groff, Node: gtbl, Next: gpic, Prev: geqn, Up: Preprocessors
`gtbl'
======
* Menu:
* Invoking gtbl::

File: groff, Node: Invoking gtbl, Prev: gtbl, Up: gtbl
Invoking `gtbl'
---------------

File: groff, Node: gpic, Next: ggrn, Prev: gtbl, Up: Preprocessors
`gpic'
======
* Menu:
* Invoking gpic::

File: groff, Node: Invoking gpic, Prev: gpic, Up: gpic
Invoking `gpic'
---------------

File: groff, Node: ggrn, Next: grap, Prev: gpic, Up: Preprocessors
`ggrn'
======
* Menu:
* Invoking ggrn::

File: groff, Node: Invoking ggrn, Prev: ggrn, Up: ggrn
Invoking `ggrn'
---------------

File: groff, Node: grap, Next: grefer, Prev: ggrn, Up: Preprocessors
`grap'
======
A free implementation of `grap', written by Ted Faber, is available
as an extra package from the following address:
<http://www.lunabase.org/~faber/Vault/software/grap/>

File: groff, Node: grefer, Next: gsoelim, Prev: grap, Up: Preprocessors
`grefer'
========
* Menu:
* Invoking grefer::

File: groff, Node: Invoking grefer, Prev: grefer, Up: grefer
Invoking `grefer'
-----------------

File: groff, Node: gsoelim, Prev: grefer, Up: Preprocessors
`gsoelim'
=========
* Menu:
* Invoking gsoelim::

File: groff, Node: Invoking gsoelim, Prev: gsoelim, Up: gsoelim
Invoking `gsoelim'
------------------

File: groff, Node: Output Devices, Next: File formats, Prev: Preprocessors, Up: Top
Output Devices
**************
* Menu:
* Special Characters::
* grotty::
* grops::
* grodvi::
* grolj4::
* grolbp::
* grohtml::
* gxditview::

File: groff, Node: Special Characters, Next: grotty, Prev: Output Devices, Up: Output Devices
Special Characters
==================
*Note Font Files::.

File: groff, Node: grotty, Next: grops, Prev: Special Characters, Up: Output Devices
`grotty'
========
* Menu:
* Invoking grotty::

File: groff, Node: Invoking grotty, Prev: grotty, Up: grotty
Invoking `grotty'
-----------------

View File

@ -1,8 +1,9 @@
This is groff, produced by makeinfo version 4.2 from ./groff.texinfo.
This is groff, produced by makeinfo version 4.3d from ./groff.texinfo.
This manual documents GNU `troff' version 1.18.
This manual documents GNU `troff' version 1.19.
Copyright (C) 1994-2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1994-2000, 2001, 2002, 2003 Free Software Foundation,
Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@ -16,11 +17,433 @@ This manual documents GNU `troff' version 1.18.
modify this GNU Manual, like GNU software. Copies published by
the Free Software Foundation raise funds for GNU development."
INFO-DIR-SECTION Miscellaneous
INFO-DIR-SECTION Typesetting
START-INFO-DIR-ENTRY
* Groff: (groff). The GNU troff document formatting system.
END-INFO-DIR-ENTRY

File: groff, Node: Warnings, Prev: Debugging, Up: Debugging
Warnings
--------
The warnings that can be given to `gtroff' are divided into the
following categories. The name associated with each warning is used by
the `-w' and `-W' options; the number is used by the `warn' request and
by the `.warn' register.
`char'
`1'
Non-existent glyphs.(1) (*note Warnings-Footnote-1::) This is
enabled by default.
`number'
`2'
Invalid numeric expressions. This is enabled by default. *Note
Expressions::.
`break'
`4'
In fill mode, lines which could not be broken so that their length
was less than the line length. This is enabled by default.
`delim'
`8'
Missing or mismatched closing delimiters.
`el'
`16'
Use of the `el' request with no matching `ie' request. *Note
if-else::.
`scale'
`32'
Meaningless scaling indicators.
`range'
`64'
Out of range arguments.
`syntax'
`128'
Dubious syntax in numeric expressions.
`di'
`256'
Use of `di' or `da' without an argument when there is no current
diversion.
`mac'
`512'
Use of undefined strings, macros and diversions. When an undefined
string, macro, or diversion is used, that string is automatically
defined as empty. So, in most cases, at most one warning is given
for each name.
`reg'
`1024'
Use of undefined number registers. When an undefined number
register is used, that register is automatically defined to have a
value of 0. So, in most cases, at most one warning is given for
use of a particular name.
`tab'
`2048'
Use of a tab character where a number was expected.
`right-brace'
`4096'
Use of `\}' where a number was expected.
`missing'
`8192'
Requests that are missing non-optional arguments.
`input'
`16384'
Invalid input characters.
`escape'
`32768'
Unrecognized escape sequences. When an unrecognized escape
sequence `\X' is encountered, the escape character is ignored, and
X is printed.
`space'
`65536'
Missing space between a request or macro and its argument. This
warning is given when an undefined name longer than two characters
is encountered, and the first two characters of the name make a
defined name. The request or macro is not invoked. When this
warning is given, no macro is automatically defined. This is
enabled by default. This warning never occurs in compatibility
mode.
`font'
`131072'
Non-existent fonts. This is enabled by default.
`ig'
`262144'
Invalid escapes in text ignored with the `ig' request. These are
conditions that are errors when they do not occur in ignored text.
`color'
`524288'
Color related warnings.
`all'
All warnings except `di', `mac' and `reg'. It is intended that
this covers all warnings that are useful with traditional macro
packages.
`w'
All warnings.

File: groff, Node: Warnings-Footnotes, Up: Warnings
(1) `char' is a misnomer since it reports missing glyphs - there
aren't missing input characters, only invalid ones.

File: groff, Node: Implementation Differences, Prev: Debugging, Up: gtroff Reference
Implementation Differences
==========================
GNU `troff' has a number of features which cause incompatibilities
with documents written with old versions of `troff'.
Long names cause some incompatibilities. UNIX `troff' interprets
.dsabcd
as defining a string `ab' with contents `cd'. Normally, GNU `troff'
interprets this as a call of a macro named `dsabcd'. Also UNIX `troff'
interprets `\*[' or `\n[' as references to a string or number register
called `['. In GNU `troff', however, this is normally interpreted as
the start of a long name. In compatibility mode GNU `troff' interprets
long names in the traditional way (which means that they are not
recognized as names).
- Request: .cp [n]
- Request: .do cmd
- Register: \n[.C]
If N is missing or non-zero, turn on compatibility mode;
otherwise, turn it off.
The read-only number register `.C' is 1 if compatibility mode is
on, 0 otherwise.
Compatibility mode can be also turned on with the `-C' command line
option.
The `do' request turns off compatibility mode while executing its
arguments as a `gtroff' command.
.do fam T
executes the `fam' request when compatibility mode is enabled.
`gtroff' restores the previous compatibility setting before
interpreting any files sourced by the CMD.
Two other features are controlled by `-C'. If not in compatibility
mode, GNU `troff' preserves the input level in delimited arguments:
.ds xx '
\w'abc\*(xxdef'
In compatibility mode, the string `72def'' is returned; without `-C'
the resulting string is `168' (assuming a TTY output device).
Finally, the escapes `\f', `\H', `\m', `\M', `\R', `\s', and `\S'
are transparent for recognizing the beginning of a line only in
compatibility mode (this is a rather obscure feature). For example,
the code
.de xx
Hallo!
..
\fB.xx\fP
prints `Hallo!' in bold face if in compatibility mode, and `.xx' in
bold face otherwise.
GNU `troff' does not allow the use of the escape sequences `\|',
`\^', `\&', `\{', `\}', `\<SP>', `\'', `\`', `\-', `\_', `\!', `\%',
and `\c' in names of strings, macros, diversions, number registers,
fonts or environments; UNIX `troff' does. The `\A' escape sequence
(*note Identifiers::) may be helpful in avoiding use of these escape
sequences in names.
Fractional point sizes cause one noteworthy incompatibility. In
UNIX `troff' the `ps' request ignores scale indicators and thus
.ps 10u
sets the point size to 10 points, whereas in GNU `troff' it sets the
point size to 10 scaled points. *Note Fractional Type Sizes::, for
more information.
In GNU `troff' there is a fundamental difference between
(unformatted) input characters and (formatted) output glyphs.
Everything that affects how a glyph is output is stored with the glyph
node; once a glyph node has been constructed it is unaffected by any
subsequent requests that are executed, including `bd', `cs', `tkf',
`tr', or `fp' requests. Normally glyphs are constructed from input
characters at the moment immediately before the glyph is added to the
current output line. Macros, diversions and strings are all, in fact,
the same type of object; they contain lists of input characters and
glyph nodes in any combination. A glyph node does not behave like an
input character for the purposes of macro processing; it does not
inherit any of the special properties that the input character from
which it was constructed might have had. For example,
.di x
\\\\
.br
.di
.x
prints `\\' in GNU `troff'; each pair of input backslashes is turned
into one output backslash and the resulting output backslashes are not
interpreted as escape characters when they are reread. UNIX `troff'
would interpret them as escape characters when they were reread and
would end up printing one `\'. The correct way to obtain a printable
backslash is to use the `\e' escape sequence: This always prints a
single instance of the current escape character, regardless of whether
or not it is used in a diversion; it also works in both GNU `troff' and
UNIX `troff'.(1) (*note Implementation Differences-Footnote-1::) To
store, for some reason, an escape sequence in a diversion that will be
interpreted when the diversion is reread, either use the traditional
`\!' transparent output facility, or, if this is unsuitable, the new
`\?' escape sequence.
*Note Diversions::, and *Note Gtroff Internals::, for more
information.

File: groff, Node: Implementation Differences-Footnotes, Up: Implementation Differences
(1) To be completely independent of the current escape character,
use `\(rs' which represents a reverse solidus (backslash) glyph.

File: groff, Node: Preprocessors, Next: Output Devices, Prev: gtroff Reference, Up: Top
Preprocessors
*************
This chapter describes all preprocessors that come with `groff' or
which are freely available.
* Menu:
* geqn::
* gtbl::
* gpic::
* ggrn::
* grap::
* grefer::
* gsoelim::

File: groff, Node: geqn, Next: gtbl, Prev: Preprocessors, Up: Preprocessors
`geqn'
======
* Menu:
* Invoking geqn::

File: groff, Node: Invoking geqn, Prev: geqn, Up: geqn
Invoking `geqn'
---------------

File: groff, Node: gtbl, Next: gpic, Prev: geqn, Up: Preprocessors
`gtbl'
======
* Menu:
* Invoking gtbl::

File: groff, Node: Invoking gtbl, Prev: gtbl, Up: gtbl
Invoking `gtbl'
---------------

File: groff, Node: gpic, Next: ggrn, Prev: gtbl, Up: Preprocessors
`gpic'
======
* Menu:
* Invoking gpic::

File: groff, Node: Invoking gpic, Prev: gpic, Up: gpic
Invoking `gpic'
---------------

File: groff, Node: ggrn, Next: grap, Prev: gpic, Up: Preprocessors
`ggrn'
======
* Menu:
* Invoking ggrn::

File: groff, Node: Invoking ggrn, Prev: ggrn, Up: ggrn
Invoking `ggrn'
---------------

File: groff, Node: grap, Next: grefer, Prev: ggrn, Up: Preprocessors
`grap'
======
A free implementation of `grap', written by Ted Faber, is available
as an extra package from the following address:
`http://www.lunabase.org/~faber/Vault/software/grap/'

File: groff, Node: grefer, Next: gsoelim, Prev: grap, Up: Preprocessors
`grefer'
========
* Menu:
* Invoking grefer::

File: groff, Node: Invoking grefer, Prev: grefer, Up: grefer
Invoking `grefer'
-----------------

File: groff, Node: gsoelim, Prev: grefer, Up: Preprocessors
`gsoelim'
=========
* Menu:
* Invoking gsoelim::

File: groff, Node: Invoking gsoelim, Prev: gsoelim, Up: gsoelim
Invoking `gsoelim'
------------------

File: groff, Node: Output Devices, Next: File formats, Prev: Preprocessors, Up: Top
Output Devices
**************
* Menu:
* Special Characters::
* grotty::
* grops::
* grodvi::
* grolj4::
* grolbp::
* grohtml::
* gxditview::

File: groff, Node: Special Characters, Next: grotty, Prev: Output Devices, Up: Output Devices
Special Characters
==================
*Note Font Files::.

File: groff, Node: grotty, Next: grops, Prev: Special Characters, Up: Output Devices
`grotty'
========
* Menu:
* Invoking grotty::

File: groff, Node: Invoking grotty, Prev: grotty, Up: grotty
Invoking `grotty'
-----------------

File: groff, Node: grops, Next: grodvi, Prev: grotty, Up: Output Devices
@ -215,7 +638,7 @@ File: groff, Node: gtroff Output-Footnotes, Up: gtroff Output
(1) The parser and postprocessor for intermediate output can be
found in the file
`GROFF-SOURCE-DIR/src/libs/libdriver/input.cc'.
`GROFF-SOURCE-DIR/src/libs/libdriver/input.cpp'.

File: groff, Node: Language Concepts, Next: Command Reference, Prev: gtroff Output, Up: gtroff Output
@ -446,6 +869,7 @@ string argument.
Set color using the RGB color scheme, having the 3 color
components RED, GREEN, and BLUE.
`N N'
Print glyph with index N (a non-negative integer) of the current
font. This command is a `gtroff' extension.
@ -509,6 +933,7 @@ string argument.
Informs about a paddable white space to increase readability. The
spacing itself must be performed explicitly by a move command.

File: groff, Node: Simple Commands-Footnotes, Up: Simple Commands
@ -542,9 +967,8 @@ called V1, V2, ..., VN stand for vertical distances where positive
means down, negative up. All these distances are offsets relative to
the current location.
Unless indicated otherwise, each graphics command directly
corresponds to a similar `gtroff' `\D' escape sequence. *Note Drawing
Requests::.
Each graphics command directly corresponds to a similar `gtroff'
`\D' escape sequence. *Note Drawing Requests::.
Unknown `D' commands are assumed to be device-specific. Its
arguments are parsed as strings; the whole information is then sent to
@ -625,6 +1049,7 @@ means a syntactical line break as defined above.
Set fill color for solid drawing objects using the RGB color
scheme, having the 3 color components RED, GREEN, and BLUE.
`Df N<line break>'
The argument N must be an integer in the range -32767 to 32767.
@ -634,7 +1059,7 @@ means a syntactical line break as defined above.
to solid black, and values in between to intermediate shades
of gray; this is obsoleted by command `DFg'.
N < 0 or N < 1000
N < 0 or N > 1000
Set the filling color to the color that is currently being
used for the text and the outline, see command `m'. For
example, the command sequence
@ -645,6 +1070,7 @@ means a syntactical line break as defined above.
sets all colors to blue.
No position changing. This command is a `gtroff' extension.
`Dl H V<line break>'
@ -675,6 +1101,7 @@ means a syntactical line break as defined above.
position is not changed. Although this doesn't make sense it is
kept for compatibility. This command is a `gtroff' extension.

File: groff, Node: Device Control Commands, Next: Obsolete Command, Prev: Graphics Commands, Up: Command Reference
@ -785,6 +1212,7 @@ syntactical line break (*note Separation::).
escape sequence `\X'. The line-continuing feature is a `gtroff'
extension.

File: groff, Node: Obsolete Command, Prev: Device Control Commands, Up: Command Reference
@ -808,6 +1236,7 @@ DDG
of these and other commands are used, mostly without spaces; this
made such output almost unreadable.
For modern high-resolution devices, this command does not make sense
because the width of the glyphs can become much larger than two decimal
digits. In `gtroff', this is only used for the devices `X75',
@ -917,6 +1346,7 @@ AT&T `troff' output
Due to the obsolete jump-and-write command, the text clusters in
the AT&T `troff' output are almost unreadable.

File: groff, Node: Output Language Compatibility, Prev: Intermediate Output Examples, Up: gtroff Output
@ -984,285 +1414,3 @@ File: groff, Node: Font Files-Footnotes, Up: Font Files
(1) Plan 9 `troff' has also abandoned the binary format.

File: groff, Node: DESC File Format, Next: Font File Format, Prev: Font Files, Up: Font Files
`DESC' File Format
------------------
The `DESC' file can contain the following types of line. Except for
the `charset' keyword which must comes last (if at all), the order of
the lines is not important.
`res N'
There are N machine units per inch.
`hor N'
The horizontal resolution is N machine units.
`vert N'
The vertical resolution is N machine units.
`sizescale N'
The scale factor for point sizes. By default this has a value
of 1. One scaled point is equal to one point/N. The arguments to
the `unitwidth' and `sizes' commands are given in scaled points.
*Note Fractional Type Sizes::, for more information.
`unitwidth N'
Quantities in the font files are given in machine units for fonts
whose point size is N scaled points.
`prepro PROGRAM'
Call PROGRAM as a preprocessor. Currently, this keyword is used
by `groff' with option `-Thtml' only.
`postpro PROGRAM'
Call PROGRAM as a postprocessor. For example, the line
postpro grodvi
in the file `devdvi/DESC' makes `groff' call `grodvi' if option
`-Tdvi' is given (and `-Z' isn't used).
`tcommand'
This means that the postprocessor can handle the `t' and `u'
intermediate output commands.
`sizes S1 S2 ... SN 0'
This means that the device has fonts at S1, S2, ... SN scaled
points. The list of sizes must be terminated by 0 (this is digit
zero). Each SI can also be a range of sizes M-N. The list can
extend over more than one line.
`styles S1 S2 ... SM'
The first M font positions are associated with styles S1 ... SM.
`fonts N F1 F2 F3 ... FN'
Fonts F1 ... FN are mounted in the font positions M+1, ..., M+N
where M is the number of styles. This command may extend over
more than one line. A font name of 0 means no font is mounted on
the corresponding font position.
`family FAM'
The default font family is FAM.
`use_charnames_in_special'
This command indicates that `gtroff' should encode special
characters inside special commands. Currently, this is only used
by the HTML output device. *Note Postprocessor Access::.
`papersize STRING ...'
Select a paper size. Valid values for STRING are the ISO paper
types `A0'-`A7', `B0'-`B7', `C0'-`C7', `D0'-`D7', `DL', and the US
paper types `letter', `legal', `tabloid', `ledger', `statement',
`executive', `com10', and `monarch'. Case is not significant for
STRING if it holds predefined paper types. Alternatively, STRING
can be a file name (e.g. `/etc/papersize'); if the file can be
opened, `groff' reads the first line and tests for the above paper
sizes. Finally, STRING can be a custom paper size in the format
`LENGTH,WIDTH' (no spaces before and after the comma). Both
LENGTH and WIDTH must have a unit appended; valid values are `i'
for inches, `C' for centimeters, `p' for points, and `P' for
picas. Example: `12c,235p'. An argument which starts with a
digit is always treated as a custom paper format. `papersize'
sets both the vertical and horizontal dimension of the output
medium.
More than one argument can be specified; `groff' scans from left to
right and uses the first valid paper specification.
`pass_filenames'
Tell `gtroff' to emit the name of the source file currently being
processed. This is achieved by the intermediate output command
`F'. Currently, this is only used by the HTML output device.
`print PROGRAM'
Use PROGRAM as a spooler program for printing. If omitted, the
`-l' and `-L' options of `groff' are ignored.
`charset'
This line and everything following in the file are ignored. It is
allowed for the sake of backwards compatibility.
The `res', `unitwidth', `fonts', and `sizes' lines are mandatory.
Other commands are ignored by `gtroff' but may be used by
postprocessors to store arbitrary information about the device in the
`DESC' file.
Here a list of obsolete keywords which are recognized by `groff' but
completely ignored: `spare1', `spare2', `biggestfont'.

File: groff, Node: Font File Format, Prev: DESC File Format, Up: Font Files
Font File Format
----------------
A "font file", also (and probably better) called a "font description
file", has two sections. The first section is a sequence of lines each
containing a sequence of blank delimited words; the first word in the
line is a key, and subsequent words give a value for that key.
`name F'
The name of the font is F.
`spacewidth N'
The normal width of a space is N.
`slant N'
The glyphs of the font have a slant of N degrees. (Positive means
forward.)
`ligatures LIG1 LIG2 ... LIGN [0]'
Glyphs LIG1, LIG2, ..., LIGN are ligatures; possible ligatures are
`ff', `fi', `fl', `ffi' and `ffl'. For backwards compatibility,
the list of ligatures may be terminated with a 0. The list of
ligatures may not extend over more than one line.
`special'
The font is "special"; this means that when a glyph is requested
that is not present in the current font, it is searched for in any
special fonts that are mounted.
Other commands are ignored by `gtroff' but may be used by
postprocessors to store arbitrary information about the font in the font
file.
The first section can contain comments which start with the `#'
character and extend to the end of a line.
The second section contains one or two subsections. It must contain
a `charset' subsection and it may also contain a `kernpairs'
subsection. These subsections can appear in any order. Each
subsection starts with a word on a line by itself.
The word `charset' starts the character set subsection.(1) (*note
Font File Format-Footnote-1::) The `charset' line is followed by a
sequence of lines. Each line gives information for one glyph. A line
comprises a number of fields separated by blanks or tabs. The format is
NAME METRICS TYPE CODE [ENTITY-NAME] [`--' COMMENT]
NAME identifies the glyph name(2) (*note Font File Format-Footnote-2::):
If NAME is a single character C then it corresponds to the `gtroff'
input character C; if it is of the form `\C' where C is a single
character, then it corresponds to the special character `\[C]';
otherwise it corresponds to the special character `\[NAME]'. If it is
exactly two characters XX it can be entered as `\(XX'. Note that
single-letter special characters can't be accessed as `\C'; the only
exception is `\-' which is identical to `\[-]'.
`gtroff' supports 8-bit input characters; however some utilities
have difficulties with eight-bit characters. For this reason, there is
a convention that the entity name `charN' is equivalent to the single
input character whose code is N. For example, `char163' would be
equivalent to the character with code 163 which is the pounds sterling
sign in the ISO Latin-1 character set. You shouldn't use `charN'
entities in font description files since they are related to input, not
output. Otherwise, you get hard-coded connections between input and
output encoding which prevents use of different (input) character sets.
The name `---' is special and indicates that the glyph is unnamed;
such glyphs can only be used by means of the `\N' escape sequence in
`gtroff'.
The TYPE field gives the glyph type:
`1'
the glyph has a descender, for example, `p';
`2'
the glyph has an ascender, for example, `b';
`3'
the glyph has both an ascender and a descender, for example, `('.
The CODE field gives the code which the postprocessor uses to print
the glyph. The glyph can also be input to `gtroff' using this code by
means of the `\N' escape sequence. CODE can be any integer. If it
starts with `0' it is interpreted as octal; if it starts with `0x' or
`0X' it is interpreted as hexadecimal. Note, however, that the `\N'
escape sequence only accepts a decimal integer.
The ENTITY-NAME field gives an ASCII string identifying the glyph
which the postprocessor uses to print the `gtroff' glyph NAME. This
field is optional and has been introduced so that the HTML device
driver can encode its character set. For example, the glyph `\[Po]' is
represented as `&pound;' in HTML 4.0.
Anything on the line after the ENTITY-NAME field resp. after `--'
will be ignored.
The METRICS field has the form:
WIDTH[`,'HEIGHT[`,'DEPTH[`,'ITALIC-CORRECTION
[`,'LEFT-ITALIC-CORRECTION[`,'SUBSCRIPT-CORRECTION]]]]]
There must not be any spaces between these subfields (it has been split
here into two lines for better legibility only). Missing subfields are
assumed to be 0. The subfields are all decimal integers. Since there
is no associated binary format, these values are not required to fit
into a variable of type `char' as they are in `ditroff'. The WIDTH
subfield gives the width of the glyph. The HEIGHT subfield gives the
height of the glyph (upwards is positive); if a glyph does not extend
above the baseline, it should be given a zero height, rather than a
negative height. The DEPTH subfield gives the depth of the glyph, that
is, the distance from the baseline to the lowest point below the
baseline to which the glyph extends (downwards is positive); if a glyph
does not extend below the baseline, it should be given a zero depth,
rather than a negative depth. The ITALIC-CORRECTION subfield gives the
amount of space that should be added after the glyph when it is
immediately to be followed by a glyph from a roman font. The
LEFT-ITALIC-CORRECTION subfield gives the amount of space that should
be added before the glyph when it is immediately to be preceded by a
glyph from a roman font. The SUBSCRIPT-CORRECTION gives the amount of
space that should be added after a glyph before adding a subscript.
This should be less than the italic correction.
A line in the `charset' section can also have the format
NAME "
This indicates that NAME is just another name for the glyph mentioned
in the preceding line.
The word `kernpairs' starts the kernpairs section. This contains a
sequence of lines of the form:
C1 C2 N
This means that when glyph C1 appears next to glyph C2 the space
between them should be increased by N. Most entries in the kernpairs
section have a negative value for N.

File: groff, Node: Font File Format-Footnotes, Up: Font File Format
(1) This keyword is misnamed since it starts a list of ordered
glyphs, not characters.
(2) The distinction between input, characters, and output, glyphs,
is not clearly separated in the terminology of `groff'; for example,
the `char' request should be called `glyph' since it defines an output
entity.

File: groff, Node: Installation, Next: Copying This Manual, Prev: File formats, Up: Top
Installation
************

File: groff, Node: Copying This Manual, Next: Request Index, Prev: Installation, Up: Top
Copying This Manual
*******************
* Menu:
* GNU Free Documentation License:: License for copying this manual.

View File

@ -1,8 +1,9 @@
This is groff, produced by makeinfo version 4.2 from ./groff.texinfo.
This is groff, produced by makeinfo version 4.3d from ./groff.texinfo.
This manual documents GNU `troff' version 1.18.
This manual documents GNU `troff' version 1.19.
Copyright (C) 1994-2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1994-2000, 2001, 2002, 2003 Free Software Foundation,
Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@ -16,11 +17,295 @@ This manual documents GNU `troff' version 1.18.
modify this GNU Manual, like GNU software. Copies published by
the Free Software Foundation raise funds for GNU development."
INFO-DIR-SECTION Miscellaneous
INFO-DIR-SECTION Typesetting
START-INFO-DIR-ENTRY
* Groff: (groff). The GNU troff document formatting system.
END-INFO-DIR-ENTRY

File: groff, Node: DESC File Format, Next: Font File Format, Prev: Font Files, Up: Font Files
`DESC' File Format
------------------
The `DESC' file can contain the following types of line. Except for
the `charset' keyword which must comes last (if at all), the order of
the lines is not important.
`res N'
There are N machine units per inch.
`hor N'
The horizontal resolution is N machine units. All horizontal
quantities are rounded to be multiples of this value.
`vert N'
The vertical resolution is N machine units. All vertical
quantities are rounded to be multiples of this value.
`sizescale N'
The scale factor for point sizes. By default this has a value
of 1. One scaled point is equal to one point/N. The arguments to
the `unitwidth' and `sizes' commands are given in scaled points.
*Note Fractional Type Sizes::, for more information.
`unitwidth N'
Quantities in the font files are given in machine units for fonts
whose point size is N scaled points.
`prepro PROGRAM'
Call PROGRAM as a preprocessor. Currently, this keyword is used
by `groff' with option `-Thtml' only.
`postpro PROGRAM'
Call PROGRAM as a postprocessor. For example, the line
postpro grodvi
in the file `devdvi/DESC' makes `groff' call `grodvi' if option
`-Tdvi' is given (and `-Z' isn't used).
`tcommand'
This means that the postprocessor can handle the `t' and `u'
intermediate output commands.
`sizes S1 S2 ... SN 0'
This means that the device has fonts at S1, S2, ... SN scaled
points. The list of sizes must be terminated by 0 (this is digit
zero). Each SI can also be a range of sizes M-N. The list can
extend over more than one line.
`styles S1 S2 ... SM'
The first M font positions are associated with styles S1 ... SM.
`fonts N F1 F2 F3 ... FN'
Fonts F1 ... FN are mounted in the font positions M+1, ..., M+N
where M is the number of styles. This command may extend over
more than one line. A font name of 0 means no font is mounted on
the corresponding font position.
`family FAM'
The default font family is FAM.
`use_charnames_in_special'
This command indicates that `gtroff' should encode special
characters inside special commands. Currently, this is only used
by the HTML output device. *Note Postprocessor Access::.
`papersize STRING ...'
Select a paper size. Valid values for STRING are the ISO paper
types `A0'-`A7', `B0'-`B7', `C0'-`C7', `D0'-`D7', `DL', and the US
paper types `letter', `legal', `tabloid', `ledger', `statement',
`executive', `com10', and `monarch'. Case is not significant for
STRING if it holds predefined paper types. Alternatively, STRING
can be a file name (e.g. `/etc/papersize'); if the file can be
opened, `groff' reads the first line and tests for the above paper
sizes. Finally, STRING can be a custom paper size in the format
`LENGTH,WIDTH' (no spaces before and after the comma). Both
LENGTH and WIDTH must have a unit appended; valid values are `i'
for inches, `C' for centimeters, `p' for points, and `P' for
picas. Example: `12c,235p'. An argument which starts with a
digit is always treated as a custom paper format. `papersize'
sets both the vertical and horizontal dimension of the output
medium.
More than one argument can be specified; `groff' scans from left to
right and uses the first valid paper specification.
`pass_filenames'
Tell `gtroff' to emit the name of the source file currently being
processed. This is achieved by the intermediate output command
`F'. Currently, this is only used by the HTML output device.
`print PROGRAM'
Use PROGRAM as a spooler program for printing. If omitted, the
`-l' and `-L' options of `groff' are ignored.
`charset'
This line and everything following in the file are ignored. It is
allowed for the sake of backwards compatibility.
The `res', `unitwidth', `fonts', and `sizes' lines are mandatory.
Other commands are ignored by `gtroff' but may be used by
postprocessors to store arbitrary information about the device in the
`DESC' file.
Here a list of obsolete keywords which are recognized by `groff' but
completely ignored: `spare1', `spare2', `biggestfont'.

File: groff, Node: Font File Format, Prev: DESC File Format, Up: Font Files
Font File Format
----------------
A "font file", also (and probably better) called a "font description
file", has two sections. The first section is a sequence of lines each
containing a sequence of blank delimited words; the first word in the
line is a key, and subsequent words give a value for that key.
`name F'
The name of the font is F.
`spacewidth N'
The normal width of a space is N.
`slant N'
The glyphs of the font have a slant of N degrees. (Positive means
forward.)
`ligatures LIG1 LIG2 ... LIGN [0]'
Glyphs LIG1, LIG2, ..., LIGN are ligatures; possible ligatures are
`ff', `fi', `fl', `ffi' and `ffl'. For backwards compatibility,
the list of ligatures may be terminated with a 0. The list of
ligatures may not extend over more than one line.
`special'
The font is "special"; this means that when a glyph is requested
that is not present in the current font, it is searched for in any
special fonts that are mounted.
Other commands are ignored by `gtroff' but may be used by
postprocessors to store arbitrary information about the font in the font
file.
The first section can contain comments which start with the `#'
character and extend to the end of a line.
The second section contains one or two subsections. It must contain
a `charset' subsection and it may also contain a `kernpairs'
subsection. These subsections can appear in any order. Each
subsection starts with a word on a line by itself.
The word `charset' starts the character set subsection.(1) (*note
Font File Format-Footnote-1::) The `charset' line is followed by a
sequence of lines. Each line gives information for one glyph. A line
comprises a number of fields separated by blanks or tabs. The format is
NAME METRICS TYPE CODE [ENTITY-NAME] [`--' COMMENT]
NAME identifies the glyph name(2) (*note Font File Format-Footnote-2::):
If NAME is a single character C then it corresponds to the `gtroff'
input character C; if it is of the form `\C' where C is a single
character, then it corresponds to the special character `\[C]';
otherwise it corresponds to the special character `\[NAME]'. If it is
exactly two characters XX it can be entered as `\(XX'. Note that
single-letter special characters can't be accessed as `\C'; the only
exception is `\-' which is identical to `\[-]'.
`gtroff' supports 8-bit input characters; however some utilities
have difficulties with eight-bit characters. For this reason, there is
a convention that the entity name `charN' is equivalent to the single
input character whose code is N. For example, `char163' would be
equivalent to the character with code 163 which is the pounds sterling
sign in the ISO Latin-1 character set. You shouldn't use `charN'
entities in font description files since they are related to input, not
output. Otherwise, you get hard-coded connections between input and
output encoding which prevents use of different (input) character sets.
The name `---' is special and indicates that the glyph is unnamed;
such glyphs can only be used by means of the `\N' escape sequence in
`gtroff'.
The TYPE field gives the glyph type:
`1'
the glyph has a descender, for example, `p';
`2'
the glyph has an ascender, for example, `b';
`3'
the glyph has both an ascender and a descender, for example, `('.
The CODE field gives the code which the postprocessor uses to print
the glyph. The glyph can also be input to `gtroff' using this code by
means of the `\N' escape sequence. CODE can be any integer. If it
starts with `0' it is interpreted as octal; if it starts with `0x' or
`0X' it is interpreted as hexadecimal. Note, however, that the `\N'
escape sequence only accepts a decimal integer.
The ENTITY-NAME field gives an ASCII string identifying the glyph
which the postprocessor uses to print the `gtroff' glyph NAME. This
field is optional and has been introduced so that the HTML device
driver can encode its character set. For example, the glyph `\[Po]' is
represented as `&pound;' in HTML 4.0.
Anything on the line after the ENTITY-NAME field resp. after `--'
will be ignored.
The METRICS field has the form:
WIDTH[`,'HEIGHT[`,'DEPTH[`,'ITALIC-CORRECTION
[`,'LEFT-ITALIC-CORRECTION[`,'SUBSCRIPT-CORRECTION]]]]]
There must not be any spaces between these subfields (it has been split
here into two lines for better legibility only). Missing subfields are
assumed to be 0. The subfields are all decimal integers. Since there
is no associated binary format, these values are not required to fit
into a variable of type `char' as they are in `ditroff'. The WIDTH
subfield gives the width of the glyph. The HEIGHT subfield gives the
height of the glyph (upwards is positive); if a glyph does not extend
above the baseline, it should be given a zero height, rather than a
negative height. The DEPTH subfield gives the depth of the glyph, that
is, the distance from the baseline to the lowest point below the
baseline to which the glyph extends (downwards is positive); if a glyph
does not extend below the baseline, it should be given a zero depth,
rather than a negative depth. The ITALIC-CORRECTION subfield gives the
amount of space that should be added after the glyph when it is
immediately to be followed by a glyph from a roman font. The
LEFT-ITALIC-CORRECTION subfield gives the amount of space that should
be added before the glyph when it is immediately to be preceded by a
glyph from a roman font. The SUBSCRIPT-CORRECTION gives the amount of
space that should be added after a glyph before adding a subscript.
This should be less than the italic correction.
A line in the `charset' section can also have the format
NAME "
This indicates that NAME is just another name for the glyph mentioned
in the preceding line.
The word `kernpairs' starts the kernpairs section. This contains a
sequence of lines of the form:
C1 C2 N
This means that when glyph C1 appears next to glyph C2 the space
between them should be increased by N. Most entries in the kernpairs
section have a negative value for N.

File: groff, Node: Font File Format-Footnotes, Up: Font File Format
(1) This keyword is misnamed since it starts a list of ordered
glyphs, not characters.
(2) The distinction between input, characters, and output, glyphs,
is not clearly separated in the terminology of `groff'; for example,
the `char' request should be called `glyph' since it defines an output
entity.

File: groff, Node: Installation, Next: Copying This Manual, Prev: File formats, Up: Top
Installation
************

File: groff, Node: Copying This Manual, Next: Request Index, Prev: Installation, Up: Top
Copying This Manual
*******************
* Menu:
* GNU Free Documentation License:: License for copying this manual.

File: groff, Node: GNU Free Documentation License, Up: Copying This Manual
@ -447,6 +732,7 @@ either `.' or `'').
* chop: Strings.
* close: I/O.
* color: Colors.
* composite: Using Symbols.
* continue: while.
* cp: Implementation Differences.
* cs: Artificial Fonts.
@ -476,6 +762,7 @@ either `.' or `'').
* fi: Manipulating Filling and Adjusting.
* fl: Debugging.
* fp: Font Positions.
* fschar: Using Symbols.
* fspecial: Special Fonts.
* ft <1>: Font Positions.
* ft: Changing Fonts.
@ -540,6 +827,7 @@ either `.' or `'').
* rchar: Using Symbols.
* rd: I/O.
* return: Writing Macros.
* rfschar: Using Symbols.
* rj: Manipulating Filling and Adjusting.
* rm: Strings.
* rn: Strings.
@ -547,6 +835,7 @@ either `.' or `'').
* rr: Setting Registers.
* rs: Manipulating Spacing.
* rt: Page Motions.
* schar: Using Symbols.
* shc: Manipulating Hyphenation.
* shift: Parameters.
* sizes: Changing Type Sizes.
@ -596,7 +885,6 @@ warning, printing glyph X.
* Menu:
* <colon>: Manipulating Hyphenation.
* \: Using Symbols.
* \!: Diversions.
* \": Comments.
@ -615,6 +903,7 @@ warning, printing glyph X.
* \.: Character Translations.
* \/: Ligatures and Kerning.
* \0: Page Motions.
* \<colon>: Manipulating Hyphenation.
* \<RET>: Line Control.
* \<SP>: Page Motions.
* \?: Diversions.
@ -694,238 +983,3 @@ Operator Index
* >=: Expressions.
* >?: Expressions.

File: groff, Node: Register Index, Next: Macro Index, Prev: Operator Index, Up: Top
Register Index
**************
The macro package or program a specific register belongs to is
appended in brackets.
A register name `x' consisting of exactly one character can be
accessed as `\nx'. A register name `xx' consisting of exactly two
characters can be accessed as `\n(xx'. Register names `xxx' of any
length can be accessed as `\n[xxx]'.
* Menu:
* $$: Built-in Registers.
* %: Page Layout.
* .$: Parameters.
* .a: Manipulating Spacing.
* .A: Built-in Registers.
* .b: Artificial Fonts.
* .C: Implementation Differences.
* .c: Built-in Registers.
* .cdp: Environments.
* .ce: Manipulating Filling and Adjusting.
* .cht: Environments.
* .color: Colors.
* .csk: Environments.
* .d: Diversions.
* .ev: Environments.
* .f: Font Positions.
* .F: Built-in Registers.
* .fam: Font Families.
* .fn: Font Families.
* .fp: Font Positions.
* .g: Built-in Registers.
* .h: Diversions.
* .H: Built-in Registers.
* .hla: Manipulating Hyphenation.
* .hlc: Manipulating Hyphenation.
* .hlm: Manipulating Hyphenation.
* .hy: Manipulating Hyphenation.
* .hym: Manipulating Hyphenation.
* .hys: Manipulating Hyphenation.
* .i: Line Layout.
* .in: Line Layout.
* .int: Line Control.
* .j: Manipulating Filling and Adjusting.
* .k: Page Motions.
* .kern: Ligatures and Kerning.
* .l: Line Layout.
* .L: Manipulating Spacing.
* .lg: Ligatures and Kerning.
* .linetabs: Tabs and Fields.
* .ll: Line Layout.
* .lt: Page Layout.
* .ne: Page Location Traps.
* .ns: Manipulating Spacing.
* .o: Line Layout.
* .p: Page Layout.
* .P: Built-in Registers.
* .pn: Page Layout.
* .ps: Fractional Type Sizes.
* .psr: Fractional Type Sizes.
* .pvs: Changing Type Sizes.
* .rj: Manipulating Filling and Adjusting.
* .s: Changing Type Sizes.
* .sr: Fractional Type Sizes.
* .ss: Manipulating Filling and Adjusting.
* .sss: Manipulating Filling and Adjusting.
* .t: Page Location Traps.
* .T: Built-in Registers.
* .tabs: Tabs and Fields.
* .trunc: Page Location Traps.
* .u: Manipulating Filling and Adjusting.
* .v: Changing Type Sizes.
* .V: Built-in Registers.
* .vpt: Page Location Traps.
* .warn: Debugging.
* .x: Built-in Registers.
* .Y: Built-in Registers.
* .y: Built-in Registers.
* .z: Diversions.
* c.: Built-in Registers.
* ct: Page Motions.
* dl: Diversions.
* dn: Diversions.
* dw: Built-in Registers.
* dy: Built-in Registers.
* FF [ms]: ms Document Control Registers.
* FI [ms]: ms Document Control Registers.
* FL [ms]: ms Document Control Registers.
* FM [ms]: ms Document Control Registers.
* HM [ms]: ms Document Control Registers.
* hours: Built-in Registers.
* hp: Page Motions.
* LL [ms]: ms Document Control Registers.
* llx: Miscellaneous.
* lly: Miscellaneous.
* ln: Built-in Registers.
* LT [ms]: ms Document Control Registers.
* MINGW [ms] <1>: Additional ms Macros.
* MINGW [ms]: ms Document Control Registers.
* minutes: Built-in Registers.
* mo: Built-in Registers.
* nl: Page Control.
* opmaxx: Suppressing output.
* opmaxy: Suppressing output.
* opminx: Suppressing output.
* opminy: Suppressing output.
* PD [ms]: ms Document Control Registers.
* PI [ms]: ms Document Control Registers.
* PO [ms]: ms Document Control Registers.
* PS [ms]: ms Document Control Registers.
* ps4html [grohtml]: grohtml specific registers and strings.
* QI [ms]: ms Document Control Registers.
* rsb: Page Motions.
* rst: Page Motions.
* sb: Page Motions.
* seconds: Built-in Registers.
* skw: Page Motions.
* slimit: Debugging.
* ssc: Page Motions.
* st: Page Motions.
* systat: I/O.
* urx: Miscellaneous.
* ury: Miscellaneous.
* VS [ms]: ms Document Control Registers.
* year: Built-in Registers.
* yr: Built-in Registers.

File: groff, Node: Macro Index, Next: String Index, Prev: Register Index, Up: Top
Macro Index
***********
The macro package a specific macro belongs to is appended in
brackets. They appear without the leading control character (normally
`.').
* Menu:
* 1C [ms]: ms Multiple Columns.
* 2C [ms]: ms Multiple Columns.
* [ [ms]: ms Insertions.
* ] [ms]: ms Insertions.
* AB [ms]: ms Cover Page Macros.
* AE [ms]: ms Cover Page Macros.
* AI [ms]: ms Cover Page Macros.
* AM [ms] <1>: Additional ms Macros.
* AM [ms]: ms Strings and Special Characters.
* AU [ms]: ms Cover Page Macros.
* B [man]: Man font macros.
* B [ms]: Highlighting in ms.
* B1 [ms]: ms Displays and Keeps.
* B2 [ms]: ms Displays and Keeps.
* BD [ms]: ms Displays and Keeps.
* BI [man]: Man font macros.
* BI [ms]: Highlighting in ms.
* BR [man]: Man font macros.
* BX [ms]: Highlighting in ms.
* CD [ms]: ms Displays and Keeps.
* CW [ms] <1>: Additional ms Macros.
* CW [ms]: Highlighting in ms.
* DA [ms]: ms Cover Page Macros.
* DE [ms]: ms Displays and Keeps.
* DS [ms] <1>: Additional ms Macros.
* DS [ms]: ms Displays and Keeps.
* DT [man]: Miscellaneous man macros.
* EF [ms]: ms Headers and Footers.
* EH [ms]: ms Headers and Footers.
* EN [ms]: ms Insertions.
* EQ [ms]: ms Insertions.
* FE [ms]: ms Footnotes.
* FS [ms]: ms Footnotes.
* HP [man]: Man usage.
* I [man]: Man font macros.
* I [ms]: Highlighting in ms.
* IB [man]: Man font macros.
* ID [ms]: ms Displays and Keeps.
* IP [man]: Man usage.
* IP [ms]: Lists in ms.
* IR [man]: Man font macros.
* IX [ms]: Additional ms Macros.
* KE [ms]: ms Displays and Keeps.
* KF [ms]: ms Displays and Keeps.
* KS [ms]: ms Displays and Keeps.
* LD [ms]: ms Displays and Keeps.
* LG [ms]: Highlighting in ms.
* LP [man]: Man usage.
* LP [ms]: Paragraphs in ms.
* MC [ms]: ms Multiple Columns.
* ND [ms]: ms Cover Page Macros.
* NH [ms]: Headings in ms.
* NL [ms]: Highlighting in ms.
* OF [ms]: ms Headers and Footers.
* OH [ms]: ms Headers and Footers.
* P [man]: Man usage.
* PD [man]: Miscellaneous man macros.
* PE [ms]: ms Insertions.
* PP [man]: Man usage.
* PP [ms]: Paragraphs in ms.
* PS [ms]: ms Insertions.
* PX [ms]: ms TOC.
* QP [ms]: Paragraphs in ms.
* R [ms]: Highlighting in ms.
* RB [man]: Man font macros.
* RD [ms]: ms Displays and Keeps.
* RE [man]: Man usage.
* RE [ms]: Indents in ms.
* RI [man]: Man font macros.
* RP [ms]: ms Cover Page Macros.
* RS [man]: Man usage.
* RS [ms]: Indents in ms.
* SB [man]: Man font macros.
* SH [man]: Man usage.
* SH [ms]: Headings in ms.
* SM [man]: Man font macros.
* SM [ms]: Highlighting in ms.
* SS [man]: Man usage.
* TA [ms]: Tabstops in ms.
* TC [ms]: ms TOC.
* TE [ms]: ms Insertions.
* TH [man]: Man usage.
* TL [ms]: ms Cover Page Macros.
* TP [man]: Man usage.
* TS [ms]: ms Insertions.
* UL [ms]: Highlighting in ms.
* XA [ms]: ms TOC.
* XE [ms]: ms TOC.
* XP [ms]: Paragraphs in ms.
* XS [ms]: ms TOC.

File diff suppressed because it is too large Load Diff

View File

@ -10,11 +10,17 @@
.\" This document was written for free use and redistribution by
.\" Eric S. Raymond <esr@thyrsus.com> in August 1995.
.\"
.\" $Id: pic.ms,v 1.19 2002/09/20 12:14:56 wlemb Exp $
.\" $Id: pic.ms,v 1.23 2003/04/27 00:07:43 wlemb Exp $
.\"
.\" Set a proper TeX
.ie t .ds tx T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X
.el .ds tx TeX
.\" Set a proper TeX and LaTeX
.ie t \{\
. ds tx T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X\"
. ds lx L\h'-0.36m'\v'-0.22v'\s-2A\s0\h'-0.15m'\v'0.22v'\*(tx\"
.\}
.el \{\
. ds tx TeX\"
. ds lx LaTeX\"
.\}
.\"
.de CE\" Centered caption for figure. Assumes previous .KS
.ce 1
@ -37,6 +43,8 @@ to and reference for \fIgpic\/\fP(1), the implementation distributed by
the Free Software Foundation for use with \fIgroff\/\fP(1).
.AE
.\"%%TUTORIAL%%
.
.
.NH 1
Introduction to PIC
.NH 2
@ -68,6 +76,8 @@ Where differences between Documenter's Work Bench (1991) \fBpic\fP and GNU
end of this document.
.PP
In this document, the \fIgpic\/\fP(1) extensions will be marked as such.
.
.
.NH 1
Invoking PIC
.PP
@ -98,6 +108,8 @@ pic:pic.ms:<nnn>: giving up on this picture
.LP
where \[la]nnn\[ra] is a line number, and \[la]token\[ra] is a token near (usually
just after) the error location.
.
.
.NH 1
Basic PIC Concepts
.PP
@ -293,6 +305,8 @@ surrounded by an invisible box of a size either specified by width
and height attributes or by the defaults \fBtextwid\fR and
\fBtextht\fR. Both are initially zero (because we don't know the
default font size).
.
.
.NH 1
Sizes and Spacing
.PP
@ -412,6 +426,8 @@ box; box wid 1 ht 1; box same; box
.PE
.CE "5: The \fBsame\fP keyword"
.
.
.NH 1
Generalized Lines and Splines
.NH 2
@ -506,6 +522,8 @@ move up 0.2;
Note the arrow decorations. Arrowheads can be applied naturally to
any path-based object, line or spline. We'll see how in the next
section.
.
.
.NH 1
Decorating Objects
.NH 2
@ -683,6 +701,8 @@ request (see the manual page of GNU \fItroff\/\fP(1) for more details).
.PP
\fBpic\fP assumes that at the beginning of a picture both glyph and fill
color are set to the default value.
.
.
.NH 1
More About Text Placement
.PP
@ -723,6 +743,8 @@ so that it is aligned in the direction from the start point
to the end point of the object.
Note that this attribute will have no effect for objects whose start and
end points are coincident.
.
.
.NH 1
More About Direction Changes
.PP
@ -808,6 +830,8 @@ object to be joined to the right.
The meaning of the command \fBmove to last circle .s\fP should be obvious.
In order to see how it generalizes, we'll need to go into detail on two
important topics; locations and object names.
.
.
.NH 1
Naming Objects
.PP
@ -894,6 +918,8 @@ Labels are not constants but variables (you can view colon as a sort
of assignment). You can say something like \fBA: A + (1,0);\fP
and the effect will be to reassign the label \fBA\fR to designate a
position one inch to the right of its old value.
.
.
.NH 1
Describing locations
.PP
@ -1200,6 +1226,8 @@ If you say \fBline .\|.\|.\& chop \fIr1\fP chop \fIr2\fP\fR with \fIr1\fP
and \fIr2\fP both numbers, you can vary the amount of chopping at both
ends. You can use this in combination with trigonometric functions
to write code that will deal with more complex intersections.
.
.
.NH 1
Object Groups
.PP
@ -1337,6 +1365,8 @@ The combination of block variable scoping, assignability of labels and
the macro facility that we'll describe later on can be used to
simulate functions with local variables (just wrap the macro body in
block braces).
.
.
.NH 1
Style Variables
.PP
@ -1395,6 +1425,8 @@ You can give it a list of variable names as arguments (optionally
separated by commas), in which case it resets only those.
.PP
State variables retain their values across pictures until reset.
.
.
.NH 1
Expressions, Variables, and Assignment
.PP
@ -1476,6 +1508,8 @@ version.
.PP
The function \fBsprintf()\fP behaves like a C \fIsprintf\/\fP(3)
function that only takes %, %e, %f, and %g format strings.
.
.
.NH 1
Macros
.PP
@ -1614,6 +1648,8 @@ Macros persist through pictures. To undefine a macro, say \fBundef\fP
.DE
.LP
would undefine the two macros in the jumper block example.
.
.
.NH 1
Import/Export Commands
.PP
@ -1628,7 +1664,7 @@ The statement
.DE
.LP
inserts the contents of \fIfilename\fR in the \fBpic\fP input stream.
Any \fB.PS\fP/\fB.PE\fP pair in the file will be ignored. This, you
Any \fB.PS\fP/\fB.PE\fP pair in the file will be ignored. You
can use this to include pre-generated images.
.PP
A variant of this statement replicates the \fBcopy thru\fP feature of
@ -1728,6 +1764,8 @@ inclusion. The delimiters shown as {} here may also be two copies of
any one character not present in the shell command text. In either
case, the body may contain balanced {} pairs. Strings in the body
may contain balanced or unbalanced braces in any case.
.
.
.NH 1
Control-flow constructs
.PP
@ -1828,6 +1866,8 @@ All the usual relational operators my be used in conditional expressions;
String comparison is also supported using \fB==\fP and \fB!=\fP. String
comparisons may need to be parenthesized to avoid syntactic
ambiguities.
.
.
.NH 1
Interface To [gt]roff
.PP
@ -1933,6 +1973,8 @@ box "@space 0 {H( omega )} over {1 - H( omega )}@"
arrow
.PE
.CE "1: Equations within pictures"
.
.
.NH 1
Interface to TeX
.PP
@ -1942,7 +1984,9 @@ Interface to TeX
option.
In \*[tx] mode, pic will define a vbox called
.B \egraph
for each picture.
for each picture; the name can be changed with the pseudo-variable
.B figname
(which is actually a specially parsed command).
You must yourself print that vbox using, for example, the command
.RS
.LP
@ -1950,8 +1994,9 @@ You must yourself print that vbox using, for example, the command
\ecenterline{\ebox\egraph}
.RE
.LP
Actually, since the vbox has a height of zero this will produce
slightly more vertical space above the picture than below it;
Actually, since the vbox has a height of zero (it is defined with \evtop)
this will produce slightly more vertical space above the picture than
below it;
.RS
.LP
.CW
@ -1960,6 +2005,22 @@ slightly more vertical space above the picture than below it;
.LP
would avoid this.
.PP
To make the vbox having a positive height and a depth of zero (as used
e.g.\& by \*(lx's \f(CW\%graphics.sty\fP), define the following macro in
your document:
.KS
.DS
.CW
\edef\egpicbox#1{%
\evbox{\eunvbox\ecsname #1\eendcsname\ekern 0pt}}
.R
.DE
.KE
.LP
Now you can simply say
.B \egpicbox{graph}
instead of \ebox\egraph.
.PP
You must use a \*[tx] driver that supports the
.B tpic
specials, version\~2.
@ -1976,6 +2037,27 @@ Lines beginning with a period are not given any special treatment.
.PP
The \*[tx] mode of \fIpic\/\fP(1) will \fInot\fP translate \fBtroff\fP
font and size changes included in text strings!
.PP
Here an example how to use \fBfigname\fP.
.KS
.DS
.CW
\&.PS
figname = foo;
\&...
\&.PE
\&.PS
figname = bar;
\&...
\&.PE
\ecenterline{\ebox\efoo \ehss \ebox\ebar}
.DE
.R
.KE
.
.
.NH 1
Obsolete Commands
.PP
@ -1997,6 +2079,8 @@ Be very careful that you specify an appropriate format string;
\fBpic\fP does only very limited checking of the string.
This is deprecated in favour of
\fBsprintf\fP.
.
.
.NH 1
Some Larger Examples
.PP
@ -2210,6 +2294,8 @@ arrow from Top.D.end to Anchor.ne
.CE "2: Hypothetical production flow for dual-mode publishing"
.LP
.\"%%REFERENCE%%
.
.
.NH 1
PIC Reference
.PP
@ -2328,6 +2414,7 @@ In the following, either `|' or a new line starts an alternative.
LABEL : [;] <command> [<position>]
{ <command> ... }
VARIABLE [:] = <any-expr>
figname = MACRONAME
up | down | left | right
COMMAND-LINE
command <print-arg> ...
@ -2377,6 +2464,13 @@ if {
.PP
This restriction doesn't hold for the body after the `do' in a `for'
construction.
.PP
At the beginning of each picture, `figname' is reset to the vbox name
`graph'; this command has only a meaning in \*[tx] mode. While the grammar
rules allow digits and the underscore in the value of `figname', \*[tx]
normally accepts uppercase and lowercase letters only as box names
(you have to use `\ecsname' if you really need to circumvent this
limitation).
.DS
.CW
<any-expr> ::=
@ -2488,7 +2582,7 @@ box.
.PP
A text item consists of a string or sprintf-expression, optionally
followed by positioning information. Text (or strings specified with
`sprintf' may contain [gtn]roff font changes, size changes, and local
`sprintf') may contain [gtn]roff font changes, size changes, and local
motions, provided those changes are undone before the end of the current
item.
.PP
@ -2550,8 +2644,8 @@ ways to specify positions:
.DE
.DS
.CW
<xxx-of> ::=
xxx \fR# followed by `of'\fP
<\,\f(CIxxx\/\fP-of> ::=
\f(CIxxx\fP \fR# followed by `of'\fP
.R
.DE
.DS
@ -2593,7 +2687,7 @@ The \[lq]'th\[rq] form (which allows you to select a previous object with
an expression, as opposed to a numeric literal) is not documented in DWB's
\fIpic\/\fR(1).
.PP
The \[la]\|\fIxxx\fP-of\|\[ra] rule is special: The lexical parser checks whether
The \[la]\,\fIxxx\/\fP-of\|\[ra] rule is special: The lexical parser checks whether
\fIxxx\fP is followed by the token `of' without eliminating it so that
the grammar parser can still see `of'. Valid examples of specifying a
place with corner and label are thus
@ -2739,6 +2833,8 @@ The arguments (if any) will be substituted for tokens $1, $2 .\|.\|.\& $n
appearing in the replacement text. To undefine a macro, say \fBundef\fP
\fIname\fR, specifying the name to be undefined.
.\"%%POSTLUDE%%
.
.
.NH 1
History and Acknowledgements
.PP
@ -2775,6 +2871,8 @@ integrate in descriptions of the GNU \fIgpic\/\fP(1) features.
The GNU \fBgpic\fR implementation was written by James Clark
\[la]\,\fIjjc@jclark.com\/\fP\[ra]. It is currently maintained by Werner
Lemberg \[la]\,\fIwl@gnu.org\/\fP\[ra].
.
.
.NH 1
Bibliography
.IP 1.

File diff suppressed because it is too large Load Diff

View File

@ -42,9 +42,9 @@ Home of Groff (GNU Troff).
.HnS 1
.HR
GNU Troff
.URL http://\:groff.ffii.org/ (Groff)
.URL http://\:groff.ffii.org/ (Groff)
\[em] a
.URL http://\:www.gnu.org/ GNU
.URL http://\:www.gnu.org/ GNU
project.
Hosted by
.URL http://\:ffii.org/ FFII .
@ -62,15 +62,26 @@ Groff now supports HTML.
.SH
Download
.URL "ftp://\:groff.ffii.org/\:pub/\:groff/" Germany
|
.URL "ftp://\:ftp.gnu.org/\:gnu/\:groff/" USA
The source code of the currently released versions of groff is
available at the
.URL "ftp://\:groff.ffii.org/\:pub/\:groff/" "FFII host (Germany)" ,
.URL "ftp://\:ftp.gnu.org/\:gnu/\:groff/" "GNU host (USA)" ,
and its mirrors.
.
The USA site also contains more old, obsolete versions.
.URL http://\:www.gnu.org/\:copyleft/\:gpl.html License
|
.URL http://\:ffii.org/\:mailman/\:listinfo/\:groff/ "Mailing list"
|
.URL "http://\:gnuwin32.sf.net/\:packages/\:groffl.htm" "Groff for Windows"
The most actual pre-release, development version is available from a
CVS repository, see below.
.
Development snapshots (produced twice a day from the CVS repository)
can be downloaded with FTP from
.URL "ftp://\:groff.ffii.org/\:pub/\:groff/devel" here .
For a special version of groff on the Microsoft operating systems, see
.URL "http://\:gnuwin32.sf.net/\:packages/\:groffl.htm" "Groff for Windows" .
GNU troff is released under the
.URL http://\:www.gnu.org/\:copyleft/\:gpl.html "GNU Copyright License" .
User issues lead:
.MTO Ted.Harding@\:nessie.mcc.ac.uk "Ted Harding"
@ -115,7 +126,7 @@ A CVS repository is now available, containing the current development
version of groff.
You can access it with the commands
.RS
.in 2m
.nf
.ft C
export CVSROOT=:pserver:anoncvs@anoncvs.ffii.org:/var/cvs
@ -123,17 +134,17 @@ cvs login
cvs -z9 co groff
.ft P
.fi
.RE
.in
(if the prompt for the password appears, just press the enter key).
After a successful login you no longer need the first two commands; an
update of a checked out repository should be done with
.RS
.in 2m
.ft C
cvs -z9 update -dP
.ft P
.RE
.in
Please read the info pages of cvs for further details.
@ -142,17 +153,17 @@ from
.URL ftp://\:ftp.ffii.org/\:pub/\:groff/\:devel/\:groff-current.tar.gz here
or a diff file relative to the latest official groff release as:
.RS
.in 2m
.ft C
ftp://ftp.ffii.org/pub/groff/devel/groff-\[la]version\[ra]-current.diff.gz
.ft P
.RE
.in
Assuming that groff-\[la]version\[ra].tar.gz and
groff-\[la]version\[ra]-current.diff.gz are in the same directory, do the
following to apply the diff file:
.RS
.in 2m
.nf
.ft C
tar xzvf groff-\[la]version\[ra].tar.gz
@ -160,7 +171,7 @@ cd groff-\[la]version\[ra]
gunzip -c ../groff-\[la]version\[ra]-current.diff.gz | patch -p1
.ft P
.fi
.RE
.in
Please report bugs using the form in the file BUG-REPORT; the idea of this
is to make sure that FSF has all the information it needs to fix the bug.
@ -194,7 +205,10 @@ To subscribe, send e-mail to \[la]list\[ra]-request@\[la]domain\[ra]
(example:
.MTO groff-request@\:ffii.org groff-request@\:ffii.org )
with the word `subscribe' in either the
subject or body of the e-mail (don't include the quotes).
subject or body of the e-mail (don't include the quotes) or have a look
at the
.URL http://\:ffii.org/\:mailman/\:listinfo/\:groff/ \
"groff mailing list webpage" .
GNU groff was written by
.MTO jjc@\:jclark.com "James Clark" .
@ -205,6 +219,335 @@ and
.
.
.SH
NEWS VERSION 1.19
.
.SH 2
troff
.ULS
.LI
Input encoding files for \%latin-9 (a.k.a.\& \%latin-0 and ISO \%8859-15)
and \%latin-2 (ISO \%8859-2) have been added.
Example use:
.in 2m
.ft C
groff -Tdvi -mlatin9 my_file > my_file.dvi
.ft P
.in
You still need proper fonts with the necessary glyphs.
Out of the box, the groff package supports \%latin-9 only for \-Tps,
\-Tdvi, and \-Tutf8, and \%latin-2 only for \-Tdvi and \-Tutf8.
.LI
Composite glyphs are now supported.
To do this, a subset of the Adobe Glyph List (AGL) Algorithm as described in
.URL http://partners.adobe.com/asn/developer/typeforum/unicodegn.html \
http://partners.adobe.com/asn/developer/typeforum/unicodegn.html
is used to construct glyph names based on Unicode character codes.
The existing groff glyph names are frozen; no glyph names which can't be
constructed algorithmically will be added in the future.
The \e[...] escape sequence has been extended to specify multiple glyph
components.
Example:
.in 2m
.ft C
\e[A ho]
.ft R
.in
this accesses a glyph with the name `u0041_0328'.
Some groff glyphs which are useful as composites map to `wrong' Unicode
code points.
For example, `ho' maps to U+02DB which is a spacing ogonek, whereas a
non-spacing ogonek U+0328 is needed for composite glyphs.
The new request
.in 2m
.ft C
\&.composite from to
.ft R
.in
will change the mapping while a composite glyph name is constructed.
To make \e[A ho] yield the expected result,
.in 2m
.ft C
\&.composite ho u0328
.ft R
.in
is needed.
[The new file `composite.tmac' loaded at start-up already
contains proper calls to `.composite'.]
Please refer to the info pages of groff and to the groff_char man page
for more details.
.LI
A new request `fschar' has been added to define font-specific fallback
characters.
They are searched after the list of fonts declared with the
`fspecial' request but before the list of fonts declared with `special'.
.LI
Fallback characters defined with `fschar' can be removed with the
new `rfschar' request.
.LI
A new request `schar' has been added to define global fallback
characters.
They are searched after the list of fonts declared with the
`special' request but before the already mounted special fonts.
.LI
In groff versions 1.18 and 1.18.1, \eD'f ...' didn't move the current
point horizontally.
Despite of being silly, this change has been reverted for backwards
compatibility.
Consequently, the intermediate output command `Df' also moves the
position horizontally again.
\eD'f ...' is deprecated since it depends on the horizontal resolution of
the output device (given with the `hor' parameter in the DESC file).
Use the new \eD'Fg ...' escape instead.
.LI
For orthogonality, new \eD subcommands to change the fill color are
available:
.in 2m
.ft C
\eD'Fr ...' \f[R](rgb)\f[]
.br
\eD'Fc ...' \f[R](cmy)\f[]
.br
\eD'Fg ...' \f[R](gray)\f[]
.br
\eD'Fk ...' \f[R](cmyk)\f[]
.br
\eD'Fd' \f[R](default color)\f[]
.ft R
.in
The arguments are the same as with the `defcolor' request.
The current position is \f[I]not\f[] changed.
.LI
The values set with \eH and \eS are now available in number registers
\en[.height] and \en[.slant], respectively.
.LI
The `.pe' number register isn't new but hasn't been documented before.
It is set to 1 during a page ejection caused by the `bp' request.
.LI
The new glyph symbol `tno' is a textual variant of `no'.
.LI
The new glyph symbol `+e' represents U+03F5, GREEK LUNATE EPSILON SYMBOL.
(Well, it is not really new since it has been previously supported by
grolj4.)
The mapping for both the dvi and lj4 symbol font has been
changed accordingly so that Greek small letter epsilon, `*e', has the
same glyph shape as with other devices.
.ULE
.
.
.SH 2
grops
.ULS
.LI
The font `freeeuro.pfa' has been added to provide various default glyph
shapes for `eu' and `Eu'.
.LI
It is now possible to access all glyphs in a Type\~1 font, not only 256
(provided the font file created by afmtodit has proper entries).
grops constructs additional encoding vectors on the fly if necessary.
.LI
The paper size is now emitted via the %%DocumentMedia and PageSize
mechanisms so that it is no longer required to tell `gv' or `ps2pdf'
about the paper size.
The `broken' flag value\~16 omits this feature
(the used PostScript command `setpagedevice' is a LanguageLevel\~2
extension).
Patch by
.MTO egil@\:kvaleberg.no "Egil Kvaleberg" .
.LI
Non-slanted PostScript metrics have been changed again; they no longer
contain negative left italic correction values.
This assures correct spacing with eqn.
.ULE
.
.
.SH 2
grodvi
.ULS
.LI
The font cmtex10 has been added as the special font `SC' to the DVI fonts.
It is used as a font-specific special font for CW and CWI.
.LI
New options \-l and \-p to set landscape orientation and the paper size.
grodvi now emits a `papersize' special which is understood by DVI drivers
like dvips.
Consequently, the DESC file should contain a `papersize' keyword.
.LI
The glyph shapes for \e[*f] and \e[*e] have been exchanged with \e[+f] and
\e[+e], respectively, to be in sync with all other devices.
.LI
Glyphs \e[HE] and \e[DI] have been replaced with \e[u2662] and \e[u2661],
respectively, since the former two glyphs have a black (filled) shape
which grodvi doesn't provide by default (it never has actually).
.ULE
.
.
.SH 2
grolj4
.ULS
.LI
The glyphs \e[*e] and \e[+e] have been exchanged to be in sync with
all other devices.
.LI
The glyph \e[~=] is now called \e[|=]. Similar to other devices, \e[~=]
is now another name for glyph \e[~~].
.ULE
.
.
.SH 2
grotty
.ULS
.LI
New option `\-r'.
It is similar to the \-i option except it tells grotty to
use the `reverse video' attribute to render italic fonts.
.ULE
.
.
.SH 2
pic
.ULS
.LI
New command `figname' to set the name of a picture's output box in TeX
mode.
.ULE
.
.
.SH 2
refer
.ULS
.LI
The environment variable `REFER' to override the name of the default
database isn't new but hasn't been documented before.
.ULE
.
.
.SH 2
soelim
.ULS
.LI
New option `\-r' to avoid emission of `.lf' lines.
.LI
New option `\-t' to emit TeX comment lines (giving current file and the
line number) instead of `.lf' lines.
.ULE
.
.
.SH 2
afmtodit
.ULS
.LI
Unencoded glyphs in an AFM file are output also (since grops can now emit
multiple encoding vectors for a single font).
.LI
New option `\-m' to prevent negative left italic correction values.
.LI
The mapping and encoding file together with file `DESC' are now searched
in the default font directory also.
Please refer to the man page of afmtodit for more details.
.ULE
.
.
.SH 2
macro packages
.ULS
.LI
.MTO kollar@\:alltel.net "Larry Kollar"
and others made the man macros more customizable.
.ULS
.LI
New command line options \-rFT, \-rIN, and \-rSN to set the vertical
location of the footer line, the body text indentation, and the
sub-subheading indentation.
.LI
New command line option \-rHY (similar to the ms macros) to control
hyphenation.
.LI
New macros `.PT' and `.BT' to print the header and footer strings.
They can be replaced with a customized version in `man.local'.
.LI
The string `HF' now holds the typeface to print headings and
subheadings.
.LI
Similar to the ms macros, the LT register now defaults to LL if not
explicitly specified on the command line.
.ULE
.LI
troff's start-up file `troffrc' now includes `papersize.tmac' to set
the paper size with the command line option `-dpaper=<size>'.
Possible values for `<size>' are the same as the predefined `papersize'
values in the DESC file (only lowercase; see the groff_font man page)
except \%a7-d7.
An appended `l' (ell) character denotes landscape orientation.
Examples: `a4', `c3l', `letterl'.
Most output drivers need additional command line switches `\-p' and
`\-l' to override the default paper length and orientation as set in
the driver specific DESC file.
For example, use the following for PS output on A4 paper in landscape
orientation:
.in 2m
.ft C
groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps
.ft R
.in
.ULE
.
.
.SH
NEWS VERSION 1.18.1
.
.SH 2
@ -293,23 +636,24 @@ It is scanned from left to the right, and the first valid argument is used.
This makes it possible to provide a fallback paper size.
Example:
.RS
.in 2m
.ft C
papersize /etc/papersize a4
.ft P
.RE
.in
.LI
A local font directory has been prepended to the default font path; it
defaults to /usr/local/share/groff/site-font. Similar to the normal
font searching process, files must be placed into a dev\fIXXX\fP
font searching process, files must be placed into a dev\f[I]XXX\f[]
subdirectory, e.g.
.RS
.in 2m
.ft C
/usr/local/share/groff/site-font/devps/FOO
.ft P
.RE
.in
for a PostScript font definition file FOO.
.ULE
@ -402,20 +746,22 @@ got the troff glyph name `mc'.
.LI
Strings can take arguments, using this syntax: \e*[foo\~arg1\~arg2\~.\|.\|.].
Example:
.RS
.in 2m
.nf
.ft C
\&.ds xxx This is a \e\e$1 test.
\e*[xxx nice]
.ft P
.fi
.RE
.in
.LI
It is now possible to have whitespace between the first and second dot (or
the name of the ending macro) to end a macro definition.
Example:
.RS
.in 2m
.nf
.ft C
\&.de !
@ -430,7 +776,7 @@ Example:
\&..
.ft P
.fi
.RE
.in
.LI
`.fn' is a new string-valued register which returns the (internal) real
@ -505,7 +851,8 @@ final `0' can be omitted.
the exception that the `asciify' request will use the character code (if
any) before the character translation.
Example:
.RS
.in 2m
.nf
.ft C
\&.trin ax
@ -519,7 +866,7 @@ a
\&.xxx
.ft P
.fi
.RE
.in
The result is `x\~a'. Using `tr', the result would be `x\~x'.
@ -535,21 +882,22 @@ post-vertical line space.
For compatibility with plan 9's troff, multiple `pi' requests are
supported:
.RS
.in 2m
.nf
.ft C
\&.pi foo
\&.pi bar
.ft P
.fi
.RE
.in
is now equivalent to
.RS
.in 2m
.ft C
\&.pi foo | bar
.ft P
.RE
.in
.LI
A new escape sequence `\eO' is available to disable and enable glyph
@ -645,13 +993,14 @@ documented properly before.
.ULS
.LI
The following macros have been renamed:
.RS
.in 2m
.nf
MAILTO -> MTO
IMAGE -> IMG
LINE -> HR
.fi
.RE
.in
.LI
For consistency, the macros `URL', `FTL', and `MTO' now all have the
@ -733,11 +1082,12 @@ New keywords `color' (or `colour', `colored', `coloured'), `outline' (or
`outline' sets the color of the outline, `shaded' the fill color, and
`color' sets both.
Example:
.RS
.in 2m
.ft C
circle shaded "green" outline "black" ;
.ft P
.RE
.in
Filled arrows always use the outline color for filling.
@ -814,7 +1164,8 @@ By default, font sizes are now available in the range 5\-10000pt, similar
to PS fonts.
If you want the old behaviour (i.e., font sizes at discrete values only),
insert the following at the start of your document:
.RS
.in 2m
.nf
.ft C
\&.if '\e*[.T]'dvi' \e
@ -822,7 +1173,7 @@ insert the following at the start of your document:
\& 1728 1800 2000 2074 2200 2400 2488 2800 3600
.ft P
.fi
.RE
.in
.LI
A new font file HBI (using cmssbxo10; this is slanted sans serif bold
@ -939,17 +1290,17 @@ of examples.
A new keyword `papersize' has been added to the DESC file format.
Its argument is either
.RS
.IP \[bu]
.ULS
.LI
a predefined paper format (e.g. `A4' or `letter')
.IP \[bu]
.LI
a file name pointing to a file which must contain a paper size
specification in its first line (e.g. `/etc/papersize')
.IP \[bu]
.LI
a custom paper size definition like `35c,4i'
.RE
.ULE
See groff_font(5) for more details.
This keyword only affects the physical dimensions of the output medium;
@ -959,7 +1310,7 @@ troff completely ignores it.
.
.HR
.
\s-2\fIThis document was produced using
\s[-2]\f[I]This document was produced using
.URL http://groff.ffii.org/ groff-\n[.x].\n[.y].\n[.Y] .
.br
The image at the top has been contributed by Imogen Mulley (born 1991),

View File

@ -37,7 +37,6 @@ sl "
; 10,7,3 0 073
< 10,9 0 074
= 10,7 0 075
eq "
> 10,9 0 076
? 10,10 0 077
@ 10,11,1 0 0100
@ -109,13 +108,11 @@ z 10,7 0 0172
{ 10,11,2 0 0173
lC "
| 10,11,2 0 0174
or "
ba "
} 10,11,2 0 0175
rC "
~ 10,6 0 0176
a~ "
ap "
ti "
--- 10,1 0 0240
r! 10,7,3 0 0241
@ -129,7 +126,7 @@ ad 10,10 0 0250
co 10,10 0 0251
Of 10,10 0 0252
Fo 10,7 0 0253
no 10,7 0 0254
tno 10,7 0 0254
- 10,6 0 0255
hy "
rg 10,10 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 10,7,3 0 073
< 10,9 0 074
= 10,7 0 075
eq "
> 10,9 0 076
? 10,10 0 077
@ 10,11,1 0 0100
@ -109,13 +108,11 @@ z 10,7 0 0172
{ 10,11,2 0 0173
lC "
| 10,11,2 0 0174
or "
ba "
} 10,11,2 0 0175
rC "
~ 10,6 0 0176
a~ "
ap "
ti "
--- 10,1 0 0240
r! 10,7,4 0 0241
@ -129,7 +126,7 @@ ad 10,10 0 0250
co 10,10 0 0251
Of 10,10 0 0252
Fo 10,7 0 0253
no 10,7 0 0254
tno 10,7 0 0254
- 10,6 0 0255
hy "
rg 10,10 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 10,7,2 0 073
< 10,9 0 074
= 10,7 0 075
eq "
> 10,9 0 076
? 10,10 0 077
@ 10,11,1 0 0100
@ -109,13 +108,11 @@ z 10,7 0 0172
{ 10,11,2 0 0173
lC "
| 10,10,2 0 0174
or "
ba "
} 10,11,2 0 0175
rC "
~ 10,6 0 0176
a~ "
ap "
ti "
--- 10,1 0 0240
r! 10,7,4 0 0241
@ -129,7 +126,7 @@ ad 10,10 0 0250
co 10,10 0 0251
Of 10,10 0 0252
Fo 10,7 0 0253
no 10,6 0 0254
tno 10,6 0 0254
- 10,5 0 0255
hy "
rg 10,10 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 10,7,2 0 073
< 10,9 0 074
= 10,7 0 075
eq "
> 10,9 0 076
? 10,10 0 077
@ 10,11,1 0 0100
@ -109,13 +108,11 @@ z 10,7 0 0172
{ 10,11,2 0 0173
lC "
| 10,10,2 0 0174
or "
ba "
} 10,11,2 0 0175
rC "
~ 10,6 0 0176
a~ "
ap "
ti "
--- 10,1 0 0240
r! 10,7,3 0 0241
@ -129,7 +126,7 @@ ad 10,10 0 0250
co 10,10 0 0251
Of 10,10 0 0252
Fo 10,7 0 0253
no 10,6 0 0254
tno 10,6 0 0254
- 10,5 0 0255
hy "
rg 10,10 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 5,8,3 0 073
< 10,8 0 074
= 10,7 0 075
eq "
> 10,8 0 076
? 10,12 0 077
@ 16,12,2 0 0100
@ -109,13 +108,11 @@ z 8,9 0 0172
{ 6,12,3 0 0173
lC "
| 4,12,4 0 0174
or "
ba "
} 6,12,3 0 0175
rC "
~ 10,6 0 0176
a~ "
ap "
ti "
--- 5,1 0 0240
r! 6,9,3 0 0241
@ -129,7 +126,7 @@ ad 6,12 0 0250
co 12,12 0 0251
Of 6,12 0 0252
Fo 9,8 0 0253
no 10,7 0 0254
tno 10,7 0 0254
- 5,5 0 0255
hy "
rg 12,12 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 5,8,3 0 073
< 10,8 0 074
= 10,7 0 075
eq "
> 10,8 0 076
? 10,12 0 077
@ 16,12,2 0 0100
@ -109,13 +108,11 @@ z 8,9 0 0172
{ 6,12,3 0 0173
lC "
| 3,12,4 0 0174
or "
ba "
} 6,12,3 0 0175
rC "
~ 10,5 0 0176
a~ "
ap "
ti "
--- 5,1 0 0240
r! 6,9,3 0 0241
@ -129,7 +126,7 @@ ad 6,12 0 0250
co 12,12 0 0251
Of 6,12 0 0252
Fo 9,8 0 0253
no 10,7 0 0254
tno 10,7 0 0254
- 5,5 0 0255
hy "
rg 12,12 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 4,9,2 0 073
< 10,9 0 074
= 10,6 0 075
eq "
> 10,9 0 076
? 9,12 0 077
@ 17,12,1 0 0100
@ -109,13 +108,11 @@ z 8,9 0 0172
{ 6,12,3 0 0173
lC "
| 3,12,4 0 0174
or "
ba "
} 6,12,3 0 0175
rC "
~ 10,6 0 0176
a~ "
ap "
ti "
--- 5,1 0 0240
r! 6,9,3 0 0241
@ -129,7 +126,7 @@ ad 5,12 0 0250
co 12,12 0 0251
Of 6,12 0 0252
Fo 9,8 0 0253
no 10,6 0 0254
tno 10,6 0 0254
- 5,5 0 0255
hy "
rg 12,12 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 4,9,2 0 073
< 10,9 0 074
= 10,6 0 075
eq "
> 10,9 0 076
? 9,12 0 077
@ 17,12,2 0 0100
@ -109,13 +108,11 @@ z 8,9 0 0172
{ 6,12,4 0 0173
lC "
| 4,12,4 0 0174
or "
ba "
} 6,12,4 0 0175
rC "
~ 10,6 0 0176
a~ "
ap "
ti "
--- 5,1 0 0240
r! 6,9,3 0 0241
@ -129,7 +126,7 @@ ad 5,12 0 0250
co 12,12 0 0251
Of 6,12 0 0252
Fo 9,8 0 0253
no 10,6 0 0254
tno 10,6 0 0254
- 5,5 0 0255
hy "
rg 12,12 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 5,8,3 0 073
< 10,9 0 074
= 10,7 0 075
eq "
> 10,9 0 076
? 8,12 0 077
@ 12,12,1 0 0100
@ -109,13 +108,11 @@ z 9,8 0 0172
{ 6,12,2 0 0173
lC "
| 10,12 0 0174
or "
ba "
} 6,12,2 0 0175
rC "
~ 10,6 0 0176
a~ "
ap "
ti "
--- 4,1 0 0240
r! 5,9,3 0 0241
@ -129,7 +126,7 @@ ad 6,11 0 0250
co 12,12 0 0251
Of 6,12 0 0252
Fo 8,7 0 0253
no 10,7 0 0254
tno 10,7 0 0254
- 5,5 0 0255
hy "
rg 12,12 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 5,8,3 0 073
< 10,8 0 074
= 10,7 0 075
eq "
> 10,8 0 076
? 8,12 0 077
@ 12,12 0 0100
@ -109,13 +108,11 @@ z 9,8 0 0172
{ 7,12,2 0 0173
lC "
| 10,12 0 0174
or "
ba "
} 7,12,2 0 0175
rC "
~ 10,6 0 0176
a~ "
ap "
ti "
--- 4,1 0 0240
r! 6,9,3 0 0241
@ -129,7 +126,7 @@ ad 6,11 0 0250
co 12,12 0 0251
Of 7,12 0 0252
Fo 8,7 0 0253
no 10,7 0 0254
tno 10,7 0 0254
- 5,5 0 0255
hy "
rg 12,12 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 5,8,3 0 073
< 10,9 0 074
= 10,6 0 075
eq "
> 10,9 0 076
? 7,12 0 077
@ 12,12 0 0100
@ -109,13 +108,11 @@ z 8,8 0 0172
{ 6,12,2 0 0173
lC "
| 10,12 0 0174
or "
ba "
} 6,12,2 0 0175
rC "
~ 10,5 0 0176
a~ "
ap "
ti "
--- 4,1 0 0240
r! 6,9,3 0 0241
@ -129,7 +126,7 @@ ad 6,11 0 0250
co 12,12 0 0251
Of 7,12 0 0252
Fo 7,6 0 0253
no 10,6 0 0254
tno 10,6 0 0254
- 5,4 0 0255
hy "
rg 12,12 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 4,8,3 0 073
< 10,8 0 074
= 10,6 0 075
eq "
> 10,8 0 076
? 7,12 0 077
@ 12,12,1 0 0100
@ -109,13 +108,11 @@ z 8,8 0 0172
{ 6,12,2 0 0173
lC "
| 10,12 0 0174
or "
ba "
} 6,12,2 0 0175
rC "
~ 10,5 0 0176
a~ "
ap "
ti "
--- 4,1 0 0240
r! 5,9,3 0 0241
@ -129,7 +126,7 @@ ad 5,11 0 0250
co 12,12 0 0251
Of 6,12 0 0252
Fo 7,6 0 0253
no 10,6 0 0254
tno 10,6 0 0254
- 5,4 0 0255
hy "
rg 12,12 0 0256

View File

@ -104,7 +104,6 @@ radicalex 8,13 0 0140
lC 8,12,2 0 0173
{ "
ba 3,11,3 0 0174
or "
| "
rC 8,12,2 0 0175
} "
@ -166,6 +165,7 @@ co 13,11 0 0323
tm 14,11 0 0324
--- 13,13,2 0 0325
sr 9,13,3 0 0326
sqrt "
md 4,5 0 0327
no 12,5 0 0330
AN 10,8 0 0331
@ -197,9 +197,11 @@ braceleftbt 8,13,4 0 0356
lb "
bracerightex 8,13,4 0 0357
braceleftex "
braceex "
bv "
ra 5,13,2 0 0361
is 5,13,4 0 0362
integral "
--- 11,13,4 0 0363
--- 11,13,4 0 0364
--- 11,13,4 0 0365

View File

@ -37,7 +37,6 @@ sl "
; 5,7,3 0 073
< 9,8 0 074
= 9,7 0 075
eq "
> 9,8 0 076
? 8,11 0 077
@ 16,11,2 0 0100
@ -109,13 +108,11 @@ z 7,8 0 0172
{ 7,11,3 0 0173
lC "
| 4,11,3 0 0174
or "
ba "
} 7,11,3 0 0175
rC "
~ 9,8 0 0176
a~ "
ap "
ti "
--- 5,1 0 0240
r! 6,8,4 0 0241
@ -129,7 +126,7 @@ ad 6,11 0 0250
co 12,11 0 0251
Of 5,11 0 0252
Fo 8,7 0 0253
no 9,7 0 0254
tno 9,7 0 0254
- 5,5 0 0255
hy "
rg 12,11 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 5,7,3 0 073
< 10,8 0 074
= 10,7 0 075
eq "
> 10,8 0 076
? 8,11 0 077
@ 14,11,2 0 0100
@ -109,13 +108,11 @@ z 6,8,1 0 0172
{ 6,12,3 0 0173
lC "
| 4,12 0 0174
or "
ba "
} 6,12,3 0 0175
rC "
~ 10,6 0 0176
a~ "
ap "
ti "
--- 4,1 0 0240
r! 6,8,4 0 0241
@ -129,7 +126,7 @@ ad 6,11 0 0250
co 12,11 0 0251
Of 4,11 0 0252
Fo 8,7 0 0253
no 10,5 0 0254
tno 10,5 0 0254
- 5,5 0 0255
hy "
rg 12,11 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 5,7,2 0 073
< 11,9 0 074
= 11,6 0 075
eq "
> 11,9 0 076
? 8,11 0 077
@ 15,11,3 0 0100
@ -109,13 +108,11 @@ z 6,8 0 0172
{ 7,11,3 0 0173
lC "
| 5,11,3 0 0174
or "
ba "
} 7,11,3 0 0175
rC "
~ 9,6 0 0176
a~ "
ap "
ti "
--- 4,1 0 0240
r! 6,8,3 0 0241
@ -129,7 +126,7 @@ ad 6,11 0 0250
co 13,11 0 0251
Of 5,11 0 0252
Fo 8,6 0 0253
no 11,6 0 0254
tno 11,6 0 0254
- 5,4 0 0255
hy "
rg 13,11 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 4,8,1 0 073
< 9,9 0 074
= 9,6 0 075
eq "
> 9,9 0 076
? 7,11 0 077
@ 15,11,3 0 0100
@ -109,13 +108,11 @@ z 7,8 0 0172
{ 8,11,3 0 0173
lC "
| 3,11 0 0174
or "
ba "
} 8,11,3 0 0175
rC "
~ 9,6 0 0176
a~ "
ap "
ti "
--- 4,1 0 0240
r! 5,8,3 0 0241
@ -129,7 +126,7 @@ ad 6,11 0 0250
co 13,11 0 0251
Of 5,11 0 0252
Fo 8,7 0 0253
no 9,5 0 0254
tno 9,5 0 0254
- 5,5 0 0255
hy "
rg 13,11 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 9,7,2 0 073
< 9,8 0 074
= 9,6 0 075
eq "
> 9,8 0 076
? 9,9 0 077
@ 9,9 0 0100
@ -109,13 +108,11 @@ z 9,7 0 0172
{ 9,9,2 0 0173
lC "
| 9,9,2 0 0174
or "
ba "
} 9,9,2 0 0175
rC "
~ 9,6 0 0176
a~ "
ap "
ti "
--- 9,1 0 0240
r! 9,7,2 0 0241
@ -129,7 +126,7 @@ ad 9,10 0 0250
co 9,9 0 0251
Of 9,9 0 0252
Fo 9,6 0 0253
no 9,5 0 0254
tno 9,5 0 0254
- 9,5 0 0255
hy "
rg 9,9 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 9,7,2 0 073
< 9,8 0 074
= 9,6 0 075
eq "
> 9,8 0 076
? 9,9 0 077
@ 9,9 0 0100
@ -109,13 +108,11 @@ z 9,7 0 0172
{ 9,9,2 0 0173
lC "
| 9,9,2 0 0174
or "
ba "
} 9,9,2 0 0175
rC "
~ 9,6 0 0176
a~ "
ap "
ti "
--- 9,1 0 0240
r! 9,7,3 0 0241
@ -129,7 +126,7 @@ ad 9,10 0 0250
co 9,9 0 0251
Of 9,9 0 0252
Fo 9,6 0 0253
no 9,6 0 0254
tno 9,6 0 0254
- 9,5 0 0255
hy "
rg 9,9 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 9,7,2 0 073
< 9,8 0 074
= 9,6 0 075
eq "
> 9,8 0 076
? 9,9 0 077
@ 9,9 0 0100
@ -109,13 +108,11 @@ z 9,7 0 0172
{ 9,10,3 0 0173
lC "
| 9,9,2 0 0174
or "
ba "
} 9,10,3 0 0175
rC "
~ 9,5 0 0176
a~ "
ap "
ti "
--- 9,1 0 0240
r! 9,7,2 0 0241
@ -129,7 +126,7 @@ ad 9,9 0 0250
co 9,9 0 0251
Of 9,9 0 0252
Fo 9,7 0 0253
no 9,6 0 0254
tno 9,6 0 0254
- 9,5 0 0255
hy "
rg 9,9 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 9,7,2 0 073
< 9,8 0 074
= 9,6 0 075
eq "
> 9,8 0 076
? 9,9 0 077
@ 9,9,1 0 0100
@ -109,13 +108,11 @@ z 9,7 0 0172
{ 9,10,2 0 0173
lC "
| 9,9,2 0 0174
or "
ba "
} 9,10,2 0 0175
rC "
~ 9,5 0 0176
a~ "
ap "
ti "
--- 9,1 0 0240
r! 9,7,2 0 0241
@ -129,7 +126,7 @@ ad 9,9 0 0250
co 9,9 0 0251
Of 9,9 0 0252
Fo 9,7 0 0253
no 9,6 0 0254
tno 9,6 0 0254
- 9,5 0 0255
hy "
rg 9,9 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 5,8,1 0 073
< 8,7 0 074
= 9,6 0 075
eq "
> 8,7 0 076
? 9,11 0 077
@ 14,11,1 0 0100
@ -109,13 +108,11 @@ z 6,8 0 0172
{ 6,11,3 0 0173
lC "
| 4,11,3 0 0174
or "
ba "
} 6,11,3 0 0175
rC "
~ 9,6 0 0176
a~ "
ap "
ti "
--- 4,1 0 0240
r! 4,8,3 0 0241
@ -129,7 +126,7 @@ ad 5,11 0 0250
co 12,11 0 0251
Of 6,11 0 0252
Fo 9,7 0 0253
no 9,6 0 0254
tno 9,6 0 0254
- 4,5 0 0255
hy "
rg 12,11 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 5,8,2 0 073
< 8,7 0 074
= 9,6 0 075
eq "
> 9,7 0 076
? 9,11 0 077
@ 14,11,2 0 0100
@ -109,13 +108,11 @@ z 6,8 0 0172
{ 6,11,3 0 0173
lC "
| 4,11,3 0 0174
or "
ba "
} 6,11,3 0 0175
rC "
~ 9,6 0 0176
a~ "
ap "
ti "
--- 4,1 0 0240
r! 5,8,3 0 0241
@ -129,7 +126,7 @@ ad 5,11 0 0250
co 12,11 0 0251
Of 6,11 0 0252
Fo 11,7 0 0253
no 9,6 0 0254
tno 9,6 0 0254
- 5,5 0 0255
hy "
rg 12,11 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 4,8,2 0 073
< 9,7 0 074
= 9,6 0 075
eq "
> 9,7 0 076
? 8,11 0 077
@ 13,11,1 0 0100
@ -109,13 +108,11 @@ z 7,8 0 0172
{ 5,11,3 0 0173
lC "
| 4,11,3 0 0174
or "
ba "
} 5,11,3 0 0175
rC "
~ 8,6 0 0176
a~ "
ap "
ti "
--- 4,1 0 0240
r! 4,8,3 0 0241
@ -129,7 +126,7 @@ ad 5,10 0 0250
co 12,11 0 0251
Of 5,11 0 0252
Fo 8,6 0 0253
no 9,6 0 0254
tno 9,6 0 0254
- 5,5 0 0255
hy "
rg 12,11 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 4,8,2 0 073
< 8,7 0 074
= 9,6 0 075
eq "
> 8,7 0 076
? 8,11 0 077
@ 13,11,1 0 0100
@ -109,13 +108,11 @@ z 7,8 0 0172
{ 5,11,3 0 0173
lC "
| 3,11,3 0 0174
or "
ba "
} 5,11,3 0 0175
rC "
~ 8,6 0 0176
a~ "
ap "
ti "
--- 4,1 0 0240
r! 4,8,3 0 0241
@ -129,7 +126,7 @@ ad 5,10 0 0250
co 12,11 0 0251
Of 6,11 0 0252
Fo 8,7 0 0253
no 9,6 0 0254
tno 9,6 0 0254
- 4,5 0 0255
hy "
rg 12,11 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 4,7,2 0 073
< 8,8 0 074
= 8,6 0 075
eq "
> 8,8 0 076
? 7,11 0 077
@ 14,11 0 0100
@ -109,13 +108,11 @@ z 7,7 0 0172
{ 6,11,2 0 0173
lC "
| 8,11 0 0174
or "
ba "
} 6,11,2 0 0175
rC "
~ 8,6 0 0176
a~ "
ap "
ti "
--- 4,1 0 0240
r! 5,8,3 0 0241
@ -129,7 +126,7 @@ ad 7,10 0 0250
co 12,11 0 0251
Of 6,11 0 0252
Fo 8,6 0 0253
no 8,6 0 0254
tno 8,6 0 0254
- 5,5 0 0255
hy "
rg 12,11 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 5,7,3 0 073
< 9,9 0 074
= 9,7 0 075
eq "
> 9,9 0 076
? 7,11 0 077
@ 13,11 0 0100
@ -109,13 +108,11 @@ z 9,7 0 0172
{ 6,11,2 0 0173
lC "
| 9,11 0 0174
or "
ba "
} 6,11,2 0 0175
rC "
~ 11,6 0 0176
a~ "
ap "
ti "
--- 4,1 0 0240
r! 5,8,3 0 0241
@ -129,7 +126,7 @@ ad 6,10 0 0250
co 12,11 0 0251
Of 8,11 0 0252
Fo 10,7 0 0253
no 9,7 0 0254
tno 9,7 0 0254
- 5,5 0 0255
hy "
rg 12,11 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 4,7,2 0 073
< 9,8 0 074
= 8,6 0 075
eq "
> 9,8 0 076
? 6,11 0 077
@ 12,11 0 0100
@ -109,13 +108,11 @@ z 8,7 0 0172
{ 6,11,2 0 0173
lC "
| 9,11 0 0174
or "
ba "
} 6,11,2 0 0175
rC "
~ 9,6 0 0176
a~ "
ap "
ti "
--- 4,1 0 0240
r! 4,8,3 0 0241
@ -129,7 +126,7 @@ ad 7,10 0 0250
co 13,11 0 0251
Of 6,11 0 0252
Fo 8,7 0 0253
no 8,6 0 0254
tno 8,6 0 0254
- 5,5 0 0255
hy "
rg 13,11 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 4,7,2 0 073
< 10,7 0 074
= 9,6 0 075
eq "
> 10,7 0 076
? 6,11 0 077
@ 13,11 0 0100
@ -109,13 +108,11 @@ z 7,7 0 0172
{ 4,11,2 0 0173
lC "
| 9,11 0 0174
or "
ba "
} 5,11,2 0 0175
rC "
~ 9,5 0 0176
a~ "
ap "
ti "
--- 4,1 0 0240
r! 4,8,3 0 0241
@ -129,7 +126,7 @@ ad 6,10 0 0250
co 14,11 0 0251
Of 6,11 0 0252
Fo 7,6 0 0253
no 9,5 0 0254
tno 9,5 0 0254
- 5,4 0 0255
hy "
rg 14,11 0 0256

View File

@ -104,7 +104,6 @@ radicalex 7,12 0 0140
lC 7,10,3 0 0173
{ "
ba 3,10,3 0 0174
or "
| "
rC 7,10,3 0 0175
} "
@ -166,6 +165,7 @@ co 12,10 0 0323
tm 11,10 0 0324
--- 12,11,1 0 0325
sr 8,12 0 0326
sqrt "
md 4,5 0 0327
no 10,5 0 0330
AN 9,7 0 0331
@ -197,9 +197,11 @@ braceleftbt 7,12,3 0 0356
lb "
bracerightex 7,12,3 0 0357
braceleftex "
braceex "
bv "
ra 5,12,3 0 0361
is 4,12,1 0 0362
integral "
--- 10,12,3 0 0363
--- 10,12,3 0 0364
--- 10,12,3 0 0365

View File

@ -37,7 +37,6 @@ sl "
; 4,7,2 0 073
< 8,7 0 074
= 8,5 0 075
eq "
> 8,7 0 076
? 7,10 0 077
@ 14,10,2 0 0100
@ -109,13 +108,11 @@ z 6,7 0 0172
{ 7,10,3 0 0173
lC "
| 3,10,2 0 0174
or "
ba "
} 7,10,3 0 0175
rC "
~ 8,7 0 0176
a~ "
ap "
ti "
--- 3,1 0 0240
r! 4,7,3 0 0241
@ -129,7 +126,7 @@ ad 5,10 0 0250
co 12,10 0 0251
Of 5,10 0 0252
Fo 9,6 0 0253
no 9,5 0 0254
tno 9,5 0 0254
- 4,4 0 0255
hy "
rg 12,10 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 4,7,2 0 073
< 8,6 0 074
= 10,5 0 075
eq "
> 8,6 0 076
? 8,10 0 077
@ 15,10,2 0 0100
@ -109,13 +108,11 @@ z 6,7 0 0172
{ 7,10,3 0 0173
lC "
| 4,10 0 0174
or "
ba "
} 7,10,3 0 0175
rC "
~ 10,5 0 0176
a~ "
ap "
ti "
--- 3,1 0 0240
r! 7,7,3 0 0241
@ -129,7 +126,7 @@ ad 6,9 0 0250
co 12,10 0 0251
Of 6,10 0 0252
Fo 8,6 0 0253
no 9,5 0 0254
tno 9,5 0 0254
- 5,4 0 0255
hy "
rg 12,10 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 4,7,1 0 073
< 10,7,1 0 074
= 10,5 0 075
eq "
> 10,7,1 0 076
? 7,10 0 077
@ 13,10,3 0 0100
@ -109,13 +108,11 @@ z 6,7 0 0172
{ 6,10,3 0 0173
lC "
| 4,10,3 0 0174
or "
ba "
} 6,10,3 0 0175
rC "
~ 8,5 0 0176
a~ "
ap "
ti "
--- 3,1 0 0240
r! 6,7,3 0 0241
@ -129,7 +126,7 @@ ad 5,10 0 0250
co 12,10 0 0251
Of 5,10 0 0252
Fo 7,6 0 0253
no 9,6 0 0254
tno 9,6 0 0254
- 5,4 0 0255
hy "
rg 12,10 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 4,7,2 0 073
< 8,7 0 074
= 8,5 0 075
eq "
> 8,7 0 076
? 6,10 0 077
@ 13,10,2 0 0100
@ -109,13 +108,11 @@ z 6,7 0 0172
{ 7,10,3 0 0173
lC "
| 3,10 0 0174
or "
ba "
} 7,10,3 0 0175
rC "
~ 8,5 0 0176
a~ "
ap "
ti "
--- 3,1 0 0240
r! 5,7,3 0 0241
@ -129,7 +126,7 @@ ad 5,10 0 0250
co 12,10 0 0251
Of 4,10 0 0252
Fo 7,6 0 0253
no 9,6 0 0254
tno 9,6 0 0254
- 4,4 0 0255
hy "
rg 12,10 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 7,6,1 0 073
< 7,7 0 074
= 7,5 0 075
eq "
> 7,7 0 076
? 7,8 0 077
@ 7,8 0 0100
@ -109,13 +108,11 @@ z 7,6 0 0172
{ 7,9,2 0 0173
lC "
| 7,8,2 0 0174
or "
ba "
} 7,9,2 0 0175
rC "
~ 7,5 0 0176
a~ "
ap "
ti "
--- 7,1 0 0240
r! 7,6,3 0 0241
@ -129,7 +126,7 @@ ad 7,9 0 0250
co 7,8 0 0251
Of 7,9 0 0252
Fo 7,5 0 0253
no 7,5 0 0254
tno 7,5 0 0254
- 7,4 0 0255
hy "
rg 7,8 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 7,6,1 0 073
< 7,6 0 074
= 7,5 0 075
eq "
> 7,6 0 076
? 7,8 0 077
@ 7,8,1 0 0100
@ -109,13 +108,11 @@ z 7,6 0 0172
{ 7,9,2 0 0173
lC "
| 7,8,1 0 0174
or "
ba "
} 7,9,2 0 0175
rC "
~ 7,5 0 0176
a~ "
ap "
ti "
--- 7,1 0 0240
r! 7,6,2 0 0241
@ -129,7 +126,7 @@ ad 7,9 0 0250
co 7,8 0 0251
Of 7,8 0 0252
Fo 7,5 0 0253
no 7,5 0 0254
tno 7,5 0 0254
- 7,4 0 0255
hy "
rg 7,8 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 7,5,1 0 073
< 7,7 0 074
= 7,5 0 075
eq "
> 7,7 0 076
? 7,8 0 077
@ 7,8 0 0100
@ -109,13 +108,11 @@ z 7,6 0 0172
{ 7,9,2 0 0173
lC "
| 7,8,1 0 0174
or "
ba "
} 7,9,2 0 0175
rC "
~ 7,4 0 0176
a~ "
ap "
ti "
--- 7,1 0 0240
r! 7,6,3 0 0241
@ -129,7 +126,7 @@ ad 7,8 0 0250
co 7,8 0 0251
Of 7,8 0 0252
Fo 7,6 0 0253
no 7,5 0 0254
tno 7,5 0 0254
- 7,4 0 0255
hy "
rg 7,8 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 7,5,1 0 073
< 7,7 0 074
= 7,5 0 075
eq "
> 7,7 0 076
? 7,8 0 077
@ 7,8 0 0100
@ -109,13 +108,11 @@ z 7,6 0 0172
{ 7,8,2 0 0173
lC "
| 7,8,2 0 0174
or "
ba "
} 7,8,2 0 0175
rC "
~ 7,5 0 0176
a~ "
ap "
ti "
--- 7,1 0 0240
r! 7,6,3 0 0241
@ -129,7 +126,7 @@ ad 7,8 0 0250
co 7,8 0 0251
Of 7,8 0 0252
Fo 7,6 0 0253
no 7,5 0 0254
tno 7,5 0 0254
- 7,4 0 0255
hy "
rg 7,8 0 0256

View File

@ -37,7 +37,6 @@ sl "
; 4,7,2 0 073
< 7,6 0 074
= 7,5 0 075
eq "
> 7,6 0 076
? 8,9 0 077
@ 12,9,1 0 0100
@ -109,13 +108,11 @@ z 6,7 0 0172
{ 5,9,3 0 0173
lC "
| 4,9,3 0 0174
or "
ba "
} 5,9,3 0 0175
rC "
~ 7,5 0 0176
a~ "
ap "
ti "
--- 4,1 0 0240
r! 4,7,3 0 0241
@ -129,7 +126,7 @@ ad 5,9 0 0250
co 11,9 0 0251
Of 6,9 0 0252
Fo 8,6 0 0253
no 8,6 0 0254
tno 8,6 0 0254
- 5,4 0 0255
hy "
rg 11,9 0 0256

Some files were not shown because too many files have changed in this diff Show More