annotate doc/lispref/two-volume-cross-refs.txt @ 100917:e2daa3033e6e

(Function Safety): Texinfo usage fix.
author Richard M. Stallman <rms@gnu.org>
date Mon, 05 Jan 2009 16:03:29 +0000
parents fde6f792a832
children cb5d2387102c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
87649
107ccd98fa12 Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 84106
diff changeset
1 Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
84106
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
2 Free Software Foundation, Inc.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
3 See end for copying conditions.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
4
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
5 Two Volume Cross References
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
6 ===========================
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
7
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
8 12 June 2007 (karl)
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
9
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
10 For lispref 2.9 (for Emacs 22, June 2007), I created a very ugly
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
11 Makefile, in the file two-volume.make, to encapsulate all the steps
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
12 below, without manual intervention. In theory, simply running "make -f
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
13 two-volume.make" should create a vol1.pdf and vol2.pdf with all the
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
14 niceties worked out.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
15
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
16 One issue not explicitly discussed below is getting page numbers right.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
17 It's not enough to go through the whole process. You have to go through
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
18 the whole process twice -- otherwise, some index entries and/or toc
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
19 entries will be off by one. See two-volume.make for a few more comments.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
20
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
21 For future editions, it should suffice to update the usual things in
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
22 vol[12].texi (as well as elisp.texi). That was my hope, anyway.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
23
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
24
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
25 18 March 1992 (bob)
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
26
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
27 This enables you to create manuals in *two* volumes, with tables of
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
28 contents, cross references, and indices in each volume referring to
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
29 *both* volumes.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
30
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
31 The procedure is tedious. However, the resulting two volumes are
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
32 conveniently organized. Each has an index of the whole two volumes.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
33 Each volume starts with page 1. (I don't like multi-volume works
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
34 where each volume starts with a higher page number since I find it
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
35 harder to go to the right place in the volume.)
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
36
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
37 References to the same volume are just the page number; references to
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
38 the other volume are a volumne number (in Roman numerals) preceding
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
39 the page number.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
40
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
41 For example, in Volume I:
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
42
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
43 list length ......... 90
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
44 list motion ......II:117
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
45
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
46 and in Volume II:
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
47
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
48 list length ....... I:90
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
49 list motion .........117
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
50
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
51 All other references and the table of contents work the same way. I
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
52 find this *very* helpful.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
53
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
54
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
55 In brief: you run tex on a .texi file with
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
56
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
57 a. redefined @contents and @summarycontents inputting elisp-toc-2vol.toc file
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
58 b. redone .aux file
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
59 c. redone .fns file
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
60
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
61
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
62 Here are the steps in detail:
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
63
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
64 % tex vol1.texi
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
65 % texindex vol1.??
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
66 % tex vol1.texi
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
67
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
68 % tex vol2.texi
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
69 % texindex vol2.??
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
70 % tex vol2.texi
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
71
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
72 ### Create .aux files with volume numbers for other volume.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
73
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
74 % cp vol1.aux elisp1-aux
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
75 % cp vol2.aux elisp2-aux
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
76
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
77 % cp vol1.aux elisp1-aux-vol-added
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
78 % cp vol2.aux elisp2-aux-vol-added
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
79
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
80 on elisp1-aux-vol-number-added
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
81 (volume-aux-markup 1) see defun for volume-aux-markup below.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
82 to create elisp1-aux-vol-added
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
83
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
84 on elisp2-aux-vol-number-added
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
85 (volume-aux-markup 2)
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
86 to create elisp2-aux-vol-added
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
87
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
88 insert elisp2-aux-vol-added into vol1.aux (append)
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
89 insert elisp1-aux-vol-added into vol2.aux (prepend)
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
90
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
91 (so you dont have to do it again)
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
92 % cp vol1.aux elisp1-aux-ready
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
93 % cp vol2.aux elisp2-aux-ready
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
94
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
95
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
96 ### Create .fn files with volume numbers for other volume.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
97
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
98 % cp vol1.fn elisp1-fn
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
99 % cp vol2.fn elisp2-fn
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
100
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
101 % cp vol1.fn elisp1-fn-vol-number-added
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
102 % cp vol2.fn elisp2-fn-vol-number-added
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
103
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
104 on elisp1-fn-vol-number-added
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
105 (volume-index-markup "I")
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
106 to create elisp1-fn-vol-number-added
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
107
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
108 on elisp2-fn-vol-number-added
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
109 (volume-index-markup "II")
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
110 to create elisp2-fn-vol-number-added
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
111
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
112 insert elisp2-fn-vol-number-added into vol1.fn: do following `cat'
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
113 insert elisp1-fn-vol-number-added into vol2.fn: do following `cat'
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
114
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
115 % cat elisp2-fn-vol-number-added >> vol1.fn
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
116 % cat elisp1-fn-vol-number-added >> vol2.fn
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
117
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
118 Be sure to handle special case entries by hand.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
119 Be sure that .fn file has no blank lines.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
120
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
121 % texindex vol1.fn
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
122 % texindex vol2.fn
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
123
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
124 (so you dont have to do it again)
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
125 % cp vol1.fns elisp1-fns-2vol-ready
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
126 % cp vol2.fns elisp2-fns-2vol-ready
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
127
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
128 ### Create merged .toc file with volume number headings.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
129
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
130 append vol2.toc to vol1.toc with following `cat'
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
131
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
132 % cat vol1.toc vol2.toc > elisp-toc-2vol.toc
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
133
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
134 and edit in Volume titles
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
135
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
136 \unnumbchapentry {Volume 1}{}
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
137 \unnumbchapentry {}{}
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
138
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
139 \unnumbchapentry {Index}{295}
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
140 \unnumbchapentry {}{}
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
141 \unnumbchapentry {Volume 2}{}
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
142 \unnumbchapentry {}{}
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
143
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
144 If you want to put in volume numbers for TOC, then do this:
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
145 Create volume specific .toc files with volume numbers in them.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
146
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
147 % cp elisp-toc-2vol.toc elisp1-toc.toc
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
148 % cp elisp-toc-2vol.toc elisp2-toc.toc
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
149
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
150 Use keyboard macro to put I: in first half of elisp1-toc.toc and
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
151 II: in first half of elisp2-toc.toc
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
152
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
153 Copy the tocs to something you can remember more easily
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
154
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
155 % cp elisp2-toc.toc elisp1-toc-ready.toc
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
156 % cp elisp1-toc.toc elisp2-toc-ready.toc
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
157
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
158 Then, edit vol1.texi to input elisp1-toc-ready.toc
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
159 and vol2.texi to input elisp2-toc-ready.toc
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
160
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
161
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
162 ### Now format the two volumes:
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
163
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
164 % cp elisp1-aux-2vol-ready vol1.aux
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
165 % cp elisp2-aux-2vol-ready vol2.aux
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
166
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
167 % tex vol1.texi
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
168 % tex vol2.texi
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
169
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
170
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
171
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
172 For every additional run:
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
173
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
174 ### recopy aux files so the correct ones are read:
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
175 % cp elisp1-aux-2vol-ready vol1.aux
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
176 % cp elisp2-aux-2vol-ready vol2.aux
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
177
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
178 Do not run texindex. Then proper sorted index will stay.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
179 else do: % cp elisp2-fns-2vol-ready vol2.fns
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
180
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
181 Do not change the .texi files; they will call the elisp-toc-2vol.toc file.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
182
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
183 % tex vol1.texi
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
184 % tex vol2.texi
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
185
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
186 ================================================================
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
187
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
188
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
189 (defun volume-aux-markup (arg)
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
190 "Append `vol. NUMBER' to page number.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
191 Apply to aux file that you save.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
192 Then insert marked file into other volume's .aux file."
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
193 (interactive "sType volume number, 1 or 2: " )
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
194 (goto-char (point-min))
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
195 (while (search-forward "-pg" nil t)
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
196 (end-of-line 1)
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
197 (delete-backward-char 1 nil)
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
198 (insert ", vol.'tie" arg "}")))
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
199
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
200 (defun volume-index-markup (arg)
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
201 "Prepend `NUMBER:' to page number. Use Roman Numeral.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
202 Apply only to unsorted index file,
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
203 Then insert marked file into other volume's unsorted index file.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
204 Then run texindex on that file and save."
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
205 (interactive
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
206 "sType volume number, roman number I or II: " )
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
207 (goto-char (point-min))
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
208 (while (search-forward "\\entry" nil t)
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
209 (search-forward "}{" (save-excursion (end-of-line) (point)) nil)
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
210 (insert arg ":")))
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
211
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
212
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
213 ================================================================
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
214
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
215
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
216 The steps:
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
217
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
218 1. Run TeX, texindex and TeX on file1.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
219 2. Run TeX, texindex and TeX on file2.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
220
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
221 3. Copy both .aux files into specially named files
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
222
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
223 4. In the case of the elisp ref manual,
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
224
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
225 copy the *unsorted* function index files into specially named files
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
226 (no other index used in elisp ref manual)
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
227
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
228
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
229 5. For aux files:
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
230
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
231 Run a function on the specially named .aux files to label each
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
232 entry according to volume. Save these files.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
233
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
234 i.e., convert
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
235 'xrdef {Special-pg}{7} to 'xrdef {Special-pg}{7, vol.'tie1}
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
236
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
237 5a.Insert each specially named .aux file into the regular .aux file of
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
238 the other volume.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
239
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
240 6. For index files:
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
241
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
242 Run a function on the specially named unsorted index files to label
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
243 each entry according to volume. Save these files.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
244
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
245 6b.Insert each specially named marked unsorted index file into the
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
246 regular unsorted file of the other volume. Run texindex on this
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
247
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
248 7. Insert the other volumes .toc file into the .toc, edit, and rename to
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
249 elisp-toc-2vol.toc
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
250
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
251 7a. insert special @contents and @summarycontents defs into .texi files.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
252
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
253 8. Run TeX on each .texi file.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
254
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
255 ================
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
256
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
257
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
258
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
259 Here is the discursive commentary:
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
260
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
261 I've been running some small test files, called test1.texi and
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
262 test2.texi. As far as I can see, if we run tex on the two test files,
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
263 tex creates a .aux for each that includes the names of all the nodes
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
264 in that file. The node names are used for cross references.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
265
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
266 If you insert the .aux file for the second test file, test2.aux, into
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
267 the .aux file for the first test file, test1.aux, then when you next
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
268 run TeX on the first test file, test1.texi, the second volume cross
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
269 references are inserted.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
270
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
271 You can edit the text of the cross reference in test2.aux to include
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
272 the volume number.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
273
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
274 For example, you can take the following two lines from test1.texi and
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
275 insert them into test2.texi:
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
276
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
277 'xrdef {Special-pg}{7}
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
278 'xrdef {Special-snt}{Section'tie1.6}
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
279
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
280 You can re-edit this to show that the page is in volume 1:
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
281
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
282 'xrdef {Special-pg}{7, vol.'tie1}
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
283 'xrdef {Special-snt}{Section'tie1.6}
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
284
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
285 (The 'tie is a TeX special command to keep the number tied on one
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
286 line to the previous word. I don't know if it works after a period in
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
287 the "vol." but figure it is worth trying. {The ' is the @ of .aux files.}
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
288 Apparently 'tie is like the tilde in plain tex; in texinfo.tex, the
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
289 definition for 'tie is the following:
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
290
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
291 \def\tie{\penalty 10000\ } % Save plain tex definition of ~.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
292
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
293 )
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
294
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
295 After running tex on the test2.texi file with the augmented test2.aux
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
296 file, you can see the following in the resulting DVI file:
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
297
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
298 See Section 1.6 [Special], page 7, vol. 1
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
299
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
300 Note that TeX rewrites the .aux file each time TeX is run, so after
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
301 running Tex using an .aux file augmented with the .aux file from the
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
302 other volume, the new .aux file will *lack* the other volumes cross
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
303 references. Save your augmented .aux file in some other name for
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
304 another run!
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
305
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
306
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
307 COPYING CONDITIONS
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
308
95035
fde6f792a832 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
309 This file is free software: you can redistribute it and/or modify
84106
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
310 it under the terms of the GNU General Public License as published by
95035
fde6f792a832 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
311 the Free Software Foundation, either version 3 of the License, or
fde6f792a832 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
312 (at your option) any later version.
84106
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
313
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
314 This file is distributed in the hope that it will be useful,
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
315 but WITHOUT ANY WARRANTY; without even the implied warranty of
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
316 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
317 GNU General Public License for more details.
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
318
1e1daffde0bb Move here from ../../lispref
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
319 You should have received a copy of the GNU General Public License
95035
fde6f792a832 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
320 along with this file. If not, see <http://www.gnu.org/licenses/>.