From 53b5abaf04f16b21b2358c6848d3264a1ebdd37e Mon Sep 17 00:00:00 2001 From: wlemb Date: Fri, 10 Aug 2001 22:20:47 +0000 Subject: Intergrated pic2graph, contributed by Eric S. Raymond. * contrib/pic2graph/{Makefile.sub, pic2graph.sh, pic2graph.man}: New files. * Makefile.in, NEWS: Updated. * src/preproc/tbl/tbl.man: Revised. * src/preproc/tbl/tbl.man: Extended to cover all tbl features. * src/preproc/tbl/main.cc (process_data): Fix recognition of .lf requests. * Makefile.sub (configure): Depend on configure.ac, not configure.in. * INSTALL.gen: Upgrade to autoconf 2.52's INSTALL. * src/utils/afmtodit/afmtodit.man, src/roff/groff/groff.man: Minor fixes. --- ChangeLog | 30 ++++ INSTALL.gen | 117 +++++++++----- Makefile.in | 3 +- Makefile.sub | 2 +- NEWS | 17 +- src/preproc/tbl/main.cc | 2 +- src/preproc/tbl/tbl.man | 332 +++++++++++++++++++++++++++++++++++----- src/roff/groff/groff.man | 3 +- src/utils/afmtodit/afmtodit.man | 2 +- 9 files changed, 425 insertions(+), 83 deletions(-) diff --git a/ChangeLog b/ChangeLog index f85976af..1d040750 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,33 @@ +2001-08-10 Werner LEMBERG + + Intergrated pic2graph, contributed by Eric S. Raymond. + + * contrib/pic2graph/{Makefile.sub, pic2graph.sh, pic2graph.man}: New + files. + * Makefile.in, NEWS: Updated. + + * src/preproc/tbl/tbl.man: Revised. + +2001-08-09 Eric S. Raymond + + * src/preproc/tbl/tbl.man: Extended to cover all tbl features. + +2001-08-09 Werner LEMBERG + + * src/preproc/tbl/main.cc (process_data): Fix recognition of .lf + requests. + +2001-08-08 Paul Eggert + + * Makefile.sub (configure): Depend on configure.ac, not + configure.in. + * INSTALL.gen: Upgrade to autoconf 2.52's INSTALL. + +2001-08-07 Werner LEMBERG + + * src/utils/afmtodit/afmtodit.man, src/roff/groff/groff.man: Minor + fixes. + 2001-08-06 Werner LEMBERG * src/roff/troff/troff.man: Improve documentation of -E option. diff --git a/INSTALL.gen b/INSTALL.gen index 50dbe439..666ffd9f 100644 --- a/INSTALL.gen +++ b/INSTALL.gen @@ -8,20 +8,27 @@ various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, a file -`config.cache' that saves the results of its tests to speed up -reconfiguring, and a file `config.log' containing compiler output -(useful mainly for debugging `configure'). +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. (Caching is +disabled by default to prevent problems with accidental use of stale +cache files.) If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can -be considered for the next release. If at some point `config.cache' -contains results you don't want to keep, you may remove or edit it. +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. - The file `configure.in' is used to create `configure' by a program -called `autoconf'. You only need `configure.in' if you want to change -it or regenerate `configure' using a newer version of `autoconf'. + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You only need +`configure.ac' if you want to change it or regenerate `configure' using +a newer version of `autoconf'. The simplest way to compile this package is: @@ -55,14 +62,15 @@ Compilers and Options ===================== Some systems require unusual options for compilation or linking that -the `configure' script does not know about. You can give `configure' -initial values for variables by setting them in the environment. Using -a Bourne-compatible shell, you can do that on the command line like -this: - CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for variables by setting +them in the environment. You can do that on the command line like this: -Or on systems that have the `env' program, you can do it like this: - env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix + + *Note Environment Variables::, for more details. Compiling For Multiple Architectures ==================================== @@ -75,7 +83,7 @@ directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. - If you have to use a `make' that does not supports the `VPATH' + If you have to use a `make' that does not support the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another @@ -122,22 +130,36 @@ you can use the `configure' options `--x-includes=DIR' and Specifying the System Type ========================== - There may be some features `configure' can not figure out + There may be some features `configure' cannot figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints -a message saying it can not guess the host type, give it the -`--host=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name with three fields: +a message saying it cannot guess the host type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + CPU-COMPANY-SYSTEM -See the file `config.sub' for the possible values of each field. If +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. - If you are building compiler tools for cross-compiling, you can also + If you are _building_ compiler tools for cross-compiling, you should use the `--target=TYPE' option to select the type of system they will -produce code for and the `--build=TYPE' option to select the type of -system on which you are compiling the package. +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the host +platform (i.e., that on which the generated programs will eventually be +run) with `--host=TYPE'. In this case, you should also specify the +build platform with `--build=TYPE', because, in this case, it may not +be possible to guess the build platform (it sometimes involves +compiling and running simple test programs, and this can't be done if +the compiler is a cross compiler). Sharing Defaults ================ @@ -150,20 +172,44 @@ default values for variables like `CC', `cache_file', and `prefix'. `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. -Operation Controls -================== +Environment Variables +===================== + + Variables not defined in a site shell script can be set in the +environment passed to configure. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +will cause the specified gcc to be used as the C compiler (unless it is +overridden in the site shell script). + +`configure' Invocation +====================== `configure' recognizes the following options to control how it operates. -`--cache-file=FILE' - Use and save the results of the tests in FILE instead of - `./config.cache'. Set FILE to `/dev/null' to disable caching, for - debugging `configure'. - `--help' +`-h' Print a summary of the options to `configure', and exit. +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + `--quiet' `--silent' `-q' @@ -175,9 +221,6 @@ operates. Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. -`--version' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`configure' also accepts some other, not widely useful, options. +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. diff --git a/Makefile.in b/Makefile.in index b4845d2f..89d03be4 100644 --- a/Makefile.in +++ b/Makefile.in @@ -393,7 +393,8 @@ OTHERDIRS=\ src/utils/afmtodit \ src/roff/grog \ src/roff/nroff \ - contrib/mm + contrib/mm \ + contrib/pic2graph ALLDIRS=$(INCDIRS) $(LIBDIRS) $(PROGDIRS) \ $(DEVDIRS) $(TTYDEVDIRS) $(OTHERDIRS) EXTRADIRS=\ diff --git a/Makefile.sub b/Makefile.sub index 77c701f9..17ac3c1d 100644 --- a/Makefile.sub +++ b/Makefile.sub @@ -4,5 +4,5 @@ CLEANADD=Makefile.cfg conftest* distfiles: configure -configure: configure.in aclocal.m4 +configure: configure.ac aclocal.m4 cd $(srcdir); autoconf diff --git a/NEWS b/NEWS index 1476df65..fa7a8df0 100644 --- a/NEWS +++ b/NEWS @@ -16,6 +16,13 @@ o The `-xwidth' specifier in the mdoc macro package has been removed. Its functionality is now integrated directly into `-width'. Similarly, `-column' has been extended to has this functionality also. +Pic2graph +--------- + +o A new script contributed by Eric S. Raymond . It + converts a PIC diagram into a cropped image. Since it uses gs and the PNM + library, virtually all graphics formats are available for output. + VERSION 1.17.2 ============== @@ -254,12 +261,12 @@ o The grog script now works in non-compatibility mode also (which is the Grops ----- -A new option `-P' resp. a new environment variable `GROPS_PROLOGUE' has been -added to select a different prologue file. +o A new option `-P' resp. a new environment variable `GROPS_PROLOGUE' has + been added to select a different prologue file. -The effect of the former `-mpsnew' option to access more Type 1 characters -is now the default and no longer available. To get the old behaviour (i.e., -emulation of some glyphs by composition) use `-mpsold'. +o The effect of the former `-mpsnew' option to access more Type 1 characters + is now the default and no longer available. To get the old behaviour + (i.e., emulation of some glyphs by composition) use `-mpsold'. Miscellaneous ------------- diff --git a/src/preproc/tbl/main.cc b/src/preproc/tbl/main.cc index b1b14a71..45e25a03 100644 --- a/src/preproc/tbl/main.cc +++ b/src/preproc/tbl/main.cc @@ -1385,7 +1385,7 @@ table *process_data(table_input &in, format *f, options *opt) f = newf; } if (line.length() >= 3 - && line[0] == '.' && line[1] == 'f' && line[2] == 'f') { + && line[0] == '.' && line[1] == 'l' && line[2] == 'f') { line += '\0'; interpret_lf_args(line.contents() + 3); } diff --git a/src/preproc/tbl/tbl.man b/src/preproc/tbl/tbl.man index 42dac252..058d6009 100644 --- a/src/preproc/tbl/tbl.man +++ b/src/preproc/tbl/tbl.man @@ -19,6 +19,8 @@ the original English. .TH @G@TBL @MAN1EXT@ "@MDATE@" "Groff Version @VERSION@" .SH NAME @g@tbl \- format tables for troff +. +. .SH SYNOPSIS .B @g@tbl [ @@ -27,6 +29,8 @@ the original English. [ .IR files \|.\|.\|. ] +. +. .SH DESCRIPTION This manual page describes the GNU version of .BR tbl , @@ -53,6 +57,8 @@ will be read. A filename of .B \- will cause the standard input to be read. +. +. .SH OPTIONS .TP .B \-C @@ -64,47 +70,291 @@ even when followed by a character other than space or newline. .TP .B \-v Print the version number. +. +. .SH USAGE -Only the differences between GNU .B tbl -and Unix -.B tbl -are described here. -.LP +expects to find table descriptions wrapped in the +.B .TS +(table start) and +.B .TE +(table end) macros. +The line immediately following the +.B .TS +macro may contain any of the following global options: +. +.TP +.B center +Centers the table (default is left-justified). +The alternative keyword name +.B centre +is also recognized. +. +.TP +.BI delim( xy ) +Use +.I x +and +.I y +as start and end delimiters for +.BR @g@eqn (@MAN1EXT@). +. +.TP +.B expand +Makes the table as wide as the current line length. +. +.TP +.B box +Encloses the table in a box. +. +.TP +.B doublebox +Encloses the table in a double box. +. +.TP +.B allbox +Encloses each item of the table in a box. +. +.TP +.B frame +Same as box (GNU tbl only). +. +.TP +.B doubleframe +Same as doublebox (GNU tbl only). +. +.TP +.BI tab( x ) +Uses the character +.I x +instead of a tab to separate items in a line of input data. +. +.TP +.BI linesize( n ) +Sets lines or rules (e.g. from +.BR box ) +in +.IR n -point +type. +. +.TP +.B nokeep +Don't use diversions to prevent page breaks (GNU tbl only). Normally .B tbl attempts to prevent undesirable breaks in the table by using diversions. -This can sometimes interact badly with macro packages' own use of diversions, -when footnotes, for example, are used. -The -.B nokeep -option tells -.B tbl -not to try and prevent breaks in this way. +This can sometimes interact badly with macro packages' own use of +diversions, when footnotes, for example, are used. +. +.TP +.BI decimalpoint( c ) +Set the character to be recognized as the decimal point in numeric +columns (GNU tbl only). +. .LP -The -.B decimalpoint -option specifies the character to be recognized as the decimal -point character in place of the default period. -It takes an argument in parentheses, which must be a single -character, as for the +The global options must end with a semicolon. +There might be whitespace after the option and its argument in parentheses. +.LP +After global options come lines describing the format of each line of +the table. +Each such format line describes one line of the table itself, except that +the last format line (which you must end with a period) describes all +remaining lines of the table. +A single key character describes each column of each line of the table. +You may run format specs for multiple lines together on the same line by +separating them with commas. +.LP +You may follow each key character with specifiers that determine the font +and point size of the corresponding item, that determine column width, +inter-column spacing, etc. +.LP +The longest format line defines the number of columns in the table; missing +format descriptors at the end of format lines are assumed to be `L'. +Extra columns in the data (which have no corresponding format entry) are +ignored. +.LP +The available key characters are: +. +.TP +c,C +Centers item within the column. +. +.TP +r,R +Right-justifies item within the column. +. +.TP +l,L +Left-justifies item within the column. +. +.TP +n,N +Numerically justifies item in the column: Units positions of numbers are +aligned vertically. +. +.TP +s,S +Spans previous item on the left into this column. +. +.TP +a,A +Centers longest line in this column and then left-justifies all other lines +in this column with respect to that centered line. +. +.TP +^ +Spans down entry from previous row in this column. +. +.TP +_,- +Replaces this entry with a horizontal line. +. +.TP += +. +Replaces this entry with a double horizontal line. +. +.TP +| +The corresponding column becomes a vertical rule (if two of these are +adjacent, a double vertical rule). +. +.LP +A vertical bar to the left of the first key-letter or to the right of the +last one produces a line at the edge of the table. +.LP +Here are the specifiers that can appear in suffixes to column key letters: +. +.TP +b,B +Short form of fB (make affected entries bold). +. +.TP +i,I +Short form of fI (make affected entries italic). +. +.TP +t,T +Start an item vertically spanning rows at the top of its range rather than +vertically centering it. +. +.TP +d,D +Start an item vertically spanning rows at the bottom of its range rather +than vertically centering it (GNU tbl only). +. +.TP +v,V +Followed by a number, this indicates the vertical line spacing to be used in +a multi-line table entry. +If signed, the current vertical line spacing is incremented or decremented +(using a signed number instead of a signed digit is a GNU tbl extension). +A vertical line spacing specifier followed by a column separation number +must be separated by one or more blanks. +No effect if the corresponding table entry isn't a text block. +. +.TP +f,F +Either of these specifiers may be followed by a font name (either one or two +characters long), font number (a single digit), or long name in parentheses +(the last form is a GNU tbl extension). +A one-letter font name must be separated by one or more blanks from whatever +follows. +. +.TP +p,P +Followed by a number, this does a point size change for the affected fields. +If signed, the current point size is incremented or decremented (using a +signed number instead of a signed digit is a GNU tbl extension). +A point size specifier followed by a column separation number must be +separated by one or more blanks. +. +.TP +w,W +Minimal column width value. +Must be followed either by a +.BR @g@troff (@MAN1EXT@) +width expression in parentheses or a unitless integer. +If no unit is given, en units are used. +Also used as the default line length for included text blocks. +If used multiple times, the last entry takes effect. +. +.TP +e,E +Make equally-spaced columns. +. +.TP +u,U +Move the corresponding column up one half-line. +. +.TP +z,Z +Ignore the corresponding column for width-calculation purposes. +. +.LP +A number suffix on a key character is interpreted as a column +separation in ens (multiplied in proportion if the +.B expand +option is on). +Default separation is 3n. +.LP +The format lines are followed by lines containing the actual data for the +table, followed finally by +.BR .TE . +Within such data lines, items are normally separated by tab characters (or +the character specified with the .B tab -option. +option). +Long input lines can be broken across multiple lines if the last character +on the line is `\e' (which vanishes after concatenation). .LP -The -.B f -format modifier can be followed by an arbitrary length -font name in parentheses. -.LP -There is a -.B d -format modifier which means that a vertically spanning entry -should be aligned at the bottom of its range. -.LP -There is no limit on the number of columns in a table, nor any limit -on the number of text blocks. -All the lines of a table are considered in deciding column -widths, not just the first 200. +A dot starting a line, followed by anything but a digit is handled as a +troff command, passed through without changes. +The table position is unchanged in this case. +.LP +If a data line consists of only `_' or `=', a single or double line, +respectively, is drawn across the table at that point; if a single item in a +data line consists of only `_' or `=', then that item is replaced by a +single or double line, joining its neighbours. +If a data item consists only of `\e_' or `\e=', a single or double line, +respectively, is drawn across the field at that point which does not join +its neighbours. +.LP +A data item consisting only of `\eRx' (`x' any character) is replaced by +repetitions of character `x' as wide as the column (not joining its +neighbours). +.LP +A data item consisting only of `\e^' indicates that the field immediately +above spans downward over this row. +.LP +A text block can be used to enter data as a single entry which would be +too long as a simple string between tabs. +It is started with `T{' and closed with `T}'. +The latter must start a line, probably followed by other data columns +(separated with tabs). +.LP +To change the data format within a table, use the +.B .T& +command (at the start of a line). +It is followed by format and data lines (but no global options) similar to +the +.B .TS +request. +. +. +.SH "INTERACTION WITH @G@EQN" +.BR @g@tbl (@MAN1EXT@) +should always be called before +.BR @g@eqn (@MAN1EXT@) +.RB ( groff (@MAN1EXT@) +automatically takes care of the correct order of preprocessors). +. +. +.SH "GNU TBL ENHANCEMENTS" +There is no limit on the number of columns in a table, nor any limit on the +number of text blocks. +All the lines of a table are considered in deciding column widths, not just +the first 200. Table continuation .RB ( .T& ) lines are not restricted to the first 200 lines. @@ -113,13 +363,15 @@ Numeric and alphabetic items may appear in the same column. .LP Numeric and alphabetic items may span horizontally. .LP -.B tbl +.B @g@tbl uses register, string, macro and diversion names beginning with .BR 3 . When using -.B tbl +.B @g@tbl you should avoid using any names beginning with a .BR 3 . +. +. .SH BUGS You should use .BR .TS\ H / .TH @@ -157,7 +409,7 @@ instead of .BR bp . .LP Using \ea directly in a table to get leaders will not work. -This is correct behaviour: \ea is a +This is correct behaviour: \ea is an .B uninterpreted leader. To get leaders use a real leader, either by using a control A or like @@ -173,6 +425,14 @@ A\e*a;B \&.TE .ft .fi +. +. +.SH REFERENCE +Lesk, M.E.: "TBL -- A Program to Format Tables". +For copyright reasons it cannot be included in the groff distribution, +but copies can be found with a title search on the World Wide Web. +. +. .SH "SEE ALSO" .BR groff (@MAN1EXT@), .BR @g@troff (@MAN1EXT@) diff --git a/src/roff/groff/groff.man b/src/roff/groff/groff.man index 00c93431..ffb683e8 100644 --- a/src/roff/groff/groff.man +++ b/src/roff/groff/groff.man @@ -435,7 +435,7 @@ Include a complete, self-contained example that will allow the bug to be reproduced, and say which version of groff you are using. .SH COPYRIGHT -Copyright \(co 1989-2000 Free Software Foundation, Inc. +Copyright \(co 1989-2000, 2001 Free Software Foundation, Inc. .LP groff is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -483,6 +483,7 @@ The actual version can be found at .BR groff_man (@MAN7EXT@), .BR groff_ms (@MAN7EXT@), .BR groff_me (@MAN7EXT@), +.BR groff_mwww (@MAN7EXT@), .BR groff_char (@MAN7EXT@) . .\" Local Variables: diff --git a/src/utils/afmtodit/afmtodit.man b/src/utils/afmtodit/afmtodit.man index 585c2297..e5b02682 100644 --- a/src/utils/afmtodit/afmtodit.man +++ b/src/utils/afmtodit/afmtodit.man @@ -52,7 +52,7 @@ creates a font file for use with groff and .BR grops . .B afmtodit is written in perl; -you must have perl version 3 installed in order to run +you must have perl version 3 or newer installed in order to run .BR afmtodit . .I afm_file is the AFM (Adobe Font Metric) file for the font. -- cgit v1.2.1