annotate man/texinfo.tex @ 71710:dbbc0b93cfeb

(Forcing Redisplay, Displaying Messages, Temporary Displays, Font Selection, Auto Faces, Font Lookup, Fringe Indicators, Display Margins, Image Descriptors, Showing Images, Image Cache, Button Types, Making Buttons, Manipulating Buttons, Button Buffer Commands, Display Table Format, Glyphs): Remove @tindex.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 08 Jul 2006 18:11:49 +0000
parents cf0c35ec7c54
children 5e59478af974 138ce2701550
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1 % texinfo.tex -- TeX macros to handle Texinfo files.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3 % Load plain if necessary, i.e., if running under initex.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5 %
71493
cf0c35ec7c54 autoupdate
Karl Berry <karl@gnu.org>
parents: 71093
diff changeset
6 \def\texinfoversion{2006-06-19.13}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
8 % Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
9 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
10 % Software Foundation, Inc.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
11 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
12 % This texinfo.tex file is free software; you can redistribute it and/or
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
13 % modify it under the terms of the GNU General Public License as
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
14 % published by the Free Software Foundation; either version 2, or (at
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
15 % your option) any later version.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
16 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
17 % This texinfo.tex file is distributed in the hope that it will be
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
18 % useful, but WITHOUT ANY WARRANTY; without even the implied warranty
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
19 % of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
20 % General Public License for more details.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
21 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
22 % You should have received a copy of the GNU General Public License
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
23 % along with this texinfo.tex file; see the file COPYING. If not, write
64083
23a17af379b1 Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 59986
diff changeset
24 % to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
23a17af379b1 Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 59986
diff changeset
25 % Boston, MA 02110-1301, USA.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
26 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
27 % As a special exception, when this file is read by TeX when processing
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
28 % a Texinfo source document, you may use the result without
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
29 % restriction. (This has been our intent since Texinfo was invented.)
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
30 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
31 % Please try the latest version of texinfo.tex before submitting bug
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
32 % reports; you can get the latest version from:
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
33 % http://www.gnu.org/software/texinfo/ (the Texinfo home page), or
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
34 % ftp://tug.org/tex/texinfo.tex
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
35 % (and all CTAN mirrors, see http://www.ctan.org).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
36 % The texinfo.tex in any given distribution could well be out
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
37 % of date, so if that's what you're using, please check.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
38 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
39 % Send bug reports to bug-texinfo@gnu.org. Please include including a
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
40 % complete document in each bug report with which we can reproduce the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
41 % problem. Patches are, of course, greatly appreciated.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
42 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
43 % To process a Texinfo manual with TeX, it's most reliable to use the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
44 % texi2dvi shell script that comes with the distribution. For a simple
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
45 % manual foo.texi, however, you can get away with this:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
46 % tex foo.texi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
47 % texindex foo.??
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
48 % tex foo.texi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
49 % tex foo.texi
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
50 % dvips foo.dvi -o # or whatever; this makes foo.ps.
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
51 % The extra TeX runs get the cross-reference information correct.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
52 % Sometimes one run after texindex suffices, and sometimes you need more
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
53 % than two; texi2dvi does it as many times as necessary.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
54 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
55 % It is possible to adapt texinfo.tex for other languages, to some
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
56 % extent. You can get the existing language-specific files from the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
57 % full Texinfo distribution.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
58 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
59 % The GNU Texinfo home page is http://www.gnu.org/software/texinfo.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
60
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
61
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
62 \message{Loading texinfo [version \texinfoversion]:}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
63
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
64 % If in a .fmt file, print the version number
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
65 % and turn on active characters that we couldn't do earlier because
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
66 % they might have appeared in the input file name.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
67 \everyjob{\message{[Texinfo version \texinfoversion]}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
68 \catcode`+=\active \catcode`\_=\active}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
69
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
70 \message{Basics,}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
71 \chardef\other=12
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
72
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
73 % We never want plain's \outer definition of \+ in Texinfo.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
74 % For @tex, we can use \tabalign.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
75 \let\+ = \relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
76
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
77 % Save some plain tex macros whose names we will redefine.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
78 \let\ptexb=\b
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
79 \let\ptexbullet=\bullet
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
80 \let\ptexc=\c
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
81 \let\ptexcomma=\,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
82 \let\ptexdot=\.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
83 \let\ptexdots=\dots
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
84 \let\ptexend=\end
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
85 \let\ptexequiv=\equiv
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
86 \let\ptexexclam=\!
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
87 \let\ptexfootnote=\footnote
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
88 \let\ptexgtr=>
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
89 \let\ptexhat=^
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
90 \let\ptexi=\i
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
91 \let\ptexindent=\indent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
92 \let\ptexinsert=\insert
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
93 \let\ptexlbrace=\{
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
94 \let\ptexless=<
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
95 \let\ptexnewwrite\newwrite
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
96 \let\ptexnoindent=\noindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
97 \let\ptexplus=+
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
98 \let\ptexrbrace=\}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
99 \let\ptexslash=\/
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
100 \let\ptexstar=\*
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
101 \let\ptext=\t
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
102
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
103 % If this character appears in an error message or help string, it
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
104 % starts a new line in the output.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
105 \newlinechar = `^^J
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
106
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
107 % Use TeX 3.0's \inputlineno to get the line number, for better error
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
108 % messages, but if we're using an old version of TeX, don't do anything.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
109 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
110 \ifx\inputlineno\thisisundefined
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
111 \let\linenumber = \empty % Pre-3.0.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
112 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
113 \def\linenumber{l.\the\inputlineno:\space}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
114 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
115
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
116 % Set up fixed words for English if not already set.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
117 \ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
118 \ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
119 \ifx\putwordfile\undefined \gdef\putwordfile{file}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
120 \ifx\putwordin\undefined \gdef\putwordin{in}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
121 \ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
122 \ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
123 \ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
124 \ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
125 \ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
126 \ifx\putwordNoTitle\undefined \gdef\putwordNoTitle{No Title}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
127 \ifx\putwordof\undefined \gdef\putwordof{of}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
128 \ifx\putwordon\undefined \gdef\putwordon{on}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
129 \ifx\putwordpage\undefined \gdef\putwordpage{page}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
130 \ifx\putwordsection\undefined \gdef\putwordsection{section}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
131 \ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
132 \ifx\putwordsee\undefined \gdef\putwordsee{see}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
133 \ifx\putwordSee\undefined \gdef\putwordSee{See}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
134 \ifx\putwordShortTOC\undefined \gdef\putwordShortTOC{Short Contents}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
135 \ifx\putwordTOC\undefined \gdef\putwordTOC{Table of Contents}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
136 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
137 \ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
138 \ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
139 \ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
140 \ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
141 \ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
142 \ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
143 \ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
144 \ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
145 \ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
146 \ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
147 \ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
148 \ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
149 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
150 \ifx\putwordDefmac\undefined \gdef\putwordDefmac{Macro}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
151 \ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
152 \ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
153 \ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
154 \ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
155
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
156 % Since the category of space is not known, we have to be careful.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
157 \chardef\spacecat = 10
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
158 \def\spaceisspace{\catcode`\ =\spacecat}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
159
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
160 % Ignore a token.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
161 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
162 \def\gobble#1{}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
163
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
164 % The following is used inside several \edef's.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
165 \def\makecsname#1{\expandafter\noexpand\csname#1\endcsname}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
166
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
167 % Hyphenation fixes.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
168 \hyphenation{
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
169 Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
170 ap-pen-dix bit-map bit-maps
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
171 data-base data-bases eshell fall-ing half-way long-est man-u-script
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
172 man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
173 par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
174 spell-ing spell-ings
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
175 stand-alone strong-est time-stamp time-stamps which-ever white-space
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
176 wide-spread wrap-around
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
177 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
178
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
179 % Margin to add to right of even pages, to left of odd pages.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
180 \newdimen\bindingoffset
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
181 \newdimen\normaloffset
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
182 \newdimen\pagewidth \newdimen\pageheight
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
183
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
184 % For a final copy, take out the rectangles
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
185 % that mark overfull boxes (in case you have decided
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
186 % that the text looks ok even though it passes the margin).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
187 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
188 \def\finalout{\overfullrule=0pt}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
189
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
190 % @| inserts a changebar to the left of the current line. It should
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
191 % surround any changed text. This approach does *not* work if the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
192 % change spans more than two lines of output. To handle that, we would
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
193 % have adopt a much more difficult approach (putting marks into the main
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
194 % vertical list for the beginning and end of each change).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
195 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
196 \def\|{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
197 % \vadjust can only be used in horizontal mode.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
198 \leavevmode
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
199 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
200 % Append this vertical mode material after the current line in the output.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
201 \vadjust{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
202 % We want to insert a rule with the height and depth of the current
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
203 % leading; that is exactly what \strutbox is supposed to record.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
204 \vskip-\baselineskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
205 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
206 % \vadjust-items are inserted at the left edge of the type. So
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
207 % the \llap here moves out into the left-hand margin.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
208 \llap{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
209 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
210 % For a thicker or thinner bar, change the `1pt'.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
211 \vrule height\baselineskip width1pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
212 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
213 % This is the space between the bar and the text.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
214 \hskip 12pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
215 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
216 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
217 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
218
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
219 % Sometimes it is convenient to have everything in the transcript file
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
220 % and nothing on the terminal. We don't just call \tracingall here,
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
221 % since that produces some useless output on the terminal. We also make
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
222 % some effort to order the tracing commands to reduce output in the log
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
223 % file; cf. trace.sty in LaTeX.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
224 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
225 \def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
226 \def\loggingall{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
227 \tracingstats2
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
228 \tracingpages1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
229 \tracinglostchars2 % 2 gives us more in etex
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
230 \tracingparagraphs1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
231 \tracingoutput1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
232 \tracingmacros2
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
233 \tracingrestores1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
234 \showboxbreadth\maxdimen \showboxdepth\maxdimen
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
235 \ifx\eTeXversion\undefined\else % etex gives us more logging
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
236 \tracingscantokens1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
237 \tracingifs1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
238 \tracinggroups1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
239 \tracingnesting2
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
240 \tracingassigns1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
241 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
242 \tracingcommands3 % 3 gives us more in etex
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
243 \errorcontextlines16
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
244 }%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
245
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
246 % add check for \lastpenalty to plain's definitions. If the last thing
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
247 % we did was a \nobreak, we don't want to insert more space.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
248 %
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
249 \def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
250 \removelastskip\penalty-50\smallskip\fi\fi}
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
251 \def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
252 \removelastskip\penalty-100\medskip\fi\fi}
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
253 \def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
254 \removelastskip\penalty-200\bigskip\fi\fi}
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
255
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
256 % For @cropmarks command.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
257 % Do @cropmarks to get crop marks.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
258 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
259 \newif\ifcropmarks
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
260 \let\cropmarks = \cropmarkstrue
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
261 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
262 % Dimensions to add cropmarks at corners.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
263 % Added by P. A. MacKay, 12 Nov. 1986
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
264 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
265 \newdimen\outerhsize \newdimen\outervsize % set by the paper size routines
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
266 \newdimen\cornerlong \cornerlong=1pc
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
267 \newdimen\cornerthick \cornerthick=.3pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
268 \newdimen\topandbottommargin \topandbottommargin=.75in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
269
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
270 % Main output routine.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
271 \chardef\PAGE = 255
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
272 \output = {\onepageout{\pagecontents\PAGE}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
273
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
274 \newbox\headlinebox
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
275 \newbox\footlinebox
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
276
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
277 % \onepageout takes a vbox as an argument. Note that \pagecontents
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
278 % does insertions, but you have to call it yourself.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
279 \def\onepageout#1{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
280 \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
281 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
282 \ifodd\pageno \advance\hoffset by \bindingoffset
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
283 \else \advance\hoffset by -\bindingoffset\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
284 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
285 % Do this outside of the \shipout so @code etc. will be expanded in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
286 % the headline as they should be, not taken literally (outputting ''code).
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
287 \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
288 \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
289 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
290 {%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
291 % Have to do this stuff outside the \shipout because we want it to
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
292 % take effect in \write's, yet the group defined by the \vbox ends
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
293 % before the \shipout runs.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
294 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
295 \indexdummies % don't expand commands in the output.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
296 \normalturnoffactive % \ in index entries must not stay \, e.g., if
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
297 % the page break happens to be in the middle of an example.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
298 % We don't want .vr (or whatever) entries like this:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
299 % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
300 % "\acronym" won't work when it's read back in;
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
301 % it needs to be
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
302 % {\code {{\tt \backslashcurfont }acronym}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
303 \shipout\vbox{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
304 % Do this early so pdf references go to the beginning of the page.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
305 \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
306 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
307 \ifcropmarks \vbox to \outervsize\bgroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
308 \hsize = \outerhsize
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
309 \vskip-\topandbottommargin
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
310 \vtop to0pt{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
311 \line{\ewtop\hfil\ewtop}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
312 \nointerlineskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
313 \line{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
314 \vbox{\moveleft\cornerthick\nstop}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
315 \hfill
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
316 \vbox{\moveright\cornerthick\nstop}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
317 }%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
318 \vss}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
319 \vskip\topandbottommargin
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
320 \line\bgroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
321 \hfil % center the page within the outer (page) hsize.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
322 \ifodd\pageno\hskip\bindingoffset\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
323 \vbox\bgroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
324 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
325 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
326 \unvbox\headlinebox
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
327 \pagebody{#1}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
328 \ifdim\ht\footlinebox > 0pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
329 % Only leave this space if the footline is nonempty.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
330 % (We lessened \vsize for it in \oddfootingxxx.)
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
331 % The \baselineskip=24pt in plain's \makefootline has no effect.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
332 \vskip 2\baselineskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
333 \unvbox\footlinebox
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
334 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
335 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
336 \ifcropmarks
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
337 \egroup % end of \vbox\bgroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
338 \hfil\egroup % end of (centering) \line\bgroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
339 \vskip\topandbottommargin plus1fill minus1fill
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
340 \boxmaxdepth = \cornerthick
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
341 \vbox to0pt{\vss
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
342 \line{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
343 \vbox{\moveleft\cornerthick\nsbot}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
344 \hfill
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
345 \vbox{\moveright\cornerthick\nsbot}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
346 }%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
347 \nointerlineskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
348 \line{\ewbot\hfil\ewbot}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
349 }%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
350 \egroup % \vbox from first cropmarks clause
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
351 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
352 }% end of \shipout\vbox
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
353 }% end of group with \indexdummies
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
354 \advancepageno
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
355 \ifnum\outputpenalty>-20000 \else\dosupereject\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
356 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
357
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
358 \newinsert\margin \dimen\margin=\maxdimen
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
359
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
360 \def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
361 {\catcode`\@ =11
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
362 \gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
363 % marginal hacks, juha@viisa.uucp (Juha Takala)
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
364 \ifvoid\margin\else % marginal info is present
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
365 \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
366 \dimen@=\dp#1 \unvbox#1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
367 \ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
368 \ifr@ggedbottom \kern-\dimen@ \vfil \fi}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
369 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
370
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
371 % Here are the rules for the cropmarks. Note that they are
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
372 % offset so that the space between them is truly \outerhsize or \outervsize
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
373 % (P. A. MacKay, 12 November, 1986)
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
374 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
375 \def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
376 \def\nstop{\vbox
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
377 {\hrule height\cornerthick depth\cornerlong width\cornerthick}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
378 \def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
379 \def\nsbot{\vbox
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
380 {\hrule height\cornerlong depth\cornerthick width\cornerthick}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
381
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
382 % Parse an argument, then pass it to #1. The argument is the rest of
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
383 % the input line (except we remove a trailing comment). #1 should be a
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
384 % macro which expects an ordinary undelimited TeX argument.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
385 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
386 \def\parsearg{\parseargusing{}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
387 \def\parseargusing#1#2{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
388 \def\argtorun{#2}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
389 \begingroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
390 \obeylines
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
391 \spaceisspace
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
392 #1%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
393 \parseargline\empty% Insert the \empty token, see \finishparsearg below.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
394 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
395
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
396 {\obeylines %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
397 \gdef\parseargline#1^^M{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
398 \endgroup % End of the group started in \parsearg.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
399 \argremovecomment #1\comment\ArgTerm%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
400 }%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
401 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
402
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
403 % First remove any @comment, then any @c comment.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
404 \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
405 \def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
406
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
407 % Each occurence of `\^^M' or `<space>\^^M' is replaced by a single space.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
408 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
409 % \argremovec might leave us with trailing space, e.g.,
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
410 % @end itemize @c foo
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
411 % This space token undergoes the same procedure and is eventually removed
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
412 % by \finishparsearg.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
413 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
414 \def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
415 \def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
416 \def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
417 \def\temp{#3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
418 \ifx\temp\empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
419 % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
420 \let\temp\finishparsearg
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
421 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
422 \let\temp\argcheckspaces
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
423 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
424 % Put the space token in:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
425 \temp#1 #3\ArgTerm
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
426 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
427
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
428 % If a _delimited_ argument is enclosed in braces, they get stripped; so
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
429 % to get _exactly_ the rest of the line, we had to prevent such situation.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
430 % We prepended an \empty token at the very beginning and we expand it now,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
431 % just before passing the control to \argtorun.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
432 % (Similarily, we have to think about #3 of \argcheckspacesY above: it is
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
433 % either the null string, or it ends with \^^M---thus there is no danger
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
434 % that a pair of braces would be stripped.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
435 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
436 % But first, we have to remove the trailing space token.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
437 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
438 \def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
439
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
440 % \parseargdef\foo{...}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
441 % is roughly equivalent to
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
442 % \def\foo{\parsearg\Xfoo}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
443 % \def\Xfoo#1{...}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
444 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
445 % Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
446 % favourite TeX trick. --kasal, 16nov03
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
447
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
448 \def\parseargdef#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
449 \expandafter \doparseargdef \csname\string#1\endcsname #1%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
450 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
451 \def\doparseargdef#1#2{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
452 \def#2{\parsearg#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
453 \def#1##1%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
454 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
455
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
456 % Several utility definitions with active space:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
457 {
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
458 \obeyspaces
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
459 \gdef\obeyedspace{ }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
460
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
461 % Make each space character in the input produce a normal interword
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
462 % space in the output. Don't allow a line break at this space, as this
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
463 % is used only in environments like @example, where each line of input
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
464 % should produce a line of output anyway.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
465 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
466 \gdef\sepspaces{\obeyspaces\let =\tie}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
467
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
468 % If an index command is used in an @example environment, any spaces
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
469 % therein should become regular spaces in the raw index file, not the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
470 % expansion of \tie (\leavevmode \penalty \@M \ ).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
471 \gdef\unsepspaces{\let =\space}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
472 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
473
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
474
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
475 \def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
476
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
477 % Define the framework for environments in texinfo.tex. It's used like this:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
478 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
479 % \envdef\foo{...}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
480 % \def\Efoo{...}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
481 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
482 % It's the responsibility of \envdef to insert \begingroup before the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
483 % actual body; @end closes the group after calling \Efoo. \envdef also
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
484 % defines \thisenv, so the current environment is known; @end checks
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
485 % whether the environment name matches. The \checkenv macro can also be
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
486 % used to check whether the current environment is the one expected.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
487 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
488 % Non-false conditionals (@iftex, @ifset) don't fit into this, so they
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
489 % are not treated as enviroments; they don't open a group. (The
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
490 % implementation of @end takes care not to call \endgroup in this
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
491 % special case.)
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
492
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
493
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
494 % At runtime, environments start with this:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
495 \def\startenvironment#1{\begingroup\def\thisenv{#1}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
496 % initialize
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
497 \let\thisenv\empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
498
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
499 % ... but they get defined via ``\envdef\foo{...}'':
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
500 \long\def\envdef#1#2{\def#1{\startenvironment#1#2}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
501 \def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
502
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
503 % Check whether we're in the right environment:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
504 \def\checkenv#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
505 \def\temp{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
506 \ifx\thisenv\temp
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
507 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
508 \badenverr
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
509 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
510 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
511
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
512 % Evironment mismatch, #1 expected:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
513 \def\badenverr{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
514 \errhelp = \EMsimple
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
515 \errmessage{This command can appear only \inenvironment\temp,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
516 not \inenvironment\thisenv}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
517 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
518 \def\inenvironment#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
519 \ifx#1\empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
520 out of any environment%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
521 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
522 in environment \expandafter\string#1%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
523 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
524 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
525
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
526 % @end foo executes the definition of \Efoo.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
527 % But first, it executes a specialized version of \checkenv
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
528 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
529 \parseargdef\end{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
530 \if 1\csname iscond.#1\endcsname
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
531 \else
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
532 % The general wording of \badenverr may not be ideal, but... --kasal, 06nov03
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
533 \expandafter\checkenv\csname#1\endcsname
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
534 \csname E#1\endcsname
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
535 \endgroup
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
536 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
537 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
538
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
539 \newhelp\EMsimple{Press RETURN to continue.}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
540
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
541
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
542 %% Simple single-character @ commands
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
543
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
544 % @@ prints an @
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
545 % Kludge this until the fonts are right (grr).
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
546 \def\@{{\tt\char64}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
547
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
548 % This is turned off because it was never documented
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
549 % and you can use @w{...} around a quote to suppress ligatures.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
550 %% Define @` and @' to be the same as ` and '
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
551 %% but suppressing ligatures.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
552 %\def\`{{`}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
553 %\def\'{{'}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
554
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
555 % Used to generate quoted braces.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
556 \def\mylbrace {{\tt\char123}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
557 \def\myrbrace {{\tt\char125}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
558 \let\{=\mylbrace
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
559 \let\}=\myrbrace
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
560 \begingroup
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
561 % Definitions to produce \{ and \} commands for indices,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
562 % and @{ and @} for the aux/toc files.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
563 \catcode`\{ = \other \catcode`\} = \other
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
564 \catcode`\[ = 1 \catcode`\] = 2
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
565 \catcode`\! = 0 \catcode`\\ = \other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
566 !gdef!lbracecmd[\{]%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
567 !gdef!rbracecmd[\}]%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
568 !gdef!lbraceatcmd[@{]%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
569 !gdef!rbraceatcmd[@}]%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
570 !endgroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
571
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
572 % @comma{} to avoid , parsing problems.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
573 \let\comma = ,
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
574
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
575 % Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
576 % Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
577 \let\, = \c
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
578 \let\dotaccent = \.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
579 \def\ringaccent#1{{\accent23 #1}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
580 \let\tieaccent = \t
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
581 \let\ubaraccent = \b
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
582 \let\udotaccent = \d
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
583
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
584 % Other special characters: @questiondown @exclamdown @ordf @ordm
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
585 % Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
586 \def\questiondown{?`}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
587 \def\exclamdown{!`}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
588 \def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
589 \def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
590
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
591 % Dotless i and dotless j, used for accents.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
592 \def\imacro{i}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
593 \def\jmacro{j}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
594 \def\dotless#1{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
595 \def\temp{#1}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
596 \ifx\temp\imacro \ptexi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
597 \else\ifx\temp\jmacro \j
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
598 \else \errmessage{@dotless can be used only with i or j}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
599 \fi\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
600 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
601
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
602 % The \TeX{} logo, as in plain, but resetting the spacing so that a
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
603 % period following counts as ending a sentence. (Idea found in latex.)
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
604 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
605 \edef\TeX{\TeX \spacefactor=1000 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
606
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
607 % @LaTeX{} logo. Not quite the same results as the definition in
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
608 % latex.ltx, since we use a different font for the raised A; it's most
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
609 % convenient for us to use an explicitly smaller font, rather than using
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
610 % the \scriptstyle font (since we don't reset \scriptstyle and
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
611 % \scriptscriptstyle).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
612 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
613 \def\LaTeX{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
614 L\kern-.36em
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
615 {\setbox0=\hbox{T}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
616 \vbox to \ht0{\hbox{\selectfonts\lllsize A}\vss}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
617 \kern-.15em
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
618 \TeX
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
619 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
620
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
621 % Be sure we're in horizontal mode when doing a tie, since we make space
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
622 % equivalent to this in @example-like environments. Otherwise, a space
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
623 % at the beginning of a line will start with \penalty -- and
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
624 % since \penalty is valid in vertical mode, we'd end up putting the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
625 % penalty on the vertical list instead of in the new paragraph.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
626 {\catcode`@ = 11
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
627 % Avoid using \@M directly, because that causes trouble
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
628 % if the definition is written into an index file.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
629 \global\let\tiepenalty = \@M
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
630 \gdef\tie{\leavevmode\penalty\tiepenalty\ }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
631 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
632
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
633 % @: forces normal size whitespace following.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
634 \def\:{\spacefactor=1000 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
635
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
636 % @* forces a line break.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
637 \def\*{\hfil\break\hbox{}\ignorespaces}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
638
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
639 % @/ allows a line break.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
640 \let\/=\allowbreak
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
641
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
642 % @. is an end-of-sentence period.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
643 \def\.{.\spacefactor=\endofsentencespacefactor\space}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
644
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
645 % @! is an end-of-sentence bang.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
646 \def\!{!\spacefactor=\endofsentencespacefactor\space}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
647
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
648 % @? is an end-of-sentence query.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
649 \def\?{?\spacefactor=\endofsentencespacefactor\space}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
650
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
651 % @frenchspacing on|off says whether to put extra space after punctuation.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
652 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
653 \def\onword{on}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
654 \def\offword{off}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
655 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
656 \parseargdef\frenchspacing{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
657 \def\temp{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
658 \ifx\temp\onword \plainfrenchspacing
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
659 \else\ifx\temp\offword \plainnonfrenchspacing
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
660 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
661 \errhelp = \EMsimple
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
662 \errmessage{Unknown @frenchspacing option `\temp', must be on/off}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
663 \fi\fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
664 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
665
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
666 % @w prevents a word break. Without the \leavevmode, @w at the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
667 % beginning of a paragraph, when TeX is still in vertical mode, would
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
668 % produce a whole line of output instead of starting the paragraph.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
669 \def\w#1{\leavevmode\hbox{#1}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
670
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
671 % @group ... @end group forces ... to be all on one page, by enclosing
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
672 % it in a TeX vbox. We use \vtop instead of \vbox to construct the box
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
673 % to keep its height that of a normal line. According to the rules for
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
674 % \topskip (p.114 of the TeXbook), the glue inserted is
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
675 % max (\topskip - \ht (first item), 0). If that height is large,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
676 % therefore, no glue is inserted, and the space between the headline and
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
677 % the text is small, which looks bad.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
678 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
679 % Another complication is that the group might be very large. This can
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
680 % cause the glue on the previous page to be unduly stretched, because it
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
681 % does not have much material. In this case, it's better to add an
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
682 % explicit \vfill so that the extra space is at the bottom. The
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
683 % threshold for doing this is if the group is more than \vfilllimit
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
684 % percent of a page (\vfilllimit can be changed inside of @tex).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
685 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
686 \newbox\groupbox
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
687 \def\vfilllimit{0.7}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
688 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
689 \envdef\group{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
690 \ifnum\catcode`\^^M=\active \else
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
691 \errhelp = \groupinvalidhelp
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
692 \errmessage{@group invalid in context where filling is enabled}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
693 \fi
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
694 \startsavinginserts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
695 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
696 \setbox\groupbox = \vtop\bgroup
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
697 % Do @comment since we are called inside an environment such as
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
698 % @example, where each end-of-line in the input causes an
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
699 % end-of-line in the output. We don't want the end-of-line after
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
700 % the `@group' to put extra space in the output. Since @group
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
701 % should appear on a line by itself (according to the Texinfo
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
702 % manual), we don't worry about eating any user text.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
703 \comment
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
704 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
705 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
706 % The \vtop produces a box with normal height and large depth; thus, TeX puts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
707 % \baselineskip glue before it, and (when the next line of text is done)
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
708 % \lineskip glue after it. Thus, space below is not quite equal to space
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
709 % above. But it's pretty close.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
710 \def\Egroup{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
711 % To get correct interline space between the last line of the group
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
712 % and the first line afterwards, we have to propagate \prevdepth.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
713 \endgraf % Not \par, as it may have been set to \lisppar.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
714 \global\dimen1 = \prevdepth
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
715 \egroup % End the \vtop.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
716 % \dimen0 is the vertical size of the group's box.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
717 \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
718 % \dimen2 is how much space is left on the page (more or less).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
719 \dimen2 = \pageheight \advance\dimen2 by -\pagetotal
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
720 % if the group doesn't fit on the current page, and it's a big big
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
721 % group, force a page break.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
722 \ifdim \dimen0 > \dimen2
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
723 \ifdim \pagetotal < \vfilllimit\pageheight
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
724 \page
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
725 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
726 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
727 \box\groupbox
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
728 \prevdepth = \dimen1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
729 \checkinserts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
730 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
731 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
732 % TeX puts in an \escapechar (i.e., `@') at the beginning of the help
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
733 % message, so this ends up printing `@group can only ...'.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
734 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
735 \newhelp\groupinvalidhelp{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
736 group can only be used in environments such as @example,^^J%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
737 where each line of input produces a line of output.}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
738
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
739 % @need space-in-mils
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
740 % forces a page break if there is not space-in-mils remaining.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
741
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
742 \newdimen\mil \mil=0.001in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
743
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
744 % Old definition--didn't work.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
745 %\parseargdef\need{\par %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
746 %% This method tries to make TeX break the page naturally
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
747 %% if the depth of the box does not fit.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
748 %{\baselineskip=0pt%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
749 %\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
750 %\prevdepth=-1000pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
751 %}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
752
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
753 \parseargdef\need{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
754 % Ensure vertical mode, so we don't make a big box in the middle of a
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
755 % paragraph.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
756 \par
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
757 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
758 % If the @need value is less than one line space, it's useless.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
759 \dimen0 = #1\mil
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
760 \dimen2 = \ht\strutbox
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
761 \advance\dimen2 by \dp\strutbox
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
762 \ifdim\dimen0 > \dimen2
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
763 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
764 % Do a \strut just to make the height of this box be normal, so the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
765 % normal leading is inserted relative to the preceding line.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
766 % And a page break here is fine.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
767 \vtop to #1\mil{\strut\vfil}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
768 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
769 % TeX does not even consider page breaks if a penalty added to the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
770 % main vertical list is 10000 or more. But in order to see if the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
771 % empty box we just added fits on the page, we must make it consider
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
772 % page breaks. On the other hand, we don't want to actually break the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
773 % page after the empty box. So we use a penalty of 9999.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
774 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
775 % There is an extremely small chance that TeX will actually break the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
776 % page at this \penalty, if there are no other feasible breakpoints in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
777 % sight. (If the user is using lots of big @group commands, which
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
778 % almost-but-not-quite fill up a page, TeX will have a hard time doing
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
779 % good page breaking, for example.) However, I could not construct an
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
780 % example where a page broke at this \penalty; if it happens in a real
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
781 % document, then we can reconsider our strategy.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
782 \penalty9999
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
783 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
784 % Back up by the size of the box, whether we did a page break or not.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
785 \kern -#1\mil
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
786 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
787 % Do not allow a page break right after this kern.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
788 \nobreak
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
789 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
790 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
791
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
792 % @br forces paragraph break (and is undocumented).
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
793
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
794 \let\br = \par
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
795
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
796 % @page forces the start of a new page.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
797 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
798 \def\page{\par\vfill\supereject}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
799
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
800 % @exdent text....
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
801 % outputs text on separate line in roman font, starting at standard page margin
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
802
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
803 % This records the amount of indent in the innermost environment.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
804 % That's how much \exdent should take out.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
805 \newskip\exdentamount
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
806
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
807 % This defn is used inside fill environments such as @defun.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
808 \parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
809
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
810 % This defn is used inside nofill environments such as @example.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
811 \parseargdef\nofillexdent{{\advance \leftskip by -\exdentamount
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
812 \leftline{\hskip\leftskip{\rm#1}}}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
813
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
814 % @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
815 % paragraph. For more general purposes, use the \margin insertion
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
816 % class. WHICH is `l' or `r'.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
817 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
818 \newskip\inmarginspacing \inmarginspacing=1cm
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
819 \def\strutdepth{\dp\strutbox}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
820 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
821 \def\doinmargin#1#2{\strut\vadjust{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
822 \nobreak
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
823 \kern-\strutdepth
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
824 \vtop to \strutdepth{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
825 \baselineskip=\strutdepth
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
826 \vss
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
827 % if you have multiple lines of stuff to put here, you'll need to
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
828 % make the vbox yourself of the appropriate size.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
829 \ifx#1l%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
830 \llap{\ignorespaces #2\hskip\inmarginspacing}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
831 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
832 \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
833 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
834 \null
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
835 }%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
836 }}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
837 \def\inleftmargin{\doinmargin l}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
838 \def\inrightmargin{\doinmargin r}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
839 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
840 % @inmargin{TEXT [, RIGHT-TEXT]}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
841 % (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right;
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
842 % else use TEXT for both).
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
843 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
844 \def\inmargin#1{\parseinmargin #1,,\finish}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
845 \def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
846 \setbox0 = \hbox{\ignorespaces #2}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
847 \ifdim\wd0 > 0pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
848 \def\lefttext{#1}% have both texts
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
849 \def\righttext{#2}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
850 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
851 \def\lefttext{#1}% have only one text
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
852 \def\righttext{#1}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
853 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
854 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
855 \ifodd\pageno
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
856 \def\temp{\inrightmargin\righttext}% odd page -> outside is right margin
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
857 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
858 \def\temp{\inleftmargin\lefttext}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
859 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
860 \temp
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
861 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
862
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
863 % @include file insert text of that file as input.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
864 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
865 \def\include{\parseargusing\filenamecatcodes\includezzz}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
866 \def\includezzz#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
867 \pushthisfilestack
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
868 \def\thisfile{#1}%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
869 {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
870 \makevalueexpandable
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
871 \def\temp{\input #1 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
872 \expandafter
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
873 }\temp
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
874 \popthisfilestack
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
875 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
876 \def\filenamecatcodes{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
877 \catcode`\\=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
878 \catcode`~=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
879 \catcode`^=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
880 \catcode`_=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
881 \catcode`|=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
882 \catcode`<=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
883 \catcode`>=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
884 \catcode`+=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
885 \catcode`-=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
886 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
887
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
888 \def\pushthisfilestack{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
889 \expandafter\pushthisfilestackX\popthisfilestack\StackTerm
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
890 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
891 \def\pushthisfilestackX{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
892 \expandafter\pushthisfilestackY\thisfile\StackTerm
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
893 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
894 \def\pushthisfilestackY #1\StackTerm #2\StackTerm {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
895 \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
896 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
897
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
898 \def\popthisfilestack{\errthisfilestackempty}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
899 \def\errthisfilestackempty{\errmessage{Internal error:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
900 the stack of filenames is empty.}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
901
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
902 \def\thisfile{}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
903
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
904 % @center line
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
905 % outputs that line, centered.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
906 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
907 \parseargdef\center{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
908 \ifhmode
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
909 \let\next\centerH
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
910 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
911 \let\next\centerV
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
912 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
913 \next{\hfil \ignorespaces#1\unskip \hfil}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
914 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
915 \def\centerH#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
916 {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
917 \hfil\break
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
918 \advance\hsize by -\leftskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
919 \advance\hsize by -\rightskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
920 \line{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
921 \break
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
922 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
923 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
924 \def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
925
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
926 % @sp n outputs n lines of vertical space
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
927
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
928 \parseargdef\sp{\vskip #1\baselineskip}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
929
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
930 % @comment ...line which is ignored...
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
931 % @c is the same as @comment
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
932 % @ignore ... @end ignore is another way to write a comment
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
933
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
934 \def\comment{\begingroup \catcode`\^^M=\other%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
935 \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
936 \commentxxx}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
937 {\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
938
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
939 \let\c=\comment
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
940
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
941 % @paragraphindent NCHARS
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
942 % We'll use ems for NCHARS, close enough.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
943 % NCHARS can also be the word `asis' or `none'.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
944 % We cannot feasibly implement @paragraphindent asis, though.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
945 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
946 \def\asisword{asis} % no translation, these are keywords
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
947 \def\noneword{none}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
948 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
949 \parseargdef\paragraphindent{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
950 \def\temp{#1}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
951 \ifx\temp\asisword
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
952 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
953 \ifx\temp\noneword
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
954 \defaultparindent = 0pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
955 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
956 \defaultparindent = #1em
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
957 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
958 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
959 \parindent = \defaultparindent
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
960 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
961
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
962 % @exampleindent NCHARS
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
963 % We'll use ems for NCHARS like @paragraphindent.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
964 % It seems @exampleindent asis isn't necessary, but
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
965 % I preserve it to make it similar to @paragraphindent.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
966 \parseargdef\exampleindent{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
967 \def\temp{#1}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
968 \ifx\temp\asisword
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
969 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
970 \ifx\temp\noneword
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
971 \lispnarrowing = 0pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
972 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
973 \lispnarrowing = #1em
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
974 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
975 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
976 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
977
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
978 % @firstparagraphindent WORD
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
979 % If WORD is `none', then suppress indentation of the first paragraph
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
980 % after a section heading. If WORD is `insert', then do indent at such
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
981 % paragraphs.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
982 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
983 % The paragraph indentation is suppressed or not by calling
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
984 % \suppressfirstparagraphindent, which the sectioning commands do.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
985 % We switch the definition of this back and forth according to WORD.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
986 % By default, we suppress indentation.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
987 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
988 \def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
989 \def\insertword{insert}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
990 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
991 \parseargdef\firstparagraphindent{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
992 \def\temp{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
993 \ifx\temp\noneword
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
994 \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
995 \else\ifx\temp\insertword
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
996 \let\suppressfirstparagraphindent = \relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
997 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
998 \errhelp = \EMsimple
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
999 \errmessage{Unknown @firstparagraphindent option `\temp'}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1000 \fi\fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1001 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1002
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1003 % Here is how we actually suppress indentation. Redefine \everypar to
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1004 % \kern backwards by \parindent, and then reset itself to empty.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1005 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1006 % We also make \indent itself not actually do anything until the next
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1007 % paragraph.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1008 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1009 \gdef\dosuppressfirstparagraphindent{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1010 \gdef\indent{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1011 \restorefirstparagraphindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1012 \indent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1013 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1014 \gdef\noindent{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1015 \restorefirstparagraphindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1016 \noindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1017 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1018 \global\everypar = {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1019 \kern -\parindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1020 \restorefirstparagraphindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1021 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1022 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1023
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1024 \gdef\restorefirstparagraphindent{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1025 \global \let \indent = \ptexindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1026 \global \let \noindent = \ptexnoindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1027 \global \everypar = {}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1028 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1029
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1030
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1031 % @asis just yields its argument. Used with @table, for example.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1032 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1033 \def\asis#1{#1}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1034
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1035 % @math outputs its argument in math mode.
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1036 %
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1037 % One complication: _ usually means subscripts, but it could also mean
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1038 % an actual _ character, as in @math{@var{some_variable} + 1}. So make
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1039 % _ active, and distinguish by seeing if the current family is \slfam,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1040 % which is what @var uses.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1041 {
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1042 \catcode`\_ = \active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1043 \gdef\mathunderscore{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1044 \catcode`\_=\active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1045 \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1046 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1047 }
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1048 % Another complication: we want \\ (and @\) to output a \ character.
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1049 % FYI, plain.tex uses \\ as a temporary control sequence (why?), but
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1050 % this is not advertised and we don't care. Texinfo does not
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1051 % otherwise define @\.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
1052 %
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1053 % The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\.
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1054 \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1055 %
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1056 \def\math{%
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1057 \tex
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1058 \mathunderscore
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1059 \let\\ = \mathbackslash
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1060 \mathactive
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1061 $\finishmath
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1062 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1063 \def\finishmath#1{#1$\endgroup} % Close the group opened by \tex.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1064
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1065 % Some active characters (such as <) are spaced differently in math.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1066 % We have to reset their definitions in case the @math was an argument
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1067 % to a command which sets the catcodes (such as @item or @section).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1068 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1069 {
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1070 \catcode`^ = \active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1071 \catcode`< = \active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1072 \catcode`> = \active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1073 \catcode`+ = \active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1074 \gdef\mathactive{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1075 \let^ = \ptexhat
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1076 \let< = \ptexless
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1077 \let> = \ptexgtr
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1078 \let+ = \ptexplus
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1079 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1080 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1081
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1082 % @bullet and @minus need the same treatment as @math, just above.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1083 \def\bullet{$\ptexbullet$}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1084 \def\minus{$-$}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1085
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1086 % @dots{} outputs an ellipsis using the current font.
71093
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
1087 % We do .5em per period so that it has the same spacing in the cm
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
1088 % typewriter fonts as three actual period characters; on the other hand,
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
1089 % in other typewriter fonts three periods are wider than 1.5em. So do
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
1090 % whichever is larger.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1091 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1092 \def\dots{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1093 \leavevmode
71093
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
1094 \setbox0=\hbox{...}% get width of three periods
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
1095 \ifdim\wd0 > 1.5em
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
1096 \dimen0 = \wd0
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
1097 \else
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
1098 \dimen0 = 1.5em
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
1099 \fi
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
1100 \hbox to \dimen0{%
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
1101 \hskip 0pt plus.25fil
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
1102 .\hskip 0pt plus1fil
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
1103 .\hskip 0pt plus1fil
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
1104 .\hskip 0pt plus.5fil
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1105 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1106 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1107
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1108 % @enddots{} is an end-of-sentence ellipsis.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1109 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1110 \def\enddots{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1111 \dots
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1112 \spacefactor=\endofsentencespacefactor
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1113 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1114
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1115 % @comma{} is so commas can be inserted into text without messing up
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1116 % Texinfo's parsing.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1117 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1118 \let\comma = ,
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1119
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1120 % @refill is a no-op.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1121 \let\refill=\relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1122
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1123 % If working on a large document in chapters, it is convenient to
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1124 % be able to disable indexing, cross-referencing, and contents, for test runs.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1125 % This is done with @novalidate (before @setfilename).
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1126 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1127 \newif\iflinks \linkstrue % by default we want the aux files.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1128 \let\novalidate = \linksfalse
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1129
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1130 % @setfilename is done at the beginning of every texinfo file.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1131 % So open here the files we need to have open while reading the input.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1132 % This makes it possible to make a .fmt file for texinfo.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1133 \def\setfilename{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1134 \fixbackslash % Turn off hack to swallow `\input texinfo'.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1135 \iflinks
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1136 \tryauxfile
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1137 % Open the new aux file. TeX will close it automatically at exit.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1138 \immediate\openout\auxfile=\jobname.aux
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1139 \fi % \openindices needs to do some work in any case.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1140 \openindices
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1141 \let\setfilename=\comment % Ignore extra @setfilename cmds.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1142 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1143 % If texinfo.cnf is present on the system, read it.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1144 % Useful for site-wide @afourpaper, etc.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1145 \openin 1 texinfo.cnf
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1146 \ifeof 1 \else \input texinfo.cnf \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1147 \closein 1
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1148 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1149 \comment % Ignore the actual filename.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1150 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1151
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1152 % Called from \setfilename.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1153 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1154 \def\openindices{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1155 \newindex{cp}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1156 \newcodeindex{fn}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1157 \newcodeindex{vr}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1158 \newcodeindex{tp}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1159 \newcodeindex{ky}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1160 \newcodeindex{pg}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1161 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1162
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1163 % @bye.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1164 \outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1165
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1166
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1167 \message{pdf,}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1168 % adobe `portable' document format
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1169 \newcount\tempnum
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1170 \newcount\lnkcount
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1171 \newtoks\filename
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1172 \newcount\filenamelength
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1173 \newcount\pgn
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1174 \newtoks\toksA
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1175 \newtoks\toksB
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1176 \newtoks\toksC
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1177 \newtoks\toksD
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1178 \newbox\boxA
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1179 \newcount\countA
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1180 \newif\ifpdf
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1181 \newif\ifpdfmakepagedest
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1182
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1183 % when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1184 % can be set). So we test for \relax and 0 as well as \undefined,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1185 % borrowed from ifpdf.sty.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1186 \ifx\pdfoutput\undefined
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1187 \else
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1188 \ifx\pdfoutput\relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1189 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1190 \ifcase\pdfoutput
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1191 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1192 \pdftrue
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1193 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1194 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1195 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1196
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1197 % PDF uses PostScript string constants for the names of xref targets,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1198 % for display in the outlines, and in other places. Thus, we have to
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1199 % double any backslashes. Otherwise, a name like "\node" will be
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1200 % interpreted as a newline (\n), followed by o, d, e. Not good.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1201 % http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1202 % (and related messages, the final outcome is that it is up to the TeX
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1203 % user to double the backslashes and otherwise make the string valid, so
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1204 % that's what we do).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1205
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1206 % double active backslashes.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1207 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1208 {\catcode`\@=0 \catcode`\\=\active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1209 @gdef@activebackslashdouble{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1210 @catcode`@\=@active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1211 @let\=@doublebackslash}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1212 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1213
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1214 % To handle parens, we must adopt a different approach, since parens are
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1215 % not active characters. hyperref.dtx (which has the same problem as
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1216 % us) handles it with this amazing macro to replace tokens. I've
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1217 % tinkered with it a little for texinfo, but it's definitely from there.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1218 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1219 % #1 is the tokens to replace.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1220 % #2 is the replacement.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1221 % #3 is the control sequence with the string.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1222 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1223 \def\HyPsdSubst#1#2#3{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1224 \def\HyPsdReplace##1#1##2\END{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1225 ##1%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1226 \ifx\\##2\\%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1227 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1228 #2%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1229 \HyReturnAfterFi{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1230 \HyPsdReplace##2\END
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1231 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1232 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1233 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1234 \xdef#3{\expandafter\HyPsdReplace#3#1\END}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1235 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1236 \long\def\HyReturnAfterFi#1\fi{\fi#1}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1237
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1238 % #1 is a control sequence in which to do the replacements.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1239 \def\backslashparens#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1240 \xdef#1{#1}% redefine it as its expansion; the definition is simply
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1241 % \lastnode when called from \setref -> \pdfmkdest.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1242 \HyPsdSubst{(}{\realbackslash(}{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1243 \HyPsdSubst{)}{\realbackslash)}{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1244 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1245
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1246 \ifpdf
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1247 \input pdfcolor
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1248 \pdfcatalog{/PageMode /UseOutlines}%
70570
edd2bdf83f35 autoupdate
Karl Berry <karl@gnu.org>
parents: 70407
diff changeset
1249 % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1250 \def\dopdfimage#1#2#3{%
70570
edd2bdf83f35 autoupdate
Karl Berry <karl@gnu.org>
parents: 70407
diff changeset
1251 \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
edd2bdf83f35 autoupdate
Karl Berry <karl@gnu.org>
parents: 70407
diff changeset
1252 \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1253 % without \immediate, pdftex seg faults when the same image is
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1254 % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.)
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1255 \ifnum\pdftexversion < 14
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1256 \immediate\pdfimage
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1257 \else
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1258 \immediate\pdfximage
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1259 \fi
70570
edd2bdf83f35 autoupdate
Karl Berry <karl@gnu.org>
parents: 70407
diff changeset
1260 \ifdim \wd0 >0pt width \imagewidth \fi
edd2bdf83f35 autoupdate
Karl Berry <karl@gnu.org>
parents: 70407
diff changeset
1261 \ifdim \wd2 >0pt height \imageheight \fi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1262 \ifnum\pdftexversion<13
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1263 #1.pdf%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1264 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1265 {#1.pdf}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1266 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1267 \ifnum\pdftexversion < 14 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1268 \pdfrefximage \pdflastximage
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1269 \fi}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1270 \def\pdfmkdest#1{{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1271 % We have to set dummies so commands such as @code, and characters
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1272 % such as \, aren't expanded when present in a section title.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1273 \atdummies
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1274 \activebackslashdouble
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1275 \def\pdfdestname{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1276 \backslashparens\pdfdestname
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1277 \pdfdest name{\pdfdestname} xyz%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1278 }}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1279 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1280 % used to mark target names; must be expandable.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1281 \def\pdfmkpgn#1{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1282 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1283 \let\linkcolor = \Blue % was Cyan, but that seems light?
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1284 \def\endlink{\Black\pdfendlink}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1285 % Adding outlines to PDF; macros for calculating structure of outlines
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1286 % come from Petr Olsak
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1287 \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1288 \else \csname#1\endcsname \fi}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1289 \def\advancenumber#1{\tempnum=\expnumber{#1}\relax
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1290 \advance\tempnum by 1
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1291 \expandafter\xdef\csname#1\endcsname{\the\tempnum}}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1292 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1293 % #1 is the section text, which is what will be displayed in the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1294 % outline by the pdf viewer. #2 is the pdf expression for the number
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1295 % of subentries (or empty, for subsubsections). #3 is the node text,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1296 % which might be empty if this toc entry had no corresponding node.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1297 % #4 is the page number
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1298 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1299 \def\dopdfoutline#1#2#3#4{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1300 % Generate a link to the node text if that exists; else, use the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1301 % page number. We could generate a destination for the section
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1302 % text in the case where a section has no node, but it doesn't
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1303 % seem worth the trouble, since most documents are normally structured.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1304 \def\pdfoutlinedest{#3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1305 \ifx\pdfoutlinedest\empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1306 \def\pdfoutlinedest{#4}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1307 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1308 % Doubled backslashes in the name.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1309 {\activebackslashdouble \xdef\pdfoutlinedest{#3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1310 \backslashparens\pdfoutlinedest}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1311 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1312 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1313 % Also double the backslashes in the display string.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1314 {\activebackslashdouble \xdef\pdfoutlinetext{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1315 \backslashparens\pdfoutlinetext}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1316 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1317 \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1318 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1319 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1320 \def\pdfmakeoutlines{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1321 \begingroup
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
1322 % Thanh's hack / proper braces in bookmarks
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1323 \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1324 \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1325 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1326 % Read toc silently, to get counts of subentries for \pdfoutline.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1327 \def\numchapentry##1##2##3##4{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1328 \def\thischapnum{##2}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1329 \def\thissecnum{0}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1330 \def\thissubsecnum{0}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1331 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1332 \def\numsecentry##1##2##3##4{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1333 \advancenumber{chap\thischapnum}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1334 \def\thissecnum{##2}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1335 \def\thissubsecnum{0}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1336 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1337 \def\numsubsecentry##1##2##3##4{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1338 \advancenumber{sec\thissecnum}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1339 \def\thissubsecnum{##2}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1340 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1341 \def\numsubsubsecentry##1##2##3##4{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1342 \advancenumber{subsec\thissubsecnum}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1343 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1344 \def\thischapnum{0}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1345 \def\thissecnum{0}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1346 \def\thissubsecnum{0}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1347 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1348 % use \def rather than \let here because we redefine \chapentry et
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1349 % al. a second time, below.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1350 \def\appentry{\numchapentry}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1351 \def\appsecentry{\numsecentry}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1352 \def\appsubsecentry{\numsubsecentry}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1353 \def\appsubsubsecentry{\numsubsubsecentry}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1354 \def\unnchapentry{\numchapentry}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1355 \def\unnsecentry{\numsecentry}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1356 \def\unnsubsecentry{\numsubsecentry}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1357 \def\unnsubsubsecentry{\numsubsubsecentry}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1358 \readdatafile{toc}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1359 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1360 % Read toc second time, this time actually producing the outlines.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1361 % The `-' means take the \expnumber as the absolute number of
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1362 % subentries, which we calculated on our first read of the .toc above.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1363 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1364 % We use the node names as the destinations.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1365 \def\numchapentry##1##2##3##4{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1366 \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1367 \def\numsecentry##1##2##3##4{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1368 \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1369 \def\numsubsecentry##1##2##3##4{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1370 \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1371 \def\numsubsubsecentry##1##2##3##4{% count is always zero
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1372 \dopdfoutline{##1}{}{##3}{##4}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1373 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1374 % PDF outlines are displayed using system fonts, instead of
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1375 % document fonts. Therefore we cannot use special characters,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1376 % since the encoding is unknown. For example, the eogonek from
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1377 % Latin 2 (0xea) gets translated to a | character. Info from
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1378 % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1379 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1380 % xx to do this right, we have to translate 8-bit characters to
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1381 % their "best" equivalent, based on the @documentencoding. Right
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1382 % now, I guess we'll just let the pdf reader have its way.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1383 \indexnofonts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1384 \setupdatafile
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1385 \catcode`\\=\active \otherbackslash
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1386 \input \jobname.toc
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1387 \endgroup
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1388 }
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1389 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1390 \def\skipspaces#1{\def\PP{#1}\def\D{|}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1391 \ifx\PP\D\let\nextsp\relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1392 \else\let\nextsp\skipspaces
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1393 \ifx\p\space\else\addtokens{\filename}{\PP}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1394 \advance\filenamelength by 1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1395 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1396 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1397 \nextsp}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1398 \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1399 \ifnum\pdftexversion < 14
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1400 \let \startlink \pdfannotlink
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1401 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1402 \let \startlink \pdfstartlink
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1403 \fi
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1404 % make a live url in pdf output.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1405 \def\pdfurl#1{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1406 \begingroup
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1407 % it seems we really need yet another set of dummies; have not
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1408 % tried to figure out what each command should do in the context
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1409 % of @url. for now, just make @/ a no-op, that's the only one
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1410 % people have actually reported a problem with.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1411 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1412 \normalturnoffactive
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1413 \def\@{@}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1414 \let\/=\empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1415 \makevalueexpandable
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1416 \leavevmode\Red
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1417 \startlink attr{/Border [0 0 0]}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1418 user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1419 \endgroup}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1420 \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1421 \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1422 \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1423 \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1424 \def\maketoks{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1425 \expandafter\poptoks\the\toksA|ENDTOKS|\relax
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1426 \ifx\first0\adn0
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1427 \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1428 \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
1429 \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1430 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1431 \ifnum0=\countA\else\makelink\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1432 \ifx\first.\let\next=\done\else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1433 \let\next=\maketoks
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1434 \addtokens{\toksB}{\the\toksD}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1435 \ifx\first,\addtokens{\toksB}{\space}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1436 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1437 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1438 \next}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1439 \def\makelink{\addtokens{\toksB}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1440 {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1441 \def\pdflink#1{%
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1442 \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1443 \linkcolor #1\endlink}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1444 \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1445 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1446 \let\pdfmkdest = \gobble
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1447 \let\pdfurl = \gobble
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1448 \let\endlink = \relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1449 \let\linkcolor = \relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1450 \let\pdfmakeoutlines = \relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1451 \fi % \ifx\pdfoutput
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1452
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1453
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1454 \message{fonts,}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1455
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1456 % Change the current font style to #1, remembering it in \curfontstyle.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1457 % For now, we do not accumulate font styles: @b{@i{foo}} prints foo in
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1458 % italics, not bold italics.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1459 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1460 \def\setfontstyle#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1461 \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1462 \csname ten#1\endcsname % change the current font
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1463 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1464
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1465 % Select #1 fonts with the current style.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1466 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1467 \def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1468
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1469 \def\rm{\fam=0 \setfontstyle{rm}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1470 \def\it{\fam=\itfam \setfontstyle{it}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1471 \def\sl{\fam=\slfam \setfontstyle{sl}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1472 \def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1473 \def\tt{\fam=\ttfam \setfontstyle{tt}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1474
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1475 % Texinfo sort of supports the sans serif font style, which plain TeX does not.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1476 % So we set up a \sf.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1477 \newfam\sffam
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1478 \def\sf{\fam=\sffam \setfontstyle{sf}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1479 \let\li = \sf % Sometimes we call it \li, not \sf.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1480
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1481 % We don't need math for this font style.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1482 \def\ttsl{\setfontstyle{ttsl}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1483
70407
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1484
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1485 % Default leading.
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1486 \newdimen\textleading \textleading = 13.2pt
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1487
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1488 % Set the baselineskip to #1, and the lineskip and strut size
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1489 % correspondingly. There is no deep meaning behind these magic numbers
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1490 % used as factors; they just match (closely enough) what Knuth defined.
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1491 %
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1492 \def\lineskipfactor{.08333}
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1493 \def\strutheightpercent{.70833}
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1494 \def\strutdepthpercent {.29167}
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1495 %
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1496 \def\setleading#1{%
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1497 \normalbaselineskip = #1\relax
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1498 \normallineskip = \lineskipfactor\normalbaselineskip
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1499 \normalbaselines
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1500 \setbox\strutbox =\hbox{%
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1501 \vrule width0pt height\strutheightpercent\baselineskip
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1502 depth \strutdepthpercent \baselineskip
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1503 }%
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1504 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1505
70407
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1506
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1507 % Set the font macro #1 to the font named #2, adding on the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1508 % specified font prefix (normally `cm').
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1509 % #3 is the font's design size, #4 is a scale factor
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1510 \def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1511
70407
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1512
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1513 % Use cm as the default font prefix.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1514 % To specify the font prefix, you must define \fontprefix
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1515 % before you read in texinfo.tex.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1516 \ifx\fontprefix\undefined
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1517 \def\fontprefix{cm}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1518 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1519 % Support font families that don't use the same naming scheme as CM.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1520 \def\rmshape{r}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1521 \def\rmbshape{bx} %where the normal face is bold
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1522 \def\bfshape{b}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1523 \def\bxshape{bx}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1524 \def\ttshape{tt}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1525 \def\ttbshape{tt}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1526 \def\ttslshape{sltt}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1527 \def\itshape{ti}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1528 \def\itbshape{bxti}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1529 \def\slshape{sl}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1530 \def\slbshape{bxsl}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1531 \def\sfshape{ss}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1532 \def\sfbshape{ss}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1533 \def\scshape{csc}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1534 \def\scbshape{csc}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1535
70407
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1536 % Definitions for a main text size of 11pt. This is the default in
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1537 % Texinfo.
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1538 %
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1539 \def\definetextfontsizexi{
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1540 % Text fonts (11.2pt, magstep1).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1541 \def\textnominalsize{11pt}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1542 \edef\mainmagstep{\magstephalf}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1543 \setfont\textrm\rmshape{10}{\mainmagstep}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1544 \setfont\texttt\ttshape{10}{\mainmagstep}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1545 \setfont\textbf\bfshape{10}{\mainmagstep}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1546 \setfont\textit\itshape{10}{\mainmagstep}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1547 \setfont\textsl\slshape{10}{\mainmagstep}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1548 \setfont\textsf\sfshape{10}{\mainmagstep}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1549 \setfont\textsc\scshape{10}{\mainmagstep}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1550 \setfont\textttsl\ttslshape{10}{\mainmagstep}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1551 \font\texti=cmmi10 scaled \mainmagstep
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1552 \font\textsy=cmsy10 scaled \mainmagstep
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1553
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1554 % A few fonts for @defun names and args.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1555 \setfont\defbf\bfshape{10}{\magstep1}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1556 \setfont\deftt\ttshape{10}{\magstep1}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1557 \setfont\defttsl\ttslshape{10}{\magstep1}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1558 \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1559
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1560 % Fonts for indices, footnotes, small examples (9pt).
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1561 \def\smallnominalsize{9pt}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1562 \setfont\smallrm\rmshape{9}{1000}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1563 \setfont\smalltt\ttshape{9}{1000}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1564 \setfont\smallbf\bfshape{10}{900}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1565 \setfont\smallit\itshape{9}{1000}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1566 \setfont\smallsl\slshape{9}{1000}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1567 \setfont\smallsf\sfshape{9}{1000}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1568 \setfont\smallsc\scshape{10}{900}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1569 \setfont\smallttsl\ttslshape{10}{900}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1570 \font\smalli=cmmi9
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1571 \font\smallsy=cmsy9
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1572
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1573 % Fonts for small examples (8pt).
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1574 \def\smallernominalsize{8pt}
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1575 \setfont\smallerrm\rmshape{8}{1000}
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1576 \setfont\smallertt\ttshape{8}{1000}
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1577 \setfont\smallerbf\bfshape{10}{800}
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1578 \setfont\smallerit\itshape{8}{1000}
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1579 \setfont\smallersl\slshape{8}{1000}
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1580 \setfont\smallersf\sfshape{8}{1000}
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1581 \setfont\smallersc\scshape{10}{800}
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1582 \setfont\smallerttsl\ttslshape{10}{800}
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1583 \font\smalleri=cmmi8
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1584 \font\smallersy=cmsy8
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1585
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1586 % Fonts for title page (20.4pt):
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1587 \def\titlenominalsize{20pt}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1588 \setfont\titlerm\rmbshape{12}{\magstep3}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1589 \setfont\titleit\itbshape{10}{\magstep4}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1590 \setfont\titlesl\slbshape{10}{\magstep4}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1591 \setfont\titlett\ttbshape{12}{\magstep3}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1592 \setfont\titlettsl\ttslshape{10}{\magstep4}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1593 \setfont\titlesf\sfbshape{17}{\magstep1}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1594 \let\titlebf=\titlerm
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1595 \setfont\titlesc\scbshape{10}{\magstep4}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1596 \font\titlei=cmmi12 scaled \magstep3
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1597 \font\titlesy=cmsy10 scaled \magstep4
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1598 \def\authorrm{\secrm}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1599 \def\authortt{\sectt}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1600
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1601 % Chapter (and unnumbered) fonts (17.28pt).
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1602 \def\chapnominalsize{17pt}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1603 \setfont\chaprm\rmbshape{12}{\magstep2}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1604 \setfont\chapit\itbshape{10}{\magstep3}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1605 \setfont\chapsl\slbshape{10}{\magstep3}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1606 \setfont\chaptt\ttbshape{12}{\magstep2}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1607 \setfont\chapttsl\ttslshape{10}{\magstep3}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1608 \setfont\chapsf\sfbshape{17}{1000}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1609 \let\chapbf=\chaprm
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1610 \setfont\chapsc\scbshape{10}{\magstep3}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1611 \font\chapi=cmmi12 scaled \magstep2
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1612 \font\chapsy=cmsy10 scaled \magstep3
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1613
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1614 % Section fonts (14.4pt).
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1615 \def\secnominalsize{14pt}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1616 \setfont\secrm\rmbshape{12}{\magstep1}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1617 \setfont\secit\itbshape{10}{\magstep2}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1618 \setfont\secsl\slbshape{10}{\magstep2}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1619 \setfont\sectt\ttbshape{12}{\magstep1}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1620 \setfont\secttsl\ttslshape{10}{\magstep2}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1621 \setfont\secsf\sfbshape{12}{\magstep1}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1622 \let\secbf\secrm
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1623 \setfont\secsc\scbshape{10}{\magstep2}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1624 \font\seci=cmmi12 scaled \magstep1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1625 \font\secsy=cmsy10 scaled \magstep2
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1626
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1627 % Subsection fonts (13.15pt).
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1628 \def\ssecnominalsize{13pt}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1629 \setfont\ssecrm\rmbshape{12}{\magstephalf}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1630 \setfont\ssecit\itbshape{10}{1315}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1631 \setfont\ssecsl\slbshape{10}{1315}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1632 \setfont\ssectt\ttbshape{12}{\magstephalf}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1633 \setfont\ssecttsl\ttslshape{10}{1315}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1634 \setfont\ssecsf\sfbshape{12}{\magstephalf}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1635 \let\ssecbf\ssecrm
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1636 \setfont\ssecsc\scbshape{10}{1315}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1637 \font\sseci=cmmi12 scaled \magstephalf
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1638 \font\ssecsy=cmsy10 scaled 1315
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1639
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1640 % Reduced fonts for @acro in text (10pt).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1641 \def\reducednominalsize{10pt}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1642 \setfont\reducedrm\rmshape{10}{1000}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1643 \setfont\reducedtt\ttshape{10}{1000}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1644 \setfont\reducedbf\bfshape{10}{1000}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1645 \setfont\reducedit\itshape{10}{1000}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1646 \setfont\reducedsl\slshape{10}{1000}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1647 \setfont\reducedsf\sfshape{10}{1000}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1648 \setfont\reducedsc\scshape{10}{1000}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1649 \setfont\reducedttsl\ttslshape{10}{1000}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1650 \font\reducedi=cmmi10
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1651 \font\reducedsy=cmsy10
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1652
70407
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1653 % reset the current fonts
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1654 \textfonts
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1655 \rm
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1656 } % end of 11pt text font size definitions
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1657
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1658
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1659 % Definitions to make the main text be 10pt Computer Modern, with
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1660 % section, chapter, etc., sizes following suit. This is for the GNU
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1661 % Press printing of the Emacs 22 manual. Maybe other manuals in the
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1662 % future. Used with @smallbook, which sets the leading to 12pt.
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1663 %
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1664 \def\definetextfontsizex{%
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1665 % Text fonts (10pt).
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1666 \def\textnominalsize{10pt}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1667 \edef\mainmagstep{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1668 \setfont\textrm\rmshape{10}{\mainmagstep}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1669 \setfont\texttt\ttshape{10}{\mainmagstep}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1670 \setfont\textbf\bfshape{10}{\mainmagstep}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1671 \setfont\textit\itshape{10}{\mainmagstep}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1672 \setfont\textsl\slshape{10}{\mainmagstep}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1673 \setfont\textsf\sfshape{10}{\mainmagstep}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1674 \setfont\textsc\scshape{10}{\mainmagstep}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1675 \setfont\textttsl\ttslshape{10}{\mainmagstep}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1676 \font\texti=cmmi10 scaled \mainmagstep
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1677 \font\textsy=cmsy10 scaled \mainmagstep
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1678
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1679 % A few fonts for @defun names and args.
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1680 \setfont\defbf\bfshape{10}{\magstephalf}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1681 \setfont\deftt\ttshape{10}{\magstephalf}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1682 \setfont\defttsl\ttslshape{10}{\magstephalf}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1683 \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1684
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1685 % Fonts for indices, footnotes, small examples (9pt).
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1686 \def\smallnominalsize{9pt}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1687 \setfont\smallrm\rmshape{9}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1688 \setfont\smalltt\ttshape{9}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1689 \setfont\smallbf\bfshape{10}{900}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1690 \setfont\smallit\itshape{9}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1691 \setfont\smallsl\slshape{9}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1692 \setfont\smallsf\sfshape{9}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1693 \setfont\smallsc\scshape{10}{900}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1694 \setfont\smallttsl\ttslshape{10}{900}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1695 \font\smalli=cmmi9
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1696 \font\smallsy=cmsy9
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1697
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1698 % Fonts for small examples (8pt).
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1699 \def\smallernominalsize{8pt}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1700 \setfont\smallerrm\rmshape{8}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1701 \setfont\smallertt\ttshape{8}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1702 \setfont\smallerbf\bfshape{10}{800}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1703 \setfont\smallerit\itshape{8}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1704 \setfont\smallersl\slshape{8}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1705 \setfont\smallersf\sfshape{8}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1706 \setfont\smallersc\scshape{10}{800}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1707 \setfont\smallerttsl\ttslshape{10}{800}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1708 \font\smalleri=cmmi8
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1709 \font\smallersy=cmsy8
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1710
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1711 % Fonts for title page (20.4pt):
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1712 \def\titlenominalsize{20pt}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1713 \setfont\titlerm\rmbshape{12}{\magstep3}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1714 \setfont\titleit\itbshape{10}{\magstep4}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1715 \setfont\titlesl\slbshape{10}{\magstep4}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1716 \setfont\titlett\ttbshape{12}{\magstep3}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1717 \setfont\titlettsl\ttslshape{10}{\magstep4}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1718 \setfont\titlesf\sfbshape{17}{\magstep1}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1719 \let\titlebf=\titlerm
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1720 \setfont\titlesc\scbshape{10}{\magstep4}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1721 \font\titlei=cmmi12 scaled \magstep3
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1722 \font\titlesy=cmsy10 scaled \magstep4
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1723 \def\authorrm{\secrm}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1724 \def\authortt{\sectt}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1725
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1726 % Chapter fonts (14.4pt).
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1727 \def\chapnominalsize{14pt}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1728 \setfont\chaprm\rmbshape{12}{\magstep1}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1729 \setfont\chapit\itbshape{10}{\magstep2}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1730 \setfont\chapsl\slbshape{10}{\magstep2}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1731 \setfont\chaptt\ttbshape{12}{\magstep1}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1732 \setfont\chapttsl\ttslshape{10}{\magstep2}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1733 \setfont\chapsf\sfbshape{12}{\magstep1}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1734 \let\chapbf\chaprm
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1735 \setfont\chapsc\scbshape{10}{\magstep2}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1736 \font\chapi=cmmi12 scaled \magstep1
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1737 \font\chapsy=cmsy10 scaled \magstep2
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1738
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1739 % Section fonts (12pt).
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1740 \def\secnominalsize{12pt}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1741 \setfont\secrm\rmbshape{12}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1742 \setfont\secit\itbshape{10}{\magstep1}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1743 \setfont\secsl\slbshape{10}{\magstep1}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1744 \setfont\sectt\ttbshape{12}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1745 \setfont\secttsl\ttslshape{10}{\magstep1}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1746 \setfont\secsf\sfbshape{12}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1747 \let\secbf\secrm
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1748 \setfont\secsc\scbshape{10}{\magstep1}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1749 \font\seci=cmmi12
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1750 \font\secsy=cmsy10 scaled \magstep1
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1751
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1752 % Subsection fonts (10pt).
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1753 \def\ssecnominalsize{10pt}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1754 \setfont\ssecrm\rmbshape{10}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1755 \setfont\ssecit\itbshape{10}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1756 \setfont\ssecsl\slbshape{10}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1757 \setfont\ssectt\ttbshape{10}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1758 \setfont\ssecttsl\ttslshape{10}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1759 \setfont\ssecsf\sfbshape{10}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1760 \let\ssecbf\ssecrm
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1761 \setfont\ssecsc\scbshape{10}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1762 \font\sseci=cmmi10
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1763 \font\ssecsy=cmsy10
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1764
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1765 % Reduced fonts for @acro in text (9pt).
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1766 \def\reducednominalsize{9pt}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1767 \setfont\reducedrm\rmshape{9}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1768 \setfont\reducedtt\ttshape{9}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1769 \setfont\reducedbf\bfshape{10}{900}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1770 \setfont\reducedit\itshape{9}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1771 \setfont\reducedsl\slshape{9}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1772 \setfont\reducedsf\sfshape{9}{1000}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1773 \setfont\reducedsc\scshape{10}{900}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1774 \setfont\reducedttsl\ttslshape{10}{900}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1775 \font\reducedi=cmmi9
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1776 \font\reducedsy=cmsy9
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1777
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1778 % reduce space between paragraphs
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1779 \divide\parskip by 2
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1780
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1781 % reset the current fonts
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1782 \textfonts
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1783 \rm
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1784 } % end of 10pt text font size definitions
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1785
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1786
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1787 % We provide the user-level command
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1788 % @fonttextsize 10
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1789 % (or 11) to redefine the text font size. pt is assumed.
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1790 %
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1791 \def\xword{10}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1792 \def\xiword{11}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1793 %
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1794 \parseargdef\fonttextsize{%
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1795 \def\textsizearg{#1}%
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1796 \wlog{doing @fonttextsize \textsizearg}%
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1797 %
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1798 % Set \globaldefs so that documents can use this inside @tex, since
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1799 % makeinfo 4.8 does not support it, but we need it nonetheless.
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1800 %
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1801 \begingroup \globaldefs=1
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1802 \ifx\textsizearg\xword \definetextfontsizex
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1803 \else \ifx\textsizearg\xiword \definetextfontsizexi
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1804 \else
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1805 \errhelp=\EMsimple
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1806 \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'}
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1807 \fi\fi
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1808 \endgroup
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1809 }
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1810
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1811
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1812 % In order for the font changes to affect most math symbols and letters,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1813 % we have to define the \textfont of the standard families. Since
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1814 % texinfo doesn't allow for producing subscripts and superscripts except
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1815 % in the main text, we don't bother to reset \scriptfont and
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1816 % \scriptscriptfont (which would also require loading a lot more fonts).
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1817 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1818 \def\resetmathfonts{%
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1819 \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1820 \textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1821 \textfont\ttfam=\tentt \textfont\sffam=\tensf
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1822 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1823
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1824 % The font-changing commands redefine the meanings of \tenSTYLE, instead
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1825 % of just \STYLE. We do this because \STYLE needs to also set the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1826 % current \fam for math mode. Our \STYLE (e.g., \rm) commands hardwire
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1827 % \tenSTYLE to set the current font.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1828 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1829 % Each font-changing command also sets the names \lsize (one size lower)
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1830 % and \lllsize (three sizes lower). These relative commands are used in
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1831 % the LaTeX logo and acronyms.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1832 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1833 % This all needs generalizing, badly.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1834 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1835 \def\textfonts{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1836 \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1837 \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1838 \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1839 \let\tenttsl=\textttsl
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1840 \def\curfontsize{text}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1841 \def\lsize{reduced}\def\lllsize{smaller}%
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1842 \resetmathfonts \setleading{\textleading}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1843 \def\titlefonts{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1844 \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1845 \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1846 \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1847 \let\tenttsl=\titlettsl
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1848 \def\curfontsize{title}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1849 \def\lsize{chap}\def\lllsize{subsec}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1850 \resetmathfonts \setleading{25pt}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1851 \def\titlefont#1{{\titlefonts\rm #1}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1852 \def\chapfonts{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1853 \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1854 \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1855 \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1856 \let\tenttsl=\chapttsl
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1857 \def\curfontsize{chap}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1858 \def\lsize{sec}\def\lllsize{text}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1859 \resetmathfonts \setleading{19pt}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1860 \def\secfonts{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1861 \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1862 \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1863 \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1864 \let\tenttsl=\secttsl
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1865 \def\curfontsize{sec}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1866 \def\lsize{subsec}\def\lllsize{reduced}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1867 \resetmathfonts \setleading{16pt}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1868 \def\subsecfonts{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1869 \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1870 \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1871 \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1872 \let\tenttsl=\ssecttsl
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1873 \def\curfontsize{ssec}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1874 \def\lsize{text}\def\lllsize{small}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1875 \resetmathfonts \setleading{15pt}}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1876 \let\subsubsecfonts = \subsecfonts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1877 \def\reducedfonts{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1878 \let\tenrm=\reducedrm \let\tenit=\reducedit \let\tensl=\reducedsl
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1879 \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1880 \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1881 \let\tenttsl=\reducedttsl
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1882 \def\curfontsize{reduced}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1883 \def\lsize{small}\def\lllsize{smaller}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1884 \resetmathfonts \setleading{10.5pt}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1885 \def\smallfonts{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1886 \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1887 \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1888 \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1889 \let\tenttsl=\smallttsl
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1890 \def\curfontsize{small}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1891 \def\lsize{smaller}\def\lllsize{smaller}%
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1892 \resetmathfonts \setleading{10.5pt}}
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1893 \def\smallerfonts{%
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1894 \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1895 \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1896 \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1897 \let\tenttsl=\smallerttsl
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1898 \def\curfontsize{smaller}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1899 \def\lsize{smaller}\def\lllsize{smaller}%
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
1900 \resetmathfonts \setleading{9.5pt}}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1901
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1902 % Set the fonts to use with the @small... environments.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1903 \let\smallexamplefonts = \smallfonts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1904
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1905 % About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1906 % can fit this many characters:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1907 % 8.5x11=86 smallbook=72 a4=90 a5=69
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1908 % If we use \scriptfonts (8pt), then we can fit this many characters:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1909 % 8.5x11=90+ smallbook=80 a4=90+ a5=77
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1910 % For me, subjectively, the few extra characters that fit aren't worth
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1911 % the additional smallness of 8pt. So I'm making the default 9pt.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1912 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1913 % By the way, for comparison, here's what fits with @example (10pt):
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1914 % 8.5x11=71 smallbook=60 a4=75 a5=58
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1915 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1916 % I wish the USA used A4 paper.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1917 % --karl, 24jan03.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1918
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1919
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1920 % Set up the default fonts, so we can use them for creating boxes.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1921 %
70407
0c8d6310fd45 reduce body text size for emacs manual to 10pt
Karl Berry <karl@gnu.org>
parents: 69769
diff changeset
1922 \definetextfontsizexi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1923
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1924 % Define these so they can be easily changed for other fonts.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1925 \def\angleleft{$\langle$}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1926 \def\angleright{$\rangle$}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1927
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1928 % Count depth in font-changes, for error checks
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1929 \newcount\fontdepth \fontdepth=0
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1930
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1931 % Fonts for short table of contents.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1932 \setfont\shortcontrm\rmshape{12}{1000}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1933 \setfont\shortcontbf\bfshape{10}{\magstep1} % no cmb12
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1934 \setfont\shortcontsl\slshape{12}{1000}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1935 \setfont\shortconttt\ttshape{12}{1000}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1936
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1937 %% Add scribe-like font environments, plus @l for inline lisp (usually sans
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1938 %% serif) and @ii for TeX italic
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1939
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1940 % \smartitalic{ARG} outputs arg in italics, followed by an italic correction
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1941 % unless the following character is such as not to need one.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1942 \def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1943 \ptexslash\fi\fi\fi}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1944 \def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1945 \def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1946
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1947 % like \smartslanted except unconditionally uses \ttsl.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1948 % @var is set to this for defun arguments.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1949 \def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1950
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1951 % like \smartslanted except unconditionally use \sl. We never want
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1952 % ttsl for book titles, do we?
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1953 \def\cite#1{{\sl #1}\futurelet\next\smartitalicx}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1954
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1955 \let\i=\smartitalic
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1956 \let\slanted=\smartslanted
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1957 \let\var=\smartslanted
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1958 \let\dfn=\smartslanted
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1959 \let\emph=\smartitalic
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1960
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1961 % @b, explicit bold.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1962 \def\b#1{{\bf #1}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1963 \let\strong=\b
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1964
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1965 % @sansserif, explicit sans.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1966 \def\sansserif#1{{\sf #1}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1967
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1968 % We can't just use \exhyphenpenalty, because that only has effect at
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1969 % the end of a paragraph. Restore normal hyphenation at the end of the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1970 % group within which \nohyphenation is presumably called.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1971 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1972 \def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1973 \def\restorehyphenation{\hyphenchar\font = `- }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1974
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1975 % Set sfcode to normal for the chars that usually have another value.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1976 % Can't use plain's \frenchspacing because it uses the `\x notation, and
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1977 % sometimes \x has an active definition that messes things up.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1978 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1979 \chardef\colonChar = `\:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1980 \chardef\commaChar = `\,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1981 \chardef\dotChar = `\.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1982 \chardef\exclamChar= `\!
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1983 \chardef\questChar = `\?
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1984 \chardef\semiChar = `\;
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1985 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1986 \catcode`@=11
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1987 \def\plainfrenchspacing{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1988 \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1989 \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1990 \def\endofsentencespacefactor{1000}% for @. and friends
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1991 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1992 \def\plainnonfrenchspacing{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1993 \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1994 \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1995 \def\endofsentencespacefactor{3000}% for @. and friends
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1996 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1997 \catcode`@=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1998 \def\endofsentencespacefactor{3000}% default
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
1999
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2000 \def\t#1{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2001 {\tt \rawbackslash \plainfrenchspacing #1}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2002 \null
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2003 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2004 \def\samp#1{`\tclose{#1}'\null}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2005 \setfont\keyrm\rmshape{8}{1000}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2006 \font\keysy=cmsy9
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2007 \def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2008 \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2009 \vbox{\hrule\kern-0.4pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2010 \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2011 \kern-0.4pt\hrule}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2012 \kern-.06em\raise0.4pt\hbox{\angleright}}}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2013 % The old definition, with no lozenge:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2014 %\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2015 \def\ctrl #1{{\tt \rawbackslash \hat}#1}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2016
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2017 % @file, @option are the same as @samp.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2018 \let\file=\samp
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2019 \let\option=\samp
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2020
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2021 % @code is a modification of @t,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2022 % which makes spaces the same size as normal in the surrounding text.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2023 \def\tclose#1{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2024 {%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2025 % Change normal interword space to be same as for the current font.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2026 \spaceskip = \fontdimen2\font
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2027 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2028 % Switch to typewriter.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2029 \tt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2030 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2031 % But `\ ' produces the large typewriter interword space.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2032 \def\ {{\spaceskip = 0pt{} }}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2033 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2034 % Turn off hyphenation.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2035 \nohyphenation
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2036 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2037 \rawbackslash
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2038 \plainfrenchspacing
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2039 #1%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2040 }%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2041 \null
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2042 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2043
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2044 % We *must* turn on hyphenation at `-' and `_' in @code.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2045 % Otherwise, it is too hard to avoid overfull hboxes
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2046 % in the Emacs manual, the Library manual, etc.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2047
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2048 % Unfortunately, TeX uses one parameter (\hyphenchar) to control
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2049 % both hyphenation at - and hyphenation within words.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2050 % We must therefore turn them both off (\tclose does that)
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2051 % and arrange explicitly to hyphenate at a dash.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2052 % -- rms.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2053 {
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2054 \catcode`\-=\active
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2055 \catcode`\_=\active
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2056 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2057 \global\def\code{\begingroup
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2058 \catcode`\-=\active \catcode`\_=\active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2059 \ifallowcodebreaks
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2060 \let-\codedash
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2061 \let_\codeunder
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2062 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2063 \let-\realdash
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2064 \let_\realunder
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2065 \fi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2066 \codex
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2067 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2068 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2069
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2070 \def\realdash{-}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2071 \def\codedash{-\discretionary{}{}{}}
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
2072 \def\codeunder{%
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
2073 % this is all so @math{@code{var_name}+1} can work. In math mode, _
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
2074 % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.)
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
2075 % will therefore expand the active definition of _, which is us
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
2076 % (inside @code that is), therefore an endless loop.
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
2077 \ifusingtt{\ifmmode
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
2078 \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_.
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
2079 \else\normalunderscore \fi
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
2080 \discretionary{}{}{}}%
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
2081 {\_}%
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
2082 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2083 \def\codex #1{\tclose{#1}\endgroup}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2084
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2085 % An additional complication: the above will allow breaks after, e.g.,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2086 % each of the four underscores in __typeof__. This is undesirable in
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2087 % some manuals, especially if they don't have long identifiers in
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2088 % general. @allowcodebreaks provides a way to control this.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2089 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2090 \newif\ifallowcodebreaks \allowcodebreakstrue
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2091
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2092 \def\keywordtrue{true}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2093 \def\keywordfalse{false}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2094
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2095 \parseargdef\allowcodebreaks{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2096 \def\txiarg{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2097 \ifx\txiarg\keywordtrue
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2098 \allowcodebreakstrue
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2099 \else\ifx\txiarg\keywordfalse
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2100 \allowcodebreaksfalse
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2101 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2102 \errhelp = \EMsimple
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2103 \errmessage{Unknown @allowcodebreaks option `\txiarg'}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2104 \fi\fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2105 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2106
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2107 % @kbd is like @code, except that if the argument is just one @key command,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2108 % then @kbd has no effect.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2109
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2110 % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2111 % `example' (@kbd uses ttsl only inside of @example and friends),
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2112 % or `code' (@kbd uses normal tty font always).
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2113 \parseargdef\kbdinputstyle{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2114 \def\txiarg{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2115 \ifx\txiarg\worddistinct
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2116 \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2117 \else\ifx\txiarg\wordexample
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2118 \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2119 \else\ifx\txiarg\wordcode
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2120 \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2121 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2122 \errhelp = \EMsimple
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2123 \errmessage{Unknown @kbdinputstyle option `\txiarg'}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2124 \fi\fi\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2125 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2126 \def\worddistinct{distinct}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2127 \def\wordexample{example}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2128 \def\wordcode{code}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2129
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2130 % Default is `distinct.'
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2131 \kbdinputstyle distinct
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2132
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2133 \def\xkey{\key}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2134 \def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2135 \ifx\one\xkey\ifx\threex\three \key{#2}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2136 \else{\tclose{\kbdfont\look}}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2137 \else{\tclose{\kbdfont\look}}\fi}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2138
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2139 % For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2140 \let\indicateurl=\code
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2141 \let\env=\code
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2142 \let\command=\code
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2143
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2144 % @uref (abbreviation for `urlref') takes an optional (comma-separated)
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2145 % second argument specifying the text to display and an optional third
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2146 % arg as text to display instead of (rather than in addition to) the url
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2147 % itself. First (mandatory) arg is the url. Perhaps eventually put in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2148 % a hypertex \special here.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2149 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2150 \def\uref#1{\douref #1,,,\finish}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2151 \def\douref#1,#2,#3,#4\finish{\begingroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2152 \unsepspaces
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2153 \pdfurl{#1}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2154 \setbox0 = \hbox{\ignorespaces #3}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2155 \ifdim\wd0 > 0pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2156 \unhbox0 % third arg given, show only that
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2157 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2158 \setbox0 = \hbox{\ignorespaces #2}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2159 \ifdim\wd0 > 0pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2160 \ifpdf
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2161 \unhbox0 % PDF: 2nd arg given, show only it
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2162 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2163 \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2164 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2165 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2166 \code{#1}% only url given, so show it
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2167 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2168 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2169 \endlink
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2170 \endgroup}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2171
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2172 % @url synonym for @uref, since that's how everyone uses it.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2173 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2174 \let\url=\uref
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2175
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2176 % rms does not like angle brackets --karl, 17may97.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2177 % So now @email is just like @uref, unless we are pdf.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
2178 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2179 %\def\email#1{\angleleft{\tt #1}\angleright}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2180 \ifpdf
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2181 \def\email#1{\doemail#1,,\finish}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2182 \def\doemail#1,#2,#3\finish{\begingroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2183 \unsepspaces
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2184 \pdfurl{mailto:#1}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2185 \setbox0 = \hbox{\ignorespaces #2}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2186 \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2187 \endlink
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2188 \endgroup}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2189 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2190 \let\email=\uref
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2191 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2192
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2193 % Check if we are currently using a typewriter font. Since all the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2194 % Computer Modern typewriter fonts have zero interword stretch (and
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2195 % shrink), and it is reasonable to expect all typewriter fonts to have
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2196 % this property, we can check that font parameter.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2197 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2198 \def\ifmonospace{\ifdim\fontdimen3\font=0pt }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2199
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2200 % Typeset a dimension, e.g., `in' or `pt'. The only reason for the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2201 % argument is to make the input look right: @dmn{pt} instead of @dmn{}pt.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2202 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2203 \def\dmn#1{\thinspace #1}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2204
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2205 \def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2206
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2207 % @l was never documented to mean ``switch to the Lisp font'',
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2208 % and it is not used as such in any manual I can find. We need it for
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2209 % Polish suppressed-l. --karl, 22sep96.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2210 %\def\l#1{{\li #1}\null}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2211
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2212 % Explicit font changes: @r, @sc, undocumented @ii.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2213 \def\r#1{{\rm #1}} % roman font
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2214 \def\sc#1{{\smallcaps#1}} % smallcaps font
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2215 \def\ii#1{{\it #1}} % italic font
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2216
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2217 % @acronym for "FBI", "NATO", and the like.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2218 % We print this one point size smaller, since it's intended for
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2219 % all-uppercase.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2220 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2221 \def\acronym#1{\doacronym #1,,\finish}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2222 \def\doacronym#1,#2,#3\finish{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2223 {\selectfonts\lsize #1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2224 \def\temp{#2}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2225 \ifx\temp\empty \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2226 \space ({\unsepspaces \ignorespaces \temp \unskip})%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2227 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2228 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2229
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2230 % @abbr for "Comput. J." and the like.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2231 % No font change, but don't do end-of-sentence spacing.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2232 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2233 \def\abbr#1{\doabbr #1,,\finish}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2234 \def\doabbr#1,#2,#3\finish{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2235 {\plainfrenchspacing #1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2236 \def\temp{#2}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2237 \ifx\temp\empty \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2238 \space ({\unsepspaces \ignorespaces \temp \unskip})%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2239 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2240 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2241
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2242 % @pounds{} is a sterling sign, which Knuth put in the CM italic font.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2243 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2244 \def\pounds{{\it\$}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2245
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2246 % @euro{} comes from a separate font, depending on the current style.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2247 % We use the free feym* fonts from the eurosym package by Henrik
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2248 % Theiling, which support regular, slanted, bold and bold slanted (and
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2249 % "outlined" (blackboard board, sort of) versions, which we don't need).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2250 % It is available from http://www.ctan.org/tex-archive/fonts/eurosym.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2251 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2252 % Although only regular is the truly official Euro symbol, we ignore
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2253 % that. The Euro is designed to be slightly taller than the regular
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2254 % font height.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2255 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2256 % feymr - regular
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2257 % feymo - slanted
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2258 % feybr - bold
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2259 % feybo - bold slanted
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2260 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2261 % There is no good (free) typewriter version, to my knowledge.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2262 % A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2263 % Hmm.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2264 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2265 % Also doesn't work in math. Do we need to do math with euro symbols?
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2266 % Hope not.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2267 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2268 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2269 \def\euro{{\eurofont e}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2270 \def\eurofont{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2271 % We set the font at each command, rather than predefining it in
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2272 % \textfonts and the other font-switching commands, so that
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2273 % installations which never need the symbol don't have to have the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2274 % font installed.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2275 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2276 % There is only one designed size (nominal 10pt), so we always scale
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2277 % that to the current nominal size.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2278 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2279 % By the way, simply using "at 1em" works for cmr10 and the like, but
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2280 % does not work for cmbx10 and other extended/shrunken fonts.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2281 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2282 \def\eurosize{\csname\curfontsize nominalsize\endcsname}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2283 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2284 \ifx\curfontstyle\bfstylename
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2285 % bold:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2286 \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2287 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2288 % regular:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2289 \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2290 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2291 \thiseurofont
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2292 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2293
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2294 % @registeredsymbol - R in a circle. The font for the R should really
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2295 % be smaller yet, but lllsize is the best we can do for now.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2296 % Adapted from the plain.tex definition of \copyright.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2297 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2298 \def\registeredsymbol{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2299 $^{{\ooalign{\hfil\raise.07ex\hbox{\selectfonts\lllsize R}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2300 \hfil\crcr\Orb}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2301 }$%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2302 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2303
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2304 % Laurent Siebenmann reports \Orb undefined with:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2305 % Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2306 % so we'll define it if necessary.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2307 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2308 \ifx\Orb\undefined
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2309 \def\Orb{\mathhexbox20D}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2310 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2311
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2312
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2313 \message{page headings,}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2314
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2315 \newskip\titlepagetopglue \titlepagetopglue = 1.5in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2316 \newskip\titlepagebottomglue \titlepagebottomglue = 2pc
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2317
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2318 % First the title page. Must do @settitle before @titlepage.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2319 \newif\ifseenauthor
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2320 \newif\iffinishedtitlepage
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2321
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2322 % Do an implicit @contents or @shortcontents after @end titlepage if the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2323 % user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2324 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2325 \newif\ifsetcontentsaftertitlepage
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2326 \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2327 \newif\ifsetshortcontentsaftertitlepage
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2328 \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2329
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2330 \parseargdef\shorttitlepage{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2331 \endgroup\page\hbox{}\page}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2332
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2333 \envdef\titlepage{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2334 % Open one extra group, as we want to close it in the middle of \Etitlepage.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2335 \begingroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2336 \parindent=0pt \textfonts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2337 % Leave some space at the very top of the page.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2338 \vglue\titlepagetopglue
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2339 % No rule at page bottom unless we print one at the top with @title.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2340 \finishedtitlepagetrue
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2341 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2342 % Most title ``pages'' are actually two pages long, with space
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2343 % at the top of the second. We don't want the ragged left on the second.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2344 \let\oldpage = \page
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2345 \def\page{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2346 \iffinishedtitlepage\else
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2347 \finishtitlepage
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2348 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2349 \let\page = \oldpage
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2350 \page
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2351 \null
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2352 }%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2353 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2354
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2355 \def\Etitlepage{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2356 \iffinishedtitlepage\else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2357 \finishtitlepage
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2358 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2359 % It is important to do the page break before ending the group,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2360 % because the headline and footline are only empty inside the group.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2361 % If we use the new definition of \page, we always get a blank page
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2362 % after the title page, which we certainly don't want.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2363 \oldpage
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2364 \endgroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2365 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2366 % Need this before the \...aftertitlepage checks so that if they are
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2367 % in effect the toc pages will come out with page numbers.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2368 \HEADINGSon
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2369 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2370 % If they want short, they certainly want long too.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2371 \ifsetshortcontentsaftertitlepage
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2372 \shortcontents
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2373 \contents
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2374 \global\let\shortcontents = \relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2375 \global\let\contents = \relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2376 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2377 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2378 \ifsetcontentsaftertitlepage
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2379 \contents
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2380 \global\let\contents = \relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2381 \global\let\shortcontents = \relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2382 \fi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2383 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2384
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2385 \def\finishtitlepage{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2386 \vskip4pt \hrule height 2pt width \hsize
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2387 \vskip\titlepagebottomglue
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2388 \finishedtitlepagetrue
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2389 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2390
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2391 %%% Macros to be used within @titlepage:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2392
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2393 \let\subtitlerm=\tenrm
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2394 \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2395
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2396 \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2397 \let\tt=\authortt}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2398
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2399 \parseargdef\title{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2400 \checkenv\titlepage
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2401 \leftline{\titlefonts\rm #1}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2402 % print a rule at the page bottom also.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2403 \finishedtitlepagefalse
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2404 \vskip4pt \hrule height 4pt width \hsize \vskip4pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2405 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2406
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2407 \parseargdef\subtitle{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2408 \checkenv\titlepage
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2409 {\subtitlefont \rightline{#1}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2410 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2411
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2412 % @author should come last, but may come many times.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2413 % It can also be used inside @quotation.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2414 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2415 \parseargdef\author{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2416 \def\temp{\quotation}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2417 \ifx\thisenv\temp
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2418 \def\quotationauthor{#1}% printed in \Equotation.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2419 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2420 \checkenv\titlepage
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2421 \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2422 {\authorfont \leftline{#1}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2423 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2424 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2425
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2426
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2427 %%% Set up page headings and footings.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2428
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2429 \let\thispage=\folio
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2430
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2431 \newtoks\evenheadline % headline on even pages
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2432 \newtoks\oddheadline % headline on odd pages
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2433 \newtoks\evenfootline % footline on even pages
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2434 \newtoks\oddfootline % footline on odd pages
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2435
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2436 % Now make TeX use those variables
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2437 \headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2438 \else \the\evenheadline \fi}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2439 \footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2440 \else \the\evenfootline \fi}\HEADINGShook}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2441 \let\HEADINGShook=\relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2442
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2443 % Commands to set those variables.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2444 % For example, this is what @headings on does
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2445 % @evenheading @thistitle|@thispage|@thischapter
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2446 % @oddheading @thischapter|@thispage|@thistitle
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2447 % @evenfooting @thisfile||
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2448 % @oddfooting ||@thisfile
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2449
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2450
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2451 \def\evenheading{\parsearg\evenheadingxxx}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2452 \def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2453 \def\evenheadingyyy #1\|#2\|#3\|#4\finish{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2454 \global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2455
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2456 \def\oddheading{\parsearg\oddheadingxxx}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2457 \def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2458 \def\oddheadingyyy #1\|#2\|#3\|#4\finish{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2459 \global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2460
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2461 \parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2462
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2463 \def\evenfooting{\parsearg\evenfootingxxx}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2464 \def\evenfootingxxx #1{\evenfootingyyy #1\|\|\|\|\finish}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2465 \def\evenfootingyyy #1\|#2\|#3\|#4\finish{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2466 \global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2467
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2468 \def\oddfooting{\parsearg\oddfootingxxx}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2469 \def\oddfootingxxx #1{\oddfootingyyy #1\|\|\|\|\finish}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2470 \def\oddfootingyyy #1\|#2\|#3\|#4\finish{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2471 \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2472 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2473 % Leave some space for the footline. Hopefully ok to assume
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2474 % @evenfooting will not be used by itself.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2475 \global\advance\pageheight by -\baselineskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2476 \global\advance\vsize by -\baselineskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2477 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2478
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2479 \parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2480
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2481
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2482 % @headings double turns headings on for double-sided printing.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2483 % @headings single turns headings on for single-sided printing.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2484 % @headings off turns them off.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2485 % @headings on same as @headings double, retained for compatibility.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2486 % @headings after turns on double-sided headings after this page.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2487 % @headings doubleafter turns on double-sided headings after this page.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2488 % @headings singleafter turns on single-sided headings after this page.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2489 % By default, they are off at the start of a document,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2490 % and turned `on' after @end titlepage.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2491
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2492 \def\headings #1 {\csname HEADINGS#1\endcsname}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2493
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2494 \def\HEADINGSoff{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2495 \global\evenheadline={\hfil} \global\evenfootline={\hfil}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2496 \global\oddheadline={\hfil} \global\oddfootline={\hfil}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2497 \HEADINGSoff
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2498 % When we turn headings on, set the page number to 1.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2499 % For double-sided printing, put current file name in lower left corner,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2500 % chapter name on inside top of right hand pages, document
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2501 % title on inside top of left hand pages, and page numbers on outside top
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2502 % edge of all pages.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2503 \def\HEADINGSdouble{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2504 \global\pageno=1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2505 \global\evenfootline={\hfil}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2506 \global\oddfootline={\hfil}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2507 \global\evenheadline={\line{\folio\hfil\thistitle}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2508 \global\oddheadline={\line{\thischapter\hfil\folio}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2509 \global\let\contentsalignmacro = \chapoddpage
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2510 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2511 \let\contentsalignmacro = \chappager
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2512
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2513 % For single-sided printing, chapter title goes across top left of page,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2514 % page number on top right.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2515 \def\HEADINGSsingle{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2516 \global\pageno=1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2517 \global\evenfootline={\hfil}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2518 \global\oddfootline={\hfil}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2519 \global\evenheadline={\line{\thischapter\hfil\folio}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2520 \global\oddheadline={\line{\thischapter\hfil\folio}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2521 \global\let\contentsalignmacro = \chappager
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2522 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2523 \def\HEADINGSon{\HEADINGSdouble}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2524
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2525 \def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2526 \let\HEADINGSdoubleafter=\HEADINGSafter
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2527 \def\HEADINGSdoublex{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2528 \global\evenfootline={\hfil}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2529 \global\oddfootline={\hfil}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2530 \global\evenheadline={\line{\folio\hfil\thistitle}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2531 \global\oddheadline={\line{\thischapter\hfil\folio}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2532 \global\let\contentsalignmacro = \chapoddpage
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2533 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2534
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2535 \def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2536 \def\HEADINGSsinglex{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2537 \global\evenfootline={\hfil}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2538 \global\oddfootline={\hfil}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2539 \global\evenheadline={\line{\thischapter\hfil\folio}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2540 \global\oddheadline={\line{\thischapter\hfil\folio}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2541 \global\let\contentsalignmacro = \chappager
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2542 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2543
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2544 % Subroutines used in generating headings
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2545 % This produces Day Month Year style of output.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2546 % Only define if not already defined, in case a txi-??.tex file has set
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2547 % up a different format (e.g., txi-cs.tex does this).
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2548 \ifx\today\undefined
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2549 \def\today{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2550 \number\day\space
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2551 \ifcase\month
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2552 \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2553 \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2554 \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2555 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2556 \space\number\year}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2557 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2558
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2559 % @settitle line... specifies the title of the document, for headings.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2560 % It generates no output of its own.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2561 \def\thistitle{\putwordNoTitle}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2562 \def\settitle{\parsearg{\gdef\thistitle}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2563
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2564
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2565 \message{tables,}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2566 % Tables -- @table, @ftable, @vtable, @item(x).
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2567
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2568 % default indentation of table text
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2569 \newdimen\tableindent \tableindent=.8in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2570 % default indentation of @itemize and @enumerate text
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2571 \newdimen\itemindent \itemindent=.3in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2572 % margin between end of table item and start of table text.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2573 \newdimen\itemmargin \itemmargin=.1in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2574
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2575 % used internally for \itemindent minus \itemmargin
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2576 \newdimen\itemmax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2577
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2578 % Note @table, @ftable, and @vtable define @item, @itemx, etc., with
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2579 % these defs.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2580 % They also define \itemindex
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2581 % to index the item name in whatever manner is desired (perhaps none).
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2582
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2583 \newif\ifitemxneedsnegativevskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2584
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2585 \def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2586
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2587 \def\internalBitem{\smallbreak \parsearg\itemzzz}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2588 \def\internalBitemx{\itemxpar \parsearg\itemzzz}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2589
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2590 \def\itemzzz #1{\begingroup %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2591 \advance\hsize by -\rightskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2592 \advance\hsize by -\tableindent
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2593 \setbox0=\hbox{\itemindicate{#1}}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2594 \itemindex{#1}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2595 \nobreak % This prevents a break before @itemx.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2596 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2597 % If the item text does not fit in the space we have, put it on a line
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2598 % by itself, and do not allow a page break either before or after that
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2599 % line. We do not start a paragraph here because then if the next
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2600 % command is, e.g., @kindex, the whatsit would get put into the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2601 % horizontal list on a line by itself, resulting in extra blank space.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2602 \ifdim \wd0>\itemmax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2603 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2604 % Make this a paragraph so we get the \parskip glue and wrapping,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2605 % but leave it ragged-right.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2606 \begingroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2607 \advance\leftskip by-\tableindent
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2608 \advance\hsize by\tableindent
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2609 \advance\rightskip by0pt plus1fil
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2610 \leavevmode\unhbox0\par
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2611 \endgroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2612 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2613 % We're going to be starting a paragraph, but we don't want the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2614 % \parskip glue -- logically it's part of the @item we just started.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2615 \nobreak \vskip-\parskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2616 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2617 % Stop a page break at the \parskip glue coming up. However, if
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2618 % what follows is an environment such as @example, there will be no
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2619 % \parskip glue; then the negative vskip we just inserted would
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2620 % cause the example and the item to crash together. So we use this
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2621 % bizarre value of 10001 as a signal to \aboveenvbreak to insert
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2622 % \parskip glue after all. Section titles are handled this way also.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2623 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2624 \penalty 10001
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2625 \endgroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2626 \itemxneedsnegativevskipfalse
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2627 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2628 % The item text fits into the space. Start a paragraph, so that the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2629 % following text (if any) will end up on the same line.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2630 \noindent
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2631 % Do this with kerns and \unhbox so that if there is a footnote in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2632 % the item text, it can migrate to the main vertical list and
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2633 % eventually be printed.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2634 \nobreak\kern-\tableindent
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2635 \dimen0 = \itemmax \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2636 \unhbox0
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2637 \nobreak\kern\dimen0
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2638 \endgroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2639 \itemxneedsnegativevskiptrue
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2640 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2641 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2642
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2643 \def\item{\errmessage{@item while not in a list environment}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2644 \def\itemx{\errmessage{@itemx while not in a list environment}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2645
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2646 % @table, @ftable, @vtable.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2647 \envdef\table{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2648 \let\itemindex\gobble
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2649 \tablecheck{table}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2650 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2651 \envdef\ftable{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2652 \def\itemindex ##1{\doind {fn}{\code{##1}}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2653 \tablecheck{ftable}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2654 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2655 \envdef\vtable{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2656 \def\itemindex ##1{\doind {vr}{\code{##1}}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2657 \tablecheck{vtable}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2658 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2659 \def\tablecheck#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2660 \ifnum \the\catcode`\^^M=\active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2661 \endgroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2662 \errmessage{This command won't work in this context; perhaps the problem is
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2663 that we are \inenvironment\thisenv}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2664 \def\next{\doignore{#1}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2665 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2666 \let\next\tablex
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2667 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2668 \next
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2669 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2670 \def\tablex#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2671 \def\itemindicate{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2672 \parsearg\tabley
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2673 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2674 \def\tabley#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2675 {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2676 \makevalueexpandable
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2677 \edef\temp{\noexpand\tablez #1\space\space\space}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2678 \expandafter
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2679 }\temp \endtablez
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2680 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2681 \def\tablez #1 #2 #3 #4\endtablez{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2682 \aboveenvbreak
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2683 \ifnum 0#1>0 \advance \leftskip by #1\mil \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2684 \ifnum 0#2>0 \tableindent=#2\mil \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2685 \ifnum 0#3>0 \advance \rightskip by #3\mil \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2686 \itemmax=\tableindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2687 \advance \itemmax by -\itemmargin
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2688 \advance \leftskip by \tableindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2689 \exdentamount=\tableindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2690 \parindent = 0pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2691 \parskip = \smallskipamount
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2692 \ifdim \parskip=0pt \parskip=2pt \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2693 \let\item = \internalBitem
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2694 \let\itemx = \internalBitemx
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2695 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2696 \def\Etable{\endgraf\afterenvbreak}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2697 \let\Eftable\Etable
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2698 \let\Evtable\Etable
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2699 \let\Eitemize\Etable
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2700 \let\Eenumerate\Etable
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2701
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2702 % This is the counter used by @enumerate, which is really @itemize
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2703
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2704 \newcount \itemno
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2705
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2706 \envdef\itemize{\parsearg\doitemize}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2707
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2708 \def\doitemize#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2709 \aboveenvbreak
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2710 \itemmax=\itemindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2711 \advance\itemmax by -\itemmargin
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2712 \advance\leftskip by \itemindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2713 \exdentamount=\itemindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2714 \parindent=0pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2715 \parskip=\smallskipamount
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2716 \ifdim\parskip=0pt \parskip=2pt \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2717 \def\itemcontents{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2718 % @itemize with no arg is equivalent to @itemize @bullet.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2719 \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2720 \let\item=\itemizeitem
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2721 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2722
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2723 % Definition of @item while inside @itemize and @enumerate.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2724 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2725 \def\itemizeitem{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2726 \advance\itemno by 1 % for enumerations
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2727 {\let\par=\endgraf \smallbreak}% reasonable place to break
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2728 {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2729 % If the document has an @itemize directly after a section title, a
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2730 % \nobreak will be last on the list, and \sectionheading will have
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2731 % done a \vskip-\parskip. In that case, we don't want to zero
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2732 % parskip, or the item text will crash with the heading. On the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2733 % other hand, when there is normal text preceding the item (as there
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2734 % usually is), we do want to zero parskip, or there would be too much
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2735 % space. In that case, we won't have a \nobreak before. At least
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2736 % that's the theory.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2737 \ifnum\lastpenalty<10000 \parskip=0in \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2738 \noindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2739 \hbox to 0pt{\hss \itemcontents \kern\itemmargin}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2740 \vadjust{\penalty 1200}}% not good to break after first line of item.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2741 \flushcr
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2742 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2743
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2744 % \splitoff TOKENS\endmark defines \first to be the first token in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2745 % TOKENS, and \rest to be the remainder.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2746 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2747 \def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2748
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2749 % Allow an optional argument of an uppercase letter, lowercase letter,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2750 % or number, to specify the first label in the enumerated list. No
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2751 % argument is the same as `1'.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2752 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2753 \envparseargdef\enumerate{\enumeratey #1 \endenumeratey}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2754 \def\enumeratey #1 #2\endenumeratey{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2755 % If we were given no argument, pretend we were given `1'.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2756 \def\thearg{#1}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2757 \ifx\thearg\empty \def\thearg{1}\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2758 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2759 % Detect if the argument is a single token. If so, it might be a
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2760 % letter. Otherwise, the only valid thing it can be is a number.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2761 % (We will always have one token, because of the test we just made.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2762 % This is a good thing, since \splitoff doesn't work given nothing at
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2763 % all -- the first parameter is undelimited.)
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2764 \expandafter\splitoff\thearg\endmark
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2765 \ifx\rest\empty
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2766 % Only one token in the argument. It could still be anything.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2767 % A ``lowercase letter'' is one whose \lccode is nonzero.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2768 % An ``uppercase letter'' is one whose \lccode is both nonzero, and
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2769 % not equal to itself.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2770 % Otherwise, we assume it's a number.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2771 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2772 % We need the \relax at the end of the \ifnum lines to stop TeX from
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2773 % continuing to look for a <number>.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2774 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2775 \ifnum\lccode\expandafter`\thearg=0\relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2776 \numericenumerate % a number (we hope)
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2777 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2778 % It's a letter.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2779 \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2780 \lowercaseenumerate % lowercase letter
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2781 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2782 \uppercaseenumerate % uppercase letter
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2783 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2784 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2785 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2786 % Multiple tokens in the argument. We hope it's a number.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2787 \numericenumerate
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2788 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2789 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2790
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2791 % An @enumerate whose labels are integers. The starting integer is
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2792 % given in \thearg.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2793 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2794 \def\numericenumerate{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2795 \itemno = \thearg
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2796 \startenumeration{\the\itemno}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2797 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2798
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2799 % The starting (lowercase) letter is in \thearg.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2800 \def\lowercaseenumerate{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2801 \itemno = \expandafter`\thearg
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2802 \startenumeration{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2803 % Be sure we're not beyond the end of the alphabet.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2804 \ifnum\itemno=0
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2805 \errmessage{No more lowercase letters in @enumerate; get a bigger
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2806 alphabet}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2807 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2808 \char\lccode\itemno
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2809 }%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2810 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2811
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2812 % The starting (uppercase) letter is in \thearg.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2813 \def\uppercaseenumerate{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2814 \itemno = \expandafter`\thearg
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2815 \startenumeration{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2816 % Be sure we're not beyond the end of the alphabet.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2817 \ifnum\itemno=0
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2818 \errmessage{No more uppercase letters in @enumerate; get a bigger
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2819 alphabet}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2820 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2821 \char\uccode\itemno
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2822 }%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2823 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2824
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2825 % Call \doitemize, adding a period to the first argument and supplying the
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2826 % common last two arguments. Also subtract one from the initial value in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2827 % \itemno, since @item increments \itemno.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2828 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2829 \def\startenumeration#1{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2830 \advance\itemno by -1
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2831 \doitemize{#1.}\flushcr
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2832 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2833
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2834 % @alphaenumerate and @capsenumerate are abbreviations for giving an arg
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2835 % to @enumerate.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2836 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2837 \def\alphaenumerate{\enumerate{a}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2838 \def\capsenumerate{\enumerate{A}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2839 \def\Ealphaenumerate{\Eenumerate}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2840 \def\Ecapsenumerate{\Eenumerate}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2841
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2842
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2843 % @multitable macros
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2844 % Amy Hendrickson, 8/18/94, 3/6/96
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2845 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2846 % @multitable ... @end multitable will make as many columns as desired.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2847 % Contents of each column will wrap at width given in preamble. Width
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2848 % can be specified either with sample text given in a template line,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2849 % or in percent of \hsize, the current width of text on page.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2850
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2851 % Table can continue over pages but will only break between lines.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2852
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2853 % To make preamble:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2854 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2855 % Either define widths of columns in terms of percent of \hsize:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2856 % @multitable @columnfractions .25 .3 .45
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2857 % @item ...
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2858 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2859 % Numbers following @columnfractions are the percent of the total
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2860 % current hsize to be used for each column. You may use as many
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2861 % columns as desired.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2862
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2863
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2864 % Or use a template:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2865 % @multitable {Column 1 template} {Column 2 template} {Column 3 template}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2866 % @item ...
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2867 % using the widest term desired in each column.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2868
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2869 % Each new table line starts with @item, each subsequent new column
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2870 % starts with @tab. Empty columns may be produced by supplying @tab's
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2871 % with nothing between them for as many times as empty columns are needed,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2872 % ie, @tab@tab@tab will produce two empty columns.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2873
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2874 % @item, @tab do not need to be on their own lines, but it will not hurt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2875 % if they are.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2876
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2877 % Sample multitable:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2878
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2879 % @multitable {Column 1 template} {Column 2 template} {Column 3 template}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2880 % @item first col stuff @tab second col stuff @tab third col
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2881 % @item
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2882 % first col stuff
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2883 % @tab
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2884 % second col stuff
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2885 % @tab
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2886 % third col
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2887 % @item first col stuff @tab second col stuff
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2888 % @tab Many paragraphs of text may be used in any column.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2889 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2890 % They will wrap at the width determined by the template.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2891 % @item@tab@tab This will be in third column.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2892 % @end multitable
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2893
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2894 % Default dimensions may be reset by user.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2895 % @multitableparskip is vertical space between paragraphs in table.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2896 % @multitableparindent is paragraph indent in table.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2897 % @multitablecolmargin is horizontal space to be left between columns.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2898 % @multitablelinespace is space to leave between table items, baseline
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2899 % to baseline.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2900 % 0pt means it depends on current normal line spacing.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2901 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2902 \newskip\multitableparskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2903 \newskip\multitableparindent
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2904 \newdimen\multitablecolspace
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2905 \newskip\multitablelinespace
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2906 \multitableparskip=0pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2907 \multitableparindent=6pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2908 \multitablecolspace=12pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2909 \multitablelinespace=0pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2910
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2911 % Macros used to set up halign preamble:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2912 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2913 \let\endsetuptable\relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2914 \def\xendsetuptable{\endsetuptable}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2915 \let\columnfractions\relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2916 \def\xcolumnfractions{\columnfractions}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2917 \newif\ifsetpercent
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2918
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2919 % #1 is the @columnfraction, usually a decimal number like .5, but might
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2920 % be just 1. We just use it, whatever it is.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2921 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2922 \def\pickupwholefraction#1 {%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2923 \global\advance\colcount by 1
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2924 \expandafter\xdef\csname col\the\colcount\endcsname{#1\hsize}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2925 \setuptable
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2926 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2927
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2928 \newcount\colcount
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2929 \def\setuptable#1{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2930 \def\firstarg{#1}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2931 \ifx\firstarg\xendsetuptable
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2932 \let\go = \relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2933 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2934 \ifx\firstarg\xcolumnfractions
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2935 \global\setpercenttrue
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2936 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2937 \ifsetpercent
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2938 \let\go\pickupwholefraction
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2939 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2940 \global\advance\colcount by 1
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2941 \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2942 % separator; typically that is always in the input, anyway.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2943 \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2944 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2945 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2946 \ifx\go\pickupwholefraction
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2947 % Put the argument back for the \pickupwholefraction call, so
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2948 % we'll always have a period there to be parsed.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2949 \def\go{\pickupwholefraction#1}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2950 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2951 \let\go = \setuptable
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2952 \fi%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2953 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2954 \go
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2955 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2956
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2957 % multitable-only commands.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2958 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2959 % @headitem starts a heading row, which we typeset in bold.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2960 % Assignments have to be global since we are inside the implicit group
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2961 % of an alignment entry. Note that \everycr resets \everytab.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2962 \def\headitem{\checkenv\multitable \crcr \global\everytab={\bf}\the\everytab}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2963 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2964 % A \tab used to include \hskip1sp. But then the space in a template
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2965 % line is not enough. That is bad. So let's go back to just `&' until
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2966 % we encounter the problem it was intended to solve again.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2967 % --karl, nathan@acm.org, 20apr99.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2968 \def\tab{\checkenv\multitable &\the\everytab}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2969
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2970 % @multitable ... @end multitable definitions:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2971 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2972 \newtoks\everytab % insert after every tab.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2973 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2974 \envdef\multitable{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2975 \vskip\parskip
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2976 \startsavinginserts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2977 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2978 % @item within a multitable starts a normal row.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2979 % We use \def instead of \let so that if one of the multitable entries
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2980 % contains an @itemize, we don't choke on the \item (seen as \crcr aka
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2981 % \endtemplate) expanding \doitemize.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2982 \def\item{\crcr}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2983 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2984 \tolerance=9500
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2985 \hbadness=9500
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2986 \setmultitablespacing
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2987 \parskip=\multitableparskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2988 \parindent=\multitableparindent
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2989 \overfullrule=0pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2990 \global\colcount=0
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2991 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2992 \everycr = {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2993 \noalign{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2994 \global\everytab={}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2995 \global\colcount=0 % Reset the column counter.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2996 % Check for saved footnotes, etc.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2997 \checkinserts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2998 % Keeps underfull box messages off when table breaks over pages.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
2999 %\filbreak
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3000 % Maybe so, but it also creates really weird page breaks when the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3001 % table breaks over pages. Wouldn't \vfil be better? Wait until the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3002 % problem manifests itself, so it can be fixed for real --karl.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3003 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3004 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3005 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3006 \parsearg\domultitable
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3007 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3008 \def\domultitable#1{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3009 % To parse everything between @multitable and @item:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3010 \setuptable#1 \endsetuptable
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3011 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3012 % This preamble sets up a generic column definition, which will
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3013 % be used as many times as user calls for columns.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3014 % \vtop will set a single line and will also let text wrap and
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3015 % continue for many paragraphs if desired.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3016 \halign\bgroup &%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3017 \global\advance\colcount by 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3018 \multistrut
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3019 \vtop{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3020 % Use the current \colcount to find the correct column width:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3021 \hsize=\expandafter\csname col\the\colcount\endcsname
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3022 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3023 % In order to keep entries from bumping into each other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3024 % we will add a \leftskip of \multitablecolspace to all columns after
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3025 % the first one.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3026 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3027 % If a template has been used, we will add \multitablecolspace
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3028 % to the width of each template entry.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3029 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3030 % If the user has set preamble in terms of percent of \hsize we will
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3031 % use that dimension as the width of the column, and the \leftskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3032 % will keep entries from bumping into each other. Table will start at
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3033 % left margin and final column will justify at right margin.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3034 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3035 % Make sure we don't inherit \rightskip from the outer environment.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3036 \rightskip=0pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3037 \ifnum\colcount=1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3038 % The first column will be indented with the surrounding text.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3039 \advance\hsize by\leftskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3040 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3041 \ifsetpercent \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3042 % If user has not set preamble in terms of percent of \hsize
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3043 % we will advance \hsize by \multitablecolspace.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3044 \advance\hsize by \multitablecolspace
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3045 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3046 % In either case we will make \leftskip=\multitablecolspace:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3047 \leftskip=\multitablecolspace
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3048 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3049 % Ignoring space at the beginning and end avoids an occasional spurious
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3050 % blank line, when TeX decides to break the line at the space before the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3051 % box from the multistrut, so the strut ends up on a line by itself.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3052 % For example:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3053 % @multitable @columnfractions .11 .89
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3054 % @item @code{#}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3055 % @tab Legal holiday which is valid in major parts of the whole country.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3056 % Is automatically provided with highlighting sequences respectively
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3057 % marking characters.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3058 \noindent\ignorespaces##\unskip\multistrut
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3059 }\cr
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3060 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3061 \def\Emultitable{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3062 \crcr
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3063 \egroup % end the \halign
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3064 \global\setpercentfalse
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3065 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3066
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3067 \def\setmultitablespacing{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3068 \def\multistrut{\strut}% just use the standard line spacing
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3069 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3070 % Compute \multitablelinespace (if not defined by user) for use in
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3071 % \multitableparskip calculation. We used define \multistrut based on
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3072 % this, but (ironically) that caused the spacing to be off.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3073 % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3074 \ifdim\multitablelinespace=0pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3075 \setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3076 \global\advance\multitablelinespace by-\ht0
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3077 \fi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3078 %% Test to see if parskip is larger than space between lines of
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3079 %% table. If not, do nothing.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3080 %% If so, set to same dimension as multitablelinespace.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3081 \ifdim\multitableparskip>\multitablelinespace
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3082 \global\multitableparskip=\multitablelinespace
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3083 \global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3084 %% than skip between lines in the table.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3085 \fi%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3086 \ifdim\multitableparskip=0pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3087 \global\multitableparskip=\multitablelinespace
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3088 \global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3089 %% than skip between lines in the table.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3090 \fi}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3091
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3092
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3093 \message{conditionals,}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3094
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3095 % @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3096 % @ifnotxml always succeed. They currently do nothing; we don't
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3097 % attempt to check whether the conditionals are properly nested. But we
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3098 % have to remember that they are conditionals, so that @end doesn't
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3099 % attempt to close an environment group.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3100 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3101 \def\makecond#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3102 \expandafter\let\csname #1\endcsname = \relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3103 \expandafter\let\csname iscond.#1\endcsname = 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3104 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3105 \makecond{iftex}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3106 \makecond{ifnotdocbook}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3107 \makecond{ifnothtml}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3108 \makecond{ifnotinfo}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3109 \makecond{ifnotplaintext}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3110 \makecond{ifnotxml}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3111
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3112 % Ignore @ignore, @ifhtml, @ifinfo, and the like.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3113 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3114 \def\direntry{\doignore{direntry}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3115 \def\documentdescription{\doignore{documentdescription}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3116 \def\docbook{\doignore{docbook}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3117 \def\html{\doignore{html}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3118 \def\ifdocbook{\doignore{ifdocbook}}
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
3119 \def\ifhtml{\doignore{ifhtml}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3120 \def\ifinfo{\doignore{ifinfo}}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3121 \def\ifnottex{\doignore{ifnottex}}
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
3122 \def\ifplaintext{\doignore{ifplaintext}}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3123 \def\ifxml{\doignore{ifxml}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3124 \def\ignore{\doignore{ignore}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3125 \def\menu{\doignore{menu}}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3126 \def\xml{\doignore{xml}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3127
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3128 % Ignore text until a line `@end #1', keeping track of nested conditionals.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3129 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3130 % A count to remember the depth of nesting.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3131 \newcount\doignorecount
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3132
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3133 \def\doignore#1{\begingroup
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3134 % Scan in ``verbatim'' mode:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3135 \obeylines
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3136 \catcode`\@ = \other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3137 \catcode`\{ = \other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3138 \catcode`\} = \other
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3139 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3140 % Make sure that spaces turn into tokens that match what \doignoretext wants.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3141 \spaceisspace
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3142 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3143 % Count number of #1's that we've seen.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3144 \doignorecount = 0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3145 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3146 % Swallow text until we reach the matching `@end #1'.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3147 \dodoignore{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3148 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3149
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3150 { \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3151 \obeylines %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3152 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3153 \gdef\dodoignore#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3154 % #1 contains the command name as a string, e.g., `ifinfo'.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3155 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3156 % Define a command to find the next `@end #1'.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3157 \long\def\doignoretext##1^^M@end #1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3158 \doignoretextyyy##1^^M@#1\_STOP_}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3159 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3160 % And this command to find another #1 command, at the beginning of a
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3161 % line. (Otherwise, we would consider a line `@c @ifset', for
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3162 % example, to count as an @ifset for nesting.)
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3163 \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3164 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3165 % And now expand that command.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3166 \doignoretext ^^M%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3167 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3168 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3169
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3170 \def\doignoreyyy#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3171 \def\temp{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3172 \ifx\temp\empty % Nothing found.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3173 \let\next\doignoretextzzz
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3174 \else % Found a nested condition, ...
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3175 \advance\doignorecount by 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3176 \let\next\doignoretextyyy % ..., look for another.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3177 % If we're here, #1 ends with ^^M\ifinfo (for example).
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
3178 \fi
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3179 \next #1% the token \_STOP_ is present just after this macro.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3180 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3181
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3182 % We have to swallow the remaining "\_STOP_".
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3183 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3184 \def\doignoretextzzz#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3185 \ifnum\doignorecount = 0 % We have just found the outermost @end.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3186 \let\next\enddoignore
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3187 \else % Still inside a nested condition.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3188 \advance\doignorecount by -1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3189 \let\next\doignoretext % Look for the next @end.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3190 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3191 \next
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3192 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3193
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3194 % Finish off ignored text.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3195 { \obeylines%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3196 % Ignore anything after the last `@end #1'; this matters in verbatim
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3197 % environments, where otherwise the newline after an ignored conditional
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3198 % would result in a blank line in the output.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3199 \gdef\enddoignore#1^^M{\endgroup\ignorespaces}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3200 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3201
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3202
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3203 % @set VAR sets the variable VAR to an empty value.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3204 % @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3205 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3206 % Since we want to separate VAR from REST-OF-LINE (which might be
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3207 % empty), we can't just use \parsearg; we have to insert a space of our
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3208 % own to delimit the rest of the line, and then take it out again if we
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3209 % didn't need it.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3210 % We rely on the fact that \parsearg sets \catcode`\ =10.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3211 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3212 \parseargdef\set{\setyyy#1 \endsetyyy}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3213 \def\setyyy#1 #2\endsetyyy{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3214 {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3215 \makevalueexpandable
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3216 \def\temp{#2}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3217 \edef\next{\gdef\makecsname{SET#1}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3218 \ifx\temp\empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3219 \next{}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3220 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3221 \setzzz#2\endsetzzz
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3222 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3223 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3224 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3225 % Remove the trailing space \setxxx inserted.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3226 \def\setzzz#1 \endsetzzz{\next{#1}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3227
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3228 % @clear VAR clears (i.e., unsets) the variable VAR.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3229 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3230 \parseargdef\clear{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3231 {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3232 \makevalueexpandable
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3233 \global\expandafter\let\csname SET#1\endcsname=\relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3234 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3235 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3236
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3237 % @value{foo} gets the text saved in variable foo.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3238 \def\value{\begingroup\makevalueexpandable\valuexxx}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3239 \def\valuexxx#1{\expandablevalue{#1}\endgroup}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3240 {
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3241 \catcode`\- = \active \catcode`\_ = \active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3242 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3243 \gdef\makevalueexpandable{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3244 \let\value = \expandablevalue
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3245 % We don't want these characters active, ...
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3246 \catcode`\-=\other \catcode`\_=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3247 % ..., but we might end up with active ones in the argument if
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3248 % we're called from @code, as @code{@value{foo-bar_}}, though.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3249 % So \let them to their normal equivalents.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3250 \let-\realdash \let_\normalunderscore
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3251 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3252 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3253
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3254 % We have this subroutine so that we can handle at least some @value's
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3255 % properly in indexes (we call \makevalueexpandable in \indexdummies).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3256 % The command has to be fully expandable (if the variable is set), since
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3257 % the result winds up in the index file. This means that if the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3258 % variable's value contains other Texinfo commands, it's almost certain
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3259 % it will fail (although perhaps we could fix that with sufficient work
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3260 % to do a one-level expansion on the result, instead of complete).
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3261 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3262 \def\expandablevalue#1{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3263 \expandafter\ifx\csname SET#1\endcsname\relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3264 {[No value for ``#1'']}%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3265 \message{Variable `#1', used in @value, is not set.}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3266 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3267 \csname SET#1\endcsname
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3268 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3269 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3270
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3271 % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3272 % with @set.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3273 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3274 % To get special treatment of `@end ifset,' call \makeond and the redefine.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3275 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3276 \makecond{ifset}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3277 \def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3278 \def\doifset#1#2{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3279 {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3280 \makevalueexpandable
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3281 \let\next=\empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3282 \expandafter\ifx\csname SET#2\endcsname\relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3283 #1% If not set, redefine \next.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3284 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3285 \expandafter
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3286 }\next
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3287 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3288 \def\ifsetfail{\doignore{ifset}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3289
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3290 % @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3291 % defined with @set, or has been undefined with @clear.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3292 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3293 % The `\else' inside the `\doifset' parameter is a trick to reuse the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3294 % above code: if the variable is not set, do nothing, if it is set,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3295 % then redefine \next to \ifclearfail.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3296 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3297 \makecond{ifclear}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3298 \def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3299 \def\ifclearfail{\doignore{ifclear}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3300
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3301 % @dircategory CATEGORY -- specify a category of the dir file
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3302 % which this file should belong to. Ignore this in TeX.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3303 \let\dircategory=\comment
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3304
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3305 % @defininfoenclose.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3306 \let\definfoenclose=\comment
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3307
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3308
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3309 \message{indexing,}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3310 % Index generation facilities
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3311
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3312 % Define \newwrite to be identical to plain tex's \newwrite
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3313 % except not \outer, so it can be used within macros and \if's.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3314 \edef\newwrite{\makecsname{ptexnewwrite}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3315
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3316 % \newindex {foo} defines an index named foo.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3317 % It automatically defines \fooindex such that
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3318 % \fooindex ...rest of line... puts an entry in the index foo.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3319 % It also defines \fooindfile to be the number of the output channel for
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3320 % the file that accumulates this index. The file's extension is foo.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3321 % The name of an index should be no more than 2 characters long
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3322 % for the sake of vms.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3323 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3324 \def\newindex#1{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3325 \iflinks
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3326 \expandafter\newwrite \csname#1indfile\endcsname
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3327 \openout \csname#1indfile\endcsname \jobname.#1 % Open the file
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3328 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3329 \expandafter\xdef\csname#1index\endcsname{% % Define @#1index
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3330 \noexpand\doindex{#1}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3331 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3332
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3333 % @defindex foo == \newindex{foo}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3334 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3335 \def\defindex{\parsearg\newindex}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3336
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3337 % Define @defcodeindex, like @defindex except put all entries in @code.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3338 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3339 \def\defcodeindex{\parsearg\newcodeindex}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3340 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3341 \def\newcodeindex#1{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3342 \iflinks
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3343 \expandafter\newwrite \csname#1indfile\endcsname
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3344 \openout \csname#1indfile\endcsname \jobname.#1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3345 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3346 \expandafter\xdef\csname#1index\endcsname{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3347 \noexpand\docodeindex{#1}}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3348 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3349
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3350
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3351 % @synindex foo bar makes index foo feed into index bar.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3352 % Do this instead of @defindex foo if you don't want it as a separate index.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
3353 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3354 % @syncodeindex foo bar similar, but put all entries made for index foo
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3355 % inside @code.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
3356 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3357 \def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3358 \def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3359
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3360 % #1 is \doindex or \docodeindex, #2 the index getting redefined (foo),
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3361 % #3 the target index (bar).
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3362 \def\dosynindex#1#2#3{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3363 % Only do \closeout if we haven't already done it, else we'll end up
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3364 % closing the target index.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3365 \expandafter \ifx\csname donesynindex#2\endcsname \undefined
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3366 % The \closeout helps reduce unnecessary open files; the limit on the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3367 % Acorn RISC OS is a mere 16 files.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3368 \expandafter\closeout\csname#2indfile\endcsname
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3369 \expandafter\let\csname\donesynindex#2\endcsname = 1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3370 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3371 % redefine \fooindfile:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3372 \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3373 \expandafter\let\csname#2indfile\endcsname=\temp
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3374 % redefine \fooindex:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3375 \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3376 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3377
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3378 % Define \doindex, the driver for all \fooindex macros.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3379 % Argument #1 is generated by the calling \fooindex macro,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3380 % and it is "foo", the name of the index.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3381
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3382 % \doindex just uses \parsearg; it calls \doind for the actual work.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3383 % This is because \doind is more useful to call from other macros.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3384
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3385 % There is also \dosubind {index}{topic}{subtopic}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3386 % which makes an entry in a two-level index such as the operation index.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3387
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3388 \def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3389 \def\singleindexer #1{\doind{\indexname}{#1}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3390
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3391 % like the previous two, but they put @code around the argument.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3392 \def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3393 \def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3394
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3395 % Take care of Texinfo commands that can appear in an index entry.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3396 % Since there are some commands we want to expand, and others we don't,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3397 % we have to laboriously prevent expansion for those that we don't.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
3398 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3399 \def\indexdummies{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3400 \escapechar = `\\ % use backslash in output files.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3401 \def\@{@}% change to @@ when we switch to @ as escape char in index files.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3402 \def\ {\realbackslash\space }%
71093
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3403 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3404 % Need these in case \tex is in effect and \{ is a \delimiter again.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3405 % But can't use \lbracecmd and \rbracecmd because texindex assumes
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3406 % braces and backslashes are used only as delimiters.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3407 \let\{ = \mylbrace
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3408 \let\} = \myrbrace
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3409 %
71093
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3410 % I don't entirely understand this, but when an index entry is
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3411 % generated from a macro call, the \endinput which \scanmacro inserts
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3412 % causes processing to be prematurely terminated. This is,
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3413 % apparently, because \indexsorttmp is fully expanded, and \endinput
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3414 % is an expandable command. The redefinition below makes \endinput
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3415 % disappear altogether for that purpose -- although logging shows that
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3416 % processing continues to some further point. On the other hand, it
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3417 % seems \endinput does not hurt in the printed index arg, since that
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3418 % is still getting written without apparent harm.
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3419 %
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3420 % Sample source (mac-idx3.tex, reported by Graham Percival to
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3421 % help-texinfo, 22may06):
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3422 % @macro funindex {WORD}
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3423 % @findex xyz
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3424 % @end macro
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3425 % ...
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3426 % @funindex commtest
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3427 %
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3428 % The above is not enough to reproduce the bug, but it gives the flavor.
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3429 %
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3430 % Sample whatsit resulting:
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3431 % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}}
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3432 %
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3433 % So:
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3434 \let\endinput = \empty
6155393edd3b autoupdate
Karl Berry <karl@gnu.org>
parents: 70570
diff changeset
3435 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3436 % Do the redefinitions.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3437 \commondummies
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3438 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3439
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3440 % For the aux and toc files, @ is the escape character. So we want to
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3441 % redefine everything using @ as the escape character (instead of
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3442 % \realbackslash, still used for index files). When everything uses @,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3443 % this will be simpler.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3444 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3445 \def\atdummies{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3446 \def\@{@@}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3447 \def\ {@ }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3448 \let\{ = \lbraceatcmd
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3449 \let\} = \rbraceatcmd
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3450 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3451 % Do the redefinitions.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3452 \commondummies
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3453 \otherbackslash
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3454 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3455
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3456 % Called from \indexdummies and \atdummies.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3457 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3458 \def\commondummies{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3459 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3460 % \definedummyword defines \#1 as \string\#1\space, thus effectively
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3461 % preventing its expansion. This is used only for control% words,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3462 % not control letters, because the \space would be incorrect for
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3463 % control characters, but is needed to separate the control word
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3464 % from whatever follows.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3465 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3466 % For control letters, we have \definedummyletter, which omits the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3467 % space.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3468 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3469 % These can be used both for control words that take an argument and
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3470 % those that do not. If it is followed by {arg} in the input, then
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3471 % that will dutifully get written to the index (or wherever).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3472 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3473 \def\definedummyword ##1{\def##1{\string##1\space}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3474 \def\definedummyletter##1{\def##1{\string##1}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3475 \let\definedummyaccent\definedummyletter
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3476 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3477 \commondummiesnofonts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3478 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3479 \definedummyletter\_%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3480 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3481 % Non-English letters.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3482 \definedummyword\AA
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3483 \definedummyword\AE
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3484 \definedummyword\L
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3485 \definedummyword\OE
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3486 \definedummyword\O
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3487 \definedummyword\aa
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3488 \definedummyword\ae
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3489 \definedummyword\l
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3490 \definedummyword\oe
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3491 \definedummyword\o
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3492 \definedummyword\ss
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3493 \definedummyword\exclamdown
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3494 \definedummyword\questiondown
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3495 \definedummyword\ordf
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3496 \definedummyword\ordm
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3497 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3498 % Although these internal commands shouldn't show up, sometimes they do.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3499 \definedummyword\bf
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3500 \definedummyword\gtr
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3501 \definedummyword\hat
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3502 \definedummyword\less
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3503 \definedummyword\sf
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3504 \definedummyword\sl
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3505 \definedummyword\tclose
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3506 \definedummyword\tt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3507 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3508 \definedummyword\LaTeX
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3509 \definedummyword\TeX
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3510 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3511 % Assorted special characters.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3512 \definedummyword\bullet
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3513 \definedummyword\comma
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3514 \definedummyword\copyright
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3515 \definedummyword\registeredsymbol
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3516 \definedummyword\dots
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3517 \definedummyword\enddots
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3518 \definedummyword\equiv
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3519 \definedummyword\error
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3520 \definedummyword\euro
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3521 \definedummyword\expansion
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3522 \definedummyword\minus
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3523 \definedummyword\pounds
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3524 \definedummyword\point
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3525 \definedummyword\print
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3526 \definedummyword\result
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3527 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3528 % We want to disable all macros so that they are not expanded by \write.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3529 \macrolist
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3530 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3531 \normalturnoffactive
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3532 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3533 % Handle some cases of @value -- where it does not contain any
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3534 % (non-fully-expandable) commands.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3535 \makevalueexpandable
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3536 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3537
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3538 % \commondummiesnofonts: common to \commondummies and \indexnofonts.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3539 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3540 \def\commondummiesnofonts{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3541 % Control letters and accents.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3542 \definedummyletter\!%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3543 \definedummyaccent\"%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3544 \definedummyaccent\'%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3545 \definedummyletter\*%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3546 \definedummyaccent\,%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3547 \definedummyletter\.%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3548 \definedummyletter\/%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3549 \definedummyletter\:%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3550 \definedummyaccent\=%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3551 \definedummyletter\?%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3552 \definedummyaccent\^%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3553 \definedummyaccent\`%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3554 \definedummyaccent\~%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3555 \definedummyword\u
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3556 \definedummyword\v
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3557 \definedummyword\H
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3558 \definedummyword\dotaccent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3559 \definedummyword\ringaccent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3560 \definedummyword\tieaccent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3561 \definedummyword\ubaraccent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3562 \definedummyword\udotaccent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3563 \definedummyword\dotless
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3564 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3565 % Texinfo font commands.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3566 \definedummyword\b
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3567 \definedummyword\i
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3568 \definedummyword\r
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3569 \definedummyword\sc
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3570 \definedummyword\t
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3571 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3572 % Commands that take arguments.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3573 \definedummyword\acronym
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3574 \definedummyword\cite
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3575 \definedummyword\code
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3576 \definedummyword\command
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3577 \definedummyword\dfn
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3578 \definedummyword\emph
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3579 \definedummyword\env
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3580 \definedummyword\file
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3581 \definedummyword\kbd
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3582 \definedummyword\key
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3583 \definedummyword\math
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3584 \definedummyword\option
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3585 \definedummyword\pxref
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3586 \definedummyword\ref
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3587 \definedummyword\samp
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3588 \definedummyword\strong
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3589 \definedummyword\tie
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3590 \definedummyword\uref
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3591 \definedummyword\url
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3592 \definedummyword\var
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3593 \definedummyword\verb
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3594 \definedummyword\w
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3595 \definedummyword\xref
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3596 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3597
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3598 % \indexnofonts is used when outputting the strings to sort the index
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3599 % by, and when constructing control sequence names. It eliminates all
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3600 % control sequences and just writes whatever the best ASCII sort string
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3601 % would be for a given command (usually its argument).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3602 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3603 \def\indexnofonts{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3604 % Accent commands should become @asis.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3605 \def\definedummyaccent##1{\let##1\asis}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3606 % We can just ignore other control letters.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3607 \def\definedummyletter##1{\let##1\empty}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3608 % Hopefully, all control words can become @asis.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3609 \let\definedummyword\definedummyaccent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3610 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3611 \commondummiesnofonts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3612 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3613 % Don't no-op \tt, since it isn't a user-level command
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3614 % and is used in the definitions of the active chars like <, >, |, etc.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3615 % Likewise with the other plain tex font commands.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3616 %\let\tt=\asis
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3617 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3618 \def\ { }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3619 \def\@{@}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3620 % how to handle braces?
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3621 \def\_{\normalunderscore}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3622 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3623 % Non-English letters.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3624 \def\AA{AA}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3625 \def\AE{AE}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3626 \def\L{L}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3627 \def\OE{OE}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3628 \def\O{O}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3629 \def\aa{aa}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3630 \def\ae{ae}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3631 \def\l{l}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3632 \def\oe{oe}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3633 \def\o{o}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3634 \def\ss{ss}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3635 \def\exclamdown{!}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3636 \def\questiondown{?}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3637 \def\ordf{a}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3638 \def\ordm{o}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3639 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3640 \def\LaTeX{LaTeX}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3641 \def\TeX{TeX}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3642 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3643 % Assorted special characters.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3644 % (The following {} will end up in the sort string, but that's ok.)
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3645 \def\bullet{bullet}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3646 \def\comma{,}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3647 \def\copyright{copyright}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3648 \def\registeredsymbol{R}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3649 \def\dots{...}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3650 \def\enddots{...}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3651 \def\equiv{==}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3652 \def\error{error}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3653 \def\euro{euro}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3654 \def\expansion{==>}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3655 \def\minus{-}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3656 \def\pounds{pounds}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3657 \def\point{.}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3658 \def\print{-|}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3659 \def\result{=>}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3660 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3661 % We need to get rid of all macros, leaving only the arguments (if present).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3662 % Of course this is not nearly correct, but it is the best we can do for now.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3663 % makeinfo does not expand macros in the argument to @deffn, which ends up
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3664 % writing an index entry, and texindex isn't prepared for an index sort entry
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3665 % that starts with \.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3666 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3667 % Since macro invocations are followed by braces, we can just redefine them
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3668 % to take a single TeX argument. The case of a macro invocation that
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3669 % goes to end-of-line is not handled.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3670 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3671 \macrolist
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3672 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3673
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3674 \let\indexbackslash=0 %overridden during \printindex.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3675 \let\SETmarginindex=\relax % put index entries in margin (undocumented)?
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3676
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3677 % Most index entries go through here, but \dosubind is the general case.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3678 % #1 is the index name, #2 is the entry text.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3679 \def\doind#1#2{\dosubind{#1}{#2}{}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3680
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3681 % Workhorse for all \fooindexes.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3682 % #1 is name of index, #2 is stuff to put there, #3 is subentry --
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3683 % empty if called from \doind, as we usually are (the main exception
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3684 % is with most defuns, which call us directly).
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3685 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3686 \def\dosubind#1#2#3{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3687 \iflinks
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3688 {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3689 % Store the main index entry text (including the third arg).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3690 \toks0 = {#2}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3691 % If third arg is present, precede it with a space.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3692 \def\thirdarg{#3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3693 \ifx\thirdarg\empty \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3694 \toks0 = \expandafter{\the\toks0 \space #3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3695 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3696 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3697 \edef\writeto{\csname#1indfile\endcsname}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3698 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3699 \ifvmode
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3700 \dosubindsanitize
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3701 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3702 \dosubindwrite
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3703 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3704 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3705 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3706 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3707
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3708 % Write the entry in \toks0 to the index file:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3709 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3710 \def\dosubindwrite{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3711 % Put the index entry in the margin if desired.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3712 \ifx\SETmarginindex\relax\else
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3713 \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3714 \fi
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3715 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3716 % Remember, we are within a group.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3717 \indexdummies % Must do this here, since \bf, etc expand at this stage
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3718 \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3719 % so it will be output as is; and it will print as backslash.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3720 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3721 % Process the index entry with all font commands turned off, to
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3722 % get the string to sort by.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3723 {\indexnofonts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3724 \edef\temp{\the\toks0}% need full expansion
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3725 \xdef\indexsorttmp{\temp}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3726 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3727 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3728 % Set up the complete index entry, with both the sort key and
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3729 % the original text, including any font commands. We write
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3730 % three arguments to \entry to the .?? file (four in the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3731 % subentry case), texindex reduces to two when writing the .??s
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3732 % sorted result.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3733 \edef\temp{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3734 \write\writeto{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3735 \string\entry{\indexsorttmp}{\noexpand\folio}{\the\toks0}}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3736 }%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3737 \temp
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3738 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3739
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3740 % Take care of unwanted page breaks:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3741 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3742 % If a skip is the last thing on the list now, preserve it
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3743 % by backing up by \lastskip, doing the \write, then inserting
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3744 % the skip again. Otherwise, the whatsit generated by the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3745 % \write will make \lastskip zero. The result is that sequences
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3746 % like this:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3747 % @end defun
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3748 % @tindex whatever
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3749 % @defun ...
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3750 % will have extra space inserted, because the \medbreak in the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3751 % start of the @defun won't see the skip inserted by the @end of
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3752 % the previous defun.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3753 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3754 % But don't do any of this if we're not in vertical mode. We
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3755 % don't want to do a \vskip and prematurely end a paragraph.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3756 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3757 % Avoid page breaks due to these extra skips, too.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3758 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3759 % But wait, there is a catch there:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3760 % We'll have to check whether \lastskip is zero skip. \ifdim is not
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3761 % sufficient for this purpose, as it ignores stretch and shrink parts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3762 % of the skip. The only way seems to be to check the textual
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3763 % representation of the skip.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3764 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3765 % The following is almost like \def\zeroskipmacro{0.0pt} except that
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3766 % the ``p'' and ``t'' characters have catcode \other, not 11 (letter).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3767 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3768 \edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3769 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3770 % ..., ready, GO:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3771 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3772 \def\dosubindsanitize{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3773 % \lastskip and \lastpenalty cannot both be nonzero simultaneously.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3774 \skip0 = \lastskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3775 \edef\lastskipmacro{\the\lastskip}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3776 \count255 = \lastpenalty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3777 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3778 % If \lastskip is nonzero, that means the last item was a
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3779 % skip. And since a skip is discardable, that means this
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3780 % -\skip0 glue we're inserting is preceded by a
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3781 % non-discardable item, therefore it is not a potential
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3782 % breakpoint, therefore no \nobreak needed.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3783 \ifx\lastskipmacro\zeroskipmacro
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3784 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3785 \vskip-\skip0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3786 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3787 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3788 \dosubindwrite
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3789 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3790 \ifx\lastskipmacro\zeroskipmacro
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3791 % If \lastskip was zero, perhaps the last item was a penalty, and
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3792 % perhaps it was >=10000, e.g., a \nobreak. In that case, we want
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3793 % to re-insert the same penalty (values >10000 are used for various
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3794 % signals); since we just inserted a non-discardable item, any
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3795 % following glue (such as a \parskip) would be a breakpoint. For example:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3796 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3797 % @deffn deffn-whatever
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3798 % @vindex index-whatever
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3799 % Description.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3800 % would allow a break between the index-whatever whatsit
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3801 % and the "Description." paragraph.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3802 \ifnum\count255>9999 \penalty\count255 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3803 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3804 % On the other hand, if we had a nonzero \lastskip,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3805 % this make-up glue would be preceded by a non-discardable item
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3806 % (the whatsit from the \write), so we must insert a \nobreak.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3807 \nobreak\vskip\skip0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3808 \fi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3809 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3810
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3811 % The index entry written in the file actually looks like
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3812 % \entry {sortstring}{page}{topic}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3813 % or
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3814 % \entry {sortstring}{page}{topic}{subtopic}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3815 % The texindex program reads in these files and writes files
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3816 % containing these kinds of lines:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3817 % \initial {c}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3818 % before the first topic whose initial is c
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3819 % \entry {topic}{pagelist}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3820 % for a topic that is used without subtopics
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3821 % \primary {topic}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3822 % for the beginning of a topic that is used with subtopics
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3823 % \secondary {subtopic}{pagelist}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3824 % for each subtopic.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3825
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3826 % Define the user-accessible indexing commands
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3827 % @findex, @vindex, @kindex, @cindex.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3828
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3829 \def\findex {\fnindex}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3830 \def\kindex {\kyindex}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3831 \def\cindex {\cpindex}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3832 \def\vindex {\vrindex}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3833 \def\tindex {\tpindex}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3834 \def\pindex {\pgindex}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3835
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3836 \def\cindexsub {\begingroup\obeylines\cindexsub}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3837 {\obeylines %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3838 \gdef\cindexsub "#1" #2^^M{\endgroup %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3839 \dosubind{cp}{#2}{#1}}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3840
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3841 % Define the macros used in formatting output of the sorted index material.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3842
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3843 % @printindex causes a particular index (the ??s file) to get printed.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3844 % It does not print any chapter heading (usually an @unnumbered).
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3845 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3846 \parseargdef\printindex{\begingroup
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3847 \dobreak \chapheadingskip{10000}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3848 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3849 \smallfonts \rm
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3850 \tolerance = 9500
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3851 \everypar = {}% don't want the \kern\-parindent from indentation suppression.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3852 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3853 % See if the index file exists and is nonempty.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3854 % Change catcode of @ here so that if the index file contains
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3855 % \initial {@}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3856 % as its first line, TeX doesn't complain about mismatched braces
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3857 % (because it thinks @} is a control sequence).
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3858 \catcode`\@ = 11
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3859 \openin 1 \jobname.#1s
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3860 \ifeof 1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3861 % \enddoublecolumns gets confused if there is no text in the index,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3862 % and it loses the chapter title and the aux file entries for the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3863 % index. The easiest way to prevent this problem is to make sure
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3864 % there is some text.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3865 \putwordIndexNonexistent
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3866 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3867 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3868 % If the index file exists but is empty, then \openin leaves \ifeof
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3869 % false. We have to make TeX try to read something from the file, so
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3870 % it can discover if there is anything in it.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3871 \read 1 to \temp
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3872 \ifeof 1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3873 \putwordIndexIsEmpty
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3874 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3875 % Index files are almost Texinfo source, but we use \ as the escape
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3876 % character. It would be better to use @, but that's too big a change
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3877 % to make right now.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3878 \def\indexbackslash{\backslashcurfont}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3879 \catcode`\\ = 0
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3880 \escapechar = `\\
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3881 \begindoublecolumns
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3882 \input \jobname.#1s
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3883 \enddoublecolumns
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3884 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3885 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3886 \closein 1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3887 \endgroup}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3888
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3889 % These macros are used by the sorted index file itself.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3890 % Change them to control the appearance of the index.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3891
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3892 \def\initial#1{{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3893 % Some minor font changes for the special characters.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3894 \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3895 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3896 % Remove any glue we may have, we'll be inserting our own.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3897 \removelastskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3898 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3899 % We like breaks before the index initials, so insert a bonus.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3900 \nobreak
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3901 \vskip 0pt plus 3\baselineskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3902 \penalty 0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3903 \vskip 0pt plus -3\baselineskip
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3904 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3905 % Typeset the initial. Making this add up to a whole number of
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3906 % baselineskips increases the chance of the dots lining up from column
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3907 % to column. It still won't often be perfect, because of the stretch
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3908 % we need before each entry, but it's better.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3909 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3910 % No shrink because it confuses \balancecolumns.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3911 \vskip 1.67\baselineskip plus .5\baselineskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3912 \leftline{\secbf #1}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3913 % Do our best not to break after the initial.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3914 \nobreak
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3915 \vskip .33\baselineskip plus .1\baselineskip
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3916 }}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3917
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3918 % \entry typesets a paragraph consisting of the text (#1), dot leaders, and
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3919 % then page number (#2) flushed to the right margin. It is used for index
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3920 % and table of contents entries. The paragraph is indented by \leftskip.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3921 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3922 % A straightforward implementation would start like this:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3923 % \def\entry#1#2{...
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3924 % But this frozes the catcodes in the argument, and can cause problems to
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3925 % @code, which sets - active. This problem was fixed by a kludge---
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3926 % ``-'' was active throughout whole index, but this isn't really right.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3927 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3928 % The right solution is to prevent \entry from swallowing the whole text.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3929 % --kasal, 21nov03
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3930 \def\entry{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3931 \begingroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3932 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3933 % Start a new paragraph if necessary, so our assignments below can't
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3934 % affect previous text.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3935 \par
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3936 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3937 % Do not fill out the last line with white space.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3938 \parfillskip = 0in
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3939 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3940 % No extra space above this paragraph.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3941 \parskip = 0in
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3942 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3943 % Do not prefer a separate line ending with a hyphen to fewer lines.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3944 \finalhyphendemerits = 0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3945 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3946 % \hangindent is only relevant when the entry text and page number
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3947 % don't both fit on one line. In that case, bob suggests starting the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3948 % dots pretty far over on the line. Unfortunately, a large
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3949 % indentation looks wrong when the entry text itself is broken across
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3950 % lines. So we use a small indentation and put up with long leaders.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3951 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3952 % \hangafter is reset to 1 (which is the value we want) at the start
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3953 % of each paragraph, so we need not do anything with that.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3954 \hangindent = 2em
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3955 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3956 % When the entry text needs to be broken, just fill out the first line
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3957 % with blank space.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3958 \rightskip = 0pt plus1fil
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3959 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3960 % A bit of stretch before each entry for the benefit of balancing
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3961 % columns.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3962 \vskip 0pt plus1pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3963 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3964 % Swallow the left brace of the text (first parameter):
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3965 \afterassignment\doentry
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3966 \let\temp =
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3967 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3968 \def\doentry{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3969 \bgroup % Instead of the swallowed brace.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3970 \noindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3971 \aftergroup\finishentry
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3972 % And now comes the text of the entry.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3973 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3974 \def\finishentry#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3975 % #1 is the page number.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3976 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3977 % The following is kludged to not output a line of dots in the index if
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3978 % there are no page numbers. The next person who breaks this will be
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3979 % cursed by a Unix daemon.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3980 \def\tempa{{\rm }}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3981 \def\tempb{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3982 \edef\tempc{\tempa}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3983 \edef\tempd{\tempb}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3984 \ifx\tempc\tempd
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3985 \ %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3986 \else
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3987 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3988 % If we must, put the page number on a line of its own, and fill out
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3989 % this line with blank space. (The \hfil is overwhelmed with the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3990 % fill leaders glue in \indexdotfill if the page number does fit.)
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3991 \hfil\penalty50
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3992 \null\nobreak\indexdotfill % Have leaders before the page number.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3993 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3994 % The `\ ' here is removed by the implicit \unskip that TeX does as
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3995 % part of (the primitive) \par. Without it, a spurious underfull
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3996 % \hbox ensues.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3997 \ifpdf
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3998 \pdfgettoks#1.%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
3999 \ \the\toksA
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4000 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4001 \ #1%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4002 \fi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4003 \fi
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4004 \par
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4005 \endgroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4006 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4007
71493
cf0c35ec7c54 autoupdate
Karl Berry <karl@gnu.org>
parents: 71093
diff changeset
4008 % Like plain.tex's \dotfill, except uses up at least 1 em.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4009 \def\indexdotfill{\cleaders
71493
cf0c35ec7c54 autoupdate
Karl Berry <karl@gnu.org>
parents: 71093
diff changeset
4010 \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4011
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4012 \def\primary #1{\line{#1\hfil}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4013
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4014 \newskip\secondaryindent \secondaryindent=0.5cm
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4015 \def\secondary#1#2{{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4016 \parfillskip=0in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4017 \parskip=0in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4018 \hangindent=1in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4019 \hangafter=1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4020 \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4021 \ifpdf
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4022 \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4023 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4024 #2
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4025 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4026 \par
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4027 }}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4028
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4029 % Define two-column mode, which we use to typeset indexes.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4030 % Adapted from the TeXbook, page 416, which is to say,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4031 % the manmac.tex format used to print the TeXbook itself.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4032 \catcode`\@=11
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4033
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4034 \newbox\partialpage
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4035 \newdimen\doublecolumnhsize
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4036
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4037 \def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4038 % Grab any single-column material above us.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4039 \output = {%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4040 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4041 % Here is a possibility not foreseen in manmac: if we accumulate a
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4042 % whole lot of material, we might end up calling this \output
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4043 % routine twice in a row (see the doublecol-lose test, which is
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4044 % essentially a couple of indexes with @setchapternewpage off). In
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4045 % that case we just ship out what is in \partialpage with the normal
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4046 % output routine. Generally, \partialpage will be empty when this
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4047 % runs and this will be a no-op. See the indexspread.tex test case.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4048 \ifvoid\partialpage \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4049 \onepageout{\pagecontents\partialpage}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4050 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4051 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4052 \global\setbox\partialpage = \vbox{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4053 % Unvbox the main output page.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4054 \unvbox\PAGE
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4055 \kern-\topskip \kern\baselineskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4056 }%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4057 }%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4058 \eject % run that output routine to set \partialpage
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4059 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4060 % Use the double-column output routine for subsequent pages.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4061 \output = {\doublecolumnout}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4062 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4063 % Change the page size parameters. We could do this once outside this
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4064 % routine, in each of @smallbook, @afourpaper, and the default 8.5x11
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4065 % format, but then we repeat the same computation. Repeating a couple
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4066 % of assignments once per index is clearly meaningless for the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4067 % execution time, so we may as well do it in one place.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4068 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4069 % First we halve the line length, less a little for the gutter between
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4070 % the columns. We compute the gutter based on the line length, so it
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4071 % changes automatically with the paper format. The magic constant
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4072 % below is chosen so that the gutter has the same value (well, +-<1pt)
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4073 % as it did when we hard-coded it.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4074 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4075 % We put the result in a separate register, \doublecolumhsize, so we
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4076 % can restore it in \pagesofar, after \hsize itself has (potentially)
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4077 % been clobbered.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4078 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4079 \doublecolumnhsize = \hsize
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4080 \advance\doublecolumnhsize by -.04154\hsize
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4081 \divide\doublecolumnhsize by 2
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4082 \hsize = \doublecolumnhsize
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4083 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4084 % Double the \vsize as well. (We don't need a separate register here,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4085 % since nobody clobbers \vsize.)
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4086 \vsize = 2\vsize
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4087 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4088
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4089 % The double-column output routine for all double-column pages except
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4090 % the last.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4091 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4092 \def\doublecolumnout{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4093 \splittopskip=\topskip \splitmaxdepth=\maxdepth
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4094 % Get the available space for the double columns -- the normal
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4095 % (undoubled) page height minus any material left over from the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4096 % previous page.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4097 \dimen@ = \vsize
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4098 \divide\dimen@ by 2
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4099 \advance\dimen@ by -\ht\partialpage
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4100 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4101 % box0 will be the left-hand column, box2 the right.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4102 \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4103 \onepageout\pagesofar
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4104 \unvbox255
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4105 \penalty\outputpenalty
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4106 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4107 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4108 % Re-output the contents of the output page -- any previous material,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4109 % followed by the two boxes we just split, in box0 and box2.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4110 \def\pagesofar{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4111 \unvbox\partialpage
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4112 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4113 \hsize = \doublecolumnhsize
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4114 \wd0=\hsize \wd2=\hsize
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4115 \hbox to\pagewidth{\box0\hfil\box2}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4116 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
4117 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4118 % All done with double columns.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4119 \def\enddoublecolumns{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4120 \output = {%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4121 % Split the last of the double-column material. Leave it on the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4122 % current page, no automatic page break.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4123 \balancecolumns
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4124 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4125 % If we end up splitting too much material for the current page,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4126 % though, there will be another page break right after this \output
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4127 % invocation ends. Having called \balancecolumns once, we do not
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4128 % want to call it again. Therefore, reset \output to its normal
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4129 % definition right away. (We hope \balancecolumns will never be
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4130 % called on to balance too much material, but if it is, this makes
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4131 % the output somewhat more palatable.)
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4132 \global\output = {\onepageout{\pagecontents\PAGE}}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4133 }%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4134 \eject
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4135 \endgroup % started in \begindoublecolumns
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4136 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4137 % \pagegoal was set to the doubled \vsize above, since we restarted
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4138 % the current page. We're now back to normal single-column
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4139 % typesetting, so reset \pagegoal to the normal \vsize (after the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4140 % \endgroup where \vsize got restored).
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4141 \pagegoal = \vsize
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4142 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4143 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4144 % Called at the end of the double column material.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4145 \def\balancecolumns{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4146 \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4147 \dimen@ = \ht0
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4148 \advance\dimen@ by \topskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4149 \advance\dimen@ by-\baselineskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4150 \divide\dimen@ by 2 % target to split to
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4151 %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4152 \splittopskip = \topskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4153 % Loop until we get a decent breakpoint.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4154 {%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4155 \vbadness = 10000
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4156 \loop
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4157 \global\setbox3 = \copy0
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4158 \global\setbox1 = \vsplit3 to \dimen@
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4159 \ifdim\ht3>\dimen@
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4160 \global\advance\dimen@ by 1pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4161 \repeat
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4162 }%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4163 %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4164 \setbox0=\vbox to\dimen@{\unvbox1}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4165 \setbox2=\vbox to\dimen@{\unvbox3}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4166 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4167 \pagesofar
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4168 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4169 \catcode`\@ = \other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4170
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4171
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4172 \message{sectioning,}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4173 % Chapters, sections, etc.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4174
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4175 % \unnumberedno is an oxymoron, of course. But we count the unnumbered
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4176 % sections so that we can refer to them unambiguously in the pdf
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4177 % outlines by their "section number". We avoid collisions with chapter
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4178 % numbers by starting them at 10000. (If a document ever has 10000
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4179 % chapters, we're in trouble anyway, I'm sure.)
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4180 \newcount\unnumberedno \unnumberedno = 10000
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4181 \newcount\chapno
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4182 \newcount\secno \secno=0
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4183 \newcount\subsecno \subsecno=0
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4184 \newcount\subsubsecno \subsubsecno=0
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4185
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4186 % This counter is funny since it counts through charcodes of letters A, B, ...
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4187 \newcount\appendixno \appendixno = `\@
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4188 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4189 % \def\appendixletter{\char\the\appendixno}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4190 % We do the following ugly conditional instead of the above simple
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4191 % construct for the sake of pdftex, which needs the actual
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4192 % letter in the expansion, not just typeset.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4193 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4194 \def\appendixletter{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4195 \ifnum\appendixno=`A A%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4196 \else\ifnum\appendixno=`B B%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4197 \else\ifnum\appendixno=`C C%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4198 \else\ifnum\appendixno=`D D%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4199 \else\ifnum\appendixno=`E E%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4200 \else\ifnum\appendixno=`F F%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4201 \else\ifnum\appendixno=`G G%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4202 \else\ifnum\appendixno=`H H%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4203 \else\ifnum\appendixno=`I I%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4204 \else\ifnum\appendixno=`J J%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4205 \else\ifnum\appendixno=`K K%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4206 \else\ifnum\appendixno=`L L%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4207 \else\ifnum\appendixno=`M M%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4208 \else\ifnum\appendixno=`N N%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4209 \else\ifnum\appendixno=`O O%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4210 \else\ifnum\appendixno=`P P%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4211 \else\ifnum\appendixno=`Q Q%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4212 \else\ifnum\appendixno=`R R%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4213 \else\ifnum\appendixno=`S S%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4214 \else\ifnum\appendixno=`T T%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4215 \else\ifnum\appendixno=`U U%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4216 \else\ifnum\appendixno=`V V%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4217 \else\ifnum\appendixno=`W W%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4218 \else\ifnum\appendixno=`X X%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4219 \else\ifnum\appendixno=`Y Y%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4220 \else\ifnum\appendixno=`Z Z%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4221 % The \the is necessary, despite appearances, because \appendixletter is
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4222 % expanded while writing the .toc file. \char\appendixno is not
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4223 % expandable, thus it is written literally, thus all appendixes come out
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4224 % with the same letter (or @) in the toc without it.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4225 \else\char\the\appendixno
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4226 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4227 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4228
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4229 % Each @chapter defines this as the name of the chapter.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4230 % page headings and footings can use it. @section does likewise.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4231 % However, they are not reliable, because we don't use marks.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4232 \def\thischapter{}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4233 \def\thissection{}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4234
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4235 \newcount\absseclevel % used to calculate proper heading level
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4236 \newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4237
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4238 % @raisesections: treat @section as chapter, @subsection as section, etc.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4239 \def\raisesections{\global\advance\secbase by -1}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4240 \let\up=\raisesections % original BFox name
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4241
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4242 % @lowersections: treat @chapter as section, @section as subsection, etc.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4243 \def\lowersections{\global\advance\secbase by 1}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4244 \let\down=\lowersections % original BFox name
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4245
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4246 % we only have subsub.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4247 \chardef\maxseclevel = 3
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4248 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4249 % A numbered section within an unnumbered changes to unnumbered too.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4250 % To achive this, remember the "biggest" unnum. sec. we are currently in:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4251 \chardef\unmlevel = \maxseclevel
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4252 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4253 % Trace whether the current chapter is an appendix or not:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4254 % \chapheadtype is "N" or "A", unnumbered chapters are ignored.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4255 \def\chapheadtype{N}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4256
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4257 % Choose a heading macro
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4258 % #1 is heading type
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4259 % #2 is heading level
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4260 % #3 is text for heading
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4261 \def\genhead#1#2#3{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4262 % Compute the abs. sec. level:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4263 \absseclevel=#2
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4264 \advance\absseclevel by \secbase
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4265 % Make sure \absseclevel doesn't fall outside the range:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4266 \ifnum \absseclevel < 0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4267 \absseclevel = 0
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4268 \else
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4269 \ifnum \absseclevel > 3
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4270 \absseclevel = 3
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4271 \fi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4272 \fi
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4273 % The heading type:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4274 \def\headtype{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4275 \if \headtype U%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4276 \ifnum \absseclevel < \unmlevel
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4277 \chardef\unmlevel = \absseclevel
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4278 \fi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4279 \else
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4280 % Check for appendix sections:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4281 \ifnum \absseclevel = 0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4282 \edef\chapheadtype{\headtype}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4283 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4284 \if \headtype A\if \chapheadtype N%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4285 \errmessage{@appendix... within a non-appendix chapter}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4286 \fi\fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4287 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4288 % Check for numbered within unnumbered:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4289 \ifnum \absseclevel > \unmlevel
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4290 \def\headtype{U}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4291 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4292 \chardef\unmlevel = 3
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4293 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4294 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4295 % Now print the heading:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4296 \if \headtype U%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4297 \ifcase\absseclevel
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4298 \unnumberedzzz{#3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4299 \or \unnumberedseczzz{#3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4300 \or \unnumberedsubseczzz{#3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4301 \or \unnumberedsubsubseczzz{#3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4302 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4303 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4304 \if \headtype A%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4305 \ifcase\absseclevel
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4306 \appendixzzz{#3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4307 \or \appendixsectionzzz{#3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4308 \or \appendixsubseczzz{#3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4309 \or \appendixsubsubseczzz{#3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4310 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4311 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4312 \ifcase\absseclevel
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4313 \chapterzzz{#3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4314 \or \seczzz{#3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4315 \or \numberedsubseczzz{#3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4316 \or \numberedsubsubseczzz{#3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4317 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4318 \fi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4319 \fi
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4320 \suppressfirstparagraphindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4321 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4322
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4323 % an interface:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4324 \def\numhead{\genhead N}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4325 \def\apphead{\genhead A}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4326 \def\unnmhead{\genhead U}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4327
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4328 % @chapter, @appendix, @unnumbered. Increment top-level counter, reset
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4329 % all lower-level sectioning counters to zero.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4330 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4331 % Also set \chaplevelprefix, which we prepend to @float sequence numbers
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4332 % (e.g., figures), q.v. By default (before any chapter), that is empty.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4333 \let\chaplevelprefix = \empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4334 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4335 \outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4336 \def\chapterzzz#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4337 % section resetting is \global in case the chapter is in a group, such
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4338 % as an @include file.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4339 \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4340 \global\advance\chapno by 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4341 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4342 % Used for \float.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4343 \gdef\chaplevelprefix{\the\chapno.}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4344 \resetallfloatnos
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4345 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4346 \message{\putwordChapter\space \the\chapno}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4347 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4348 % Write the actual heading.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4349 \chapmacro{#1}{Ynumbered}{\the\chapno}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4350 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4351 % So @section and the like are numbered underneath this chapter.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4352 \global\let\section = \numberedsec
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4353 \global\let\subsection = \numberedsubsec
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4354 \global\let\subsubsection = \numberedsubsubsec
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4355 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4356
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4357 \outer\parseargdef\appendix{\apphead0{#1}} % normally apphead0 calls appendixzzz
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4358 \def\appendixzzz#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4359 \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4360 \global\advance\appendixno by 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4361 \gdef\chaplevelprefix{\appendixletter.}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4362 \resetallfloatnos
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4363 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4364 \def\appendixnum{\putwordAppendix\space \appendixletter}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4365 \message{\appendixnum}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4366 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4367 \chapmacro{#1}{Yappendix}{\appendixletter}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4368 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4369 \global\let\section = \appendixsec
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4370 \global\let\subsection = \appendixsubsec
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4371 \global\let\subsubsection = \appendixsubsubsec
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4372 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4373
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4374 \outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4375 \def\unnumberedzzz#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4376 \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4377 \global\advance\unnumberedno by 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4378 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4379 % Since an unnumbered has no number, no prefix for figures.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4380 \global\let\chaplevelprefix = \empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4381 \resetallfloatnos
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4382 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4383 % This used to be simply \message{#1}, but TeX fully expands the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4384 % argument to \message. Therefore, if #1 contained @-commands, TeX
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4385 % expanded them. For example, in `@unnumbered The @cite{Book}', TeX
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4386 % expanded @cite (which turns out to cause errors because \cite is meant
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4387 % to be executed, not expanded).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4388 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4389 % Anyway, we don't want the fully-expanded definition of @cite to appear
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4390 % as a result of the \message, we just want `@cite' itself. We use
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4391 % \the<toks register> to achieve this: TeX expands \the<toks> only once,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4392 % simply yielding the contents of <toks register>. (We also do this for
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4393 % the toc entries.)
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4394 \toks0 = {#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4395 \message{(\the\toks0)}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4396 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4397 \chapmacro{#1}{Ynothing}{\the\unnumberedno}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4398 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4399 \global\let\section = \unnumberedsec
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4400 \global\let\subsection = \unnumberedsubsec
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4401 \global\let\subsubsection = \unnumberedsubsubsec
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4402 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4403
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4404 % @centerchap is like @unnumbered, but the heading is centered.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4405 \outer\parseargdef\centerchap{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4406 % Well, we could do the following in a group, but that would break
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4407 % an assumption that \chapmacro is called at the outermost level.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4408 % Thus we are safer this way: --kasal, 24feb04
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4409 \let\centerparametersmaybe = \centerparameters
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4410 \unnmhead0{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4411 \let\centerparametersmaybe = \relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4412 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4413
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4414 % @top is like @unnumbered.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4415 \let\top\unnumbered
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4416
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4417 % Sections.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4418 \outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4419 \def\seczzz#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4420 \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4421 \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4422 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4423
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4424 \outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4425 \def\appendixsectionzzz#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4426 \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4427 \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4428 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4429 \let\appendixsec\appendixsection
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4430
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4431 \outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4432 \def\unnumberedseczzz#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4433 \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4434 \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4435 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4436
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4437 % Subsections.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4438 \outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4439 \def\numberedsubseczzz#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4440 \global\subsubsecno=0 \global\advance\subsecno by 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4441 \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4442 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4443
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4444 \outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4445 \def\appendixsubseczzz#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4446 \global\subsubsecno=0 \global\advance\subsecno by 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4447 \sectionheading{#1}{subsec}{Yappendix}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4448 {\appendixletter.\the\secno.\the\subsecno}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4449 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4450
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4451 \outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4452 \def\unnumberedsubseczzz#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4453 \global\subsubsecno=0 \global\advance\subsecno by 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4454 \sectionheading{#1}{subsec}{Ynothing}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4455 {\the\unnumberedno.\the\secno.\the\subsecno}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4456 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4457
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4458 % Subsubsections.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4459 \outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4460 \def\numberedsubsubseczzz#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4461 \global\advance\subsubsecno by 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4462 \sectionheading{#1}{subsubsec}{Ynumbered}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4463 {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4464 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4465
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4466 \outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4467 \def\appendixsubsubseczzz#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4468 \global\advance\subsubsecno by 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4469 \sectionheading{#1}{subsubsec}{Yappendix}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4470 {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4471 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4472
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4473 \outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4474 \def\unnumberedsubsubseczzz#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4475 \global\advance\subsubsecno by 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4476 \sectionheading{#1}{subsubsec}{Ynothing}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4477 {\the\unnumberedno.\the\secno.\the\subsecno.\the\subsubsecno}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4478 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4479
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4480 % These macros control what the section commands do, according
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4481 % to what kind of chapter we are in (ordinary, appendix, or unnumbered).
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4482 % Define them by default for a numbered chapter.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4483 \let\section = \numberedsec
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4484 \let\subsection = \numberedsubsec
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4485 \let\subsubsection = \numberedsubsubsec
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4486
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4487 % Define @majorheading, @heading and @subheading
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4488
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4489 % NOTE on use of \vbox for chapter headings, section headings, and such:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4490 % 1) We use \vbox rather than the earlier \line to permit
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4491 % overlong headings to fold.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4492 % 2) \hyphenpenalty is set to 10000 because hyphenation in a
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4493 % heading is obnoxious; this forbids it.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4494 % 3) Likewise, headings look best if no \parindent is used, and
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4495 % if justification is not attempted. Hence \raggedright.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4496
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4497
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4498 \def\majorheading{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4499 {\advance\chapheadingskip by 10pt \chapbreak }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4500 \parsearg\chapheadingzzz
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4501 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4502
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4503 \def\chapheading{\chapbreak \parsearg\chapheadingzzz}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4504 \def\chapheadingzzz#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4505 {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4506 \parindent=0pt\raggedright
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4507 \rm #1\hfill}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4508 \bigskip \par\penalty 200\relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4509 \suppressfirstparagraphindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4510 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4511
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4512 % @heading, @subheading, @subsubheading.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4513 \parseargdef\heading{\sectionheading{#1}{sec}{Yomitfromtoc}{}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4514 \suppressfirstparagraphindent}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4515 \parseargdef\subheading{\sectionheading{#1}{subsec}{Yomitfromtoc}{}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4516 \suppressfirstparagraphindent}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4517 \parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4518 \suppressfirstparagraphindent}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4519
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4520 % These macros generate a chapter, section, etc. heading only
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4521 % (including whitespace, linebreaking, etc. around it),
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4522 % given all the information in convenient, parsed form.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4523
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4524 %%% Args are the skip and penalty (usually negative)
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4525 \def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4526
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4527 %%% Define plain chapter starts, and page on/off switching for it
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4528 % Parameter controlling skip before chapter headings (if needed)
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4529
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4530 \newskip\chapheadingskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4531
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4532 \def\chapbreak{\dobreak \chapheadingskip {-4000}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4533 \def\chappager{\par\vfill\supereject}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4534 \def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4535
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4536 \def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4537
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4538 \def\CHAPPAGoff{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4539 \global\let\contentsalignmacro = \chappager
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4540 \global\let\pchapsepmacro=\chapbreak
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4541 \global\let\pagealignmacro=\chappager}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4542
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4543 \def\CHAPPAGon{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4544 \global\let\contentsalignmacro = \chappager
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4545 \global\let\pchapsepmacro=\chappager
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4546 \global\let\pagealignmacro=\chappager
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4547 \global\def\HEADINGSon{\HEADINGSsingle}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4548
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4549 \def\CHAPPAGodd{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4550 \global\let\contentsalignmacro = \chapoddpage
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4551 \global\let\pchapsepmacro=\chapoddpage
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4552 \global\let\pagealignmacro=\chapoddpage
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4553 \global\def\HEADINGSon{\HEADINGSdouble}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4554
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4555 \CHAPPAGon
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4556
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4557 % Chapter opening.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4558 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4559 % #1 is the text, #2 is the section type (Ynumbered, Ynothing,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4560 % Yappendix, Yomitfromtoc), #3 the chapter number.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4561 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4562 % To test against our argument.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4563 \def\Ynothingkeyword{Ynothing}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4564 \def\Yomitfromtockeyword{Yomitfromtoc}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4565 \def\Yappendixkeyword{Yappendix}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4566 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4567 \def\chapmacro#1#2#3{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4568 \pchapsepmacro
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4569 {%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4570 \chapfonts \rm
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4571 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4572 % Have to define \thissection before calling \donoderef, because the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4573 % xref code eventually uses it. On the other hand, it has to be called
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4574 % after \pchapsepmacro, or the headline will change too soon.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4575 \gdef\thissection{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4576 \gdef\thischaptername{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4577 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4578 % Only insert the separating space if we have a chapter/appendix
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4579 % number, and don't print the unnumbered ``number''.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4580 \def\temptype{#2}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4581 \ifx\temptype\Ynothingkeyword
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4582 \setbox0 = \hbox{}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4583 \def\toctype{unnchap}%
71493
cf0c35ec7c54 autoupdate
Karl Berry <karl@gnu.org>
parents: 71093
diff changeset
4584 \gdef\thischapternum{}%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4585 \gdef\thischapter{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4586 \else\ifx\temptype\Yomitfromtockeyword
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4587 \setbox0 = \hbox{}% contents like unnumbered, but no toc entry
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4588 \def\toctype{omit}%
71493
cf0c35ec7c54 autoupdate
Karl Berry <karl@gnu.org>
parents: 71093
diff changeset
4589 \gdef\thischapternum{}%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4590 \gdef\thischapter{}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4591 \else\ifx\temptype\Yappendixkeyword
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4592 \setbox0 = \hbox{\putwordAppendix{} #3\enspace}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4593 \def\toctype{app}%
71493
cf0c35ec7c54 autoupdate
Karl Berry <karl@gnu.org>
parents: 71093
diff changeset
4594 \xdef\thischapternum{\appendixletter}%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4595 % We don't substitute the actual chapter name into \thischapter
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4596 % because we don't want its macros evaluated now. And we don't
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4597 % use \thissection because that changes with each section.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4598 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4599 \xdef\thischapter{\putwordAppendix{} \appendixletter:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4600 \noexpand\thischaptername}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4601 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4602 \setbox0 = \hbox{#3\enspace}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4603 \def\toctype{numchap}%
71493
cf0c35ec7c54 autoupdate
Karl Berry <karl@gnu.org>
parents: 71093
diff changeset
4604 \xdef\thischapternum{\the\chapno}%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4605 \xdef\thischapter{\putwordChapter{} \the\chapno:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4606 \noexpand\thischaptername}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4607 \fi\fi\fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4608 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4609 % Write the toc entry for this chapter. Must come before the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4610 % \donoderef, because we include the current node name in the toc
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4611 % entry, and \donoderef resets it to empty.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4612 \writetocentry{\toctype}{#1}{#3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4613 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4614 % For pdftex, we have to write out the node definition (aka, make
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4615 % the pdfdest) after any page break, but before the actual text has
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4616 % been typeset. If the destination for the pdf outline is after the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4617 % text, then jumping from the outline may wind up with the text not
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4618 % being visible, for instance under high magnification.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4619 \donoderef{#2}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4620 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4621 % Typeset the actual heading.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4622 \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4623 \hangindent=\wd0 \centerparametersmaybe
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4624 \unhbox0 #1\par}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4625 }%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4626 \nobreak\bigskip % no page break after a chapter title
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4627 \nobreak
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4628 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4629
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4630 % @centerchap -- centered and unnumbered.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4631 \let\centerparametersmaybe = \relax
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4632 \def\centerparameters{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4633 \advance\rightskip by 3\rightskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4634 \leftskip = \rightskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4635 \parfillskip = 0pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4636 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4637
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4638
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4639 % I don't think this chapter style is supported any more, so I'm not
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4640 % updating it with the new noderef stuff. We'll see. --karl, 11aug03.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4641 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4642 \def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4643 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4644 \def\unnchfopen #1{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4645 \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4646 \parindent=0pt\raggedright
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4647 \rm #1\hfill}}\bigskip \par\nobreak
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4648 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4649 \def\chfopen #1#2{\chapoddpage {\chapfonts
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4650 \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4651 \par\penalty 5000 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4652 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4653 \def\centerchfopen #1{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4654 \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4655 \parindent=0pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4656 \hfill {\rm #1}\hfill}}\bigskip \par\nobreak
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4657 }
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4658 \def\CHAPFopen{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4659 \global\let\chapmacro=\chfopen
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4660 \global\let\centerchapmacro=\centerchfopen}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4661
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4662
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4663 % Section titles. These macros combine the section number parts and
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4664 % call the generic \sectionheading to do the printing.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4665 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4666 \newskip\secheadingskip
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4667 \def\secheadingbreak{\dobreak \secheadingskip{-1000}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4668
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4669 % Subsection titles.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4670 \newskip\subsecheadingskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4671 \def\subsecheadingbreak{\dobreak \subsecheadingskip{-500}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4672
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4673 % Subsubsection titles.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4674 \def\subsubsecheadingskip{\subsecheadingskip}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4675 \def\subsubsecheadingbreak{\subsecheadingbreak}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4676
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4677
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4678 % Print any size, any type, section title.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4679 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4680 % #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4681 % the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4682 % section number.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4683 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4684 \def\sectionheading#1#2#3#4{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4685 {%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4686 % Switch to the right set of fonts.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4687 \csname #2fonts\endcsname \rm
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4688 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4689 % Insert space above the heading.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4690 \csname #2headingbreak\endcsname
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4691 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4692 % Only insert the space after the number if we have a section number.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4693 \def\sectionlevel{#2}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4694 \def\temptype{#3}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4695 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4696 \ifx\temptype\Ynothingkeyword
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4697 \setbox0 = \hbox{}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4698 \def\toctype{unn}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4699 \gdef\thissection{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4700 \else\ifx\temptype\Yomitfromtockeyword
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4701 % for @headings -- no section number, don't include in toc,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4702 % and don't redefine \thissection.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4703 \setbox0 = \hbox{}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4704 \def\toctype{omit}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4705 \let\sectionlevel=\empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4706 \else\ifx\temptype\Yappendixkeyword
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4707 \setbox0 = \hbox{#4\enspace}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4708 \def\toctype{app}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4709 \gdef\thissection{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4710 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4711 \setbox0 = \hbox{#4\enspace}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4712 \def\toctype{num}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4713 \gdef\thissection{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4714 \fi\fi\fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4715 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4716 % Write the toc entry (before \donoderef). See comments in \chapmacro.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4717 \writetocentry{\toctype\sectionlevel}{#1}{#4}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4718 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4719 % Write the node reference (= pdf destination for pdftex).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4720 % Again, see comments in \chapmacro.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4721 \donoderef{#3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4722 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4723 % Interline glue will be inserted when the vbox is completed.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4724 % That glue will be a valid breakpoint for the page, since it'll be
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4725 % preceded by a whatsit (usually from the \donoderef, or from the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4726 % \writetocentry if there was no node). We don't want to allow that
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4727 % break, since then the whatsits could end up on page n while the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4728 % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4729 \nobreak
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4730 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4731 % Output the actual section heading.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4732 \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4733 \hangindent=\wd0 % zero if no section number
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4734 \unhbox0 #1}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4735 }%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4736 % Add extra space after the heading -- half of whatever came above it.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4737 % Don't allow stretch, though.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4738 \kern .5 \csname #2headingskip\endcsname
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4739 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4740 % Do not let the kern be a potential breakpoint, as it would be if it
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4741 % was followed by glue.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4742 \nobreak
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4743 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4744 % We'll almost certainly start a paragraph next, so don't let that
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4745 % glue accumulate. (Not a breakpoint because it's preceded by a
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4746 % discardable item.)
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4747 \vskip-\parskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4748 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4749 % This is purely so the last item on the list is a known \penalty >
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4750 % 10000. This is so \startdefun can avoid allowing breakpoints after
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4751 % section headings. Otherwise, it would insert a valid breakpoint between:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4752 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4753 % @section sec-whatever
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4754 % @deffn def-whatever
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4755 \penalty 10001
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4756 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4757
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4758
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4759 \message{toc,}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4760 % Table of contents.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4761 \newwrite\tocfile
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4762
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4763 % Write an entry to the toc file, opening it if necessary.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4764 % Called from @chapter, etc.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4765 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4766 % Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4767 % We append the current node name (if any) and page number as additional
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4768 % arguments for the \{chap,sec,...}entry macros which will eventually
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4769 % read this. The node name is used in the pdf outlines as the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4770 % destination to jump to.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4771 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4772 % We open the .toc file for writing here instead of at @setfilename (or
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4773 % any other fixed time) so that @contents can be anywhere in the document.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4774 % But if #1 is `omit', then we don't do anything. This is used for the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4775 % table of contents chapter openings themselves.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4776 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4777 \newif\iftocfileopened
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4778 \def\omitkeyword{omit}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4779 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4780 \def\writetocentry#1#2#3{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4781 \edef\writetoctype{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4782 \ifx\writetoctype\omitkeyword \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4783 \iftocfileopened\else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4784 \immediate\openout\tocfile = \jobname.toc
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4785 \global\tocfileopenedtrue
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4786 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4787 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4788 \iflinks
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4789 {\atdummies
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4790 \edef\temp{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4791 \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4792 \temp
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4793 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4794 \fi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4795 \fi
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4796 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4797 % Tell \shipout to create a pdf destination on each page, if we're
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4798 % writing pdf. These are used in the table of contents. We can't
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4799 % just write one on every page because the title pages are numbered
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4800 % 1 and 2 (the page numbers aren't printed), and so are the first
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4801 % two pages of the document. Thus, we'd have two destinations named
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4802 % `1', and two named `2'.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4803 \ifpdf \global\pdfmakepagedesttrue \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4804 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4805
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4806
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4807 % These characters do not print properly in the Computer Modern roman
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4808 % fonts, so we must take special care. This is more or less redundant
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4809 % with the Texinfo input format setup at the end of this file.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4810 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4811 \def\activecatcodes{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4812 \catcode`\"=\active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4813 \catcode`\$=\active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4814 \catcode`\<=\active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4815 \catcode`\>=\active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4816 \catcode`\\=\active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4817 \catcode`\^=\active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4818 \catcode`\_=\active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4819 \catcode`\|=\active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4820 \catcode`\~=\active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4821 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4822
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4823
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4824 % Read the toc file, which is essentially Texinfo input.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4825 \def\readtocfile{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4826 \setupdatafile
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4827 \activecatcodes
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4828 \input \jobname.toc
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4829 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4830
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4831 \newskip\contentsrightmargin \contentsrightmargin=1in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4832 \newcount\savepageno
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4833 \newcount\lastnegativepageno \lastnegativepageno = -1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4834
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4835 % Prepare to read what we've written to \tocfile.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4836 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4837 \def\startcontents#1{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4838 % If @setchapternewpage on, and @headings double, the contents should
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4839 % start on an odd page, unlike chapters. Thus, we maintain
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4840 % \contentsalignmacro in parallel with \pagealignmacro.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4841 % From: Torbjorn Granlund <tege@matematik.su.se>
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4842 \contentsalignmacro
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4843 \immediate\closeout\tocfile
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4844 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4845 % Don't need to put `Contents' or `Short Contents' in the headline.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4846 % It is abundantly clear what they are.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4847 \def\thischapter{}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4848 \chapmacro{#1}{Yomitfromtoc}{}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4849 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4850 \savepageno = \pageno
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4851 \begingroup % Set up to handle contents files properly.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4852 \raggedbottom % Worry more about breakpoints than the bottom.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4853 \advance\hsize by -\contentsrightmargin % Don't use the full line length.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4854 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4855 % Roman numerals for page numbers.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4856 \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4857 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4858
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4859
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4860 % Normal (long) toc.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4861 \def\contents{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4862 \startcontents{\putwordTOC}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4863 \openin 1 \jobname.toc
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4864 \ifeof 1 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4865 \readtocfile
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4866 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4867 \vfill \eject
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4868 \contentsalignmacro % in case @setchapternewpage odd is in effect
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4869 \ifeof 1 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4870 \pdfmakeoutlines
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4871 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4872 \closein 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4873 \endgroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4874 \lastnegativepageno = \pageno
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4875 \global\pageno = \savepageno
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4876 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4877
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4878 % And just the chapters.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4879 \def\summarycontents{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4880 \startcontents{\putwordShortTOC}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4881 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4882 \let\numchapentry = \shortchapentry
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4883 \let\appentry = \shortchapentry
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4884 \let\unnchapentry = \shortunnchapentry
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4885 % We want a true roman here for the page numbers.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4886 \secfonts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4887 \let\rm=\shortcontrm \let\bf=\shortcontbf
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4888 \let\sl=\shortcontsl \let\tt=\shortconttt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4889 \rm
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4890 \hyphenpenalty = 10000
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4891 \advance\baselineskip by 1pt % Open it up a little.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4892 \def\numsecentry##1##2##3##4{}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4893 \let\appsecentry = \numsecentry
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4894 \let\unnsecentry = \numsecentry
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4895 \let\numsubsecentry = \numsecentry
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4896 \let\appsubsecentry = \numsecentry
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4897 \let\unnsubsecentry = \numsecentry
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4898 \let\numsubsubsecentry = \numsecentry
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4899 \let\appsubsubsecentry = \numsecentry
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4900 \let\unnsubsubsecentry = \numsecentry
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4901 \openin 1 \jobname.toc
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4902 \ifeof 1 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4903 \readtocfile
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4904 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4905 \closein 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4906 \vfill \eject
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4907 \contentsalignmacro % in case @setchapternewpage odd is in effect
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4908 \endgroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4909 \lastnegativepageno = \pageno
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4910 \global\pageno = \savepageno
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4911 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4912 \let\shortcontents = \summarycontents
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4913
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4914 % Typeset the label for a chapter or appendix for the short contents.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4915 % The arg is, e.g., `A' for an appendix, or `3' for a chapter.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4916 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4917 \def\shortchaplabel#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4918 % This space should be enough, since a single number is .5em, and the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4919 % widest letter (M) is 1em, at least in the Computer Modern fonts.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4920 % But use \hss just in case.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4921 % (This space doesn't include the extra space that gets added after
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4922 % the label; that gets put in by \shortchapentry above.)
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4923 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4924 % We'd like to right-justify chapter numbers, but that looks strange
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4925 % with appendix letters. And right-justifying numbers and
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4926 % left-justifying letters looks strange when there is less than 10
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4927 % chapters. Have to read the whole toc once to know how many chapters
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4928 % there are before deciding ...
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4929 \hbox to 1em{#1\hss}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4930 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4931
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4932 % These macros generate individual entries in the table of contents.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4933 % The first argument is the chapter or section name.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4934 % The last argument is the page number.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4935 % The arguments in between are the chapter number, section number, ...
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4936
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
4937 % Chapters, in the main contents.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4938 \def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}}
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
4939 %
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
4940 % Chapters, in the short toc.
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
4941 % See comments in \dochapentry re vbox and related settings.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4942 \def\shortchapentry#1#2#3#4{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4943 \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4944 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4945
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
4946 % Appendices, in the main contents.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4947 % Need the word Appendix, and a fixed-size box.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4948 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4949 \def\appendixbox#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4950 % We use M since it's probably the widest letter.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4951 \setbox0 = \hbox{\putwordAppendix{} M}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4952 \hbox to \wd0{\putwordAppendix{} #1\hss}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4953 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4954 \def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\labelspace#1}{#4}}
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
4955
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
4956 % Unnumbered chapters.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4957 \def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4958 \def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4959
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4960 % Sections.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4961 \def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4962 \let\appsecentry=\numsecentry
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4963 \def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4964
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4965 % Subsections.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4966 \def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4967 \let\appsubsecentry=\numsubsecentry
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4968 \def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4969
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4970 % And subsubsections.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4971 \def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4972 \let\appsubsubsecentry=\numsubsubsecentry
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4973 \def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4974
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4975 % This parameter controls the indentation of the various levels.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4976 % Same as \defaultparindent.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
4977 \newdimen\tocindent \tocindent = 15pt
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4978
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4979 % Now for the actual typesetting. In all these, #1 is the text and #2 is the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4980 % page number.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4981 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4982 % If the toc has to be broken over pages, we want it to be at chapters
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4983 % if at all possible; hence the \penalty.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4984 \def\dochapentry#1#2{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4985 \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4986 \begingroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4987 \chapentryfonts
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4988 \tocentry{#1}{\dopageno\bgroup#2\egroup}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4989 \endgroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4990 \nobreak\vskip .25\baselineskip plus.1\baselineskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4991 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4992
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4993 \def\dosecentry#1#2{\begingroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4994 \secentryfonts \leftskip=\tocindent
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4995 \tocentry{#1}{\dopageno\bgroup#2\egroup}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4996 \endgroup}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4997
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4998 \def\dosubsecentry#1#2{\begingroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4999 \subsecentryfonts \leftskip=2\tocindent
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5000 \tocentry{#1}{\dopageno\bgroup#2\egroup}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5001 \endgroup}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5002
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5003 \def\dosubsubsecentry#1#2{\begingroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5004 \subsubsecentryfonts \leftskip=3\tocindent
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5005 \tocentry{#1}{\dopageno\bgroup#2\egroup}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5006 \endgroup}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5007
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5008 % We use the same \entry macro as for the index entries.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5009 \let\tocentry = \entry
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5010
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5011 % Space between chapter (or whatever) number and the title.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5012 \def\labelspace{\hskip1em \relax}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5013
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5014 \def\dopageno#1{{\rm #1}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5015 \def\doshortpageno#1{{\rm #1}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5016
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5017 \def\chapentryfonts{\secfonts \rm}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5018 \def\secentryfonts{\textfonts}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5019 \def\subsecentryfonts{\textfonts}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5020 \def\subsubsecentryfonts{\textfonts}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5021
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5022
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5023 \message{environments,}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5024 % @foo ... @end foo.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5025
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5026 % @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
5027 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5028 % Since these characters are used in examples, it should be an even number of
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5029 % \tt widths. Each \tt character is 1en, so two makes it 1em.
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5030 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5031 \def\point{$\star$}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5032 \def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5033 \def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5034 \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5035 \def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5036
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5037 % The @error{} command.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5038 % Adapted from the TeXbook's \boxit.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
5039 %
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5040 \newbox\errorbox
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5041 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5042 {\tentt \global\dimen0 = 3em}% Width of the box.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5043 \dimen2 = .55pt % Thickness of rules
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5044 % The text. (`r' is open on the right, `e' somewhat less so on the left.)
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5045 \setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5046 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5047 \setbox\errorbox=\hbox to \dimen0{\hfil
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5048 \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5049 \advance\hsize by -2\dimen2 % Rules.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5050 \vbox{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5051 \hrule height\dimen2
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5052 \hbox{\vrule width\dimen2 \kern3pt % Space to left of text.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5053 \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5054 \kern3pt\vrule width\dimen2}% Space to right.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5055 \hrule height\dimen2}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5056 \hfil}
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5057 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5058 \def\error{\leavevmode\lower.7ex\copy\errorbox}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5059
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5060 % @tex ... @end tex escapes into raw Tex temporarily.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5061 % One exception: @ is still an escape character, so that @end tex works.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5062 % But \@ or @@ will get a plain tex @ character.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5063
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5064 \envdef\tex{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5065 \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5066 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5067 \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5068 \catcode `\%=14
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5069 \catcode `\+=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5070 \catcode `\"=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5071 \catcode `\|=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5072 \catcode `\<=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5073 \catcode `\>=\other
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5074 \escapechar=`\\
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5075 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5076 \let\b=\ptexb
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5077 \let\bullet=\ptexbullet
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5078 \let\c=\ptexc
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5079 \let\,=\ptexcomma
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5080 \let\.=\ptexdot
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5081 \let\dots=\ptexdots
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5082 \let\equiv=\ptexequiv
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5083 \let\!=\ptexexclam
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5084 \let\i=\ptexi
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5085 \let\indent=\ptexindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5086 \let\noindent=\ptexnoindent
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5087 \let\{=\ptexlbrace
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5088 \let\+=\tabalign
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5089 \let\}=\ptexrbrace
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5090 \let\/=\ptexslash
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5091 \let\*=\ptexstar
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5092 \let\t=\ptext
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5093 \let\frenchspacing=\plainfrenchspacing
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5094 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5095 \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5096 \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5097 \def\@{@}%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5098 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5099 % There is no need to define \Etex.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5100
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5101 % Define @lisp ... @end lisp.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5102 % @lisp environment forms a group so it can rebind things,
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5103 % including the definition of @end lisp (which normally is erroneous).
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5104
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5105 % Amount to narrow the margins by for @lisp.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5106 \newskip\lispnarrowing \lispnarrowing=0.4in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5107
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5108 % This is the definition that ^^M gets inside @lisp, @example, and other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5109 % such environments. \null is better than a space, since it doesn't
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5110 % have any width.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5111 \def\lisppar{\null\endgraf}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5112
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5113 % This space is always present above and below environments.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5114 \newskip\envskipamount \envskipamount = 0pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5115
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5116 % Make spacing and below environment symmetrical. We use \parskip here
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5117 % to help in doing that, since in @example-like environments \parskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5118 % is reset to zero; thus the \afterenvbreak inserts no space -- but the
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5119 % start of the next paragraph will insert \parskip.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5120 %
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5121 \def\aboveenvbreak{{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5122 % =10000 instead of <10000 because of a special case in \itemzzz and
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5123 % \sectionheading, q.v.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5124 \ifnum \lastpenalty=10000 \else
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5125 \advance\envskipamount by \parskip
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5126 \endgraf
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5127 \ifdim\lastskip<\envskipamount
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5128 \removelastskip
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5129 % it's not a good place to break if the last penalty was \nobreak
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5130 % or better ...
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5131 \ifnum\lastpenalty<10000 \penalty-50 \fi
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5132 \vskip\envskipamount
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5133 \fi
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5134 \fi
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5135 }}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5136
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5137 \let\afterenvbreak = \aboveenvbreak
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5138
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5139 % \nonarrowing is a flag. If "set", @lisp etc don't narrow margins; it will
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5140 % also clear it, so that its embedded environments do the narrowing again.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5141 \let\nonarrowing=\relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5142
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5143 % @cartouche ... @end cartouche: draw rectangle w/rounded corners around
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5144 % environment contents.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5145 \font\circle=lcircle10
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5146 \newdimen\circthick
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5147 \newdimen\cartouter\newdimen\cartinner
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5148 \newskip\normbskip\newskip\normpskip\newskip\normlskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5149 \circthick=\fontdimen8\circle
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5150 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5151 \def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5152 \def\ctr{{\hskip 6pt\circle\char'010}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5153 \def\cbl{{\circle\char'012\hskip -6pt}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5154 \def\cbr{{\hskip 6pt\circle\char'011}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5155 \def\carttop{\hbox to \cartouter{\hskip\lskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5156 \ctl\leaders\hrule height\circthick\hfil\ctr
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5157 \hskip\rskip}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5158 \def\cartbot{\hbox to \cartouter{\hskip\lskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5159 \cbl\leaders\hrule height\circthick\hfil\cbr
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5160 \hskip\rskip}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5161 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5162 \newskip\lskip\newskip\rskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5163
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5164 \envdef\cartouche{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5165 \ifhmode\par\fi % can't be in the midst of a paragraph.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5166 \startsavinginserts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5167 \lskip=\leftskip \rskip=\rightskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5168 \leftskip=0pt\rightskip=0pt % we want these *outside*.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5169 \cartinner=\hsize \advance\cartinner by-\lskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5170 \advance\cartinner by-\rskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5171 \cartouter=\hsize
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5172 \advance\cartouter by 18.4pt % allow for 3pt kerns on either
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5173 % side, and for 6pt waste from
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5174 % each corner char, and rule thickness
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5175 \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5176 % Flag to tell @lisp, etc., not to narrow margin.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5177 \let\nonarrowing = t%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5178 \vbox\bgroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5179 \baselineskip=0pt\parskip=0pt\lineskip=0pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5180 \carttop
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5181 \hbox\bgroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5182 \hskip\lskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5183 \vrule\kern3pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5184 \vbox\bgroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5185 \kern3pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5186 \hsize=\cartinner
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5187 \baselineskip=\normbskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5188 \lineskip=\normlskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5189 \parskip=\normpskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5190 \vskip -\parskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5191 \comment % For explanation, see the end of \def\group.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5192 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5193 \def\Ecartouche{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5194 \ifhmode\par\fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5195 \kern3pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5196 \egroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5197 \kern3pt\vrule
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5198 \hskip\rskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5199 \egroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5200 \cartbot
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5201 \egroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5202 \checkinserts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5203 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5204
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5205
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5206 % This macro is called at the beginning of all the @example variants,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5207 % inside a group.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5208 \def\nonfillstart{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5209 \aboveenvbreak
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5210 \hfuzz = 12pt % Don't be fussy
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5211 \sepspaces % Make spaces be word-separators rather than space tokens.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5212 \let\par = \lisppar % don't ignore blank lines
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5213 \obeylines % each line of input is a line of output
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5214 \parskip = 0pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5215 \parindent = 0pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5216 \emergencystretch = 0pt % don't try to avoid overfull boxes
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5217 \ifx\nonarrowing\relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5218 \advance \leftskip by \lispnarrowing
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5219 \exdentamount=\lispnarrowing
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5220 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5221 \let\nonarrowing = \relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5222 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5223 \let\exdent=\nofillexdent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5224 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5225
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5226 % If you want all examples etc. small: @set dispenvsize small.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5227 % If you want even small examples the full size: @set dispenvsize nosmall.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5228 % This affects the following displayed environments:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5229 % @example, @display, @format, @lisp
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5230 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5231 \def\smallword{small}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5232 \def\nosmallword{nosmall}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5233 \let\SETdispenvsize\relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5234 \def\setnormaldispenv{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5235 \ifx\SETdispenvsize\smallword
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5236 \smallexamplefonts \rm
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5237 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5238 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5239 \def\setsmalldispenv{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5240 \ifx\SETdispenvsize\nosmallword
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5241 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5242 \smallexamplefonts \rm
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5243 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5244 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5245
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5246 % We often define two environments, @foo and @smallfoo.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5247 % Let's do it by one command:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5248 \def\makedispenv #1#2{
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5249 \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5250 \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5251 \expandafter\let\csname E#1\endcsname \afterenvbreak
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5252 \expandafter\let\csname Esmall#1\endcsname \afterenvbreak
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5253 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5254
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5255 % Define two synonyms:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5256 \def\maketwodispenvs #1#2#3{
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5257 \makedispenv{#1}{#3}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5258 \makedispenv{#2}{#3}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5259 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5260
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5261 % @lisp: indented, narrowed, typewriter font; @example: same as @lisp.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5262 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5263 % @smallexample and @smalllisp: use smaller fonts.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5264 % Originally contributed by Pavel@xerox.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5265 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5266 \maketwodispenvs {lisp}{example}{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5267 \nonfillstart
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5268 \tt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5269 \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5270 \gobble % eat return
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5271 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5272
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5273 % @display/@smalldisplay: same as @lisp except keep current font.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5274 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5275 \makedispenv {display}{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5276 \nonfillstart
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5277 \gobble
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5278 }
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5279
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5280 % @format/@smallformat: same as @display except don't narrow margins.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5281 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5282 \makedispenv{format}{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5283 \let\nonarrowing = t%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5284 \nonfillstart
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5285 \gobble
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5286 }
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5287
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5288 % @flushleft: same as @format, but doesn't obey \SETdispenvsize.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5289 \envdef\flushleft{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5290 \let\nonarrowing = t%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5291 \nonfillstart
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5292 \gobble
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5293 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5294 \let\Eflushleft = \afterenvbreak
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5295
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5296 % @flushright.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5297 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5298 \envdef\flushright{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5299 \let\nonarrowing = t%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5300 \nonfillstart
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5301 \advance\leftskip by 0pt plus 1fill
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5302 \gobble
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5303 }
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5304 \let\Eflushright = \afterenvbreak
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5305
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5306
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5307 % @quotation does normal linebreaking (hence we can't use \nonfillstart)
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5308 % and narrows the margins. We keep \parskip nonzero in general, since
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5309 % we're doing normal filling. So, when using \aboveenvbreak and
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5310 % \afterenvbreak, temporarily make \parskip 0.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5311 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5312 \envdef\quotation{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5313 {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5314 \parindent=0pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5315 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5316 % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5317 \ifx\nonarrowing\relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5318 \advance\leftskip by \lispnarrowing
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5319 \advance\rightskip by \lispnarrowing
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5320 \exdentamount = \lispnarrowing
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5321 \else
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5322 \let\nonarrowing = \relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5323 \fi
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5324 \parsearg\quotationlabel
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5325 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5326
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5327 % We have retained a nonzero parskip for the environment, since we're
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5328 % doing normal filling.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5329 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5330 \def\Equotation{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5331 \par
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5332 \ifx\quotationauthor\undefined\else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5333 % indent a bit.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5334 \leftline{\kern 2\leftskip \sl ---\quotationauthor}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5335 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5336 {\parskip=0pt \afterenvbreak}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5337 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5338
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5339 % If we're given an argument, typeset it in bold with a colon after.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5340 \def\quotationlabel#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5341 \def\temp{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5342 \ifx\temp\empty \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5343 {\bf #1: }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5344 \fi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5345 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5346
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5347
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5348 % LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>}
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
5349 % If we want to allow any <char> as delimiter,
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5350 % we need the curly braces so that makeinfo sees the @verb command, eg:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5351 % `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5352 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5353 % [Knuth]: Donald Ervin Knuth, 1996. The TeXbook.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5354 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5355 % [Knuth] p.344; only we need to do the other characters Texinfo sets
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5356 % active too. Otherwise, they get lost as the first character on a
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5357 % verbatim line.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5358 \def\dospecials{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5359 \do\ \do\\\do\{\do\}\do\$\do\&%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5360 \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5361 \do\<\do\>\do\|\do\@\do+\do\"%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5362 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5363 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5364 % [Knuth] p. 380
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5365 \def\uncatcodespecials{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5366 \def\do##1{\catcode`##1=\other}\dospecials}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5367 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5368 % [Knuth] pp. 380,381,391
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5369 % Disable Spanish ligatures ?` and !` of \tt font
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5370 \begingroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5371 \catcode`\`=\active\gdef`{\relax\lq}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5372 \endgroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5373 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5374 % Setup for the @verb command.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5375 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5376 % Eight spaces for a tab
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5377 \begingroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5378 \catcode`\^^I=\active
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5379 \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5380 \endgroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5381 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5382 \def\setupverb{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5383 \tt % easiest (and conventionally used) font for verbatim
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5384 \def\par{\leavevmode\endgraf}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5385 \catcode`\`=\active
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5386 \tabeightspaces
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5387 % Respect line breaks,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5388 % print special symbols as themselves, and
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5389 % make each space count
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5390 % must do in this order:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5391 \obeylines \uncatcodespecials \sepspaces
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5392 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5393
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5394 % Setup for the @verbatim environment
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5395 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5396 % Real tab expansion
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5397 \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5398 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5399 \def\starttabbox{\setbox0=\hbox\bgroup}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5400 \begingroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5401 \catcode`\^^I=\active
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5402 \gdef\tabexpand{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5403 \catcode`\^^I=\active
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5404 \def^^I{\leavevmode\egroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5405 \dimen0=\wd0 % the width so far, or since the previous tab
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5406 \divide\dimen0 by\tabw
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5407 \multiply\dimen0 by\tabw % compute previous multiple of \tabw
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5408 \advance\dimen0 by\tabw % advance to next multiple of \tabw
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5409 \wd0=\dimen0 \box0 \starttabbox
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5410 }%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5411 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5412 \endgroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5413 \def\setupverbatim{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5414 \let\nonarrowing = t%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5415 \nonfillstart
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5416 % Easiest (and conventionally used) font for verbatim
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5417 \tt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5418 \def\par{\leavevmode\egroup\box0\endgraf}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5419 \catcode`\`=\active
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5420 \tabexpand
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5421 % Respect line breaks,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5422 % print special symbols as themselves, and
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5423 % make each space count
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5424 % must do in this order:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5425 \obeylines \uncatcodespecials \sepspaces
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5426 \everypar{\starttabbox}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5427 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5428
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
5429 % Do the @verb magic: verbatim text is quoted by unique
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
5430 % delimiter characters. Before first delimiter expect a
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5431 % right brace, after last delimiter expect closing brace:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5432 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5433 % \def\doverb'{'<char>#1<char>'}'{#1}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5434 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5435 % [Knuth] p. 382; only eat outer {}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5436 \begingroup
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5437 \catcode`[=1\catcode`]=2\catcode`\{=\other\catcode`\}=\other
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5438 \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next]
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5439 \endgroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5440 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5441 \def\verb{\begingroup\setupverb\doverb}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5442 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5443 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5444 % Do the @verbatim magic: define the macro \doverbatim so that
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5445 % the (first) argument ends when '@end verbatim' is reached, ie:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5446 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5447 % \def\doverbatim#1@end verbatim{#1}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5448 %
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
5449 % For Texinfo it's a lot easier than for LaTeX,
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5450 % because texinfo's \verbatim doesn't stop at '\end{verbatim}':
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5451 % we need not redefine '\', '{' and '}'.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5452 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5453 % Inspired by LaTeX's verbatim command set [latex.ltx]
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5454 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5455 \begingroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5456 \catcode`\ =\active
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5457 \obeylines %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5458 % ignore everything up to the first ^^M, that's the newline at the end
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5459 % of the @verbatim input line itself. Otherwise we get an extra blank
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5460 % line in the output.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5461 \xdef\doverbatim#1^^M#2@end verbatim{#2\noexpand\end\gobble verbatim}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5462 % We really want {...\end verbatim} in the body of the macro, but
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5463 % without the active space; thus we have to use \xdef and \gobble.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5464 \endgroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5465 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5466 \envdef\verbatim{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5467 \setupverbatim\doverbatim
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5468 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5469 \let\Everbatim = \afterenvbreak
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5470
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5471
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5472 % @verbatiminclude FILE - insert text of file in verbatim environment.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5473 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5474 \def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5475 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5476 \def\doverbatiminclude#1{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5477 {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5478 \makevalueexpandable
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5479 \setupverbatim
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5480 \input #1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5481 \afterenvbreak
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5482 }%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5483 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5484
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5485 % @copying ... @end copying.
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5486 % Save the text away for @insertcopying later.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
5487 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5488 % We save the uninterpreted tokens, rather than creating a box.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5489 % Saving the text in a box would be much easier, but then all the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5490 % typesetting commands (@smallbook, font changes, etc.) have to be done
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5491 % beforehand -- and a) we want @copying to be done first in the source
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5492 % file; b) letting users define the frontmatter in as flexible order as
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5493 % possible is very desirable.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5494 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5495 \def\copying{\checkenv{}\begingroup\scanargctxt\docopying}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5496 \def\docopying#1@end copying{\endgroup\def\copyingtext{#1}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5497 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5498 \def\insertcopying{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5499 \begingroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5500 \parindent = 0pt % paragraph indentation looks wrong on title page
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5501 \scanexp\copyingtext
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5502 \endgroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5503 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5504
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5505 \message{defuns,}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5506 % @defun etc.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5507
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5508 \newskip\defbodyindent \defbodyindent=.4in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5509 \newskip\defargsindent \defargsindent=50pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5510 \newskip\deflastargmargin \deflastargmargin=18pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5511
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5512 % Start the processing of @deffn:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5513 \def\startdefun{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5514 \ifnum\lastpenalty<10000
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5515 \medbreak
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5516 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5517 % If there are two @def commands in a row, we'll have a \nobreak,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5518 % which is there to keep the function description together with its
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5519 % header. But if there's nothing but headers, we need to allow a
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5520 % break somewhere. Check specifically for penalty 10002, inserted
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5521 % by \defargscommonending, instead of 10000, since the sectioning
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5522 % commands also insert a nobreak penalty, and we don't want to allow
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5523 % a break between a section heading and a defun.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5524 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5525 \ifnum\lastpenalty=10002 \penalty2000 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5526 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5527 % Similarly, after a section heading, do not allow a break.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5528 % But do insert the glue.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5529 \medskip % preceded by discardable penalty, so not a breakpoint
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5530 \fi
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5531 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5532 \parindent=0in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5533 \advance\leftskip by \defbodyindent
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5534 \exdentamount=\defbodyindent
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5535 }
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5536
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5537 \def\dodefunx#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5538 % First, check whether we are in the right environment:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5539 \checkenv#1%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5540 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5541 % As above, allow line break if we have multiple x headers in a row.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5542 % It's not a great place, though.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5543 \ifnum\lastpenalty=10002 \penalty3000 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5544 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5545 % And now, it's time to reuse the body of the original defun:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5546 \expandafter\gobbledefun#1%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5547 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5548 \def\gobbledefun#1\startdefun{}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5549
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5550 % \printdefunline \deffnheader{text}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5551 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5552 \def\printdefunline#1#2{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5553 \begingroup
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5554 % call \deffnheader:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5555 #1#2 \endheader
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5556 % common ending:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5557 \interlinepenalty = 10000
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5558 \advance\rightskip by 0pt plus 1fil
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5559 \endgraf
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5560 \nobreak\vskip -\parskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5561 \penalty 10002 % signal to \startdefun and \dodefunx
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5562 % Some of the @defun-type tags do not enable magic parentheses,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5563 % rendering the following check redundant. But we don't optimize.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5564 \checkparencounts
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5565 \endgroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5566 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5567
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5568 \def\Edefun{\endgraf\medbreak}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5569
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5570 % \makedefun{deffn} creates \deffn, \deffnx and \Edeffn;
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5571 % the only thing remainnig is to define \deffnheader.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5572 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5573 \def\makedefun#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5574 \expandafter\let\csname E#1\endcsname = \Edefun
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5575 \edef\temp{\noexpand\domakedefun
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5576 \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5577 \temp
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5578 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5579
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5580 % \domakedefun \deffn \deffnx \deffnheader
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5581 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5582 % Define \deffn and \deffnx, without parameters.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5583 % \deffnheader has to be defined explicitly.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5584 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5585 \def\domakedefun#1#2#3{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5586 \envdef#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5587 \startdefun
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5588 \parseargusing\activeparens{\printdefunline#3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5589 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5590 \def#2{\dodefunx#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5591 \def#3%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5592 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5593
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5594 %%% Untyped functions:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5595
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5596 % @deffn category name args
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5597 \makedefun{deffn}{\deffngeneral{}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5598
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5599 % @deffn category class name args
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5600 \makedefun{defop}#1 {\defopon{#1\ \putwordon}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5601
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5602 % \defopon {category on}class name args
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5603 \def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5604
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5605 % \deffngeneral {subind}category name args
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5606 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5607 \def\deffngeneral#1#2 #3 #4\endheader{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5608 % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5609 \dosubind{fn}{\code{#3}}{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5610 \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5611 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5612
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5613 %%% Typed functions:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5614
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5615 % @deftypefn category type name args
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5616 \makedefun{deftypefn}{\deftypefngeneral{}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5617
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5618 % @deftypeop category class type name args
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5619 \makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5620
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5621 % \deftypeopon {category on}class type name args
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5622 \def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5623
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5624 % \deftypefngeneral {subind}category type name args
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5625 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5626 \def\deftypefngeneral#1#2 #3 #4 #5\endheader{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5627 \dosubind{fn}{\code{#4}}{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5628 \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5629 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5630
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5631 %%% Typed variables:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5632
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5633 % @deftypevr category type var args
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5634 \makedefun{deftypevr}{\deftypecvgeneral{}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5635
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5636 % @deftypecv category class type var args
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5637 \makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5638
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5639 % \deftypecvof {category of}class type var args
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5640 \def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5641
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5642 % \deftypecvgeneral {subind}category type var args
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5643 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5644 \def\deftypecvgeneral#1#2 #3 #4 #5\endheader{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5645 \dosubind{vr}{\code{#4}}{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5646 \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5647 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5648
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5649 %%% Untyped variables:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5650
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5651 % @defvr category var args
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5652 \makedefun{defvr}#1 {\deftypevrheader{#1} {} }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5653
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5654 % @defcv category class var args
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5655 \makedefun{defcv}#1 {\defcvof{#1\ \putwordof}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5656
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5657 % \defcvof {category of}class var args
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5658 \def\defcvof#1#2 {\deftypecvof{#1}#2 {} }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5659
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5660 %%% Type:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5661 % @deftp category name args
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5662 \makedefun{deftp}#1 #2 #3\endheader{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5663 \doind{tp}{\code{#2}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5664 \defname{#1}{}{#2}\defunargs{#3\unskip}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5665 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5666
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5667 % Remaining @defun-like shortcuts:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5668 \makedefun{defun}{\deffnheader{\putwordDeffunc} }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5669 \makedefun{defmac}{\deffnheader{\putwordDefmac} }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5670 \makedefun{defspec}{\deffnheader{\putwordDefspec} }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5671 \makedefun{deftypefun}{\deftypefnheader{\putwordDeffunc} }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5672 \makedefun{defvar}{\defvrheader{\putwordDefvar} }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5673 \makedefun{defopt}{\defvrheader{\putwordDefopt} }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5674 \makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5675 \makedefun{defmethod}{\defopon\putwordMethodon}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5676 \makedefun{deftypemethod}{\deftypeopon\putwordMethodon}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5677 \makedefun{defivar}{\defcvof\putwordInstanceVariableof}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5678 \makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5679
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5680 % \defname, which formats the name of the @def (not the args).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5681 % #1 is the category, such as "Function".
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5682 % #2 is the return type, if any.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5683 % #3 is the function name.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5684 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5685 % We are followed by (but not passed) the arguments, if any.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5686 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5687 \def\defname#1#2#3{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5688 % Get the values of \leftskip and \rightskip as they were outside the @def...
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5689 \advance\leftskip by -\defbodyindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5690 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5691 % How we'll format the type name. Putting it in brackets helps
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5692 % distinguish it from the body text that may end up on the next line
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5693 % just below it.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5694 \def\temp{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5695 \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5696 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5697 % Figure out line sizes for the paragraph shape.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5698 % The first line needs space for \box0; but if \rightskip is nonzero,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5699 % we need only space for the part of \box0 which exceeds it:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5700 \dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5701 % The continuations:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5702 \dimen2=\hsize \advance\dimen2 by -\defargsindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5703 % (plain.tex says that \dimen1 should be used only as global.)
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5704 \parshape 2 0in \dimen0 \defargsindent \dimen2
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5705 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5706 % Put the type name to the right margin.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5707 \noindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5708 \hbox to 0pt{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5709 \hfil\box0 \kern-\hsize
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5710 % \hsize has to be shortened this way:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5711 \kern\leftskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5712 % Intentionally do not respect \rightskip, since we need the space.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5713 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5714 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5715 % Allow all lines to be underfull without complaint:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5716 \tolerance=10000 \hbadness=10000
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5717 \exdentamount=\defbodyindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5718 {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5719 % defun fonts. We use typewriter by default (used to be bold) because:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5720 % . we're printing identifiers, they should be in tt in principle.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5721 % . in languages with many accents, such as Czech or French, it's
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5722 % common to leave accents off identifiers. The result looks ok in
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5723 % tt, but exceedingly strange in rm.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5724 % . we don't want -- and --- to be treated as ligatures.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5725 % . this still does not fix the ?` and !` ligatures, but so far no
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5726 % one has made identifiers using them :).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5727 \df \tt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5728 \def\temp{#2}% return value type
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5729 \ifx\temp\empty\else \tclose{\temp} \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5730 #3% output function name
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5731 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5732 {\rm\enskip}% hskip 0.5 em of \tenrm
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5733 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5734 \boldbrax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5735 % arguments will be output next, if any.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5736 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5737
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5738 % Print arguments in slanted roman (not ttsl), inconsistently with using
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5739 % tt for the name. This is because literal text is sometimes needed in
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5740 % the argument list (groff manual), and ttsl and tt are not very
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5741 % distinguishable. Prevent hyphenation at `-' chars.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5742 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5743 \def\defunargs#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5744 % use sl by default (not ttsl),
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5745 % tt for the names.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5746 \df \sl \hyphenchar\font=0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5747 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5748 % On the other hand, if an argument has two dashes (for instance), we
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5749 % want a way to get ttsl. Let's try @var for that.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5750 \let\var=\ttslanted
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5751 #1%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5752 \sl\hyphenchar\font=45
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5753 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5754
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5755 % We want ()&[] to print specially on the defun line.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5756 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5757 \def\activeparens{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5758 \catcode`\(=\active \catcode`\)=\active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5759 \catcode`\[=\active \catcode`\]=\active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5760 \catcode`\&=\active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5761 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5762
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5763 % Make control sequences which act like normal parenthesis chars.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5764 \let\lparen = ( \let\rparen = )
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5765
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5766 % Be sure that we always have a definition for `(', etc. For example,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5767 % if the fn name has parens in it, \boldbrax will not be in effect yet,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5768 % so TeX would otherwise complain about undefined control sequence.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5769 {
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5770 \activeparens
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5771 \global\let(=\lparen \global\let)=\rparen
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5772 \global\let[=\lbrack \global\let]=\rbrack
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5773 \global\let& = \&
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5774
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5775 \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5776 \gdef\magicamp{\let&=\amprm}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5777 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5778
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5779 \newcount\parencount
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5780
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5781 % If we encounter &foo, then turn on ()-hacking afterwards
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5782 \newif\ifampseen
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5783 \def\amprm#1 {\ampseentrue{\bf\&#1 }}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5784
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5785 \def\parenfont{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5786 \ifampseen
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5787 % At the first level, print parens in roman,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5788 % otherwise use the default font.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5789 \ifnum \parencount=1 \rm \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5790 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5791 % The \sf parens (in \boldbrax) actually are a little bolder than
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5792 % the contained text. This is especially needed for [ and ] .
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5793 \sf
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5794 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5795 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5796 \def\infirstlevel#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5797 \ifampseen
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5798 \ifnum\parencount=1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5799 #1%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5800 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5801 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5802 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5803 \def\bfafterword#1 {#1 \bf}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5804
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5805 \def\opnr{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5806 \global\advance\parencount by 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5807 {\parenfont(}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5808 \infirstlevel \bfafterword
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5809 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5810 \def\clnr{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5811 {\parenfont)}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5812 \infirstlevel \sl
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5813 \global\advance\parencount by -1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5814 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5815
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5816 \newcount\brackcount
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5817 \def\lbrb{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5818 \global\advance\brackcount by 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5819 {\bf[}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5820 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5821 \def\rbrb{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5822 {\bf]}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5823 \global\advance\brackcount by -1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5824 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5825
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5826 \def\checkparencounts{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5827 \ifnum\parencount=0 \else \badparencount \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5828 \ifnum\brackcount=0 \else \badbrackcount \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5829 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5830 \def\badparencount{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5831 \errmessage{Unbalanced parentheses in @def}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5832 \global\parencount=0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5833 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5834 \def\badbrackcount{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5835 \errmessage{Unbalanced square braces in @def}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5836 \global\brackcount=0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5837 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5838
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5839
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5840 \message{macros,}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5841 % @macro.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5842
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5843 % To do this right we need a feature of e-TeX, \scantokens,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5844 % which we arrange to emulate with a temporary file in ordinary TeX.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5845 \ifx\eTeXversion\undefined
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5846 \newwrite\macscribble
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5847 \def\scantokens#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5848 \toks0={#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5849 \immediate\openout\macscribble=\jobname.tmp
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5850 \immediate\write\macscribble{\the\toks0}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5851 \immediate\closeout\macscribble
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5852 \input \jobname.tmp
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5853 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5854 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5855
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5856 \def\scanmacro#1{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5857 \begingroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5858 \newlinechar`\^^M
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5859 \let\xeatspaces\eatspaces
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5860 % Undo catcode changes of \startcontents and \doprintindex
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5861 % When called from @insertcopying or (short)caption, we need active
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5862 % backslash to get it printed correctly. Previously, we had
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5863 % \catcode`\\=\other instead. We'll see whether a problem appears
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5864 % with macro expansion. --kasal, 19aug04
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5865 \catcode`\@=0 \catcode`\\=\active \escapechar=`\@
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5866 % ... and \example
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5867 \spaceisspace
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5868 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5869 % Append \endinput to make sure that TeX does not see the ending newline.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5870 % I've verified that it is necessary both for e-TeX and for ordinary TeX
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5871 % --kasal, 29nov03
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5872 \scantokens{#1\endinput}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5873 \endgroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5874 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5875
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5876 \def\scanexp#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5877 \edef\temp{\noexpand\scanmacro{#1}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5878 \temp
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5879 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5880
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5881 \newcount\paramno % Count of parameters
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5882 \newtoks\macname % Macro name
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5883 \newif\ifrecursive % Is it recursive?
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5884
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5885 % List of all defined macros in the form
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5886 % \definedummyword\macro1\definedummyword\macro2...
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5887 % Currently is also contains all @aliases; the list can be split
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5888 % if there is a need.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5889 \def\macrolist{}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5890
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5891 % Add the macro to \macrolist
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5892 \def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5893 \def\addtomacrolistxxx#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5894 \toks0 = \expandafter{\macrolist\definedummyword#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5895 \xdef\macrolist{\the\toks0}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5896 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5897
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5898 % Utility routines.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5899 % This does \let #1 = #2, with \csnames; that is,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5900 % \let \csname#1\endcsname = \csname#2\endcsname
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5901 % (except of course we have to play expansion games).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5902 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5903 \def\cslet#1#2{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5904 \expandafter\let
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5905 \csname#1\expandafter\endcsname
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5906 \csname#2\endcsname
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5907 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5908
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5909 % Trim leading and trailing spaces off a string.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5910 % Concepts from aro-bend problem 15 (see CTAN).
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5911 {\catcode`\@=11
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5912 \gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5913 \gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5914 \gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5915 \def\unbrace#1{#1}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5916 \unbrace{\gdef\trim@@@ #1 } #2@{#1}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5917 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5918
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5919 % Trim a single trailing ^^M off a string.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5920 {\catcode`\^^M=\other \catcode`\Q=3%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5921 \gdef\eatcr #1{\eatcra #1Q^^MQ}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5922 \gdef\eatcra#1^^MQ{\eatcrb#1Q}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5923 \gdef\eatcrb#1Q#2Q{#1}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5924 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5925
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5926 % Macro bodies are absorbed as an argument in a context where
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5927 % all characters are catcode 10, 11 or 12, except \ which is active
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5928 % (as in normal texinfo). It is necessary to change the definition of \.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5929
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5930 % It's necessary to have hard CRs when the macro is executed. This is
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5931 % done by making ^^M (\endlinechar) catcode 12 when reading the macro
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5932 % body, and then making it the \newlinechar in \scanmacro.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5933
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5934 \def\scanctxt{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5935 \catcode`\"=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5936 \catcode`\+=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5937 \catcode`\<=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5938 \catcode`\>=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5939 \catcode`\@=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5940 \catcode`\^=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5941 \catcode`\_=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5942 \catcode`\|=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5943 \catcode`\~=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5944 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5945
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5946 \def\scanargctxt{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5947 \scanctxt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5948 \catcode`\\=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5949 \catcode`\^^M=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5950 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5951
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5952 \def\macrobodyctxt{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5953 \scanctxt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5954 \catcode`\{=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5955 \catcode`\}=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5956 \catcode`\^^M=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5957 \usembodybackslash
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5958 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5959
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5960 \def\macroargctxt{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5961 \scanctxt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5962 \catcode`\\=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5963 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5964
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5965 % \mbodybackslash is the definition of \ in @macro bodies.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5966 % It maps \foo\ => \csname macarg.foo\endcsname => #N
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5967 % where N is the macro parameter number.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5968 % We define \csname macarg.\endcsname to be \realbackslash, so
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5969 % \\ in macro replacement text gets you a backslash.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5970
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5971 {\catcode`@=0 @catcode`@\=@active
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5972 @gdef@usembodybackslash{@let\=@mbodybackslash}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5973 @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5974 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5975 \expandafter\def\csname macarg.\endcsname{\realbackslash}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5976
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5977 \def\macro{\recursivefalse\parsearg\macroxxx}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5978 \def\rmacro{\recursivetrue\parsearg\macroxxx}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5979
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5980 \def\macroxxx#1{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5981 \getargs{#1}% now \macname is the macname and \argl the arglist
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5982 \ifx\argl\empty % no arguments
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5983 \paramno=0%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5984 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5985 \expandafter\parsemargdef \argl;%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5986 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5987 \if1\csname ismacro.\the\macname\endcsname
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5988 \message{Warning: redefining \the\macname}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5989 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5990 \expandafter\ifx\csname \the\macname\endcsname \relax
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
5991 \else \errmessage{Macro name \the\macname\space already defined}\fi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5992 \global\cslet{macsave.\the\macname}{\the\macname}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5993 \global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
5994 \addtomacrolist{\the\macname}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5995 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5996 \begingroup \macrobodyctxt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5997 \ifrecursive \expandafter\parsermacbody
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5998 \else \expandafter\parsemacbody
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5999 \fi}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6000
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6001 \parseargdef\unmacro{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6002 \if1\csname ismacro.#1\endcsname
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6003 \global\cslet{#1}{macsave.#1}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6004 \global\expandafter\let \csname ismacro.#1\endcsname=0%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6005 % Remove the macro name from \macrolist:
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6006 \begingroup
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6007 \expandafter\let\csname#1\endcsname \relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6008 \let\definedummyword\unmacrodo
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6009 \xdef\macrolist{\macrolist}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6010 \endgroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6011 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6012 \errmessage{Macro #1 not defined}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6013 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6014 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6015
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6016 % Called by \do from \dounmacro on each macro. The idea is to omit any
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6017 % macro definitions that have been changed to \relax.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6018 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6019 \def\unmacrodo#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6020 \ifx #1\relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6021 % remove this
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6022 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6023 \noexpand\definedummyword \noexpand#1%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6024 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6025 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6026
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6027 % This makes use of the obscure feature that if the last token of a
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6028 % <parameter list> is #, then the preceding argument is delimited by
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6029 % an opening brace, and that opening brace is not consumed.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6030 \def\getargs#1{\getargsxxx#1{}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6031 \def\getargsxxx#1#{\getmacname #1 \relax\getmacargs}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6032 \def\getmacname #1 #2\relax{\macname={#1}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6033 \def\getmacargs#1{\def\argl{#1}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6034
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6035 % Parse the optional {params} list. Set up \paramno and \paramlist
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6036 % so \defmacro knows what to do. Define \macarg.blah for each blah
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6037 % in the params list, to be ##N where N is the position in that list.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6038 % That gets used by \mbodybackslash (above).
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6039
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6040 % We need to get `macro parameter char #' into several definitions.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6041 % The technique used is stolen from LaTeX: let \hash be something
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6042 % unexpandable, insert that wherever you need a #, and then redefine
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6043 % it to # just before using the token list produced.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6044 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6045 % The same technique is used to protect \eatspaces till just before
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6046 % the macro is used.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6047
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6048 \def\parsemargdef#1;{\paramno=0\def\paramlist{}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6049 \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6050 \def\parsemargdefxxx#1,{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6051 \if#1;\let\next=\relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6052 \else \let\next=\parsemargdefxxx
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6053 \advance\paramno by 1%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6054 \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6055 {\xeatspaces{\hash\the\paramno}}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6056 \edef\paramlist{\paramlist\hash\the\paramno,}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6057 \fi\next}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6058
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6059 % These two commands read recursive and nonrecursive macro bodies.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6060 % (They're different since rec and nonrec macros end differently.)
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6061
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6062 \long\def\parsemacbody#1@end macro%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6063 {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6064 \long\def\parsermacbody#1@end rmacro%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6065 {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6066
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6067 % This defines the macro itself. There are six cases: recursive and
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6068 % nonrecursive macros of zero, one, and many arguments.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6069 % Much magic with \expandafter here.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6070 % \xdef is used so that macro definitions will survive the file
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6071 % they're defined in; @include reads the file inside a group.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6072 \def\defmacro{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6073 \let\hash=##% convert placeholders to macro parameter chars
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6074 \ifrecursive
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6075 \ifcase\paramno
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6076 % 0
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6077 \expandafter\xdef\csname\the\macname\endcsname{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6078 \noexpand\scanmacro{\temp}}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6079 \or % 1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6080 \expandafter\xdef\csname\the\macname\endcsname{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6081 \bgroup\noexpand\macroargctxt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6082 \noexpand\braceorline
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6083 \expandafter\noexpand\csname\the\macname xxx\endcsname}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6084 \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6085 \egroup\noexpand\scanmacro{\temp}}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6086 \else % many
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6087 \expandafter\xdef\csname\the\macname\endcsname{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6088 \bgroup\noexpand\macroargctxt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6089 \noexpand\csname\the\macname xx\endcsname}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6090 \expandafter\xdef\csname\the\macname xx\endcsname##1{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6091 \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6092 \expandafter\expandafter
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6093 \expandafter\xdef
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6094 \expandafter\expandafter
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6095 \csname\the\macname xxx\endcsname
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6096 \paramlist{\egroup\noexpand\scanmacro{\temp}}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6097 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6098 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6099 \ifcase\paramno
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6100 % 0
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6101 \expandafter\xdef\csname\the\macname\endcsname{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6102 \noexpand\norecurse{\the\macname}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6103 \noexpand\scanmacro{\temp}\egroup}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6104 \or % 1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6105 \expandafter\xdef\csname\the\macname\endcsname{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6106 \bgroup\noexpand\macroargctxt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6107 \noexpand\braceorline
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6108 \expandafter\noexpand\csname\the\macname xxx\endcsname}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6109 \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6110 \egroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6111 \noexpand\norecurse{\the\macname}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6112 \noexpand\scanmacro{\temp}\egroup}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6113 \else % many
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6114 \expandafter\xdef\csname\the\macname\endcsname{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6115 \bgroup\noexpand\macroargctxt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6116 \expandafter\noexpand\csname\the\macname xx\endcsname}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6117 \expandafter\xdef\csname\the\macname xx\endcsname##1{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6118 \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6119 \expandafter\expandafter
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6120 \expandafter\xdef
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6121 \expandafter\expandafter
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6122 \csname\the\macname xxx\endcsname
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6123 \paramlist{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6124 \egroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6125 \noexpand\norecurse{\the\macname}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6126 \noexpand\scanmacro{\temp}\egroup}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6127 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6128 \fi}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6129
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6130 \def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6131
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6132 % \braceorline decides whether the next nonwhitespace character is a
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6133 % {. If so it reads up to the closing }, if not, it reads the whole
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6134 % line. Whatever was read is then fed to the next control sequence
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6135 % as an argument (by \parsebrace or \parsearg)
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6136 \def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6137 \def\braceorlinexxx{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6138 \ifx\nchar\bgroup\else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6139 \expandafter\parsearg
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6140 \fi \macnamexxx}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6141
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6142
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6143 % @alias.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6144 % We need some trickery to remove the optional spaces around the equal
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6145 % sign. Just make them active and then expand them all to nothing.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6146 \def\alias{\parseargusing\obeyspaces\aliasxxx}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6147 \def\aliasxxx #1{\aliasyyy#1\relax}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6148 \def\aliasyyy #1=#2\relax{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6149 {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6150 \expandafter\let\obeyedspace=\empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6151 \addtomacrolist{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6152 \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6153 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6154 \next
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6155 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6156
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6157
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6158 \message{cross references,}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6159
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6160 \newwrite\auxfile
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6161
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6162 \newif\ifhavexrefs % True if xref values are known.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6163 \newif\ifwarnedxrefs % True if we warned once that they aren't known.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6164
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6165 % @inforef is relatively simple.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6166 \def\inforef #1{\inforefzzz #1,,,,**}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6167 \def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6168 node \samp{\ignorespaces#1{}}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6169
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6170 % @node's only job in TeX is to define \lastnode, which is used in
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6171 % cross-references. The @node line might or might not have commas, and
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6172 % might or might not have spaces before the first comma, like:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6173 % @node foo , bar , ...
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6174 % We don't want such trailing spaces in the node name.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6175 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6176 \parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6177 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6178 % also remove a trailing comma, in case of something like this:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6179 % @node Help-Cross, , , Cross-refs
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6180 \def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6181 \def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6182
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6183 \let\nwnode=\node
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6184 \let\lastnode=\empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6185
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6186 % Write a cross-reference definition for the current node. #1 is the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6187 % type (Ynumbered, Yappendix, Ynothing).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6188 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6189 \def\donoderef#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6190 \ifx\lastnode\empty\else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6191 \setref{\lastnode}{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6192 \global\let\lastnode=\empty
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6193 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6194 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6195
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6196 % @anchor{NAME} -- define xref target at arbitrary point.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6197 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6198 \newcount\savesfregister
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6199 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6200 \def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6201 \def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6202 \def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6203
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6204 % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6205 % anchor), which consists of three parts:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6206 % 1) NAME-title - the current sectioning name taken from \thissection,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6207 % or the anchor name.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6208 % 2) NAME-snt - section number and type, passed as the SNT arg, or
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6209 % empty for anchors.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6210 % 3) NAME-pg - the page number.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6211 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6212 % This is called from \donoderef, \anchor, and \dofloat. In the case of
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6213 % floats, there is an additional part, which is not written here:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6214 % 4) NAME-lof - the text as it should appear in a @listoffloats.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6215 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6216 \def\setref#1#2{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6217 \pdfmkdest{#1}%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6218 \iflinks
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6219 {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6220 \atdummies % preserve commands, but don't expand them
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6221 \edef\writexrdef##1##2{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6222 \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6223 ##1}{##2}}% these are parameters of \writexrdef
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6224 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6225 \toks0 = \expandafter{\thissection}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6226 \immediate \writexrdef{title}{\the\toks0 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6227 \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6228 \writexrdef{pg}{\folio}% will be written later, during \shipout
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6229 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6230 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6231 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6232
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6233 % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6234 % the node name, #2 the name of the Info cross-reference, #3 the printed
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6235 % node name, #4 the name of the Info file, #5 the name of the printed
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6236 % manual. All but the node name can be omitted.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6237 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6238 \def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6239 \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6240 \def\ref#1{\xrefX[#1,,,,,,,]}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6241 \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6242 \unsepspaces
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6243 \def\printedmanual{\ignorespaces #5}%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6244 \def\printedrefname{\ignorespaces #3}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6245 \setbox1=\hbox{\printedmanual\unskip}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6246 \setbox0=\hbox{\printedrefname\unskip}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6247 \ifdim \wd0 = 0pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6248 % No printed node name was explicitly given.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6249 \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6250 % Use the node name inside the square brackets.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6251 \def\printedrefname{\ignorespaces #1}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6252 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6253 % Use the actual chapter/section title appear inside
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6254 % the square brackets. Use the real section title if we have it.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6255 \ifdim \wd1 > 0pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6256 % It is in another manual, so we don't have it.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6257 \def\printedrefname{\ignorespaces #1}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6258 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6259 \ifhavexrefs
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6260 % We know the real title if we have the xref values.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6261 \def\printedrefname{\refx{#1-title}{}}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6262 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6263 % Otherwise just copy the Info node name.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6264 \def\printedrefname{\ignorespaces #1}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6265 \fi%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6266 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6267 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6268 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6269 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6270 % Make link in pdf output.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6271 \ifpdf
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6272 \leavevmode
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6273 \getfilename{#4}%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6274 {\turnoffactive
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6275 % See comments at \activebackslashdouble.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6276 {\activebackslashdouble \xdef\pdfxrefdest{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6277 \backslashparens\pdfxrefdest}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6278 %
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6279 \ifnum\filenamelength>0
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6280 \startlink attr{/Border [0 0 0]}%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6281 goto file{\the\filename.pdf} name{\pdfxrefdest}%
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6282 \else
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6283 \startlink attr{/Border [0 0 0]}%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6284 goto name{\pdfmkpgn{\pdfxrefdest}}%
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6285 \fi
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6286 }%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6287 \linkcolor
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6288 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6289 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6290 % Float references are printed completely differently: "Figure 1.2"
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6291 % instead of "[somenode], p.3". We distinguish them by the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6292 % LABEL-title being set to a magic string.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6293 {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6294 % Have to otherify everything special to allow the \csname to
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6295 % include an _ in the xref name, etc.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6296 \indexnofonts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6297 \turnoffactive
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6298 \expandafter\global\expandafter\let\expandafter\Xthisreftitle
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6299 \csname XR#1-title\endcsname
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6300 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6301 \iffloat\Xthisreftitle
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6302 % If the user specified the print name (third arg) to the ref,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6303 % print it instead of our usual "Figure 1.2".
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6304 \ifdim\wd0 = 0pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6305 \refx{#1-snt}{}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6306 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6307 \printedrefname
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6308 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6309 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6310 % if the user also gave the printed manual name (fifth arg), append
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6311 % "in MANUALNAME".
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6312 \ifdim \wd1 > 0pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6313 \space \putwordin{} \cite{\printedmanual}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6314 \fi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6315 \else
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6316 % node/anchor (non-float) references.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6317 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6318 % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6319 % insert empty discretionaries after hyphens, which means that it will
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6320 % not find a line break at a hyphen in a node names. Since some manuals
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6321 % are best written with fairly long node names, containing hyphens, this
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6322 % is a loss. Therefore, we give the text of the node name again, so it
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6323 % is as if TeX is seeing it for the first time.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6324 \ifdim \wd1 > 0pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6325 \putwordsection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6326 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6327 % _ (for example) has to be the character _ for the purposes of the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6328 % control sequence corresponding to the node, but it has to expand
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6329 % into the usual \leavevmode...\vrule stuff for purposes of
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6330 % printing. So we \turnoffactive for the \refx-snt, back on for the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6331 % printing, back off for the \refx-pg.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6332 {\turnoffactive
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6333 % Only output a following space if the -snt ref is nonempty; for
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6334 % @unnumbered and @anchor, it won't be.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6335 \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6336 \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6337 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6338 % output the `[mynode]' via a macro so it can be overridden.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6339 \xrefprintnodename\printedrefname
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6340 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6341 % But we always want a comma and a space:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6342 ,\space
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6343 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6344 % output the `page 3'.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6345 \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6346 \fi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6347 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6348 \endlink
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6349 \endgroup}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6350
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6351 % This macro is called from \xrefX for the `[nodename]' part of xref
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6352 % output. It's a separate macro only so it can be changed more easily,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6353 % since square brackets don't work well in some documents. Particularly
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6354 % one that Bob is working on :).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6355 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6356 \def\xrefprintnodename#1{[#1]}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6357
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6358 % Things referred to by \setref.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6359 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6360 \def\Ynothing{}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6361 \def\Yomitfromtoc{}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6362 \def\Ynumbered{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6363 \ifnum\secno=0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6364 \putwordChapter@tie \the\chapno
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6365 \else \ifnum\subsecno=0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6366 \putwordSection@tie \the\chapno.\the\secno
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6367 \else \ifnum\subsubsecno=0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6368 \putwordSection@tie \the\chapno.\the\secno.\the\subsecno
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6369 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6370 \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6371 \fi\fi\fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6372 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6373 \def\Yappendix{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6374 \ifnum\secno=0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6375 \putwordAppendix@tie @char\the\appendixno{}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6376 \else \ifnum\subsecno=0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6377 \putwordSection@tie @char\the\appendixno.\the\secno
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6378 \else \ifnum\subsubsecno=0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6379 \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6380 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6381 \putwordSection@tie
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6382 @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6383 \fi\fi\fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6384 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6385
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6386 % Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6387 % If its value is nonempty, SUFFIX is output afterward.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6388 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6389 \def\refx#1#2{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6390 {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6391 \indexnofonts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6392 \otherbackslash
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6393 \expandafter\global\expandafter\let\expandafter\thisrefX
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6394 \csname XR#1\endcsname
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6395 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6396 \ifx\thisrefX\relax
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6397 % If not defined, say something at least.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6398 \angleleft un\-de\-fined\angleright
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6399 \iflinks
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6400 \ifhavexrefs
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6401 \message{\linenumber Undefined cross reference `#1'.}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6402 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6403 \ifwarnedxrefs\else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6404 \global\warnedxrefstrue
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6405 \message{Cross reference values unknown; you must run TeX again.}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6406 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6407 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6408 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6409 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6410 % It's defined, so just use it.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6411 \thisrefX
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6412 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6413 #2% Output the suffix in any case.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6414 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6415
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6416 % This is the macro invoked by entries in the aux file. Usually it's
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6417 % just a \def (we prepend XR to the control sequence name to avoid
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6418 % collisions). But if this is a float type, we have more work to do.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6419 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6420 \def\xrdef#1#2{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6421 \expandafter\gdef\csname XR#1\endcsname{#2}% remember this xref value.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6422 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6423 % Was that xref control sequence that we just defined for a float?
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6424 \expandafter\iffloat\csname XR#1\endcsname
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6425 % it was a float, and we have the (safe) float type in \iffloattype.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6426 \expandafter\let\expandafter\floatlist
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6427 \csname floatlist\iffloattype\endcsname
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6428 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6429 % Is this the first time we've seen this float type?
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6430 \expandafter\ifx\floatlist\relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6431 \toks0 = {\do}% yes, so just \do
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6432 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6433 % had it before, so preserve previous elements in list.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6434 \toks0 = \expandafter{\floatlist\do}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6435 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6436 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6437 % Remember this xref in the control sequence \floatlistFLOATTYPE,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6438 % for later use in \listoffloats.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6439 \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0{#1}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6440 \fi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6441 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6442
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6443 % Read the last existing aux file, if any. No error if none exists.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6444 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6445 \def\tryauxfile{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6446 \openin 1 \jobname.aux
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6447 \ifeof 1 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6448 \readdatafile{aux}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6449 \global\havexrefstrue
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6450 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6451 \closein 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6452 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6453
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6454 \def\setupdatafile{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6455 \catcode`\^^@=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6456 \catcode`\^^A=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6457 \catcode`\^^B=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6458 \catcode`\^^C=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6459 \catcode`\^^D=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6460 \catcode`\^^E=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6461 \catcode`\^^F=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6462 \catcode`\^^G=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6463 \catcode`\^^H=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6464 \catcode`\^^K=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6465 \catcode`\^^L=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6466 \catcode`\^^N=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6467 \catcode`\^^P=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6468 \catcode`\^^Q=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6469 \catcode`\^^R=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6470 \catcode`\^^S=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6471 \catcode`\^^T=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6472 \catcode`\^^U=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6473 \catcode`\^^V=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6474 \catcode`\^^W=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6475 \catcode`\^^X=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6476 \catcode`\^^Z=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6477 \catcode`\^^[=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6478 \catcode`\^^\=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6479 \catcode`\^^]=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6480 \catcode`\^^^=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6481 \catcode`\^^_=\other
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6482 % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6483 % in xref tags, i.e., node names. But since ^^e4 notation isn't
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6484 % supported in the main text, it doesn't seem desirable. Furthermore,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6485 % that is not enough: for node names that actually contain a ^
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6486 % character, we would end up writing a line like this: 'xrdef {'hat
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6487 % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6488 % argument, and \hat is not an expandable control sequence. It could
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6489 % all be worked out, but why? Either we support ^^ or we don't.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6490 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6491 % The other change necessary for this was to define \auxhat:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6492 % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6493 % and then to call \auxhat in \setq.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6494 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6495 \catcode`\^=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6496 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6497 % Special characters. Should be turned off anyway, but...
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6498 \catcode`\~=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6499 \catcode`\[=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6500 \catcode`\]=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6501 \catcode`\"=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6502 \catcode`\_=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6503 \catcode`\|=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6504 \catcode`\<=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6505 \catcode`\>=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6506 \catcode`\$=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6507 \catcode`\#=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6508 \catcode`\&=\other
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6509 \catcode`\%=\other
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6510 \catcode`+=\other % avoid \+ for paranoia even though we've turned it off
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6511 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6512 % This is to support \ in node names and titles, since the \
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6513 % characters end up in a \csname. It's easier than
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6514 % leaving it active and making its active definition an actual \
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6515 % character. What I don't understand is why it works in the *value*
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6516 % of the xrdef. Seems like it should be a catcode12 \, and that
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6517 % should not typeset properly. But it works, so I'm moving on for
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6518 % now. --karl, 15jan04.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6519 \catcode`\\=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6520 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6521 % Make the characters 128-255 be printing characters.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6522 {%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6523 \count1=128
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6524 \def\loop{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6525 \catcode\count1=\other
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6526 \advance\count1 by 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6527 \ifnum \count1<256 \loop \fi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6528 }%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6529 }%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6530 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6531 % @ is our escape character in .aux files, and we need braces.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6532 \catcode`\{=1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6533 \catcode`\}=2
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6534 \catcode`\@=0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6535 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6536
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6537 \def\readdatafile#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6538 \begingroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6539 \setupdatafile
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6540 \input\jobname.#1
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6541 \endgroup}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6542
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6543 \message{insertions,}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6544 % including footnotes.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6545
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6546 \newcount \footnoteno
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6547
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6548 % The trailing space in the following definition for supereject is
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6549 % vital for proper filling; pages come out unaligned when you do a
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6550 % pagealignmacro call if that space before the closing brace is
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6551 % removed. (Generally, numeric constants should always be followed by a
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6552 % space to prevent strange expansion errors.)
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6553 \def\supereject{\par\penalty -20000\footnoteno =0 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6554
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6555 % @footnotestyle is meaningful for info output only.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6556 \let\footnotestyle=\comment
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6557
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6558 {\catcode `\@=11
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6559 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6560 % Auto-number footnotes. Otherwise like plain.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6561 \gdef\footnote{%
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6562 \let\indent=\ptexindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6563 \let\noindent=\ptexnoindent
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6564 \global\advance\footnoteno by \@ne
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6565 \edef\thisfootno{$^{\the\footnoteno}$}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6566 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6567 % In case the footnote comes at the end of a sentence, preserve the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6568 % extra spacing after we do the footnote number.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6569 \let\@sf\empty
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6570 \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6571 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6572 % Remove inadvertent blank space before typesetting the footnote number.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6573 \unskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6574 \thisfootno\@sf
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6575 \dofootnote
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6576 }%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6577
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6578 % Don't bother with the trickery in plain.tex to not require the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6579 % footnote text as a parameter. Our footnotes don't need to be so general.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6580 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6581 % Oh yes, they do; otherwise, @ifset (and anything else that uses
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6582 % \parseargline) fails inside footnotes because the tokens are fixed when
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6583 % the footnote is read. --karl, 16nov96.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6584 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6585 \gdef\dofootnote{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6586 \insert\footins\bgroup
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6587 % We want to typeset this text as a normal paragraph, even if the
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6588 % footnote reference occurs in (for example) a display environment.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6589 % So reset some parameters.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6590 \hsize=\pagewidth
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6591 \interlinepenalty\interfootnotelinepenalty
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6592 \splittopskip\ht\strutbox % top baseline for broken footnotes
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6593 \splitmaxdepth\dp\strutbox
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6594 \floatingpenalty\@MM
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6595 \leftskip\z@skip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6596 \rightskip\z@skip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6597 \spaceskip\z@skip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6598 \xspaceskip\z@skip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6599 \parindent\defaultparindent
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6600 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6601 \smallfonts \rm
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6602 %
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6603 % Because we use hanging indentation in footnotes, a @noindent appears
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6604 % to exdent this text, so make it be a no-op. makeinfo does not use
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6605 % hanging indentation so @noindent can still be needed within footnote
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6606 % text after an @example or the like (not that this is good style).
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6607 \let\noindent = \relax
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6608 %
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6609 % Hang the footnote text off the number. Use \everypar in case the
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6610 % footnote extends for more than one paragraph.
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6611 \everypar = {\hang}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6612 \textindent{\thisfootno}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6613 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6614 % Don't crash into the line above the footnote text. Since this
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6615 % expands into a box, it must come within the paragraph, lest it
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6616 % provide a place where TeX can split the footnote.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6617 \footstrut
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6618 \futurelet\next\fo@t
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6619 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6620 }%end \catcode `\@=11
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6621
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6622 % In case a @footnote appears in a vbox, save the footnote text and create
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6623 % the real \insert just after the vbox finished. Otherwise, the insertion
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6624 % would be lost.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6625 % Similarily, if a @footnote appears inside an alignment, save the footnote
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6626 % text to a box and make the \insert when a row of the table is finished.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6627 % And the same can be done for other insert classes. --kasal, 16nov03.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6628
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6629 % Replace the \insert primitive by a cheating macro.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6630 % Deeper inside, just make sure that the saved insertions are not spilled
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6631 % out prematurely.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6632 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6633 \def\startsavinginserts{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6634 \ifx \insert\ptexinsert
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6635 \let\insert\saveinsert
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6636 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6637 \let\checkinserts\relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6638 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6639 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6640
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6641 % This \insert replacement works for both \insert\footins{foo} and
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6642 % \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6643 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6644 \def\saveinsert#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6645 \edef\next{\noexpand\savetobox \makeSAVEname#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6646 \afterassignment\next
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6647 % swallow the left brace
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6648 \let\temp =
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6649 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6650 \def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6651 \def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6652
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6653 \def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6654
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6655 \def\placesaveins#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6656 \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6657 {\box#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6658 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6659
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6660 % eat @SAVE -- beware, all of them have catcode \other:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6661 {
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6662 \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials % ;-)
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6663 \gdef\gobblesave @SAVE{}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6664 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6665
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6666 % initialization:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6667 \def\newsaveins #1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6668 \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6669 \next
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6670 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6671 \def\newsaveinsX #1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6672 \csname newbox\endcsname #1%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6673 \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6674 \checksaveins #1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6675 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6676
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6677 % initialize:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6678 \let\checkinserts\empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6679 \newsaveins\footins
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6680 \newsaveins\margin
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6681
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6682
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6683 % @image. We use the macros from epsf.tex to support this.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6684 % If epsf.tex is not installed and @image is used, we complain.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6685 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6686 % Check for and read epsf.tex up front. If we read it only at @image
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6687 % time, we might be inside a group, and then its definitions would get
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6688 % undone and the next image would fail.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6689 \openin 1 = epsf.tex
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6690 \ifeof 1 \else
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6691 % Do not bother showing banner with epsf.tex v2.7k (available in
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6692 % doc/epsf.tex and on ctan).
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6693 \def\epsfannounce{\toks0 = }%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6694 \input epsf.tex
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6695 \fi
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6696 \closein 1
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6697 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6698 % We will only complain once about lack of epsf.tex.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6699 \newif\ifwarnednoepsf
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6700 \newhelp\noepsfhelp{epsf.tex must be installed for images to
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6701 work. It is also included in the Texinfo distribution, or you can get
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6702 it from ftp://tug.org/tex/epsf.tex.}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6703 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6704 \def\image#1{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6705 \ifx\epsfbox\undefined
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6706 \ifwarnednoepsf \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6707 \errhelp = \noepsfhelp
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6708 \errmessage{epsf.tex not found, images will be ignored}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6709 \global\warnednoepsftrue
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6710 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6711 \else
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6712 \imagexxx #1,,,,,\finish
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6713 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6714 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6715 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6716 % Arguments to @image:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6717 % #1 is (mandatory) image filename; we tack on .eps extension.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6718 % #2 is (optional) width, #3 is (optional) height.
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6719 % #4 is (ignored optional) html alt text.
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6720 % #5 is (ignored optional) extension.
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6721 % #6 is just the usual extra ignored arg for parsing this stuff.
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6722 \newif\ifimagevmode
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6723 \def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6724 \catcode`\^^M = 5 % in case we're inside an example
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6725 \normalturnoffactive % allow _ et al. in names
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6726 % If the image is by itself, center it.
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6727 \ifvmode
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6728 \imagevmodetrue
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6729 \nobreak\bigskip
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6730 % Usually we'll have text after the image which will insert
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6731 % \parskip glue, so insert it here too to equalize the space
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
6732 % above and below.
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6733 \nobreak\vskip\parskip
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6734 \nobreak
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6735 \line\bgroup
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6736 \fi
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6737 %
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6738 % Output the image.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6739 \ifpdf
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6740 \dopdfimage{#1}{#2}{#3}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6741 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6742 % \epsfbox itself resets \epsf?size at each figure.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6743 \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6744 \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6745 \epsfbox{#1.eps}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6746 \fi
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6747 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6748 \ifimagevmode \egroup \bigbreak \fi % space after the image
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
6749 \endgroup}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6750
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6751
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6752 % @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6753 % etc. We don't actually implement floating yet, we always include the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6754 % float "here". But it seemed the best name for the future.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6755 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6756 \envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6757
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6758 % There may be a space before second and/or third parameter; delete it.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6759 \def\eatcommaspace#1, {#1,}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6760
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6761 % #1 is the optional FLOATTYPE, the text label for this float, typically
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6762 % "Figure", "Table", "Example", etc. Can't contain commas. If omitted,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6763 % this float will not be numbered and cannot be referred to.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6764 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6765 % #2 is the optional xref label. Also must be present for the float to
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6766 % be referable.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6767 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6768 % #3 is the optional positioning argument; for now, it is ignored. It
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6769 % will somehow specify the positions allowed to float to (here, top, bottom).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6770 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6771 % We keep a separate counter for each FLOATTYPE, which we reset at each
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6772 % chapter-level command.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6773 \let\resetallfloatnos=\empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6774 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6775 \def\dofloat#1,#2,#3,#4\finish{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6776 \let\thiscaption=\empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6777 \let\thisshortcaption=\empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6778 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6779 % don't lose footnotes inside @float.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6780 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6781 % BEWARE: when the floats start float, we have to issue warning whenever an
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6782 % insert appears inside a float which could possibly float. --kasal, 26may04
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6783 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6784 \startsavinginserts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6785 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6786 % We can't be used inside a paragraph.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6787 \par
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6788 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6789 \vtop\bgroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6790 \def\floattype{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6791 \def\floatlabel{#2}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6792 \def\floatloc{#3}% we do nothing with this yet.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6793 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6794 \ifx\floattype\empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6795 \let\safefloattype=\empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6796 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6797 {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6798 % the floattype might have accents or other special characters,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6799 % but we need to use it in a control sequence name.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6800 \indexnofonts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6801 \turnoffactive
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6802 \xdef\safefloattype{\floattype}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6803 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6804 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6805 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6806 % If label is given but no type, we handle that as the empty type.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6807 \ifx\floatlabel\empty \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6808 % We want each FLOATTYPE to be numbered separately (Figure 1,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6809 % Table 1, Figure 2, ...). (And if no label, no number.)
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6810 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6811 \expandafter\getfloatno\csname\safefloattype floatno\endcsname
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6812 \global\advance\floatno by 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6813 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6814 {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6815 % This magic value for \thissection is output by \setref as the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6816 % XREFLABEL-title value. \xrefX uses it to distinguish float
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6817 % labels (which have a completely different output format) from
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6818 % node and anchor labels. And \xrdef uses it to construct the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6819 % lists of floats.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6820 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6821 \edef\thissection{\floatmagic=\safefloattype}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6822 \setref{\floatlabel}{Yfloat}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6823 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6824 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6825 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6826 % start with \parskip glue, I guess.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6827 \vskip\parskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6828 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6829 % Don't suppress indentation if a float happens to start a section.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6830 \restorefirstparagraphindent
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6831 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6832
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6833 % we have these possibilities:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6834 % @float Foo,lbl & @caption{Cap}: Foo 1.1: Cap
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6835 % @float Foo,lbl & no caption: Foo 1.1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6836 % @float Foo & @caption{Cap}: Foo: Cap
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6837 % @float Foo & no caption: Foo
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6838 % @float ,lbl & Caption{Cap}: 1.1: Cap
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6839 % @float ,lbl & no caption: 1.1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6840 % @float & @caption{Cap}: Cap
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6841 % @float & no caption:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6842 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6843 \def\Efloat{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6844 \let\floatident = \empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6845 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6846 % In all cases, if we have a float type, it comes first.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6847 \ifx\floattype\empty \else \def\floatident{\floattype}\fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6848 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6849 % If we have an xref label, the number comes next.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6850 \ifx\floatlabel\empty \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6851 \ifx\floattype\empty \else % if also had float type, need tie first.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6852 \appendtomacro\floatident{\tie}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6853 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6854 % the number.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6855 \appendtomacro\floatident{\chaplevelprefix\the\floatno}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6856 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6857 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6858 % Start the printed caption with what we've constructed in
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6859 % \floatident, but keep it separate; we need \floatident again.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6860 \let\captionline = \floatident
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6861 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6862 \ifx\thiscaption\empty \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6863 \ifx\floatident\empty \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6864 \appendtomacro\captionline{: }% had ident, so need a colon between
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6865 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6866 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6867 % caption text.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6868 \appendtomacro\captionline{\scanexp\thiscaption}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6869 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6870 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6871 % If we have anything to print, print it, with space before.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6872 % Eventually this needs to become an \insert.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6873 \ifx\captionline\empty \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6874 \vskip.5\parskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6875 \captionline
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6876 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6877 % Space below caption.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6878 \vskip\parskip
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6879 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6880 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6881 % If have an xref label, write the list of floats info. Do this
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6882 % after the caption, to avoid chance of it being a breakpoint.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6883 \ifx\floatlabel\empty \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6884 % Write the text that goes in the lof to the aux file as
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6885 % \floatlabel-lof. Besides \floatident, we include the short
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6886 % caption if specified, else the full caption if specified, else nothing.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6887 {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6888 \atdummies
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6889 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6890 % since we read the caption text in the macro world, where ^^M
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6891 % is turned into a normal character, we have to scan it back, so
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6892 % we don't write the literal three characters "^^M" into the aux file.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6893 \scanexp{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6894 \xdef\noexpand\gtemp{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6895 \ifx\thisshortcaption\empty
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6896 \thiscaption
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6897 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6898 \thisshortcaption
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6899 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6900 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6901 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6902 \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6903 \ifx\gtemp\empty \else : \gtemp \fi}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6904 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6905 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6906 \egroup % end of \vtop
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6907 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6908 % place the captured inserts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6909 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6910 % BEWARE: when the floats start floating, we have to issue warning
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6911 % whenever an insert appears inside a float which could possibly
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6912 % float. --kasal, 26may04
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6913 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6914 \checkinserts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6915 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6916
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6917 % Append the tokens #2 to the definition of macro #1, not expanding either.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6918 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6919 \def\appendtomacro#1#2{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6920 \expandafter\def\expandafter#1\expandafter{#1#2}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6921 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6922
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6923 % @caption, @shortcaption
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6924 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6925 \def\caption{\docaption\thiscaption}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6926 \def\shortcaption{\docaption\thisshortcaption}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6927 \def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6928 \def\defcaption#1#2{\egroup \def#1{#2}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6929
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6930 % The parameter is the control sequence identifying the counter we are
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6931 % going to use. Create it if it doesn't exist and assign it to \floatno.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6932 \def\getfloatno#1{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6933 \ifx#1\relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6934 % Haven't seen this figure type before.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6935 \csname newcount\endcsname #1%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6936 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6937 % Remember to reset this floatno at the next chap.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6938 \expandafter\gdef\expandafter\resetallfloatnos
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6939 \expandafter{\resetallfloatnos #1=0 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6940 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6941 \let\floatno#1%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6942 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6943
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6944 % \setref calls this to get the XREFLABEL-snt value. We want an @xref
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6945 % to the FLOATLABEL to expand to "Figure 3.1". We call \setref when we
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6946 % first read the @float command.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6947 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6948 \def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6949
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6950 % Magic string used for the XREFLABEL-title value, so \xrefX can
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6951 % distinguish floats from other xref types.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6952 \def\floatmagic{!!float!!}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6953
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6954 % #1 is the control sequence we are passed; we expand into a conditional
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6955 % which is true if #1 represents a float ref. That is, the magic
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6956 % \thissection value which we \setref above.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6957 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6958 \def\iffloat#1{\expandafter\doiffloat#1==\finish}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6959 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6960 % #1 is (maybe) the \floatmagic string. If so, #2 will be the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6961 % (safe) float type for this float. We set \iffloattype to #2.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6962 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6963 \def\doiffloat#1=#2=#3\finish{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6964 \def\temp{#1}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6965 \def\iffloattype{#2}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6966 \ifx\temp\floatmagic
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6967 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6968
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6969 % @listoffloats FLOATTYPE - print a list of floats like a table of contents.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6970 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6971 \parseargdef\listoffloats{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6972 \def\floattype{#1}% floattype
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6973 {%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6974 % the floattype might have accents or other special characters,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6975 % but we need to use it in a control sequence name.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6976 \indexnofonts
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6977 \turnoffactive
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6978 \xdef\safefloattype{\floattype}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6979 }%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6980 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6981 % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6982 \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6983 \ifhavexrefs
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6984 % if the user said @listoffloats foo but never @float foo.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6985 \message{\linenumber No `\safefloattype' floats to list.}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6986 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6987 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6988 \begingroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6989 \leftskip=\tocindent % indent these entries like a toc
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6990 \let\do=\listoffloatsdo
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6991 \csname floatlist\safefloattype\endcsname
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6992 \endgroup
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6993 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6994 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6995
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6996 % This is called on each entry in a list of floats. We're passed the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6997 % xref label, in the form LABEL-title, which is how we save it in the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6998 % aux file. We strip off the -title and look up \XRLABEL-lof, which
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
6999 % has the text we're supposed to typeset here.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7000 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7001 % Figures without xref labels will not be included in the list (since
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7002 % they won't appear in the aux file).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7003 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7004 \def\listoffloatsdo#1{\listoffloatsdoentry#1\finish}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7005 \def\listoffloatsdoentry#1-title\finish{{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7006 % Can't fully expand XR#1-lof because it can contain anything. Just
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7007 % pass the control sequence. On the other hand, XR#1-pg is just the
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7008 % page number, and we want to fully expand that so we can get a link
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7009 % in pdf output.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7010 \toksA = \expandafter{\csname XR#1-lof\endcsname}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7011 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7012 % use the same \entry macro we use to generate the TOC and index.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7013 \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7014 \writeentry
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7015 }}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7016
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7017 \message{localization,}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7018 % and i18n.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7019
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7020 % @documentlanguage is usually given very early, just after
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7021 % @setfilename. If done too late, it may not override everything
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7022 % properly. Single argument is the language abbreviation.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7023 % It would be nice if we could set up a hyphenation file here.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7024 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7025 \parseargdef\documentlanguage{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7026 \tex % read txi-??.tex file in plain TeX.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7027 % Read the file if it exists.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7028 \openin 1 txi-#1.tex
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7029 \ifeof 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7030 \errhelp = \nolanghelp
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7031 \errmessage{Cannot read language file txi-#1.tex}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7032 \else
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7033 \input txi-#1.tex
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7034 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7035 \closein 1
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7036 \endgroup
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7037 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7038 \newhelp\nolanghelp{The given language definition file cannot be found or
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7039 is empty. Maybe you need to install it? In the current directory
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7040 should work if nowhere else does.}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7041
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7042
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7043 % @documentencoding should change something in TeX eventually, most
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7044 % likely, but for now just recognize it.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7045 \let\documentencoding = \comment
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7046
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7047
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7048 % Page size parameters.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7049 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7050 \newdimen\defaultparindent \defaultparindent = 15pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7051
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7052 \chapheadingskip = 15pt plus 4pt minus 2pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7053 \secheadingskip = 12pt plus 3pt minus 2pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7054 \subsecheadingskip = 9pt plus 2pt minus 2pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7055
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7056 % Prevent underfull vbox error messages.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7057 \vbadness = 10000
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7058
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7059 % Don't be so finicky about underfull hboxes, either.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7060 \hbadness = 2000
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7061
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7062 % Following George Bush, just get rid of widows and orphans.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7063 \widowpenalty=10000
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7064 \clubpenalty=10000
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7065
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7066 % Use TeX 3.0's \emergencystretch to help line breaking, but if we're
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7067 % using an old version of TeX, don't do anything. We want the amount of
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7068 % stretch added to depend on the line length, hence the dependence on
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7069 % \hsize. We call this whenever the paper size is set.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7070 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7071 \def\setemergencystretch{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7072 \ifx\emergencystretch\thisisundefined
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7073 % Allow us to assign to \emergencystretch anyway.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7074 \def\emergencystretch{\dimen0}%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7075 \else
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7076 \emergencystretch = .15\hsize
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7077 \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7078 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7079
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7080 % Parameters in order: 1) textheight; 2) textwidth;
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7081 % 3) voffset; 4) hoffset; 5) binding offset; 6) topskip;
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7082 % 7) physical page height; 8) physical page width.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7083 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7084 % We also call \setleading{\textleading}, so the caller should define
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7085 % \textleading. The caller should also set \parskip.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7086 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7087 \def\internalpagesizes#1#2#3#4#5#6#7#8{%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7088 \voffset = #3\relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7089 \topskip = #6\relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7090 \splittopskip = \topskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7091 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7092 \vsize = #1\relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7093 \advance\vsize by \topskip
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7094 \outervsize = \vsize
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7095 \advance\outervsize by 2\topandbottommargin
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7096 \pageheight = \vsize
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7097 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7098 \hsize = #2\relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7099 \outerhsize = \hsize
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7100 \advance\outerhsize by 0.5in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7101 \pagewidth = \hsize
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7102 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7103 \normaloffset = #4\relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7104 \bindingoffset = #5\relax
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7105 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7106 \ifpdf
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7107 \pdfpageheight #7\relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7108 \pdfpagewidth #8\relax
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7109 \fi
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7110 %
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
7111 \setleading{\textleading}
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
7112 %
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7113 \parindent = \defaultparindent
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7114 \setemergencystretch
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7115 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7116
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7117 % @letterpaper (the default).
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7118 \def\letterpaper{{\globaldefs = 1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7119 \parskip = 3pt plus 2pt minus 1pt
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
7120 \textleading = 13.2pt
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7121 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7122 % If page is nothing but text, make it come out even.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7123 \internalpagesizes{46\baselineskip}{6in}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7124 {\voffset}{.25in}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7125 {\bindingoffset}{36pt}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7126 {11in}{8.5in}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7127 }}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7128
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7129 % Use @smallbook to reset parameters for 7x9.25 trim size.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7130 \def\smallbook{{\globaldefs = 1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7131 \parskip = 2pt plus 1pt
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
7132 \textleading = 12pt
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7133 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7134 \internalpagesizes{7.5in}{5in}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7135 {\voffset}{.25in}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7136 {\bindingoffset}{16pt}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7137 {9.25in}{7in}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7138 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7139 \lispnarrowing = 0.3in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7140 \tolerance = 700
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7141 \hfuzz = 1pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7142 \contentsrightmargin = 0pt
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7143 \defbodyindent = .5cm
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7144 }}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7145
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7146 % Use @smallerbook to reset parameters for 6x9 trim size.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7147 % (Just testing, parameters still in flux.)
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7148 \def\smallerbook{{\globaldefs = 1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7149 \parskip = 1.5pt plus 1pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7150 \textleading = 12pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7151 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7152 \internalpagesizes{7.4in}{4.8in}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7153 {-.2in}{-.4in}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7154 {0pt}{14pt}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7155 {9in}{6in}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7156 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7157 \lispnarrowing = 0.25in
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7158 \tolerance = 700
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7159 \hfuzz = 1pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7160 \contentsrightmargin = 0pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7161 \defbodyindent = .4cm
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7162 }}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7163
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7164 % Use @afourpaper to print on European A4 paper.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7165 \def\afourpaper{{\globaldefs = 1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7166 \parskip = 3pt plus 2pt minus 1pt
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7167 \textleading = 13.2pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7168 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7169 % Double-side printing via postscript on Laserjet 4050
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7170 % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7171 % To change the settings for a different printer or situation, adjust
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7172 % \normaloffset until the front-side and back-side texts align. Then
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7173 % do the same for \bindingoffset. You can set these for testing in
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7174 % your texinfo source file like this:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7175 % @tex
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7176 % \global\normaloffset = -6mm
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7177 % \global\bindingoffset = 10mm
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7178 % @end tex
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7179 \internalpagesizes{51\baselineskip}{160mm}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7180 {\voffset}{\hoffset}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7181 {\bindingoffset}{44pt}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7182 {297mm}{210mm}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7183 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7184 \tolerance = 700
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7185 \hfuzz = 1pt
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7186 \contentsrightmargin = 0pt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7187 \defbodyindent = 5mm
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7188 }}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7189
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7190 % Use @afivepaper to print on European A5 paper.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7191 % From romildo@urano.iceb.ufop.br, 2 July 2000.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7192 % He also recommends making @example and @lisp be small.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7193 \def\afivepaper{{\globaldefs = 1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7194 \parskip = 2pt plus 1pt minus 0.1pt
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
7195 \textleading = 12.5pt
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7196 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7197 \internalpagesizes{160mm}{120mm}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7198 {\voffset}{\hoffset}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7199 {\bindingoffset}{8pt}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7200 {210mm}{148mm}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7201 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7202 \lispnarrowing = 0.2in
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7203 \tolerance = 800
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7204 \hfuzz = 1.2pt
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7205 \contentsrightmargin = 0pt
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7206 \defbodyindent = 2mm
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7207 \tableindent = 12mm
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7208 }}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7209
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7210 % A specific text layout, 24x15cm overall, intended for A4 paper.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7211 \def\afourlatex{{\globaldefs = 1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7212 \afourpaper
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7213 \internalpagesizes{237mm}{150mm}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7214 {\voffset}{4.6mm}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7215 {\bindingoffset}{7mm}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7216 {297mm}{210mm}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7217 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7218 % Must explicitly reset to 0 because we call \afourpaper.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7219 \globaldefs = 0
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7220 }}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7221
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7222 % Use @afourwide to print on A4 paper in landscape format.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7223 \def\afourwide{{\globaldefs = 1
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7224 \afourpaper
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7225 \internalpagesizes{241mm}{165mm}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7226 {\voffset}{-2.95mm}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7227 {\bindingoffset}{7mm}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7228 {297mm}{210mm}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7229 \globaldefs = 0
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7230 }}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7231
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7232 % @pagesizes TEXTHEIGHT[,TEXTWIDTH]
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7233 % Perhaps we should allow setting the margins, \topskip, \parskip,
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7234 % and/or leading, also. Or perhaps we should compute them somehow.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7235 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7236 \parseargdef\pagesizes{\pagesizesyyy #1,,\finish}
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7237 \def\pagesizesyyy#1,#2,#3\finish{{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7238 \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7239 \globaldefs = 1
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7240 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7241 \parskip = 3pt plus 2pt minus 1pt
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
7242 \setleading{\textleading}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7243 %
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7244 \dimen0 = #1
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7245 \advance\dimen0 by \voffset
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7246 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7247 \dimen2 = \hsize
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7248 \advance\dimen2 by \normaloffset
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7249 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7250 \internalpagesizes{#1}{\hsize}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7251 {\voffset}{\normaloffset}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7252 {\bindingoffset}{44pt}%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7253 {\dimen0}{\dimen2}%
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7254 }}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7255
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7256 % Set default to letter.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7257 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7258 \letterpaper
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7259
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7260
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7261 \message{and turning on texinfo input format.}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7262
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7263 % Define macros to output various characters with catcode for normal text.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7264 \catcode`\"=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7265 \catcode`\~=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7266 \catcode`\^=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7267 \catcode`\_=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7268 \catcode`\|=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7269 \catcode`\<=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7270 \catcode`\>=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7271 \catcode`\+=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7272 \catcode`\$=\other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7273 \def\normaldoublequote{"}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7274 \def\normaltilde{~}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7275 \def\normalcaret{^}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7276 \def\normalunderscore{_}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7277 \def\normalverticalbar{|}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7278 \def\normalless{<}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7279 \def\normalgreater{>}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7280 \def\normalplus{+}
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
7281 \def\normaldollar{$}%$ font-lock fix
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7282
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7283 % This macro is used to make a character print one way in \tt
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7284 % (where it can probably be output as-is), and another way in other fonts,
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7285 % where something hairier probably needs to be done.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7286 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7287 % #1 is what to print if we are indeed using \tt; #2 is what to print
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7288 % otherwise. Since all the Computer Modern typewriter fonts have zero
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7289 % interword stretch (and shrink), and it is reasonable to expect all
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7290 % typewriter fonts to have this, we can check that font parameter.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7291 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7292 \def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7293
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7294 % Same as above, but check for italic font. Actually this also catches
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7295 % non-italic slanted fonts since it is impossible to distinguish them from
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7296 % italic fonts. But since this is only used by $ and it uses \sl anyway
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7297 % this is not a problem.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7298 \def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7299
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7300 % Turn off all special characters except @
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7301 % (and those which the user can use as if they were ordinary).
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7302 % Most of these we simply print from the \tt font, but for some, we can
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7303 % use math or other variants that look better in normal text.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7304
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7305 \catcode`\"=\active
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7306 \def\activedoublequote{{\tt\char34}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7307 \let"=\activedoublequote
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7308 \catcode`\~=\active
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7309 \def~{{\tt\char126}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7310 \chardef\hat=`\^
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7311 \catcode`\^=\active
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7312 \def^{{\tt \hat}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7313
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7314 \catcode`\_=\active
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7315 \def_{\ifusingtt\normalunderscore\_}
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7316 \let\realunder=_
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7317 % Subroutine for the previous macro.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7318 \def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7319
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7320 \catcode`\|=\active
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7321 \def|{{\tt\char124}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7322 \chardef \less=`\<
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7323 \catcode`\<=\active
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7324 \def<{{\tt \less}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7325 \chardef \gtr=`\>
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7326 \catcode`\>=\active
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7327 \def>{{\tt \gtr}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7328 \catcode`\+=\active
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7329 \def+{{\tt \char 43}}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7330 \catcode`\$=\active
47284
efec044efb3a Updated to texinfo 4.2.
Pavel Janík <Pavel@Janik.cz>
parents: 37713
diff changeset
7331 \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7332
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7333 % If a .fmt file is being used, characters that might appear in a file
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7334 % name cannot be active until we have parsed the command line.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7335 % So turn them off again, and have \everyjob (or @setfilename) turn them on.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7336 % \otherifyactive is called near the end of this file.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7337 \def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7338
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7339 % Used sometimes to turn off (effectively) the active characters even after
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7340 % parsing them.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7341 \def\turnoffactive{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7342 \normalturnoffactive
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7343 \otherbackslash
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7344 }
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7345
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7346 \catcode`\@=0
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7347
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7348 % \backslashcurfont outputs one backslash character in current font,
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7349 % as in \char`\\.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7350 \global\chardef\backslashcurfont=`\\
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7351 \global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7352
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7353 % \realbackslash is an actual character `\' with catcode other, and
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7354 % \doublebackslash is two of them (for the pdf outlines).
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7355 {\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7356
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7357 % In texinfo, backslash is an active character; it prints the backslash
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7358 % in fixed width font.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7359 \catcode`\\=\active
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7360 @def@normalbackslash{{@tt@backslashcurfont}}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7361 % On startup, @fixbackslash assigns:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7362 % @let \ = @normalbackslash
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7363
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7364 % \rawbackslash defines an active \ to do \backslashcurfont.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7365 % \otherbackslash defines an active \ to be a literal `\' character with
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7366 % catcode other.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7367 @gdef@rawbackslash{@let\=@backslashcurfont}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7368 @gdef@otherbackslash{@let\=@realbackslash}
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7369
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7370 % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7371 % the literal character `\'.
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7372 %
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7373 @def@normalturnoffactive{%
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7374 @let\=@normalbackslash
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7375 @let"=@normaldoublequote
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7376 @let~=@normaltilde
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7377 @let^=@normalcaret
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7378 @let_=@normalunderscore
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7379 @let|=@normalverticalbar
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7380 @let<=@normalless
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7381 @let>=@normalgreater
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7382 @let+=@normalplus
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7383 @let$=@normaldollar %$ font-lock fix
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7384 @unsepspaces
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7385 }
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7386
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7387 % Make _ and + \other characters, temporarily.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7388 % This is canceled by @fixbackslash.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7389 @otherifyactive
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7390
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7391 % If a .fmt file is being used, we don't want the `\input texinfo' to show up.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7392 % That is what \eatinput is for; after that, the `\' should revert to printing
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7393 % a backslash.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7394 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7395 @gdef@eatinput input texinfo{@fixbackslash}
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7396 @global@let\ = @eatinput
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7397
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7398 % On the other hand, perhaps the file did not have a `\input texinfo'. Then
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7399 % the first `\' in the file would cause an error. This macro tries to fix
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7400 % that, assuming it is called before the first `\' could plausibly occur.
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7401 % Also turn back on active characters that might appear in the input
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7402 % file name, in case not using a pre-dumped format.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7403 %
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7404 @gdef@fixbackslash{%
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7405 @ifx\@eatinput @let\ = @normalbackslash @fi
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7406 @catcode`+=@active
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7407 @catcode`@_=@active
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7408 }
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7409
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7410 % Say @foo, not \foo, in error messages.
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7411 @escapechar = `@@
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7412
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47284
diff changeset
7413 % These look ok in all fonts, so just make them not special.
37713
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7414 @catcode`@& = @other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7415 @catcode`@# = @other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7416 @catcode`@% = @other
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7417
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7418
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7419 @c Local variables:
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7420 @c eval: (add-hook 'write-file-hooks 'time-stamp)
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7421 @c page-delimiter: "^\\\\message"
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7422 @c time-stamp-start: "def\\\\texinfoversion{"
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7423 @c time-stamp-format: "%:y-%02m-%02d.%02H"
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7424 @c time-stamp-end: "}"
d740bf4f6714 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7425 @c End:
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
7426
69769
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7427 @c vim:sw=2:
c393ff423703 update to current texinfo.tex
Karl Berry <karl@gnu.org>
parents: 68639
diff changeset
7428
52790
a93f1f4e2e49 Replace `%' in arch tagline by @ignore.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
7429 @ignore
a93f1f4e2e49 Replace `%' in arch tagline by @ignore.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
7430 arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115
a93f1f4e2e49 Replace `%' in arch tagline by @ignore.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
7431 @end ignore