annotate doc/lispref/two-volume-cross-refs.txt @ 97366:d2c211c8ceda

(w32_list_system_processes, w32_system_process_attributes): Add prototypes. (Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess, Qttname) (Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime, Qcutime) (Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs, Quser, Qgroup) (Qetime, Qpcpu, Qpmem, Qtpgid, Qcstime): Add extern declarations.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 09 Aug 2008 17:53:30 +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/>.