aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--toc/toc.177
-rw-r--r--toc/toc.tmac4
2 files changed, 79 insertions, 2 deletions
diff --git a/toc/toc.1 b/toc/toc.1
new file mode 100644
index 0000000..dbee298
--- /dev/null
+++ b/toc/toc.1
@@ -0,0 +1,77 @@
+.Dd $Mdocdate$
+.Dt toc 1
+.Os
+.Sh NAME
+.Nm toc
+.Nd run troff in multiple passes
+.
+.Sh SYNOPSIS
+.Nm
+.Ar cmd ...
+.Sh DESCRIPTION
+.Pp
+.Nm
+in multiple passes in order to pass information
+.Xr troff 1
+in multiple passes in order to pass information
+from the end of the document to the beginning.
+.Pp
+As arguments, it takes a
+.Xr troff 1
+command line, which is evaluated as a shell command on each pass.
+.Pp
+.Nm
+runs
+.Xr troff 1
+as many times as are needed,
+with a minimum of one and a maximum of three.
+The typical usage is for creating tables of contents,
+but it can be used to pass arbitrary
+.Xr troff 1
+code to a given document location.
+.Pp
+.Nm
+is designed to be used in combination with the
+.Em toc.tmac
+package, which defines the macros
+.Em te ,
+for emitting code from later parts of the document, and
+.Em to ,
+for gathering and evaluating emitted code in an earlier part.
+.
+.Sh EXAMPLES
+.Pp
+The following invocation generates the PostScript file
+example.ps from the troff source file example.t with
+.Nm :
+.Bd -literal -offset indent
+$ <example.t toc refer \\| troff | dpost >example.ps
+.Ed
+.Pp
+Note that the pipeline
+.Ql refer | troff
+is handed to
+.Nm ,
+which runs it at every pass.
+When
+.Nm
+is done, it prints the output on standard out.
+In this case, it is passed to
+.Xr dpost 1 ,
+which converts it to PostScript.
+.
+.Sh AUTHORS
+.Pp
+.Nm
+is written by John Ankarström
+.Aq Mt "john (at) ankarstrom.se" .
+.Sh BUGS
+.Pp
+Whitespace in the arguments to
+.Nm
+is not preserved.
+If this is a problem, the
+.Xr troff 1
+pipeline should be written to a shell script,
+which can be safely used with
+.Nm .
diff --git a/toc/toc.tmac b/toc/toc.tmac
index b97aaf9..f885f91 100644
--- a/toc/toc.tmac
+++ b/toc/toc.tmac
@@ -8,12 +8,12 @@
.
.eo
.
-.\" to -- evaluate collected lines
+.\" to -- gather and evaluate lines
.de to
. if !'\*(tf'' .so \*(tf
..
.
-.\" te -- collect line
+.\" te -- emit line
.de te
. if \n(te=1 .tm (toc)\$*
..