summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwlemb <wlemb>2000-05-08 08:48:43 +0000
committerwlemb <wlemb>2000-05-08 08:48:43 +0000
commitbf9e80a7ecb7b0f14e56887291c973c2582f948c (patch)
tree893d04ab499c5623e5a5efcac4bf486daa5a1e5f
parent8d3f1e99b794abac5e791952550089c073d7cf8e (diff)
downloadgroff-bf9e80a7ecb7b0f14e56887291c973c2582f948c.tar.gz
* doc/groff.texinfo: Completed tab section. Added info about
fields. * PROBLEMS: Describe configure script fix for OS/390 Unix.
-rw-r--r--ChangeLog9
-rw-r--r--PROBLEMS20
-rw-r--r--doc/groff.texinfo175
3 files changed, 165 insertions, 39 deletions
diff --git a/ChangeLog b/ChangeLog
index 65577746..77112bb6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2000-05-07 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Completed tab section. Added info about
+ fields.
+
+2000-05-06 Mike MacIsaac <mikemac@us.ibm.com>
+
+ * PROBLEMS: Describe configure script fix for OS/390 Unix.
+
2000-05-05 Werner LEMBERG <wl@gnu.org>
* font/devdvi/DESC.in: Change size 11pt to 10.95pt (as used in
diff --git a/PROBLEMS b/PROBLEMS
index 67307cff..36685b56 100644
--- a/PROBLEMS
+++ b/PROBLEMS
@@ -68,7 +68,25 @@ directory and include that directory with a -I option.
* The configure script fails on OS/390 Unix.
-You must apply fix pack PTF UQ42006 which fixes a C++ compiler bug.
+There is a bug in the Language Environment (LE) whereby the test
+program for static destructors fails. You will see the message
+'configure: error: a working C++ compiler is required'
+
+Applying PTF UQ42006 is supposed to fix this, but the test program is
+still returning the wrong value (1). To work around this problem, you
+can comment out the following in the configure script (near line 956).
+This will effectively bypass the test (static constructors and
+destructors do actually work properly):
+
+#if { (eval echo configure:957: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+#then
+ echo "$ac_t""yes" 1>&6
+#else
+# echo "configure: failed program was:" >&5
+# cat conftest.$ac_ext >&5
+# rm -fr conftest*
+# echo "$ac_t""no" 1>&6;{ echo "configure: error: a working C++ compiler is required" 1>&2; exit 1; }
+#fi
----------------------------------------------------------------------
diff --git a/doc/groff.texinfo b/doc/groff.texinfo
index 81b69587..9e47a23c 100644
--- a/doc/groff.texinfo
+++ b/doc/groff.texinfo
@@ -3049,7 +3049,19 @@ must be taken to get the desired result:
@noindent
The surrounding parentheses prevent the interpretation of the minus sign
-as a decrementing operator.
+as a decrementing operator. An alternative is to start the assignment
+with a @samp{0}:
+
+@example
+.nr a 7
+.nr b -3
+.nr a \nb
+\na
+ @result{} 4
+.nr a 0\nb
+\na
+ @result{} -3
+@end example
@end_Deffn
@Deffn{Request, rr, ident}
@@ -3804,7 +3816,7 @@ This escape is a non-interpreted tab character. In copy mode
(@pxref{Copy-in Mode}), @code{\t} is the same as a real tab character.
@end_Deffn
-@Deffn{Request, ta, n1 n2 @dots{} nn @t{T} r1 r2 @dots{} rn}
+@Deffn{Request, ta, [@var{n1} @var{n2} @dots{} @var{nn} @t{T} @var{r1} @var{r2} @dots{} @var{rn}]}
Change tab stop positions. This request takes a series of tab
specifiers as arguments (optionally divided into two groups with the
letter @samp{T}) which indicate where each tab stop is to be (overriding
@@ -3846,10 +3858,10 @@ and then at @var{nn}+@var{rn}+@var{r1}, @var{nn}+@var{rn}+@var{r2},
Example: @samp{4c +6c T 3c 5c 2c} is equivalent to @samp{4c 10c 13c 18c
20c 23c 28c 30c @dots{}}.
-The material in each tab column may be justified to the right or left or
-centered in the column. This is specified by appending an @samp{R},
-@samp{L}, or @samp{C} to the tab specifier. The default justification
-is @samp{L}. Example:
+The material in each tab column (i.e., the column between two tab stops)
+may be justified to the right or left or centered in the column. This
+is specified by appending @samp{R}, @samp{L}, or @samp{C} to the tab
+specifier. The default justification is @samp{L}. Example:
@example
.ta 1i 2iC 2iR
@@ -3863,27 +3875,23 @@ The default unit of the @code{ta} request is @samp{m}.
@item
A tab stop is converted into a non-breakable horizontal movement which
-can't be neither stretched nor squeezed. For example,
+can be neither stretched nor squeezed. For example,
@example
-.de foo
-a\tb\tc
-..
+.ds foo a\tb\tc
.ta T 5i
-.foo
+\*[foo]
@end example
@noindent
-creates a single line which is a bit longer than 10@w{ }inches (a macro
+creates a single line which is a bit longer than 10@w{ }inches (a string
is used to show exactly where the tab characters are). Now consider the
following:
@example
-.de bar
-a\tb b\tc
-..
+.ds bar a\tb b\tc
.ta T 5i
-.bar
+\*[bar]
@end example
@noindent
@@ -3892,8 +3900,39 @@ horizontal movements, then splits the line after the second @samp{b}
(assuming a sufficiently short line length). Usually, this isn't what
the user wants.
-@c XXX superfluous tab stops
+@item
+Superfluous tabs (i.e., tab characters which do not correspond to a tab
+stop) are ignored except the first one which delimits the characters
+belonging to the last tab stop for right-justifying resp.@: centering.
+Consider the following example
+
+@example
+.ds Z foo\tbar\tfoo
+.ds ZZ foo\tbar\tfoobar
+.ds ZZZ foo\tbar\tfoo\tbar
+.ta 2i 4iR
+\*[Z]
+.br
+\*[ZZ]
+.br
+\*[ZZZ]
+.br
+@end example
+
+@noindent
+which produces the following output:
+
+@example
+foo bar foo
+foo bar foobar
+foo bar foobar
+@end example
+@noindent
+The first line right-justifies the second `foo' relative to the tab
+stop. The second line right-justifies `foobar'. The third line finally
+right-justifies only `foo' because of the additional tab character which
+marks the end of the string belonging to the last defined tab stop.
@end itemize
@vindex .tabs
@@ -3902,28 +3941,44 @@ current tab settings suitable for use as an argument to the @code{ta}
request.
@end_Deffn
-@findex tc
+@Deffn{Request, tc, [@var{fill-char}]}
Normally @code{gtroff} will fill the space to the next tab stop with
-spaces. This can be change with the @code{tc} request. With no
-argument @code{gtroff} will revert to using spaces.
+space characters. This can be changed with the @code{tc} request. With
+no argument @code{gtroff} will revert to using spaces.
+@end_Deffn
+@menu
+* Leaders::
+* Fields::
+@end menu
+
+@node Leaders, Fields, Tabs and Fields, Tabs and Fields
@subsection Leaders
@cindex leaders
-@findex lc
Sometimes it may may be desirable to use the @code{tc} request to fill a
-particular tab stop with a given character, but also normal tab stops on
-the rest of the line. For this @code{gtroff} provides an alternate tab
-mechanism, called @dfn{leaders} which will do just that. They are used
-exclusively to produce a repeated run of characters to the next tab
-stop.
+particular tab stop with a given character (for example dots in a table
+of contents), but also normal tab stops on the rest of the line. For
+this @code{gtroff} provides an alternate tab mechanism, called
+@dfn{leaders} which will do just that.
+
+@cindex leader character
+A leader character (character code@w{ }1) behaves similarly to a tab
+character: It moves to the next tab stop. The only difference is that
+for this movement, the fill character defaults to a period and not to a
+space.
+
+@Deffn{Escape, \\a, }
+This escape is a non-interpreted leader character. In copy mode
+(@pxref{Copy-in Mode}), @code{\a} is the same as a real leader
+character.
+@end_Deffn
+@Deffn{Request, lc, [@var{fill-char}]}
The character that will be repeated can be declared with the @code{lc}
-request. Without an argument, the leaders will act the same as tabs.
-
-@findex \a
-Leader are invoked by using the @code{\a} escape while specifying the
-@code{ta} request.
+request. Without an argument, leaders will act the same as tabs (i.e.,
+using space characters for filling).
+@end_Deffn
@cindex table of contents
@cindex contents, table of
@@ -3933,20 +3988,64 @@ the remaining space being filled with a line of dots, and then the page
number slightly separated from the dots.
@example
+.ds entry 1.1\tFoo\a\t12
.lc .
-.ta .5iR 5i +.25i
-1.1\tFoo\a\t12
+.ta 1i 5i +.25i
+\*[entry]
@end example
+@noindent
+This produces
+
+@example
+1.1 Foo.......................................... 12
+@end example
+
+@node Fields, , Leaders, Tabs and Fields
@subsection Fields
@cindex fields
-@findex fc
-Fields are a more general way of laying out tabular data.
+@cindex field delimiting character
+@cindex delimiting character for fields
+@cindex character, field delimiting
+@cindex field padding character
+@cindex padding character for fields
+@cindex character, field padding
+@dfn{Fields} are a more general way of laying out tabular data. A field
+is defined as the data between a pair of @dfn{delimiting characters}.
+It contains substrings which are separated by @dfn{padding characters}.
+The width of a field is the distance on the @emph{input} line from the
+position where the field starts to the next tab stop. A padding
+character inserts stretchable space similar to @TeX{}'s @code{\hss}
+command (thus it can even be negative) to make the sum of all substring
+lengths plus the stretchable space equal to the field width. If more
+than one padding character is inserted, the available space is evenly
+distributed among them.
+
+@Deffn{Request, fc, [@var{delim-char} [@var{padding-char}]]}
+Define a delimiting and a padding character for fields. If the latter
+is missing, the padding character defaults to a space character. If
+there is no argument at all, the field mechanism is disabled.
+@end_Deffn
+
+Example:
-@code{fc}
+@example
+.fc # ^
+.ta T 3i
+#foo^bar^smurf#
+.br
+#foo^^bar^smurf#
+@end example
+
+@noindent
+and here the result:
+
+@example
+foo bar smurf
+foo bar smurf
+@end example
-@c XXX add explanation
@node Character Translations, Line Layout, Tabs and Fields, Programming Tutorial
@section Character Translations
@@ -5257,7 +5356,7 @@ name.
This would be called as
@example
-.vl $Id: groff.texinfo,v 1.30 2000/05/01 23:47:44 wlemb Exp $
+.vl $Id: groff.texinfo,v 1.31 2000/05/08 08:48:44 wlemb Exp $
@end example
@xref{Request Arguments}.