aboutsummaryrefslogtreecommitdiffstats
path: root/doc/user/str_cros
diff options
context:
space:
mode:
Diffstat (limited to 'doc/user/str_cros')
-rw-r--r--doc/user/str_cros112
1 files changed, 112 insertions, 0 deletions
diff --git a/doc/user/str_cros b/doc/user/str_cros
new file mode 100644
index 0000000..7eb74c3
--- /dev/null
+++ b/doc/user/str_cros
@@ -0,0 +1,112 @@
+@Section
+ @Title { Cross references }
+ @Tag { cross }
+@Begin
+@PP
+Cross references are a useful feature of documents, but they are a
+cross.ref @Index { cross references }
+problem for authors. Suppose that at one point of your document
+you have
+@ID @OneRow @Code {
+"We hold these truths to be self-evident, that all men are created equal,"
+"that they are endowed by their Creator with certain inalienable Rights,"
+"that among these are Life, Liberty, and the pursuit of Happiness..."
+}
+and that at some other point, earlier or later, you have
+@ID @OneRow @Code {
+"The anti-slavery cause, founded as it was on the Declaration"
+"of Independence (page 181), could appeal to patriotic as"
+"well as moral sentiments..."
+}
+This is a @I { cross reference }, and the problem is that as the document
+is revised, the Declaration of Independence might move to page 185, and
+the cross reference must be found and changed.
+@PP
+Lout has a simple solution to this problem. Instead of writing the
+pageof. @Index @Code "@PageOf"
+page number, write
+@ID @OneRow @Code {
+"The anti-slavery cause, founded as it was on the Declaration"
+"of Independence (page @PageOf { decl.of.ind }), could appeal to"
+"patriotic as well as moral sentiments..."
+}
+instead, and at the point referred to, write
+pagemark. @Index @Code "@PageMark"
+@ID @OneRow @Code {
+"We @PageMark decl.of.ind hold these truths to be self-evident, that..."
+}
+Inserting @Code "@PageMark decl.of.ind" will not affect the result,
+but Lout makes a note of the number of the page on which the word
+preceding it appears, and inserts that number in place of
+{@Code "@PageOf decl.of.ind"}. The tag, {@Code "decl.of.ind"}, may be
+tag. @Index { tag }
+any simple word (actually Lout will accept a multi-word tag, but they
+are very inconvenient and better avoided). The braces are there, as
+usual, to control grouping: we don't want the following punctuation
+characters in the tag.
+@PP
+One tag called @Code "last.page" is created automatically
+"last.page.tag" @Index { @Code "last.page" tag }
+for you. @Code "@PageOf last.page" gives the number of the last page
+of the document. For example, the result for this document is
+{@PageOf last.page}.
+@PP
+Cross referencing also applies to large-scale structure symbols such as
+@Code "@Chapter" and @Code "@Section" (any symbol with a @Code "@Title"
+option), as well as @Code { "@FootNote" }, @Code { "@EndNote" },
+@Code { "@Figure" }, @Code { "@Table" }, the numbered display
+symbols, and @Code "@ListItem" and @Code "@DropListItem" (but not
+@Code "@TagItem" and {@Code "@DropTagItem"}). Each of these symbols
+has a @Code "@Tag" option:
+tag.sym @Index @Code "@Tag"
+@ID @OneRow @Code {
+"@Section"
+" @Title { Cross references }"
+" @Tag { cross }"
+"@Begin"
+"@PP"
+"Cross references are a useful ..."
+}
+Now you can use the @Code "@PageOf" symbol to find the
+number of the page on which the symbol's result begins, and the
+@Code "@NumberOf" symbol to find its number:
+numberof. @Index @Code "@NumberOf"
+@ID @OneRow @Code {
+"For further information on this point, please consult"
+"Section @NumberOf cross (page @PageOf { cross })."
+}
+produces
+@QD {
+For further information on this point, please consult
+Section @NumberOf cross (page @PageOf { cross }).
+}
+Like all tags, the value of the @Code "@Tag" option should be a simple
+word (although Lout does accept multi-word tags). Cross referencing of
+list items yields just the number of the item, in Arabic, Roman, or
+whatever; it does not include the surrounding parentheses or other
+decorations introducted by the list's @Code "style" option.
+@PP
+To work cross references out, Lout has to process your document more
+multiple.runs @Index { multiple runs, why needed }
+than once, storing information between runs in special files it
+creates whose names end in @Code ".li" and {@Code ".ld"}. A complex
+document like this Guide requires five runs, but since every run
+produces a perfectly good PostScript file suitable for proof reading,
+in fact you need two runs to start with and one run per cycle of
+revision thereafter, only one more than would have been necessary
+in any case.
+@PP
+The cross referencing system assumes that each Unix directory contains
+directories @Index { directories, Lout files and }
+only one Lout document (possibly spread over many files). If you keep
+several documents in one directory you can turn off the cross referencing
+with the @Code "-s" flag:
+@ID @Code "lout -s simple > simple.ps"
+Since this will cause question marks to replace footnote and section
+numbers, and other products of cross referencing, it is only feasible
+for simple documents. Alternatively, you can reset cross referencing
+when switching from one document to another, by removing file
+lout.li @Index { @Code lout.li file }
+{@Code "lout.li"}. You should also remove this file if your document
+changes radically -- from a report to a book, say.
+@End @Section