diff options
Diffstat (limited to 'doc/texinfo.tex')
-rw-r--r-- | doc/texinfo.tex | 2424 |
1 files changed, 336 insertions, 2088 deletions
diff --git a/doc/texinfo.tex b/doc/texinfo.tex index d2b264dd..ff2c4065 100644 --- a/doc/texinfo.tex +++ b/doc/texinfo.tex | |||
@@ -3,16 +3,16 @@ | |||
3 | % Load plain if necessary, i.e., if running under initex. | 3 | % Load plain if necessary, i.e., if running under initex. |
4 | \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi | 4 | \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi |
5 | % | 5 | % |
6 | \def\texinfoversion{2007-12-02.17} | 6 | \def\texinfoversion{2005-07-05.19} |
7 | % | 7 | % |
8 | % Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 2007, | 8 | % Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, |
9 | % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, | 9 | % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software |
10 | % 2007 Free Software Foundation, Inc. | 10 | % Foundation, Inc. |
11 | % | 11 | % |
12 | % This texinfo.tex file is free software: you can redistribute it and/or | 12 | % This texinfo.tex file is free software; you can redistribute it and/or |
13 | % modify it under the terms of the GNU General Public License as | 13 | % modify it under the terms of the GNU General Public License as |
14 | % published by the Free Software Foundation, either version 3 of the | 14 | % published by the Free Software Foundation; either version 2, or (at |
15 | % License, or (at your option) any later version. | 15 | % your option) any later version. |
16 | % | 16 | % |
17 | % This texinfo.tex file is distributed in the hope that it will be | 17 | % This texinfo.tex file is distributed in the hope that it will be |
18 | % useful, but WITHOUT ANY WARRANTY; without even the implied warranty | 18 | % useful, but WITHOUT ANY WARRANTY; without even the implied warranty |
@@ -20,7 +20,9 @@ | |||
20 | % General Public License for more details. | 20 | % General Public License for more details. |
21 | % | 21 | % |
22 | % You should have received a copy of the GNU General Public License | 22 | % You should have received a copy of the GNU General Public License |
23 | % along with this program. If not, see <http://www.gnu.org/licenses/>. | 23 | % along with this texinfo.tex file; see the file COPYING. If not, write |
24 | % to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
25 | % Boston, MA 02110-1301, USA. | ||
24 | % | 26 | % |
25 | % As a special exception, when this file is read by TeX when processing | 27 | % As a special exception, when this file is read by TeX when processing |
26 | % a Texinfo source document, you may use the result without | 28 | % a Texinfo source document, you may use the result without |
@@ -65,7 +67,7 @@ | |||
65 | \everyjob{\message{[Texinfo version \texinfoversion]}% | 67 | \everyjob{\message{[Texinfo version \texinfoversion]}% |
66 | \catcode`+=\active \catcode`\_=\active} | 68 | \catcode`+=\active \catcode`\_=\active} |
67 | 69 | ||
68 | 70 | \message{Basics,} | |
69 | \chardef\other=12 | 71 | \chardef\other=12 |
70 | 72 | ||
71 | % We never want plain's \outer definition of \+ in Texinfo. | 73 | % We never want plain's \outer definition of \+ in Texinfo. |
@@ -151,22 +153,28 @@ | |||
151 | \ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi | 153 | \ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi |
152 | \ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi | 154 | \ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi |
153 | 155 | ||
154 | % Since the category of space is not known, we have to be careful. | 156 | % In some macros, we cannot use the `\? notation---the left quote is |
155 | \chardef\spacecat = 10 | 157 | % in some cases the escape char. |
156 | \def\spaceisspace{\catcode`\ =\spacecat} | 158 | \chardef\backChar = `\\ |
157 | |||
158 | % sometimes characters are active, so we need control sequences. | ||
159 | \chardef\colonChar = `\: | 159 | \chardef\colonChar = `\: |
160 | \chardef\commaChar = `\, | 160 | \chardef\commaChar = `\, |
161 | \chardef\dashChar = `\- | ||
162 | \chardef\dotChar = `\. | 161 | \chardef\dotChar = `\. |
163 | \chardef\exclamChar= `\! | 162 | \chardef\exclamChar= `\! |
164 | \chardef\lquoteChar= `\` | 163 | \chardef\plusChar = `\+ |
165 | \chardef\questChar = `\? | 164 | \chardef\questChar = `\? |
166 | \chardef\rquoteChar= `\' | ||
167 | \chardef\semiChar = `\; | 165 | \chardef\semiChar = `\; |
168 | \chardef\underChar = `\_ | 166 | \chardef\underChar = `\_ |
169 | 167 | ||
168 | \chardef\spaceChar = `\ % | ||
169 | \chardef\spacecat = 10 | ||
170 | \def\spaceisspace{\catcode\spaceChar=\spacecat} | ||
171 | |||
172 | {% for help with debugging. | ||
173 | % example usage: \expandafter\show\activebackslash | ||
174 | \catcode`\! = 0 \catcode`\\ = \active | ||
175 | !global!def!activebackslash{\} | ||
176 | } | ||
177 | |||
170 | % Ignore a token. | 178 | % Ignore a token. |
171 | % | 179 | % |
172 | \def\gobble#1{} | 180 | \def\gobble#1{} |
@@ -277,50 +285,6 @@ | |||
277 | \newdimen\cornerthick \cornerthick=.3pt | 285 | \newdimen\cornerthick \cornerthick=.3pt |
278 | \newdimen\topandbottommargin \topandbottommargin=.75in | 286 | \newdimen\topandbottommargin \topandbottommargin=.75in |
279 | 287 | ||
280 | % Output a mark which sets \thischapter, \thissection and \thiscolor. | ||
281 | % We dump everything together because we only have one kind of mark. | ||
282 | % This works because we only use \botmark / \topmark, not \firstmark. | ||
283 | % | ||
284 | % A mark contains a subexpression of the \ifcase ... \fi construct. | ||
285 | % \get*marks macros below extract the needed part using \ifcase. | ||
286 | % | ||
287 | % Another complication is to let the user choose whether \thischapter | ||
288 | % (\thissection) refers to the chapter (section) in effect at the top | ||
289 | % of a page, or that at the bottom of a page. The solution is | ||
290 | % described on page 260 of The TeXbook. It involves outputting two | ||
291 | % marks for the sectioning macros, one before the section break, and | ||
292 | % one after. I won't pretend I can describe this better than DEK... | ||
293 | \def\domark{% | ||
294 | \toks0=\expandafter{\lastchapterdefs}% | ||
295 | \toks2=\expandafter{\lastsectiondefs}% | ||
296 | \toks4=\expandafter{\prevchapterdefs}% | ||
297 | \toks6=\expandafter{\prevsectiondefs}% | ||
298 | \toks8=\expandafter{\lastcolordefs}% | ||
299 | \mark{% | ||
300 | \the\toks0 \the\toks2 | ||
301 | \noexpand\or \the\toks4 \the\toks6 | ||
302 | \noexpand\else \the\toks8 | ||
303 | }% | ||
304 | } | ||
305 | % \topmark doesn't work for the very first chapter (after the title | ||
306 | % page or the contents), so we use \firstmark there -- this gets us | ||
307 | % the mark with the chapter defs, unless the user sneaks in, e.g., | ||
308 | % @setcolor (or @url, or @link, etc.) between @contents and the very | ||
309 | % first @chapter. | ||
310 | \def\gettopheadingmarks{% | ||
311 | \ifcase0\topmark\fi | ||
312 | \ifx\thischapter\empty \ifcase0\firstmark\fi \fi | ||
313 | } | ||
314 | \def\getbottomheadingmarks{\ifcase1\botmark\fi} | ||
315 | \def\getcolormarks{\ifcase2\topmark\fi} | ||
316 | |||
317 | % Avoid "undefined control sequence" errors. | ||
318 | \def\lastchapterdefs{} | ||
319 | \def\lastsectiondefs{} | ||
320 | \def\prevchapterdefs{} | ||
321 | \def\prevsectiondefs{} | ||
322 | \def\lastcolordefs{} | ||
323 | |||
324 | % Main output routine. | 288 | % Main output routine. |
325 | \chardef\PAGE = 255 | 289 | \chardef\PAGE = 255 |
326 | \output = {\onepageout{\pagecontents\PAGE}} | 290 | \output = {\onepageout{\pagecontents\PAGE}} |
@@ -338,9 +302,7 @@ | |||
338 | % | 302 | % |
339 | % Do this outside of the \shipout so @code etc. will be expanded in | 303 | % Do this outside of the \shipout so @code etc. will be expanded in |
340 | % the headline as they should be, not taken literally (outputting ''code). | 304 | % the headline as they should be, not taken literally (outputting ''code). |
341 | \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi | ||
342 | \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}% | 305 | \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}% |
343 | \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi | ||
344 | \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}% | 306 | \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}% |
345 | % | 307 | % |
346 | {% | 308 | {% |
@@ -349,13 +311,6 @@ | |||
349 | % before the \shipout runs. | 311 | % before the \shipout runs. |
350 | % | 312 | % |
351 | \indexdummies % don't expand commands in the output. | 313 | \indexdummies % don't expand commands in the output. |
352 | \normalturnoffactive % \ in index entries must not stay \, e.g., if | ||
353 | % the page break happens to be in the middle of an example. | ||
354 | % We don't want .vr (or whatever) entries like this: | ||
355 | % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}} | ||
356 | % "\acronym" won't work when it's read back in; | ||
357 | % it needs to be | ||
358 | % {\code {{\tt \backslashcurfont }acronym} | ||
359 | \shipout\vbox{% | 314 | \shipout\vbox{% |
360 | % Do this early so pdf references go to the beginning of the page. | 315 | % Do this early so pdf references go to the beginning of the page. |
361 | \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi | 316 | \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi |
@@ -383,9 +338,9 @@ | |||
383 | \pagebody{#1}% | 338 | \pagebody{#1}% |
384 | \ifdim\ht\footlinebox > 0pt | 339 | \ifdim\ht\footlinebox > 0pt |
385 | % Only leave this space if the footline is nonempty. | 340 | % Only leave this space if the footline is nonempty. |
386 | % (We lessened \vsize for it in \oddfootingyyy.) | 341 | % (We lessened \vsize for it in \oddfootingxxx.) |
387 | % The \baselineskip=24pt in plain's \makefootline has no effect. | 342 | % The \baselineskip=24pt in plain's \makefootline has no effect. |
388 | \vskip 24pt | 343 | \vskip 2\baselineskip |
389 | \unvbox\footlinebox | 344 | \unvbox\footlinebox |
390 | \fi | 345 | \fi |
391 | % | 346 | % |
@@ -419,7 +374,7 @@ | |||
419 | % marginal hacks, juha@viisa.uucp (Juha Takala) | 374 | % marginal hacks, juha@viisa.uucp (Juha Takala) |
420 | \ifvoid\margin\else % marginal info is present | 375 | \ifvoid\margin\else % marginal info is present |
421 | \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi | 376 | \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi |
422 | \dimen@=\dp#1\relax \unvbox#1\relax | 377 | \dimen@=\dp#1 \unvbox#1 |
423 | \ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi | 378 | \ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi |
424 | \ifr@ggedbottom \kern-\dimen@ \vfil \fi} | 379 | \ifr@ggedbottom \kern-\dimen@ \vfil \fi} |
425 | } | 380 | } |
@@ -441,7 +396,7 @@ | |||
441 | % | 396 | % |
442 | \def\parsearg{\parseargusing{}} | 397 | \def\parsearg{\parseargusing{}} |
443 | \def\parseargusing#1#2{% | 398 | \def\parseargusing#1#2{% |
444 | \def\argtorun{#2}% | 399 | \def\next{#2}% |
445 | \begingroup | 400 | \begingroup |
446 | \obeylines | 401 | \obeylines |
447 | \spaceisspace | 402 | \spaceisspace |
@@ -472,7 +427,8 @@ | |||
472 | \def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{% | 427 | \def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{% |
473 | \def\temp{#3}% | 428 | \def\temp{#3}% |
474 | \ifx\temp\empty | 429 | \ifx\temp\empty |
475 | % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp: | 430 | % We cannot use \next here, as it holds the macro to run; |
431 | % thus we reuse \temp. | ||
476 | \let\temp\finishparsearg | 432 | \let\temp\finishparsearg |
477 | \else | 433 | \else |
478 | \let\temp\argcheckspaces | 434 | \let\temp\argcheckspaces |
@@ -484,14 +440,14 @@ | |||
484 | % If a _delimited_ argument is enclosed in braces, they get stripped; so | 440 | % If a _delimited_ argument is enclosed in braces, they get stripped; so |
485 | % to get _exactly_ the rest of the line, we had to prevent such situation. | 441 | % to get _exactly_ the rest of the line, we had to prevent such situation. |
486 | % We prepended an \empty token at the very beginning and we expand it now, | 442 | % We prepended an \empty token at the very beginning and we expand it now, |
487 | % just before passing the control to \argtorun. | 443 | % just before passing the control to \next. |
488 | % (Similarily, we have to think about #3 of \argcheckspacesY above: it is | 444 | % (Similarily, we have to think about #3 of \argcheckspacesY above: it is |
489 | % either the null string, or it ends with \^^M---thus there is no danger | 445 | % either the null string, or it ends with \^^M---thus there is no danger |
490 | % that a pair of braces would be stripped. | 446 | % that a pair of braces would be stripped. |
491 | % | 447 | % |
492 | % But first, we have to remove the trailing space token. | 448 | % But first, we have to remove the trailing space token. |
493 | % | 449 | % |
494 | \def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}} | 450 | \def\finishparsearg#1 \ArgTerm{\expandafter\next\expandafter{#1}} |
495 | 451 | ||
496 | % \parseargdef\foo{...} | 452 | % \parseargdef\foo{...} |
497 | % is roughly equivalent to | 453 | % is roughly equivalent to |
@@ -1095,9 +1051,9 @@ where each line of input produces a line of output.} | |||
1095 | % _ active, and distinguish by seeing if the current family is \slfam, | 1051 | % _ active, and distinguish by seeing if the current family is \slfam, |
1096 | % which is what @var uses. | 1052 | % which is what @var uses. |
1097 | { | 1053 | { |
1098 | \catcode`\_ = \active | 1054 | \catcode\underChar = \active |
1099 | \gdef\mathunderscore{% | 1055 | \gdef\mathunderscore{% |
1100 | \catcode`\_=\active | 1056 | \catcode\underChar=\active |
1101 | \def_{\ifnum\fam=\slfam \_\else\sb\fi}% | 1057 | \def_{\ifnum\fam=\slfam \_\else\sb\fi}% |
1102 | } | 1058 | } |
1103 | } | 1059 | } |
@@ -1140,24 +1096,15 @@ where each line of input produces a line of output.} | |||
1140 | \def\minus{$-$} | 1096 | \def\minus{$-$} |
1141 | 1097 | ||
1142 | % @dots{} outputs an ellipsis using the current font. | 1098 | % @dots{} outputs an ellipsis using the current font. |
1143 | % We do .5em per period so that it has the same spacing in the cm | 1099 | % We do .5em per period so that it has the same spacing in a typewriter |
1144 | % typewriter fonts as three actual period characters; on the other hand, | 1100 | % font as three actual period characters. |
1145 | % in other typewriter fonts three periods are wider than 1.5em. So do | ||
1146 | % whichever is larger. | ||
1147 | % | 1101 | % |
1148 | \def\dots{% | 1102 | \def\dots{% |
1149 | \leavevmode | 1103 | \leavevmode |
1150 | \setbox0=\hbox{...}% get width of three periods | 1104 | \hbox to 1.5em{% |
1151 | \ifdim\wd0 > 1.5em | 1105 | \hskip 0pt plus 0.25fil |
1152 | \dimen0 = \wd0 | 1106 | .\hfil.\hfil.% |
1153 | \else | 1107 | \hskip 0pt plus 0.5fil |
1154 | \dimen0 = 1.5em | ||
1155 | \fi | ||
1156 | \hbox to \dimen0{% | ||
1157 | \hskip 0pt plus.25fil | ||
1158 | .\hskip 0pt plus1fil | ||
1159 | .\hskip 0pt plus1fil | ||
1160 | .\hskip 0pt plus.5fil | ||
1161 | }% | 1108 | }% |
1162 | } | 1109 | } |
1163 | 1110 | ||
@@ -1250,28 +1197,28 @@ where each line of input produces a line of output.} | |||
1250 | \fi | 1197 | \fi |
1251 | \fi | 1198 | \fi |
1252 | 1199 | ||
1253 | % PDF uses PostScript string constants for the names of xref targets, | 1200 | % PDF uses PostScript string constants for the names of xref targets, to |
1254 | % for display in the outlines, and in other places. Thus, we have to | 1201 | % for display in the outlines, and in other places. Thus, we have to |
1255 | % double any backslashes. Otherwise, a name like "\node" will be | 1202 | % double any backslashes. Otherwise, a name like "\node" will be |
1256 | % interpreted as a newline (\n), followed by o, d, e. Not good. | 1203 | % interpreted as a newline (\n), followed by o, d, e. Not good. |
1257 | % http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html | 1204 | % http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html |
1258 | % (and related messages, the final outcome is that it is up to the TeX | 1205 | % (and related messages, the final outcome is that it is up to the TeX |
1259 | % user to double the backslashes and otherwise make the string valid, so | 1206 | % user to double the backslashes and otherwise make the string valid, so |
1260 | % that's what we do). | 1207 | % that's we do). |
1261 | 1208 | ||
1262 | % double active backslashes. | 1209 | % double active backslashes. |
1263 | % | 1210 | % |
1264 | {\catcode`\@=0 \catcode`\\=\active | 1211 | {\catcode`\@=0 \catcode`\\=\active |
1212 | @gdef@activebackslash{@catcode`@\=@active @otherbackslash} | ||
1265 | @gdef@activebackslashdouble{% | 1213 | @gdef@activebackslashdouble{% |
1266 | @catcode`@\=@active | 1214 | @catcode@backChar=@active |
1267 | @let\=@doublebackslash} | 1215 | @let\=@doublebackslash} |
1268 | } | 1216 | } |
1269 | 1217 | ||
1270 | % To handle parens, we must adopt a different approach, since parens are | 1218 | % To handle parens, we must adopt a different approach, since parens are |
1271 | % not active characters. hyperref.dtx (which has the same problem as | 1219 | % not active characters. hyperref.dtx (which has the same problem as |
1272 | % us) handles it with this amazing macro to replace tokens, with minor | 1220 | % us) handles it with this amazing macro to replace tokens. I've |
1273 | % changes for Texinfo. It is included here under the GPL by permission | 1221 | % tinkered with it a little for texinfo, but it's definitely from there. |
1274 | % from the author, Heiko Oberdiek. | ||
1275 | % | 1222 | % |
1276 | % #1 is the tokens to replace. | 1223 | % #1 is the tokens to replace. |
1277 | % #2 is the replacement. | 1224 | % #2 is the replacement. |
@@ -1296,87 +1243,21 @@ where each line of input produces a line of output.} | |||
1296 | \def\backslashparens#1{% | 1243 | \def\backslashparens#1{% |
1297 | \xdef#1{#1}% redefine it as its expansion; the definition is simply | 1244 | \xdef#1{#1}% redefine it as its expansion; the definition is simply |
1298 | % \lastnode when called from \setref -> \pdfmkdest. | 1245 | % \lastnode when called from \setref -> \pdfmkdest. |
1299 | \HyPsdSubst{(}{\realbackslash(}{#1}% | 1246 | \HyPsdSubst{(}{\backslashlparen}{#1}% |
1300 | \HyPsdSubst{)}{\realbackslash)}{#1}% | 1247 | \HyPsdSubst{)}{\backslashrparen}{#1}% |
1301 | } | 1248 | } |
1302 | 1249 | ||
1303 | \newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images | 1250 | {\catcode\exclamChar = 0 \catcode\backChar = \other |
1304 | with PDF output, and none of those formats could be found. (.eps cannot | 1251 | !gdef!backslashlparen{\(}% |
1305 | be supported due to the design of the PDF format; use regular TeX (DVI | 1252 | !gdef!backslashrparen{\)}% |
1306 | output) for that.)} | 1253 | } |
1307 | 1254 | ||
1308 | \ifpdf | 1255 | \ifpdf |
1309 | % | 1256 | \input pdfcolor |
1310 | % Color manipulation macros based on pdfcolor.tex. | 1257 | \pdfcatalog{/PageMode /UseOutlines}% |
1311 | \def\cmykDarkRed{0.28 1 1 0.35} | ||
1312 | \def\cmykBlack{0 0 0 1} | ||
1313 | % | ||
1314 | \def\pdfsetcolor#1{\pdfliteral{#1 k}} | ||
1315 | % Set color, and create a mark which defines \thiscolor accordingly, | ||
1316 | % so that \makeheadline knows which color to restore. | ||
1317 | \def\setcolor#1{% | ||
1318 | \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}% | ||
1319 | \domark | ||
1320 | \pdfsetcolor{#1}% | ||
1321 | } | ||
1322 | % | ||
1323 | \def\maincolor{\cmykBlack} | ||
1324 | \pdfsetcolor{\maincolor} | ||
1325 | \edef\thiscolor{\maincolor} | ||
1326 | \def\lastcolordefs{} | ||
1327 | % | ||
1328 | \def\makefootline{% | ||
1329 | \baselineskip24pt | ||
1330 | \line{\pdfsetcolor{\maincolor}\the\footline}% | ||
1331 | } | ||
1332 | % | ||
1333 | \def\makeheadline{% | ||
1334 | \vbox to 0pt{% | ||
1335 | \vskip-22.5pt | ||
1336 | \line{% | ||
1337 | \vbox to8.5pt{}% | ||
1338 | % Extract \thiscolor definition from the marks. | ||
1339 | \getcolormarks | ||
1340 | % Typeset the headline with \maincolor, then restore the color. | ||
1341 | \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}% | ||
1342 | }% | ||
1343 | \vss | ||
1344 | }% | ||
1345 | \nointerlineskip | ||
1346 | } | ||
1347 | % | ||
1348 | % | ||
1349 | \pdfcatalog{/PageMode /UseOutlines} | ||
1350 | % | ||
1351 | % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). | ||
1352 | \def\dopdfimage#1#2#3{% | 1258 | \def\dopdfimage#1#2#3{% |
1353 | \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% | 1259 | \def\imagewidth{#2}% |
1354 | \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% | 1260 | \def\imageheight{#3}% |
1355 | % | ||
1356 | % pdftex (and the PDF format) support .png, .jpg, .pdf (among | ||
1357 | % others). Let's try in that order. | ||
1358 | \let\pdfimgext=\empty | ||
1359 | \begingroup | ||
1360 | \openin 1 #1.png \ifeof 1 | ||
1361 | \openin 1 #1.jpg \ifeof 1 | ||
1362 | \openin 1 #1.jpeg \ifeof 1 | ||
1363 | \openin 1 #1.JPG \ifeof 1 | ||
1364 | \openin 1 #1.pdf \ifeof 1 | ||
1365 | \errhelp = \nopdfimagehelp | ||
1366 | \errmessage{Could not find image file #1 for pdf}% | ||
1367 | \else \gdef\pdfimgext{pdf}% | ||
1368 | \fi | ||
1369 | \else \gdef\pdfimgext{JPG}% | ||
1370 | \fi | ||
1371 | \else \gdef\pdfimgext{jpeg}% | ||
1372 | \fi | ||
1373 | \else \gdef\pdfimgext{jpg}% | ||
1374 | \fi | ||
1375 | \else \gdef\pdfimgext{png}% | ||
1376 | \fi | ||
1377 | \closein 1 | ||
1378 | \endgroup | ||
1379 | % | ||
1380 | % without \immediate, pdftex seg faults when the same image is | 1261 | % without \immediate, pdftex seg faults when the same image is |
1381 | % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) | 1262 | % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) |
1382 | \ifnum\pdftexversion < 14 | 1263 | \ifnum\pdftexversion < 14 |
@@ -1384,38 +1265,31 @@ output) for that.)} | |||
1384 | \else | 1265 | \else |
1385 | \immediate\pdfximage | 1266 | \immediate\pdfximage |
1386 | \fi | 1267 | \fi |
1387 | \ifdim \wd0 >0pt width \imagewidth \fi | 1268 | \ifx\empty\imagewidth\else width \imagewidth \fi |
1388 | \ifdim \wd2 >0pt height \imageheight \fi | 1269 | \ifx\empty\imageheight\else height \imageheight \fi |
1389 | \ifnum\pdftexversion<13 | 1270 | \ifnum\pdftexversion<13 |
1390 | #1.\pdfimgext | 1271 | #1.pdf% |
1391 | \else | 1272 | \else |
1392 | {#1.\pdfimgext}% | 1273 | {#1.pdf}% |
1393 | \fi | 1274 | \fi |
1394 | \ifnum\pdftexversion < 14 \else | 1275 | \ifnum\pdftexversion < 14 \else |
1395 | \pdfrefximage \pdflastximage | 1276 | \pdfrefximage \pdflastximage |
1396 | \fi} | 1277 | \fi} |
1397 | % | ||
1398 | \def\pdfmkdest#1{{% | 1278 | \def\pdfmkdest#1{{% |
1399 | % We have to set dummies so commands such as @code, and characters | 1279 | % We have to set dummies so commands such as @code, and characters |
1400 | % such as \, aren't expanded when present in a section title. | 1280 | % such as \, aren't expanded when present in a section title. |
1401 | \indexnofonts | 1281 | \atdummies |
1402 | \turnoffactive | ||
1403 | \activebackslashdouble | 1282 | \activebackslashdouble |
1404 | \makevalueexpandable | ||
1405 | \def\pdfdestname{#1}% | 1283 | \def\pdfdestname{#1}% |
1406 | \backslashparens\pdfdestname | 1284 | \backslashparens\pdfdestname |
1407 | \safewhatsit{\pdfdest name{\pdfdestname} xyz}% | 1285 | \pdfdest name{\pdfdestname} xyz% |
1408 | }} | 1286 | }}% |
1409 | % | 1287 | % |
1410 | % used to mark target names; must be expandable. | 1288 | % used to mark target names; must be expandable. |
1411 | \def\pdfmkpgn#1{#1} | 1289 | \def\pdfmkpgn#1{#1}% |
1412 | % | ||
1413 | % by default, use a color that is dark enough to print on paper as | ||
1414 | % nearly black, but still distinguishable for online viewing. | ||
1415 | \def\urlcolor{\cmykDarkRed} | ||
1416 | \def\linkcolor{\cmykDarkRed} | ||
1417 | \def\endlink{\setcolor{\maincolor}\pdfendlink} | ||
1418 | % | 1290 | % |
1291 | \let\linkcolor = \Blue % was Cyan, but that seems light? | ||
1292 | \def\endlink{\Black\pdfendlink} | ||
1419 | % Adding outlines to PDF; macros for calculating structure of outlines | 1293 | % Adding outlines to PDF; macros for calculating structure of outlines |
1420 | % come from Petr Olsak | 1294 | % come from Petr Olsak |
1421 | \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% | 1295 | \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% |
@@ -1516,8 +1390,8 @@ output) for that.)} | |||
1516 | % now, I guess we'll just let the pdf reader have its way. | 1390 | % now, I guess we'll just let the pdf reader have its way. |
1517 | \indexnofonts | 1391 | \indexnofonts |
1518 | \setupdatafile | 1392 | \setupdatafile |
1519 | \catcode`\\=\active \otherbackslash | 1393 | \activebackslash |
1520 | \input \tocreadfilename | 1394 | \input \jobname.toc |
1521 | \endgroup | 1395 | \endgroup |
1522 | } | 1396 | } |
1523 | % | 1397 | % |
@@ -1535,19 +1409,11 @@ output) for that.)} | |||
1535 | \else | 1409 | \else |
1536 | \let \startlink \pdfstartlink | 1410 | \let \startlink \pdfstartlink |
1537 | \fi | 1411 | \fi |
1538 | % make a live url in pdf output. | ||
1539 | \def\pdfurl#1{% | 1412 | \def\pdfurl#1{% |
1540 | \begingroup | 1413 | \begingroup |
1541 | % it seems we really need yet another set of dummies; have not | 1414 | \normalturnoffactive\def\@{@}% |
1542 | % tried to figure out what each command should do in the context | ||
1543 | % of @url. for now, just make @/ a no-op, that's the only one | ||
1544 | % people have actually reported a problem with. | ||
1545 | % | ||
1546 | \normalturnoffactive | ||
1547 | \def\@{@}% | ||
1548 | \let\/=\empty | ||
1549 | \makevalueexpandable | 1415 | \makevalueexpandable |
1550 | \leavevmode\setcolor{\urlcolor}% | 1416 | \leavevmode\Red |
1551 | \startlink attr{/Border [0 0 0]}% | 1417 | \startlink attr{/Border [0 0 0]}% |
1552 | user{/Subtype /Link /A << /S /URI /URI (#1) >>}% | 1418 | user{/Subtype /Link /A << /S /URI /URI (#1) >>}% |
1553 | \endgroup} | 1419 | \endgroup} |
@@ -1574,14 +1440,13 @@ output) for that.)} | |||
1574 | {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} | 1440 | {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} |
1575 | \def\pdflink#1{% | 1441 | \def\pdflink#1{% |
1576 | \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} | 1442 | \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} |
1577 | \setcolor{\linkcolor}#1\endlink} | 1443 | \linkcolor #1\endlink} |
1578 | \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} | 1444 | \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} |
1579 | \else | 1445 | \else |
1580 | \let\pdfmkdest = \gobble | 1446 | \let\pdfmkdest = \gobble |
1581 | \let\pdfurl = \gobble | 1447 | \let\pdfurl = \gobble |
1582 | \let\endlink = \relax | 1448 | \let\endlink = \relax |
1583 | \let\setcolor = \gobble | 1449 | \let\linkcolor = \relax |
1584 | \let\pdfsetcolor = \gobble | ||
1585 | \let\pdfmakeoutlines = \relax | 1450 | \let\pdfmakeoutlines = \relax |
1586 | \fi % \ifx\pdfoutput | 1451 | \fi % \ifx\pdfoutput |
1587 | 1452 | ||
@@ -1616,7 +1481,6 @@ output) for that.)} | |||
1616 | % We don't need math for this font style. | 1481 | % We don't need math for this font style. |
1617 | \def\ttsl{\setfontstyle{ttsl}} | 1482 | \def\ttsl{\setfontstyle{ttsl}} |
1618 | 1483 | ||
1619 | |||
1620 | % Default leading. | 1484 | % Default leading. |
1621 | \newdimen\textleading \textleading = 13.2pt | 1485 | \newdimen\textleading \textleading = 13.2pt |
1622 | 1486 | ||
@@ -1628,12 +1492,8 @@ output) for that.)} | |||
1628 | \def\strutheightpercent{.70833} | 1492 | \def\strutheightpercent{.70833} |
1629 | \def\strutdepthpercent {.29167} | 1493 | \def\strutdepthpercent {.29167} |
1630 | % | 1494 | % |
1631 | % can get a sort of poor man's double spacing by redefining this. | ||
1632 | \def\baselinefactor{1} | ||
1633 | % | ||
1634 | \def\setleading#1{% | 1495 | \def\setleading#1{% |
1635 | \dimen0 = #1\relax | 1496 | \normalbaselineskip = #1\relax |
1636 | \normalbaselineskip = \baselinefactor\dimen0 | ||
1637 | \normallineskip = \lineskipfactor\normalbaselineskip | 1497 | \normallineskip = \lineskipfactor\normalbaselineskip |
1638 | \normalbaselines | 1498 | \normalbaselines |
1639 | \setbox\strutbox =\hbox{% | 1499 | \setbox\strutbox =\hbox{% |
@@ -1642,279 +1502,10 @@ output) for that.)} | |||
1642 | }% | 1502 | }% |
1643 | } | 1503 | } |
1644 | 1504 | ||
1645 | % PDF CMaps. See also LaTeX's t1.cmap. | ||
1646 | % | ||
1647 | % do nothing with this by default. | ||
1648 | \expandafter\let\csname cmapOT1\endcsname\gobble | ||
1649 | \expandafter\let\csname cmapOT1IT\endcsname\gobble | ||
1650 | \expandafter\let\csname cmapOT1TT\endcsname\gobble | ||
1651 | |||
1652 | % if we are producing pdf, and we have \pdffontattr, then define cmaps. | ||
1653 | % (\pdffontattr was introduced many years ago, but people still run | ||
1654 | % older pdftex's; it's easy to conditionalize, so we do.) | ||
1655 | \ifpdf \ifx\pdffontattr\undefined \else | ||
1656 | \begingroup | ||
1657 | \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. | ||
1658 | \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap | ||
1659 | %%DocumentNeededResources: ProcSet (CIDInit) | ||
1660 | %%IncludeResource: ProcSet (CIDInit) | ||
1661 | %%BeginResource: CMap (TeX-OT1-0) | ||
1662 | %%Title: (TeX-OT1-0 TeX OT1 0) | ||
1663 | %%Version: 1.000 | ||
1664 | %%EndComments | ||
1665 | /CIDInit /ProcSet findresource begin | ||
1666 | 12 dict begin | ||
1667 | begincmap | ||
1668 | /CIDSystemInfo | ||
1669 | << /Registry (TeX) | ||
1670 | /Ordering (OT1) | ||
1671 | /Supplement 0 | ||
1672 | >> def | ||
1673 | /CMapName /TeX-OT1-0 def | ||
1674 | /CMapType 2 def | ||
1675 | 1 begincodespacerange | ||
1676 | <00> <7F> | ||
1677 | endcodespacerange | ||
1678 | 8 beginbfrange | ||
1679 | <00> <01> <0393> | ||
1680 | <09> <0A> <03A8> | ||
1681 | <23> <26> <0023> | ||
1682 | <28> <3B> <0028> | ||
1683 | <3F> <5B> <003F> | ||
1684 | <5D> <5E> <005D> | ||
1685 | <61> <7A> <0061> | ||
1686 | <7B> <7C> <2013> | ||
1687 | endbfrange | ||
1688 | 40 beginbfchar | ||
1689 | <02> <0398> | ||
1690 | <03> <039B> | ||
1691 | <04> <039E> | ||
1692 | <05> <03A0> | ||
1693 | <06> <03A3> | ||
1694 | <07> <03D2> | ||
1695 | <08> <03A6> | ||
1696 | <0B> <00660066> | ||
1697 | <0C> <00660069> | ||
1698 | <0D> <0066006C> | ||
1699 | <0E> <006600660069> | ||
1700 | <0F> <00660066006C> | ||
1701 | <10> <0131> | ||
1702 | <11> <0237> | ||
1703 | <12> <0060> | ||
1704 | <13> <00B4> | ||
1705 | <14> <02C7> | ||
1706 | <15> <02D8> | ||
1707 | <16> <00AF> | ||
1708 | <17> <02DA> | ||
1709 | <18> <00B8> | ||
1710 | <19> <00DF> | ||
1711 | <1A> <00E6> | ||
1712 | <1B> <0153> | ||
1713 | <1C> <00F8> | ||
1714 | <1D> <00C6> | ||
1715 | <1E> <0152> | ||
1716 | <1F> <00D8> | ||
1717 | <21> <0021> | ||
1718 | <22> <201D> | ||
1719 | <27> <2019> | ||
1720 | <3C> <00A1> | ||
1721 | <3D> <003D> | ||
1722 | <3E> <00BF> | ||
1723 | <5C> <201C> | ||
1724 | <5F> <02D9> | ||
1725 | <60> <2018> | ||
1726 | <7D> <02DD> | ||
1727 | <7E> <007E> | ||
1728 | <7F> <00A8> | ||
1729 | endbfchar | ||
1730 | endcmap | ||
1731 | CMapName currentdict /CMap defineresource pop | ||
1732 | end | ||
1733 | end | ||
1734 | %%EndResource | ||
1735 | %%EOF | ||
1736 | }\endgroup | ||
1737 | \expandafter\edef\csname cmapOT1\endcsname#1{% | ||
1738 | \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% | ||
1739 | }% | ||
1740 | % | ||
1741 | % \cmapOT1IT | ||
1742 | \begingroup | ||
1743 | \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. | ||
1744 | \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap | ||
1745 | %%DocumentNeededResources: ProcSet (CIDInit) | ||
1746 | %%IncludeResource: ProcSet (CIDInit) | ||
1747 | %%BeginResource: CMap (TeX-OT1IT-0) | ||
1748 | %%Title: (TeX-OT1IT-0 TeX OT1IT 0) | ||
1749 | %%Version: 1.000 | ||
1750 | %%EndComments | ||
1751 | /CIDInit /ProcSet findresource begin | ||
1752 | 12 dict begin | ||
1753 | begincmap | ||
1754 | /CIDSystemInfo | ||
1755 | << /Registry (TeX) | ||
1756 | /Ordering (OT1IT) | ||
1757 | /Supplement 0 | ||
1758 | >> def | ||
1759 | /CMapName /TeX-OT1IT-0 def | ||
1760 | /CMapType 2 def | ||
1761 | 1 begincodespacerange | ||
1762 | <00> <7F> | ||
1763 | endcodespacerange | ||
1764 | 8 beginbfrange | ||
1765 | <00> <01> <0393> | ||
1766 | <09> <0A> <03A8> | ||
1767 | <25> <26> <0025> | ||
1768 | <28> <3B> <0028> | ||
1769 | <3F> <5B> <003F> | ||
1770 | <5D> <5E> <005D> | ||
1771 | <61> <7A> <0061> | ||
1772 | <7B> <7C> <2013> | ||
1773 | endbfrange | ||
1774 | 42 beginbfchar | ||
1775 | <02> <0398> | ||
1776 | <03> <039B> | ||
1777 | <04> <039E> | ||
1778 | <05> <03A0> | ||
1779 | <06> <03A3> | ||
1780 | <07> <03D2> | ||
1781 | <08> <03A6> | ||
1782 | <0B> <00660066> | ||
1783 | <0C> <00660069> | ||
1784 | <0D> <0066006C> | ||
1785 | <0E> <006600660069> | ||
1786 | <0F> <00660066006C> | ||
1787 | <10> <0131> | ||
1788 | <11> <0237> | ||
1789 | <12> <0060> | ||
1790 | <13> <00B4> | ||
1791 | <14> <02C7> | ||
1792 | <15> <02D8> | ||
1793 | <16> <00AF> | ||
1794 | <17> <02DA> | ||
1795 | <18> <00B8> | ||
1796 | <19> <00DF> | ||
1797 | <1A> <00E6> | ||
1798 | <1B> <0153> | ||
1799 | <1C> <00F8> | ||
1800 | <1D> <00C6> | ||
1801 | <1E> <0152> | ||
1802 | <1F> <00D8> | ||
1803 | <21> <0021> | ||
1804 | <22> <201D> | ||
1805 | <23> <0023> | ||
1806 | <24> <00A3> | ||
1807 | <27> <2019> | ||
1808 | <3C> <00A1> | ||
1809 | <3D> <003D> | ||
1810 | <3E> <00BF> | ||
1811 | <5C> <201C> | ||
1812 | <5F> <02D9> | ||
1813 | <60> <2018> | ||
1814 | <7D> <02DD> | ||
1815 | <7E> <007E> | ||
1816 | <7F> <00A8> | ||
1817 | endbfchar | ||
1818 | endcmap | ||
1819 | CMapName currentdict /CMap defineresource pop | ||
1820 | end | ||
1821 | end | ||
1822 | %%EndResource | ||
1823 | %%EOF | ||
1824 | }\endgroup | ||
1825 | \expandafter\edef\csname cmapOT1IT\endcsname#1{% | ||
1826 | \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% | ||
1827 | }% | ||
1828 | % | ||
1829 | % \cmapOT1TT | ||
1830 | \begingroup | ||
1831 | \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. | ||
1832 | \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap | ||
1833 | %%DocumentNeededResources: ProcSet (CIDInit) | ||
1834 | %%IncludeResource: ProcSet (CIDInit) | ||
1835 | %%BeginResource: CMap (TeX-OT1TT-0) | ||
1836 | %%Title: (TeX-OT1TT-0 TeX OT1TT 0) | ||
1837 | %%Version: 1.000 | ||
1838 | %%EndComments | ||
1839 | /CIDInit /ProcSet findresource begin | ||
1840 | 12 dict begin | ||
1841 | begincmap | ||
1842 | /CIDSystemInfo | ||
1843 | << /Registry (TeX) | ||
1844 | /Ordering (OT1TT) | ||
1845 | /Supplement 0 | ||
1846 | >> def | ||
1847 | /CMapName /TeX-OT1TT-0 def | ||
1848 | /CMapType 2 def | ||
1849 | 1 begincodespacerange | ||
1850 | <00> <7F> | ||
1851 | endcodespacerange | ||
1852 | 5 beginbfrange | ||
1853 | <00> <01> <0393> | ||
1854 | <09> <0A> <03A8> | ||
1855 | <21> <26> <0021> | ||
1856 | <28> <5F> <0028> | ||
1857 | <61> <7E> <0061> | ||
1858 | endbfrange | ||
1859 | 32 beginbfchar | ||
1860 | <02> <0398> | ||
1861 | <03> <039B> | ||
1862 | <04> <039E> | ||
1863 | <05> <03A0> | ||
1864 | <06> <03A3> | ||
1865 | <07> <03D2> | ||
1866 | <08> <03A6> | ||
1867 | <0B> <2191> | ||
1868 | <0C> <2193> | ||
1869 | <0D> <0027> | ||
1870 | <0E> <00A1> | ||
1871 | <0F> <00BF> | ||
1872 | <10> <0131> | ||
1873 | <11> <0237> | ||
1874 | <12> <0060> | ||
1875 | <13> <00B4> | ||
1876 | <14> <02C7> | ||
1877 | <15> <02D8> | ||
1878 | <16> <00AF> | ||
1879 | <17> <02DA> | ||
1880 | <18> <00B8> | ||
1881 | <19> <00DF> | ||
1882 | <1A> <00E6> | ||
1883 | <1B> <0153> | ||
1884 | <1C> <00F8> | ||
1885 | <1D> <00C6> | ||
1886 | <1E> <0152> | ||
1887 | <1F> <00D8> | ||
1888 | <20> <2423> | ||
1889 | <27> <2019> | ||
1890 | <60> <2018> | ||
1891 | <7F> <00A8> | ||
1892 | endbfchar | ||
1893 | endcmap | ||
1894 | CMapName currentdict /CMap defineresource pop | ||
1895 | end | ||
1896 | end | ||
1897 | %%EndResource | ||
1898 | %%EOF | ||
1899 | }\endgroup | ||
1900 | \expandafter\edef\csname cmapOT1TT\endcsname#1{% | ||
1901 | \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% | ||
1902 | }% | ||
1903 | \fi\fi | ||
1904 | |||
1905 | |||
1906 | % Set the font macro #1 to the font named #2, adding on the | 1505 | % Set the font macro #1 to the font named #2, adding on the |
1907 | % specified font prefix (normally `cm'). | 1506 | % specified font prefix (normally `cm'). |
1908 | % #3 is the font's design size, #4 is a scale factor, #5 is the CMap | 1507 | % #3 is the font's design size, #4 is a scale factor |
1909 | % encoding (currently only OT1, OT1IT and OT1TT are allowed, pass | 1508 | \def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4} |
1910 | % empty to omit). | ||
1911 | \def\setfont#1#2#3#4#5{% | ||
1912 | \font#1=\fontprefix#2#3 scaled #4 | ||
1913 | \csname cmap#5\endcsname#1% | ||
1914 | } | ||
1915 | % This is what gets called when #5 of \setfont is empty. | ||
1916 | \let\cmap\gobble | ||
1917 | % emacs-page end of cmaps | ||
1918 | 1509 | ||
1919 | % Use cm as the default font prefix. | 1510 | % Use cm as the default font prefix. |
1920 | % To specify the font prefix, you must define \fontprefix | 1511 | % To specify the font prefix, you must define \fontprefix |
@@ -1939,297 +1530,118 @@ end | |||
1939 | \def\scshape{csc} | 1530 | \def\scshape{csc} |
1940 | \def\scbshape{csc} | 1531 | \def\scbshape{csc} |
1941 | 1532 | ||
1942 | % Definitions for a main text size of 11pt. This is the default in | ||
1943 | % Texinfo. | ||
1944 | % | ||
1945 | \def\definetextfontsizexi{% | ||
1946 | % Text fonts (11.2pt, magstep1). | 1533 | % Text fonts (11.2pt, magstep1). |
1947 | \def\textnominalsize{11pt} | 1534 | \def\textnominalsize{11pt} |
1948 | \edef\mainmagstep{\magstephalf} | 1535 | \edef\mainmagstep{\magstephalf} |
1949 | \setfont\textrm\rmshape{10}{\mainmagstep}{OT1} | 1536 | \setfont\textrm\rmshape{10}{\mainmagstep} |
1950 | \setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} | 1537 | \setfont\texttt\ttshape{10}{\mainmagstep} |
1951 | \setfont\textbf\bfshape{10}{\mainmagstep}{OT1} | 1538 | \setfont\textbf\bfshape{10}{\mainmagstep} |
1952 | \setfont\textit\itshape{10}{\mainmagstep}{OT1IT} | 1539 | \setfont\textit\itshape{10}{\mainmagstep} |
1953 | \setfont\textsl\slshape{10}{\mainmagstep}{OT1} | 1540 | \setfont\textsl\slshape{10}{\mainmagstep} |
1954 | \setfont\textsf\sfshape{10}{\mainmagstep}{OT1} | 1541 | \setfont\textsf\sfshape{10}{\mainmagstep} |
1955 | \setfont\textsc\scshape{10}{\mainmagstep}{OT1} | 1542 | \setfont\textsc\scshape{10}{\mainmagstep} |
1956 | \setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} | 1543 | \setfont\textttsl\ttslshape{10}{\mainmagstep} |
1957 | \font\texti=cmmi10 scaled \mainmagstep | 1544 | \font\texti=cmmi10 scaled \mainmagstep |
1958 | \font\textsy=cmsy10 scaled \mainmagstep | 1545 | \font\textsy=cmsy10 scaled \mainmagstep |
1959 | \def\textecsize{1095} | ||
1960 | 1546 | ||
1961 | % A few fonts for @defun names and args. | 1547 | % A few fonts for @defun names and args. |
1962 | \setfont\defbf\bfshape{10}{\magstep1}{OT1} | 1548 | \setfont\defbf\bfshape{10}{\magstep1} |
1963 | \setfont\deftt\ttshape{10}{\magstep1}{OT1TT} | 1549 | \setfont\deftt\ttshape{10}{\magstep1} |
1964 | \setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT} | 1550 | \setfont\defttsl\ttslshape{10}{\magstep1} |
1965 | \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} | 1551 | \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} |
1966 | 1552 | ||
1967 | % Fonts for indices, footnotes, small examples (9pt). | 1553 | % Fonts for indices, footnotes, small examples (9pt). |
1968 | \def\smallnominalsize{9pt} | 1554 | \def\smallnominalsize{9pt} |
1969 | \setfont\smallrm\rmshape{9}{1000}{OT1} | 1555 | \setfont\smallrm\rmshape{9}{1000} |
1970 | \setfont\smalltt\ttshape{9}{1000}{OT1TT} | 1556 | \setfont\smalltt\ttshape{9}{1000} |
1971 | \setfont\smallbf\bfshape{10}{900}{OT1} | 1557 | \setfont\smallbf\bfshape{10}{900} |
1972 | \setfont\smallit\itshape{9}{1000}{OT1IT} | 1558 | \setfont\smallit\itshape{9}{1000} |
1973 | \setfont\smallsl\slshape{9}{1000}{OT1} | 1559 | \setfont\smallsl\slshape{9}{1000} |
1974 | \setfont\smallsf\sfshape{9}{1000}{OT1} | 1560 | \setfont\smallsf\sfshape{9}{1000} |
1975 | \setfont\smallsc\scshape{10}{900}{OT1} | 1561 | \setfont\smallsc\scshape{10}{900} |
1976 | \setfont\smallttsl\ttslshape{10}{900}{OT1TT} | 1562 | \setfont\smallttsl\ttslshape{10}{900} |
1977 | \font\smalli=cmmi9 | 1563 | \font\smalli=cmmi9 |
1978 | \font\smallsy=cmsy9 | 1564 | \font\smallsy=cmsy9 |
1979 | \def\smallecsize{0900} | ||
1980 | 1565 | ||
1981 | % Fonts for small examples (8pt). | 1566 | % Fonts for small examples (8pt). |
1982 | \def\smallernominalsize{8pt} | 1567 | \def\smallernominalsize{8pt} |
1983 | \setfont\smallerrm\rmshape{8}{1000}{OT1} | 1568 | \setfont\smallerrm\rmshape{8}{1000} |
1984 | \setfont\smallertt\ttshape{8}{1000}{OT1TT} | 1569 | \setfont\smallertt\ttshape{8}{1000} |
1985 | \setfont\smallerbf\bfshape{10}{800}{OT1} | 1570 | \setfont\smallerbf\bfshape{10}{800} |
1986 | \setfont\smallerit\itshape{8}{1000}{OT1IT} | 1571 | \setfont\smallerit\itshape{8}{1000} |
1987 | \setfont\smallersl\slshape{8}{1000}{OT1} | 1572 | \setfont\smallersl\slshape{8}{1000} |
1988 | \setfont\smallersf\sfshape{8}{1000}{OT1} | 1573 | \setfont\smallersf\sfshape{8}{1000} |
1989 | \setfont\smallersc\scshape{10}{800}{OT1} | 1574 | \setfont\smallersc\scshape{10}{800} |
1990 | \setfont\smallerttsl\ttslshape{10}{800}{OT1TT} | 1575 | \setfont\smallerttsl\ttslshape{10}{800} |
1991 | \font\smalleri=cmmi8 | 1576 | \font\smalleri=cmmi8 |
1992 | \font\smallersy=cmsy8 | 1577 | \font\smallersy=cmsy8 |
1993 | \def\smallerecsize{0800} | ||
1994 | 1578 | ||
1995 | % Fonts for title page (20.4pt): | 1579 | % Fonts for title page (20.4pt): |
1996 | \def\titlenominalsize{20pt} | 1580 | \def\titlenominalsize{20pt} |
1997 | \setfont\titlerm\rmbshape{12}{\magstep3}{OT1} | 1581 | \setfont\titlerm\rmbshape{12}{\magstep3} |
1998 | \setfont\titleit\itbshape{10}{\magstep4}{OT1IT} | 1582 | \setfont\titleit\itbshape{10}{\magstep4} |
1999 | \setfont\titlesl\slbshape{10}{\magstep4}{OT1} | 1583 | \setfont\titlesl\slbshape{10}{\magstep4} |
2000 | \setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} | 1584 | \setfont\titlett\ttbshape{12}{\magstep3} |
2001 | \setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} | 1585 | \setfont\titlettsl\ttslshape{10}{\magstep4} |
2002 | \setfont\titlesf\sfbshape{17}{\magstep1}{OT1} | 1586 | \setfont\titlesf\sfbshape{17}{\magstep1} |
2003 | \let\titlebf=\titlerm | 1587 | \let\titlebf=\titlerm |
2004 | \setfont\titlesc\scbshape{10}{\magstep4}{OT1} | 1588 | \setfont\titlesc\scbshape{10}{\magstep4} |
2005 | \font\titlei=cmmi12 scaled \magstep3 | 1589 | \font\titlei=cmmi12 scaled \magstep3 |
2006 | \font\titlesy=cmsy10 scaled \magstep4 | 1590 | \font\titlesy=cmsy10 scaled \magstep4 |
2007 | \def\authorrm{\secrm} | 1591 | \def\authorrm{\secrm} |
2008 | \def\authortt{\sectt} | 1592 | \def\authortt{\sectt} |
2009 | \def\titleecsize{2074} | ||
2010 | 1593 | ||
2011 | % Chapter (and unnumbered) fonts (17.28pt). | 1594 | % Chapter (and unnumbered) fonts (17.28pt). |
2012 | \def\chapnominalsize{17pt} | 1595 | \def\chapnominalsize{17pt} |
2013 | \setfont\chaprm\rmbshape{12}{\magstep2}{OT1} | 1596 | \setfont\chaprm\rmbshape{12}{\magstep2} |
2014 | \setfont\chapit\itbshape{10}{\magstep3}{OT1IT} | 1597 | \setfont\chapit\itbshape{10}{\magstep3} |
2015 | \setfont\chapsl\slbshape{10}{\magstep3}{OT1} | 1598 | \setfont\chapsl\slbshape{10}{\magstep3} |
2016 | \setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT} | 1599 | \setfont\chaptt\ttbshape{12}{\magstep2} |
2017 | \setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT} | 1600 | \setfont\chapttsl\ttslshape{10}{\magstep3} |
2018 | \setfont\chapsf\sfbshape{17}{1000}{OT1} | 1601 | \setfont\chapsf\sfbshape{17}{1000} |
2019 | \let\chapbf=\chaprm | 1602 | \let\chapbf=\chaprm |
2020 | \setfont\chapsc\scbshape{10}{\magstep3}{OT1} | 1603 | \setfont\chapsc\scbshape{10}{\magstep3} |
2021 | \font\chapi=cmmi12 scaled \magstep2 | 1604 | \font\chapi=cmmi12 scaled \magstep2 |
2022 | \font\chapsy=cmsy10 scaled \magstep3 | 1605 | \font\chapsy=cmsy10 scaled \magstep3 |
2023 | \def\chapecsize{1728} | ||
2024 | 1606 | ||
2025 | % Section fonts (14.4pt). | 1607 | % Section fonts (14.4pt). |
2026 | \def\secnominalsize{14pt} | 1608 | \def\secnominalsize{14pt} |
2027 | \setfont\secrm\rmbshape{12}{\magstep1}{OT1} | 1609 | \setfont\secrm\rmbshape{12}{\magstep1} |
2028 | \setfont\secit\itbshape{10}{\magstep2}{OT1IT} | 1610 | \setfont\secit\itbshape{10}{\magstep2} |
2029 | \setfont\secsl\slbshape{10}{\magstep2}{OT1} | 1611 | \setfont\secsl\slbshape{10}{\magstep2} |
2030 | \setfont\sectt\ttbshape{12}{\magstep1}{OT1TT} | 1612 | \setfont\sectt\ttbshape{12}{\magstep1} |
2031 | \setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT} | 1613 | \setfont\secttsl\ttslshape{10}{\magstep2} |
2032 | \setfont\secsf\sfbshape{12}{\magstep1}{OT1} | 1614 | \setfont\secsf\sfbshape{12}{\magstep1} |
2033 | \let\secbf\secrm | 1615 | \let\secbf\secrm |
2034 | \setfont\secsc\scbshape{10}{\magstep2}{OT1} | 1616 | \setfont\secsc\scbshape{10}{\magstep2} |
2035 | \font\seci=cmmi12 scaled \magstep1 | 1617 | \font\seci=cmmi12 scaled \magstep1 |
2036 | \font\secsy=cmsy10 scaled \magstep2 | 1618 | \font\secsy=cmsy10 scaled \magstep2 |
2037 | \def\sececsize{1440} | ||
2038 | 1619 | ||
2039 | % Subsection fonts (13.15pt). | 1620 | % Subsection fonts (13.15pt). |
2040 | \def\ssecnominalsize{13pt} | 1621 | \def\ssecnominalsize{13pt} |
2041 | \setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1} | 1622 | \setfont\ssecrm\rmbshape{12}{\magstephalf} |
2042 | \setfont\ssecit\itbshape{10}{1315}{OT1IT} | 1623 | \setfont\ssecit\itbshape{10}{1315} |
2043 | \setfont\ssecsl\slbshape{10}{1315}{OT1} | 1624 | \setfont\ssecsl\slbshape{10}{1315} |
2044 | \setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT} | 1625 | \setfont\ssectt\ttbshape{12}{\magstephalf} |
2045 | \setfont\ssecttsl\ttslshape{10}{1315}{OT1TT} | 1626 | \setfont\ssecttsl\ttslshape{10}{1315} |
2046 | \setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1} | 1627 | \setfont\ssecsf\sfbshape{12}{\magstephalf} |
2047 | \let\ssecbf\ssecrm | 1628 | \let\ssecbf\ssecrm |
2048 | \setfont\ssecsc\scbshape{10}{1315}{OT1} | 1629 | \setfont\ssecsc\scbshape{10}{1315} |
2049 | \font\sseci=cmmi12 scaled \magstephalf | 1630 | \font\sseci=cmmi12 scaled \magstephalf |
2050 | \font\ssecsy=cmsy10 scaled 1315 | 1631 | \font\ssecsy=cmsy10 scaled 1315 |
2051 | \def\ssececsize{1200} | ||
2052 | 1632 | ||
2053 | % Reduced fonts for @acro in text (10pt). | 1633 | % Reduced fonts for @acro in text (10pt). |
2054 | \def\reducednominalsize{10pt} | 1634 | \def\reducednominalsize{10pt} |
2055 | \setfont\reducedrm\rmshape{10}{1000}{OT1} | 1635 | \setfont\reducedrm\rmshape{10}{1000} |
2056 | \setfont\reducedtt\ttshape{10}{1000}{OT1TT} | 1636 | \setfont\reducedtt\ttshape{10}{1000} |
2057 | \setfont\reducedbf\bfshape{10}{1000}{OT1} | 1637 | \setfont\reducedbf\bfshape{10}{1000} |
2058 | \setfont\reducedit\itshape{10}{1000}{OT1IT} | 1638 | \setfont\reducedit\itshape{10}{1000} |
2059 | \setfont\reducedsl\slshape{10}{1000}{OT1} | 1639 | \setfont\reducedsl\slshape{10}{1000} |
2060 | \setfont\reducedsf\sfshape{10}{1000}{OT1} | 1640 | \setfont\reducedsf\sfshape{10}{1000} |
2061 | \setfont\reducedsc\scshape{10}{1000}{OT1} | 1641 | \setfont\reducedsc\scshape{10}{1000} |
2062 | \setfont\reducedttsl\ttslshape{10}{1000}{OT1TT} | 1642 | \setfont\reducedttsl\ttslshape{10}{1000} |
2063 | \font\reducedi=cmmi10 | 1643 | \font\reducedi=cmmi10 |
2064 | \font\reducedsy=cmsy10 | 1644 | \font\reducedsy=cmsy10 |
2065 | \def\reducedecsize{1000} | ||
2066 | |||
2067 | % reset the current fonts | ||
2068 | \textfonts | ||
2069 | \rm | ||
2070 | } % end of 11pt text font size definitions | ||
2071 | |||
2072 | |||
2073 | % Definitions to make the main text be 10pt Computer Modern, with | ||
2074 | % section, chapter, etc., sizes following suit. This is for the GNU | ||
2075 | % Press printing of the Emacs 22 manual. Maybe other manuals in the | ||
2076 | % future. Used with @smallbook, which sets the leading to 12pt. | ||
2077 | % | ||
2078 | \def\definetextfontsizex{% | ||
2079 | % Text fonts (10pt). | ||
2080 | \def\textnominalsize{10pt} | ||
2081 | \edef\mainmagstep{1000} | ||
2082 | \setfont\textrm\rmshape{10}{\mainmagstep}{OT1} | ||
2083 | \setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} | ||
2084 | \setfont\textbf\bfshape{10}{\mainmagstep}{OT1} | ||
2085 | \setfont\textit\itshape{10}{\mainmagstep}{OT1IT} | ||
2086 | \setfont\textsl\slshape{10}{\mainmagstep}{OT1} | ||
2087 | \setfont\textsf\sfshape{10}{\mainmagstep}{OT1} | ||
2088 | \setfont\textsc\scshape{10}{\mainmagstep}{OT1} | ||
2089 | \setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} | ||
2090 | \font\texti=cmmi10 scaled \mainmagstep | ||
2091 | \font\textsy=cmsy10 scaled \mainmagstep | ||
2092 | \def\textecsize{1000} | ||
2093 | |||
2094 | % A few fonts for @defun names and args. | ||
2095 | \setfont\defbf\bfshape{10}{\magstephalf}{OT1} | ||
2096 | \setfont\deftt\ttshape{10}{\magstephalf}{OT1TT} | ||
2097 | \setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT} | ||
2098 | \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} | ||
2099 | |||
2100 | % Fonts for indices, footnotes, small examples (9pt). | ||
2101 | \def\smallnominalsize{9pt} | ||
2102 | \setfont\smallrm\rmshape{9}{1000}{OT1} | ||
2103 | \setfont\smalltt\ttshape{9}{1000}{OT1TT} | ||
2104 | \setfont\smallbf\bfshape{10}{900}{OT1} | ||
2105 | \setfont\smallit\itshape{9}{1000}{OT1IT} | ||
2106 | \setfont\smallsl\slshape{9}{1000}{OT1} | ||
2107 | \setfont\smallsf\sfshape{9}{1000}{OT1} | ||
2108 | \setfont\smallsc\scshape{10}{900}{OT1} | ||
2109 | \setfont\smallttsl\ttslshape{10}{900}{OT1TT} | ||
2110 | \font\smalli=cmmi9 | ||
2111 | \font\smallsy=cmsy9 | ||
2112 | \def\smallecsize{0900} | ||
2113 | |||
2114 | % Fonts for small examples (8pt). | ||
2115 | \def\smallernominalsize{8pt} | ||
2116 | \setfont\smallerrm\rmshape{8}{1000}{OT1} | ||
2117 | \setfont\smallertt\ttshape{8}{1000}{OT1TT} | ||
2118 | \setfont\smallerbf\bfshape{10}{800}{OT1} | ||
2119 | \setfont\smallerit\itshape{8}{1000}{OT1IT} | ||
2120 | \setfont\smallersl\slshape{8}{1000}{OT1} | ||
2121 | \setfont\smallersf\sfshape{8}{1000}{OT1} | ||
2122 | \setfont\smallersc\scshape{10}{800}{OT1} | ||
2123 | \setfont\smallerttsl\ttslshape{10}{800}{OT1TT} | ||
2124 | \font\smalleri=cmmi8 | ||
2125 | \font\smallersy=cmsy8 | ||
2126 | \def\smallerecsize{0800} | ||
2127 | |||
2128 | % Fonts for title page (20.4pt): | ||
2129 | \def\titlenominalsize{20pt} | ||
2130 | \setfont\titlerm\rmbshape{12}{\magstep3}{OT1} | ||
2131 | \setfont\titleit\itbshape{10}{\magstep4}{OT1IT} | ||
2132 | \setfont\titlesl\slbshape{10}{\magstep4}{OT1} | ||
2133 | \setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} | ||
2134 | \setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} | ||
2135 | \setfont\titlesf\sfbshape{17}{\magstep1}{OT1} | ||
2136 | \let\titlebf=\titlerm | ||
2137 | \setfont\titlesc\scbshape{10}{\magstep4}{OT1} | ||
2138 | \font\titlei=cmmi12 scaled \magstep3 | ||
2139 | \font\titlesy=cmsy10 scaled \magstep4 | ||
2140 | \def\authorrm{\secrm} | ||
2141 | \def\authortt{\sectt} | ||
2142 | \def\titleecsize{2074} | ||
2143 | |||
2144 | % Chapter fonts (14.4pt). | ||
2145 | \def\chapnominalsize{14pt} | ||
2146 | \setfont\chaprm\rmbshape{12}{\magstep1}{OT1} | ||
2147 | \setfont\chapit\itbshape{10}{\magstep2}{OT1IT} | ||
2148 | \setfont\chapsl\slbshape{10}{\magstep2}{OT1} | ||
2149 | \setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT} | ||
2150 | \setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT} | ||
2151 | \setfont\chapsf\sfbshape{12}{\magstep1}{OT1} | ||
2152 | \let\chapbf\chaprm | ||
2153 | \setfont\chapsc\scbshape{10}{\magstep2}{OT1} | ||
2154 | \font\chapi=cmmi12 scaled \magstep1 | ||
2155 | \font\chapsy=cmsy10 scaled \magstep2 | ||
2156 | \def\chapecsize{1440} | ||
2157 | |||
2158 | % Section fonts (12pt). | ||
2159 | \def\secnominalsize{12pt} | ||
2160 | \setfont\secrm\rmbshape{12}{1000}{OT1} | ||
2161 | \setfont\secit\itbshape{10}{\magstep1}{OT1IT} | ||
2162 | \setfont\secsl\slbshape{10}{\magstep1}{OT1} | ||
2163 | \setfont\sectt\ttbshape{12}{1000}{OT1TT} | ||
2164 | \setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT} | ||
2165 | \setfont\secsf\sfbshape{12}{1000}{OT1} | ||
2166 | \let\secbf\secrm | ||
2167 | \setfont\secsc\scbshape{10}{\magstep1}{OT1} | ||
2168 | \font\seci=cmmi12 | ||
2169 | \font\secsy=cmsy10 scaled \magstep1 | ||
2170 | \def\sececsize{1200} | ||
2171 | |||
2172 | % Subsection fonts (10pt). | ||
2173 | \def\ssecnominalsize{10pt} | ||
2174 | \setfont\ssecrm\rmbshape{10}{1000}{OT1} | ||
2175 | \setfont\ssecit\itbshape{10}{1000}{OT1IT} | ||
2176 | \setfont\ssecsl\slbshape{10}{1000}{OT1} | ||
2177 | \setfont\ssectt\ttbshape{10}{1000}{OT1TT} | ||
2178 | \setfont\ssecttsl\ttslshape{10}{1000}{OT1TT} | ||
2179 | \setfont\ssecsf\sfbshape{10}{1000}{OT1} | ||
2180 | \let\ssecbf\ssecrm | ||
2181 | \setfont\ssecsc\scbshape{10}{1000}{OT1} | ||
2182 | \font\sseci=cmmi10 | ||
2183 | \font\ssecsy=cmsy10 | ||
2184 | \def\ssececsize{1000} | ||
2185 | |||
2186 | % Reduced fonts for @acro in text (9pt). | ||
2187 | \def\reducednominalsize{9pt} | ||
2188 | \setfont\reducedrm\rmshape{9}{1000}{OT1} | ||
2189 | \setfont\reducedtt\ttshape{9}{1000}{OT1TT} | ||
2190 | \setfont\reducedbf\bfshape{10}{900}{OT1} | ||
2191 | \setfont\reducedit\itshape{9}{1000}{OT1IT} | ||
2192 | \setfont\reducedsl\slshape{9}{1000}{OT1} | ||
2193 | \setfont\reducedsf\sfshape{9}{1000}{OT1} | ||
2194 | \setfont\reducedsc\scshape{10}{900}{OT1} | ||
2195 | \setfont\reducedttsl\ttslshape{10}{900}{OT1TT} | ||
2196 | \font\reducedi=cmmi9 | ||
2197 | \font\reducedsy=cmsy9 | ||
2198 | \def\reducedecsize{0900} | ||
2199 | |||
2200 | % reduce space between paragraphs | ||
2201 | \divide\parskip by 2 | ||
2202 | |||
2203 | % reset the current fonts | ||
2204 | \textfonts | ||
2205 | \rm | ||
2206 | } % end of 10pt text font size definitions | ||
2207 | |||
2208 | |||
2209 | % We provide the user-level command | ||
2210 | % @fonttextsize 10 | ||
2211 | % (or 11) to redefine the text font size. pt is assumed. | ||
2212 | % | ||
2213 | \def\xword{10} | ||
2214 | \def\xiword{11} | ||
2215 | % | ||
2216 | \parseargdef\fonttextsize{% | ||
2217 | \def\textsizearg{#1}% | ||
2218 | \wlog{doing @fonttextsize \textsizearg}% | ||
2219 | % | ||
2220 | % Set \globaldefs so that documents can use this inside @tex, since | ||
2221 | % makeinfo 4.8 does not support it, but we need it nonetheless. | ||
2222 | % | ||
2223 | \begingroup \globaldefs=1 | ||
2224 | \ifx\textsizearg\xword \definetextfontsizex | ||
2225 | \else \ifx\textsizearg\xiword \definetextfontsizexi | ||
2226 | \else | ||
2227 | \errhelp=\EMsimple | ||
2228 | \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'} | ||
2229 | \fi\fi | ||
2230 | \endgroup | ||
2231 | } | ||
2232 | |||
2233 | 1645 | ||
2234 | % In order for the font changes to affect most math symbols and letters, | 1646 | % In order for the font changes to affect most math symbols and letters, |
2235 | % we have to define the \textfont of the standard families. Since | 1647 | % we have to define the \textfont of the standard families. Since |
@@ -2341,7 +1753,7 @@ end | |||
2341 | 1753 | ||
2342 | % Set up the default fonts, so we can use them for creating boxes. | 1754 | % Set up the default fonts, so we can use them for creating boxes. |
2343 | % | 1755 | % |
2344 | \definetextfontsizexi | 1756 | \textfonts \rm |
2345 | 1757 | ||
2346 | % Define these so they can be easily changed for other fonts. | 1758 | % Define these so they can be easily changed for other fonts. |
2347 | \def\angleleft{$\langle$} | 1759 | \def\angleleft{$\langle$} |
@@ -2351,10 +1763,10 @@ end | |||
2351 | \newcount\fontdepth \fontdepth=0 | 1763 | \newcount\fontdepth \fontdepth=0 |
2352 | 1764 | ||
2353 | % Fonts for short table of contents. | 1765 | % Fonts for short table of contents. |
2354 | \setfont\shortcontrm\rmshape{12}{1000}{OT1} | 1766 | \setfont\shortcontrm\rmshape{12}{1000} |
2355 | \setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12 | 1767 | \setfont\shortcontbf\bfshape{10}{\magstep1} % no cmb12 |
2356 | \setfont\shortcontsl\slshape{12}{1000}{OT1} | 1768 | \setfont\shortcontsl\slshape{12}{1000} |
2357 | \setfont\shortconttt\ttshape{12}{1000}{OT1TT} | 1769 | \setfont\shortconttt\ttshape{12}{1000} |
2358 | 1770 | ||
2359 | %% Add scribe-like font environments, plus @l for inline lisp (usually sans | 1771 | %% Add scribe-like font environments, plus @l for inline lisp (usually sans |
2360 | %% serif) and @ii for TeX italic | 1772 | %% serif) and @ii for TeX italic |
@@ -2417,7 +1829,7 @@ end | |||
2417 | \null | 1829 | \null |
2418 | } | 1830 | } |
2419 | \def\samp#1{`\tclose{#1}'\null} | 1831 | \def\samp#1{`\tclose{#1}'\null} |
2420 | \setfont\keyrm\rmshape{8}{1000}{OT1} | 1832 | \setfont\keyrm\rmshape{8}{1000} |
2421 | \font\keysy=cmsy9 | 1833 | \font\keysy=cmsy9 |
2422 | \def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% | 1834 | \def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% |
2423 | \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% | 1835 | \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% |
@@ -2425,7 +1837,6 @@ end | |||
2425 | \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% | 1837 | \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% |
2426 | \kern-0.4pt\hrule}% | 1838 | \kern-0.4pt\hrule}% |
2427 | \kern-.06em\raise0.4pt\hbox{\angleright}}}} | 1839 | \kern-.06em\raise0.4pt\hbox{\angleright}}}} |
2428 | \def\key #1{{\nohyphenation \uppercase{#1}}\null} | ||
2429 | % The old definition, with no lozenge: | 1840 | % The old definition, with no lozenge: |
2430 | %\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null} | 1841 | %\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null} |
2431 | \def\ctrl #1{{\tt \rawbackslash \hat}#1} | 1842 | \def\ctrl #1{{\tt \rawbackslash \hat}#1} |
@@ -2467,14 +1878,11 @@ end | |||
2467 | % and arrange explicitly to hyphenate at a dash. | 1878 | % and arrange explicitly to hyphenate at a dash. |
2468 | % -- rms. | 1879 | % -- rms. |
2469 | { | 1880 | { |
2470 | \catcode`\-=\active \catcode`\_=\active | 1881 | \catcode`\-=\active |
2471 | \catcode`\'=\active \catcode`\`=\active | 1882 | \catcode`\_=\active |
2472 | % | 1883 | % |
2473 | \global\def\code{\begingroup | 1884 | \global\def\code{\begingroup |
2474 | \catcode\rquoteChar=\active \catcode\lquoteChar=\active | 1885 | \catcode`\-=\active \catcode`\_=\active |
2475 | \let'\codequoteright \let`\codequoteleft | ||
2476 | % | ||
2477 | \catcode\dashChar=\active \catcode\underChar=\active | ||
2478 | \ifallowcodebreaks | 1886 | \ifallowcodebreaks |
2479 | \let-\codedash | 1887 | \let-\codedash |
2480 | \let_\codeunder | 1888 | \let_\codeunder |
@@ -2710,35 +2118,6 @@ end | |||
2710 | \thiseurofont | 2118 | \thiseurofont |
2711 | } | 2119 | } |
2712 | 2120 | ||
2713 | % Hacks for glyphs from the EC fonts similar to \euro. We don't | ||
2714 | % use \let for the aliases, because sometimes we redefine the original | ||
2715 | % macro, and the alias should reflect the redefinition. | ||
2716 | \def\guillemetleft{{\ecfont \char"13}} | ||
2717 | \def\guillemotleft{\guillemetleft} | ||
2718 | \def\guillemetright{{\ecfont \char"14}} | ||
2719 | \def\guillemotright{\guillemetright} | ||
2720 | \def\guilsinglleft{{\ecfont \char"0E}} | ||
2721 | \def\guilsinglright{{\ecfont \char"0F}} | ||
2722 | \def\quotedblbase{{\ecfont \char"12}} | ||
2723 | \def\quotesinglbase{{\ecfont \char"0D}} | ||
2724 | % | ||
2725 | \def\ecfont{% | ||
2726 | % We can't distinguish serif/sanserif and italic/slanted, but this | ||
2727 | % is used for crude hacks anyway (like adding French and German | ||
2728 | % quotes to documents typeset with CM, where we lose kerning), so | ||
2729 | % hopefully nobody will notice/care. | ||
2730 | \edef\ecsize{\csname\curfontsize ecsize\endcsname}% | ||
2731 | \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}% | ||
2732 | \ifx\curfontstyle\bfstylename | ||
2733 | % bold: | ||
2734 | \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize | ||
2735 | \else | ||
2736 | % regular: | ||
2737 | \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize | ||
2738 | \fi | ||
2739 | \thisecfont | ||
2740 | } | ||
2741 | |||
2742 | % @registeredsymbol - R in a circle. The font for the R should really | 2121 | % @registeredsymbol - R in a circle. The font for the R should really |
2743 | % be smaller yet, but lllsize is the best we can do for now. | 2122 | % be smaller yet, but lllsize is the best we can do for now. |
2744 | % Adapted from the plain.tex definition of \copyright. | 2123 | % Adapted from the plain.tex definition of \copyright. |
@@ -2749,10 +2128,6 @@ end | |||
2749 | }$% | 2128 | }$% |
2750 | } | 2129 | } |
2751 | 2130 | ||
2752 | % @textdegree - the normal degrees sign. | ||
2753 | % | ||
2754 | \def\textdegree{$^\circ$} | ||
2755 | |||
2756 | % Laurent Siebenmann reports \Orb undefined with: | 2131 | % Laurent Siebenmann reports \Orb undefined with: |
2757 | % Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 | 2132 | % Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 |
2758 | % so we'll define it if necessary. | 2133 | % so we'll define it if necessary. |
@@ -2761,12 +2136,6 @@ end | |||
2761 | \def\Orb{\mathhexbox20D} | 2136 | \def\Orb{\mathhexbox20D} |
2762 | \fi | 2137 | \fi |
2763 | 2138 | ||
2764 | % Quotes. | ||
2765 | \chardef\quotedblleft="5C | ||
2766 | \chardef\quotedblright=`\" | ||
2767 | \chardef\quoteleft=`\` | ||
2768 | \chardef\quoteright=`\' | ||
2769 | |||
2770 | 2139 | ||
2771 | \message{page headings,} | 2140 | \message{page headings,} |
2772 | 2141 | ||
@@ -2930,39 +2299,12 @@ end | |||
2930 | % | 2299 | % |
2931 | % Leave some space for the footline. Hopefully ok to assume | 2300 | % Leave some space for the footline. Hopefully ok to assume |
2932 | % @evenfooting will not be used by itself. | 2301 | % @evenfooting will not be used by itself. |
2933 | \global\advance\pageheight by -12pt | 2302 | \global\advance\pageheight by -\baselineskip |
2934 | \global\advance\vsize by -12pt | 2303 | \global\advance\vsize by -\baselineskip |
2935 | } | 2304 | } |
2936 | 2305 | ||
2937 | \parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} | 2306 | \parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} |
2938 | 2307 | ||
2939 | % @evenheadingmarks top \thischapter <- chapter at the top of a page | ||
2940 | % @evenheadingmarks bottom \thischapter <- chapter at the bottom of a page | ||
2941 | % | ||
2942 | % The same set of arguments for: | ||
2943 | % | ||
2944 | % @oddheadingmarks | ||
2945 | % @evenfootingmarks | ||
2946 | % @oddfootingmarks | ||
2947 | % @everyheadingmarks | ||
2948 | % @everyfootingmarks | ||
2949 | |||
2950 | \def\evenheadingmarks{\headingmarks{even}{heading}} | ||
2951 | \def\oddheadingmarks{\headingmarks{odd}{heading}} | ||
2952 | \def\evenfootingmarks{\headingmarks{even}{footing}} | ||
2953 | \def\oddfootingmarks{\headingmarks{odd}{footing}} | ||
2954 | \def\everyheadingmarks#1 {\headingmarks{even}{heading}{#1} | ||
2955 | \headingmarks{odd}{heading}{#1} } | ||
2956 | \def\everyfootingmarks#1 {\headingmarks{even}{footing}{#1} | ||
2957 | \headingmarks{odd}{footing}{#1} } | ||
2958 | % #1 = even/odd, #2 = heading/footing, #3 = top/bottom. | ||
2959 | \def\headingmarks#1#2#3 {% | ||
2960 | \expandafter\let\expandafter\temp \csname get#3headingmarks\endcsname | ||
2961 | \global\expandafter\let\csname get#1#2marks\endcsname \temp | ||
2962 | } | ||
2963 | |||
2964 | \everyheadingmarks bottom | ||
2965 | \everyfootingmarks bottom | ||
2966 | 2308 | ||
2967 | % @headings double turns headings on for double-sided printing. | 2309 | % @headings double turns headings on for double-sided printing. |
2968 | % @headings single turns headings on for single-sided printing. | 2310 | % @headings single turns headings on for single-sided printing. |
@@ -3617,7 +2959,6 @@ end | |||
3617 | 2959 | ||
3618 | \def\doignore#1{\begingroup | 2960 | \def\doignore#1{\begingroup |
3619 | % Scan in ``verbatim'' mode: | 2961 | % Scan in ``verbatim'' mode: |
3620 | \obeylines | ||
3621 | \catcode`\@ = \other | 2962 | \catcode`\@ = \other |
3622 | \catcode`\{ = \other | 2963 | \catcode`\{ = \other |
3623 | \catcode`\} = \other | 2964 | \catcode`\} = \other |
@@ -3638,16 +2979,16 @@ end | |||
3638 | \gdef\dodoignore#1{% | 2979 | \gdef\dodoignore#1{% |
3639 | % #1 contains the command name as a string, e.g., `ifinfo'. | 2980 | % #1 contains the command name as a string, e.g., `ifinfo'. |
3640 | % | 2981 | % |
3641 | % Define a command to find the next `@end #1'. | 2982 | % Define a command to find the next `@end #1', which must be on a line |
3642 | \long\def\doignoretext##1^^M@end #1{% | 2983 | % by itself. |
3643 | \doignoretextyyy##1^^M@#1\_STOP_}% | 2984 | \long\def\doignoretext##1^^M@end #1{\doignoretextyyy##1^^M@#1\_STOP_}% |
3644 | % | ||
3645 | % And this command to find another #1 command, at the beginning of a | 2985 | % And this command to find another #1 command, at the beginning of a |
3646 | % line. (Otherwise, we would consider a line `@c @ifset', for | 2986 | % line. (Otherwise, we would consider a line `@c @ifset', for |
3647 | % example, to count as an @ifset for nesting.) | 2987 | % example, to count as an @ifset for nesting.) |
3648 | \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}% | 2988 | \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}% |
3649 | % | 2989 | % |
3650 | % And now expand that command. | 2990 | % And now expand that command. |
2991 | \obeylines % | ||
3651 | \doignoretext ^^M% | 2992 | \doignoretext ^^M% |
3652 | }% | 2993 | }% |
3653 | } | 2994 | } |
@@ -3677,12 +3018,7 @@ end | |||
3677 | } | 3018 | } |
3678 | 3019 | ||
3679 | % Finish off ignored text. | 3020 | % Finish off ignored text. |
3680 | { \obeylines% | 3021 | \def\enddoignore{\endgroup\ignorespaces} |
3681 | % Ignore anything after the last `@end #1'; this matters in verbatim | ||
3682 | % environments, where otherwise the newline after an ignored conditional | ||
3683 | % would result in a blank line in the output. | ||
3684 | \gdef\enddoignore#1^^M{\endgroup\ignorespaces}% | ||
3685 | } | ||
3686 | 3022 | ||
3687 | 3023 | ||
3688 | % @set VAR sets the variable VAR to an empty value. | 3024 | % @set VAR sets the variable VAR to an empty value. |
@@ -3885,39 +3221,12 @@ end | |||
3885 | \escapechar = `\\ % use backslash in output files. | 3221 | \escapechar = `\\ % use backslash in output files. |
3886 | \def\@{@}% change to @@ when we switch to @ as escape char in index files. | 3222 | \def\@{@}% change to @@ when we switch to @ as escape char in index files. |
3887 | \def\ {\realbackslash\space }% | 3223 | \def\ {\realbackslash\space }% |
3888 | % | ||
3889 | % Need these in case \tex is in effect and \{ is a \delimiter again. | 3224 | % Need these in case \tex is in effect and \{ is a \delimiter again. |
3890 | % But can't use \lbracecmd and \rbracecmd because texindex assumes | 3225 | % But can't use \lbracecmd and \rbracecmd because texindex assumes |
3891 | % braces and backslashes are used only as delimiters. | 3226 | % braces and backslashes are used only as delimiters. |
3892 | \let\{ = \mylbrace | 3227 | \let\{ = \mylbrace |
3893 | \let\} = \myrbrace | 3228 | \let\} = \myrbrace |
3894 | % | 3229 | % |
3895 | % I don't entirely understand this, but when an index entry is | ||
3896 | % generated from a macro call, the \endinput which \scanmacro inserts | ||
3897 | % causes processing to be prematurely terminated. This is, | ||
3898 | % apparently, because \indexsorttmp is fully expanded, and \endinput | ||
3899 | % is an expandable command. The redefinition below makes \endinput | ||
3900 | % disappear altogether for that purpose -- although logging shows that | ||
3901 | % processing continues to some further point. On the other hand, it | ||
3902 | % seems \endinput does not hurt in the printed index arg, since that | ||
3903 | % is still getting written without apparent harm. | ||
3904 | % | ||
3905 | % Sample source (mac-idx3.tex, reported by Graham Percival to | ||
3906 | % help-texinfo, 22may06): | ||
3907 | % @macro funindex {WORD} | ||
3908 | % @findex xyz | ||
3909 | % @end macro | ||
3910 | % ... | ||
3911 | % @funindex commtest | ||
3912 | % | ||
3913 | % The above is not enough to reproduce the bug, but it gives the flavor. | ||
3914 | % | ||
3915 | % Sample whatsit resulting: | ||
3916 | % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}} | ||
3917 | % | ||
3918 | % So: | ||
3919 | \let\endinput = \empty | ||
3920 | % | ||
3921 | % Do the redefinitions. | 3230 | % Do the redefinitions. |
3922 | \commondummies | 3231 | \commondummies |
3923 | } | 3232 | } |
@@ -3935,7 +3244,6 @@ end | |||
3935 | % | 3244 | % |
3936 | % Do the redefinitions. | 3245 | % Do the redefinitions. |
3937 | \commondummies | 3246 | \commondummies |
3938 | \otherbackslash | ||
3939 | } | 3247 | } |
3940 | 3248 | ||
3941 | % Called from \indexdummies and \atdummies. | 3249 | % Called from \indexdummies and \atdummies. |
@@ -4003,23 +3311,12 @@ end | |||
4003 | \definedummyword\equiv | 3311 | \definedummyword\equiv |
4004 | \definedummyword\error | 3312 | \definedummyword\error |
4005 | \definedummyword\euro | 3313 | \definedummyword\euro |
4006 | \definedummyword\guillemetleft | ||
4007 | \definedummyword\guillemetright | ||
4008 | \definedummyword\guilsinglleft | ||
4009 | \definedummyword\guilsinglright | ||
4010 | \definedummyword\expansion | 3314 | \definedummyword\expansion |
4011 | \definedummyword\minus | 3315 | \definedummyword\minus |
4012 | \definedummyword\pounds | 3316 | \definedummyword\pounds |
4013 | \definedummyword\point | 3317 | \definedummyword\point |
4014 | \definedummyword\print | 3318 | \definedummyword\print |
4015 | \definedummyword\quotedblbase | ||
4016 | \definedummyword\quotedblleft | ||
4017 | \definedummyword\quotedblright | ||
4018 | \definedummyword\quoteleft | ||
4019 | \definedummyword\quoteright | ||
4020 | \definedummyword\quotesinglbase | ||
4021 | \definedummyword\result | 3319 | \definedummyword\result |
4022 | \definedummyword\textdegree | ||
4023 | % | 3320 | % |
4024 | % We want to disable all macros so that they are not expanded by \write. | 3321 | % We want to disable all macros so that they are not expanded by \write. |
4025 | \macrolist | 3322 | \macrolist |
@@ -4033,62 +3330,63 @@ end | |||
4033 | 3330 | ||
4034 | % \commondummiesnofonts: common to \commondummies and \indexnofonts. | 3331 | % \commondummiesnofonts: common to \commondummies and \indexnofonts. |
4035 | % | 3332 | % |
4036 | \def\commondummiesnofonts{% | 3333 | % Better have this without active chars. |
4037 | % Control letters and accents. | 3334 | { |
4038 | \definedummyletter\!% | 3335 | \catcode`\~=\other |
4039 | \definedummyaccent\"% | 3336 | \gdef\commondummiesnofonts{% |
4040 | \definedummyaccent\'% | 3337 | % Control letters and accents. |
4041 | \definedummyletter\*% | 3338 | \definedummyletter\!% |
4042 | \definedummyaccent\,% | 3339 | \definedummyaccent\"% |
4043 | \definedummyletter\.% | 3340 | \definedummyaccent\'% |
4044 | \definedummyletter\/% | 3341 | \definedummyletter\*% |
4045 | \definedummyletter\:% | 3342 | \definedummyaccent\,% |
4046 | \definedummyaccent\=% | 3343 | \definedummyletter\.% |
4047 | \definedummyletter\?% | 3344 | \definedummyletter\/% |
4048 | \definedummyaccent\^% | 3345 | \definedummyletter\:% |
4049 | \definedummyaccent\`% | 3346 | \definedummyaccent\=% |
4050 | \definedummyaccent\~% | 3347 | \definedummyletter\?% |
4051 | \definedummyword\u | 3348 | \definedummyaccent\^% |
4052 | \definedummyword\v | 3349 | \definedummyaccent\`% |
4053 | \definedummyword\H | 3350 | \definedummyaccent\~% |
4054 | \definedummyword\dotaccent | 3351 | \definedummyword\u |
4055 | \definedummyword\ringaccent | 3352 | \definedummyword\v |
4056 | \definedummyword\tieaccent | 3353 | \definedummyword\H |
4057 | \definedummyword\ubaraccent | 3354 | \definedummyword\dotaccent |
4058 | \definedummyword\udotaccent | 3355 | \definedummyword\ringaccent |
4059 | \definedummyword\dotless | 3356 | \definedummyword\tieaccent |
4060 | % | 3357 | \definedummyword\ubaraccent |
4061 | % Texinfo font commands. | 3358 | \definedummyword\udotaccent |
4062 | \definedummyword\b | 3359 | \definedummyword\dotless |
4063 | \definedummyword\i | 3360 | % |
4064 | \definedummyword\r | 3361 | % Texinfo font commands. |
4065 | \definedummyword\sc | 3362 | \definedummyword\b |
4066 | \definedummyword\t | 3363 | \definedummyword\i |
4067 | % | 3364 | \definedummyword\r |
4068 | % Commands that take arguments. | 3365 | \definedummyword\sc |
4069 | \definedummyword\acronym | 3366 | \definedummyword\t |
4070 | \definedummyword\cite | 3367 | % |
4071 | \definedummyword\code | 3368 | % Commands that take arguments. |
4072 | \definedummyword\command | 3369 | \definedummyword\acronym |
4073 | \definedummyword\dfn | 3370 | \definedummyword\cite |
4074 | \definedummyword\emph | 3371 | \definedummyword\code |
4075 | \definedummyword\env | 3372 | \definedummyword\command |
4076 | \definedummyword\file | 3373 | \definedummyword\dfn |
4077 | \definedummyword\kbd | 3374 | \definedummyword\emph |
4078 | \definedummyword\key | 3375 | \definedummyword\env |
4079 | \definedummyword\math | 3376 | \definedummyword\file |
4080 | \definedummyword\option | 3377 | \definedummyword\kbd |
4081 | \definedummyword\pxref | 3378 | \definedummyword\key |
4082 | \definedummyword\ref | 3379 | \definedummyword\math |
4083 | \definedummyword\samp | 3380 | \definedummyword\option |
4084 | \definedummyword\strong | 3381 | \definedummyword\samp |
4085 | \definedummyword\tie | 3382 | \definedummyword\strong |
4086 | \definedummyword\uref | 3383 | \definedummyword\tie |
4087 | \definedummyword\url | 3384 | \definedummyword\uref |
4088 | \definedummyword\var | 3385 | \definedummyword\url |
4089 | \definedummyword\verb | 3386 | \definedummyword\var |
4090 | \definedummyword\w | 3387 | \definedummyword\verb |
4091 | \definedummyword\xref | 3388 | \definedummyword\w |
3389 | } | ||
4092 | } | 3390 | } |
4093 | 3391 | ||
4094 | % \indexnofonts is used when outputting the strings to sort the index | 3392 | % \indexnofonts is used when outputting the strings to sort the index |
@@ -4147,23 +3445,12 @@ end | |||
4147 | \def\equiv{==}% | 3445 | \def\equiv{==}% |
4148 | \def\error{error}% | 3446 | \def\error{error}% |
4149 | \def\euro{euro}% | 3447 | \def\euro{euro}% |
4150 | \def\guillemetleft{<<}% | ||
4151 | \def\guillemetright{>>}% | ||
4152 | \def\guilsinglleft{<}% | ||
4153 | \def\guilsinglright{>}% | ||
4154 | \def\expansion{==>}% | 3448 | \def\expansion{==>}% |
4155 | \def\minus{-}% | 3449 | \def\minus{-}% |
4156 | \def\pounds{pounds}% | 3450 | \def\pounds{pounds}% |
4157 | \def\point{.}% | 3451 | \def\point{.}% |
4158 | \def\print{-|}% | 3452 | \def\print{-|}% |
4159 | \def\quotedblbase{"}% | ||
4160 | \def\quotedblleft{"}% | ||
4161 | \def\quotedblright{"}% | ||
4162 | \def\quoteleft{`}% | ||
4163 | \def\quoteright{'}% | ||
4164 | \def\quotesinglbase{,}% | ||
4165 | \def\result{=>}% | 3453 | \def\result{=>}% |
4166 | \def\textdegree{degrees}% | ||
4167 | % | 3454 | % |
4168 | % We need to get rid of all macros, leaving only the arguments (if present). | 3455 | % We need to get rid of all macros, leaving only the arguments (if present). |
4169 | % Of course this is not nearly correct, but it is the best we can do for now. | 3456 | % Of course this is not nearly correct, but it is the best we can do for now. |
@@ -4203,7 +3490,11 @@ end | |||
4203 | % | 3490 | % |
4204 | \edef\writeto{\csname#1indfile\endcsname}% | 3491 | \edef\writeto{\csname#1indfile\endcsname}% |
4205 | % | 3492 | % |
4206 | \safewhatsit\dosubindwrite | 3493 | \ifvmode |
3494 | \dosubindsanitize | ||
3495 | \else | ||
3496 | \dosubindwrite | ||
3497 | \fi | ||
4207 | }% | 3498 | }% |
4208 | \fi | 3499 | \fi |
4209 | } | 3500 | } |
@@ -4240,13 +3531,13 @@ end | |||
4240 | \temp | 3531 | \temp |
4241 | } | 3532 | } |
4242 | 3533 | ||
4243 | % Take care of unwanted page breaks/skips around a whatsit: | 3534 | % Take care of unwanted page breaks: |
4244 | % | 3535 | % |
4245 | % If a skip is the last thing on the list now, preserve it | 3536 | % If a skip is the last thing on the list now, preserve it |
4246 | % by backing up by \lastskip, doing the \write, then inserting | 3537 | % by backing up by \lastskip, doing the \write, then inserting |
4247 | % the skip again. Otherwise, the whatsit generated by the | 3538 | % the skip again. Otherwise, the whatsit generated by the |
4248 | % \write or \pdfdest will make \lastskip zero. The result is that | 3539 | % \write will make \lastskip zero. The result is that sequences |
4249 | % sequences like this: | 3540 | % like this: |
4250 | % @end defun | 3541 | % @end defun |
4251 | % @tindex whatever | 3542 | % @tindex whatever |
4252 | % @defun ... | 3543 | % @defun ... |
@@ -4270,31 +3561,25 @@ end | |||
4270 | % | 3561 | % |
4271 | \edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname} | 3562 | \edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname} |
4272 | % | 3563 | % |
4273 | \newskip\whatsitskip | ||
4274 | \newcount\whatsitpenalty | ||
4275 | % | ||
4276 | % ..., ready, GO: | 3564 | % ..., ready, GO: |
4277 | % | 3565 | % |
4278 | \def\safewhatsit#1{% | 3566 | \def\dosubindsanitize{% |
4279 | \ifhmode | ||
4280 | #1% | ||
4281 | \else | ||
4282 | % \lastskip and \lastpenalty cannot both be nonzero simultaneously. | 3567 | % \lastskip and \lastpenalty cannot both be nonzero simultaneously. |
4283 | \whatsitskip = \lastskip | 3568 | \skip0 = \lastskip |
4284 | \edef\lastskipmacro{\the\lastskip}% | 3569 | \edef\lastskipmacro{\the\lastskip}% |
4285 | \whatsitpenalty = \lastpenalty | 3570 | \count255 = \lastpenalty |
4286 | % | 3571 | % |
4287 | % If \lastskip is nonzero, that means the last item was a | 3572 | % If \lastskip is nonzero, that means the last item was a |
4288 | % skip. And since a skip is discardable, that means this | 3573 | % skip. And since a skip is discardable, that means this |
4289 | % -\whatsitskip glue we're inserting is preceded by a | 3574 | % -\skip0 glue we're inserting is preceded by a |
4290 | % non-discardable item, therefore it is not a potential | 3575 | % non-discardable item, therefore it is not a potential |
4291 | % breakpoint, therefore no \nobreak needed. | 3576 | % breakpoint, therefore no \nobreak needed. |
4292 | \ifx\lastskipmacro\zeroskipmacro | 3577 | \ifx\lastskipmacro\zeroskipmacro |
4293 | \else | 3578 | \else |
4294 | \vskip-\whatsitskip | 3579 | \vskip-\skip0 |
4295 | \fi | 3580 | \fi |
4296 | % | 3581 | % |
4297 | #1% | 3582 | \dosubindwrite |
4298 | % | 3583 | % |
4299 | \ifx\lastskipmacro\zeroskipmacro | 3584 | \ifx\lastskipmacro\zeroskipmacro |
4300 | % If \lastskip was zero, perhaps the last item was a penalty, and | 3585 | % If \lastskip was zero, perhaps the last item was a penalty, and |
@@ -4308,14 +3593,13 @@ end | |||
4308 | % Description. | 3593 | % Description. |
4309 | % would allow a break between the index-whatever whatsit | 3594 | % would allow a break between the index-whatever whatsit |
4310 | % and the "Description." paragraph. | 3595 | % and the "Description." paragraph. |
4311 | \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi | 3596 | \ifnum\count255>9999 \penalty\count255 \fi |
4312 | \else | 3597 | \else |
4313 | % On the other hand, if we had a nonzero \lastskip, | 3598 | % On the other hand, if we had a nonzero \lastskip, |
4314 | % this make-up glue would be preceded by a non-discardable item | 3599 | % this make-up glue would be preceded by a non-discardable item |
4315 | % (the whatsit from the \write), so we must insert a \nobreak. | 3600 | % (the whatsit from the \write), so we must insert a \nobreak. |
4316 | \nobreak\vskip\whatsitskip | 3601 | \nobreak\vskip\skip0 |
4317 | \fi | 3602 | \fi |
4318 | \fi | ||
4319 | } | 3603 | } |
4320 | 3604 | ||
4321 | % The index entry written in the file actually looks like | 3605 | % The index entry written in the file actually looks like |
@@ -4358,7 +3642,6 @@ end | |||
4358 | % | 3642 | % |
4359 | \smallfonts \rm | 3643 | \smallfonts \rm |
4360 | \tolerance = 9500 | 3644 | \tolerance = 9500 |
4361 | \plainfrenchspacing | ||
4362 | \everypar = {}% don't want the \kern\-parindent from indentation suppression. | 3645 | \everypar = {}% don't want the \kern\-parindent from indentation suppression. |
4363 | % | 3646 | % |
4364 | % See if the index file exists and is nonempty. | 3647 | % See if the index file exists and is nonempty. |
@@ -4488,8 +3771,11 @@ end | |||
4488 | % The following is kludged to not output a line of dots in the index if | 3771 | % The following is kludged to not output a line of dots in the index if |
4489 | % there are no page numbers. The next person who breaks this will be | 3772 | % there are no page numbers. The next person who breaks this will be |
4490 | % cursed by a Unix daemon. | 3773 | % cursed by a Unix daemon. |
4491 | \setbox\boxA = \hbox{#1}% | 3774 | \def\tempa{{\rm }}% |
4492 | \ifdim\wd\boxA = 0pt | 3775 | \def\tempb{#1}% |
3776 | \edef\tempc{\tempa}% | ||
3777 | \edef\tempd{\tempb}% | ||
3778 | \ifx\tempc\tempd | ||
4493 | \ % | 3779 | \ % |
4494 | \else | 3780 | \else |
4495 | % | 3781 | % |
@@ -4513,9 +3799,9 @@ end | |||
4513 | \endgroup | 3799 | \endgroup |
4514 | } | 3800 | } |
4515 | 3801 | ||
4516 | % Like plain.tex's \dotfill, except uses up at least 1 em. | 3802 | % Like \dotfill except takes at least 1 em. |
4517 | \def\indexdotfill{\cleaders | 3803 | \def\indexdotfill{\cleaders |
4518 | \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill} | 3804 | \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill} |
4519 | 3805 | ||
4520 | \def\primary #1{\line{#1\hfil}} | 3806 | \def\primary #1{\line{#1\hfil}} |
4521 | 3807 | ||
@@ -4625,34 +3911,6 @@ end | |||
4625 | % | 3911 | % |
4626 | % All done with double columns. | 3912 | % All done with double columns. |
4627 | \def\enddoublecolumns{% | 3913 | \def\enddoublecolumns{% |
4628 | % The following penalty ensures that the page builder is exercised | ||
4629 | % _before_ we change the output routine. This is necessary in the | ||
4630 | % following situation: | ||
4631 | % | ||
4632 | % The last section of the index consists only of a single entry. | ||
4633 | % Before this section, \pagetotal is less than \pagegoal, so no | ||
4634 | % break occurs before the last section starts. However, the last | ||
4635 | % section, consisting of \initial and the single \entry, does not | ||
4636 | % fit on the page and has to be broken off. Without the following | ||
4637 | % penalty the page builder will not be exercised until \eject | ||
4638 | % below, and by that time we'll already have changed the output | ||
4639 | % routine to the \balancecolumns version, so the next-to-last | ||
4640 | % double-column page will be processed with \balancecolumns, which | ||
4641 | % is wrong: The two columns will go to the main vertical list, with | ||
4642 | % the broken-off section in the recent contributions. As soon as | ||
4643 | % the output routine finishes, TeX starts reconsidering the page | ||
4644 | % break. The two columns and the broken-off section both fit on the | ||
4645 | % page, because the two columns now take up only half of the page | ||
4646 | % goal. When TeX sees \eject from below which follows the final | ||
4647 | % section, it invokes the new output routine that we've set after | ||
4648 | % \balancecolumns below; \onepageout will try to fit the two columns | ||
4649 | % and the final section into the vbox of \pageheight (see | ||
4650 | % \pagebody), causing an overfull box. | ||
4651 | % | ||
4652 | % Note that glue won't work here, because glue does not exercise the | ||
4653 | % page builder, unlike penalties (see The TeXbook, pp. 280-281). | ||
4654 | \penalty0 | ||
4655 | % | ||
4656 | \output = {% | 3914 | \output = {% |
4657 | % Split the last of the double-column material. Leave it on the | 3915 | % Split the last of the double-column material. Leave it on the |
4658 | % current page, no automatic page break. | 3916 | % current page, no automatic page break. |
@@ -4762,15 +4020,11 @@ end | |||
4762 | \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi | 4020 | \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi |
4763 | \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} | 4021 | \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} |
4764 | 4022 | ||
4765 | % Each @chapter defines these (using marks) as the number+name, number | 4023 | % Each @chapter defines this as the name of the chapter. |
4766 | % and name of the chapter. Page headings and footings can use | 4024 | % page headings and footings can use it. @section does likewise. |
4767 | % these. @section does likewise. | 4025 | % However, they are not reliable, because we don't use marks. |
4768 | \def\thischapter{} | 4026 | \def\thischapter{} |
4769 | \def\thischapternum{} | ||
4770 | \def\thischaptername{} | ||
4771 | \def\thissection{} | 4027 | \def\thissection{} |
4772 | \def\thissectionnum{} | ||
4773 | \def\thissectionname{} | ||
4774 | 4028 | ||
4775 | \newcount\absseclevel % used to calculate proper heading level | 4029 | \newcount\absseclevel % used to calculate proper heading level |
4776 | \newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count | 4030 | \newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count |
@@ -5071,20 +4325,7 @@ end | |||
5071 | 4325 | ||
5072 | \def\chapbreak{\dobreak \chapheadingskip {-4000}} | 4326 | \def\chapbreak{\dobreak \chapheadingskip {-4000}} |
5073 | \def\chappager{\par\vfill\supereject} | 4327 | \def\chappager{\par\vfill\supereject} |
5074 | % Because \domark is called before \chapoddpage, the filler page will | 4328 | \def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi} |
5075 | % get the headings for the next chapter, which is wrong. But we don't | ||
5076 | % care -- we just disable all headings on the filler page. | ||
5077 | \def\chapoddpage{% | ||
5078 | \chappager | ||
5079 | \ifodd\pageno \else | ||
5080 | \begingroup | ||
5081 | \evenheadline={\hfil}\evenfootline={\hfil}% | ||
5082 | \oddheadline={\hfil}\oddfootline={\hfil}% | ||
5083 | \hbox to 0pt{}% | ||
5084 | \chappager | ||
5085 | \endgroup | ||
5086 | \fi | ||
5087 | } | ||
5088 | 4329 | ||
5089 | \def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname} | 4330 | \def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname} |
5090 | 4331 | ||
@@ -5118,72 +4359,41 @@ end | |||
5118 | \def\Yappendixkeyword{Yappendix} | 4359 | \def\Yappendixkeyword{Yappendix} |
5119 | % | 4360 | % |
5120 | \def\chapmacro#1#2#3{% | 4361 | \def\chapmacro#1#2#3{% |
5121 | % Insert the first mark before the heading break (see notes for \domark). | ||
5122 | \let\prevchapterdefs=\lastchapterdefs | ||
5123 | \let\prevsectiondefs=\lastsectiondefs | ||
5124 | \gdef\lastsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}% | ||
5125 | \gdef\thissection{}}% | ||
5126 | % | ||
5127 | \def\temptype{#2}% | ||
5128 | \ifx\temptype\Ynothingkeyword | ||
5129 | \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% | ||
5130 | \gdef\thischapter{\thischaptername}}% | ||
5131 | \else\ifx\temptype\Yomitfromtockeyword | ||
5132 | \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% | ||
5133 | \gdef\thischapter{}}% | ||
5134 | \else\ifx\temptype\Yappendixkeyword | ||
5135 | \toks0={#1}% | ||
5136 | \xdef\lastchapterdefs{% | ||
5137 | \gdef\noexpand\thischaptername{\the\toks0}% | ||
5138 | \gdef\noexpand\thischapternum{\appendixletter}% | ||
5139 | \gdef\noexpand\thischapter{\putwordAppendix{} \noexpand\thischapternum: | ||
5140 | \noexpand\thischaptername}% | ||
5141 | }% | ||
5142 | \else | ||
5143 | \toks0={#1}% | ||
5144 | \xdef\lastchapterdefs{% | ||
5145 | \gdef\noexpand\thischaptername{\the\toks0}% | ||
5146 | \gdef\noexpand\thischapternum{\the\chapno}% | ||
5147 | \gdef\noexpand\thischapter{\putwordChapter{} \noexpand\thischapternum: | ||
5148 | \noexpand\thischaptername}% | ||
5149 | }% | ||
5150 | \fi\fi\fi | ||
5151 | % | ||
5152 | % Output the mark. Pass it through \safewhatsit, to take care of | ||
5153 | % the preceding space. | ||
5154 | \safewhatsit\domark | ||
5155 | % | ||
5156 | % Insert the chapter heading break. | ||
5157 | \pchapsepmacro | 4362 | \pchapsepmacro |
5158 | % | ||
5159 | % Now the second mark, after the heading break. No break points | ||
5160 | % between here and the heading. | ||
5161 | \let\prevchapterdefs=\lastchapterdefs | ||
5162 | \let\prevsectiondefs=\lastsectiondefs | ||
5163 | \domark | ||
5164 | % | ||
5165 | {% | 4363 | {% |
5166 | \chapfonts \rm | 4364 | \chapfonts \rm |
5167 | % | 4365 | % |
5168 | % Have to define \lastsection before calling \donoderef, because the | 4366 | % Have to define \thissection before calling \donoderef, because the |
5169 | % xref code eventually uses it. On the other hand, it has to be called | 4367 | % xref code eventually uses it. On the other hand, it has to be called |
5170 | % after \pchapsepmacro, or the headline will change too soon. | 4368 | % after \pchapsepmacro, or the headline will change too soon. |
5171 | \gdef\lastsection{#1}% | 4369 | \gdef\thissection{#1}% |
4370 | \gdef\thischaptername{#1}% | ||
5172 | % | 4371 | % |
5173 | % Only insert the separating space if we have a chapter/appendix | 4372 | % Only insert the separating space if we have a chapter/appendix |
5174 | % number, and don't print the unnumbered ``number''. | 4373 | % number, and don't print the unnumbered ``number''. |
4374 | \def\temptype{#2}% | ||
5175 | \ifx\temptype\Ynothingkeyword | 4375 | \ifx\temptype\Ynothingkeyword |
5176 | \setbox0 = \hbox{}% | 4376 | \setbox0 = \hbox{}% |
5177 | \def\toctype{unnchap}% | 4377 | \def\toctype{unnchap}% |
4378 | \gdef\thischapter{#1}% | ||
5178 | \else\ifx\temptype\Yomitfromtockeyword | 4379 | \else\ifx\temptype\Yomitfromtockeyword |
5179 | \setbox0 = \hbox{}% contents like unnumbered, but no toc entry | 4380 | \setbox0 = \hbox{}% contents like unnumbered, but no toc entry |
5180 | \def\toctype{omit}% | 4381 | \def\toctype{omit}% |
4382 | \gdef\thischapter{}% | ||
5181 | \else\ifx\temptype\Yappendixkeyword | 4383 | \else\ifx\temptype\Yappendixkeyword |
5182 | \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% | 4384 | \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% |
5183 | \def\toctype{app}% | 4385 | \def\toctype{app}% |
4386 | % We don't substitute the actual chapter name into \thischapter | ||
4387 | % because we don't want its macros evaluated now. And we don't | ||
4388 | % use \thissection because that changes with each section. | ||
4389 | % | ||
4390 | \xdef\thischapter{\putwordAppendix{} \appendixletter: | ||
4391 | \noexpand\thischaptername}% | ||
5184 | \else | 4392 | \else |
5185 | \setbox0 = \hbox{#3\enspace}% | 4393 | \setbox0 = \hbox{#3\enspace}% |
5186 | \def\toctype{numchap}% | 4394 | \def\toctype{numchap}% |
4395 | \xdef\thischapter{\putwordChapter{} \the\chapno: | ||
4396 | \noexpand\thischaptername}% | ||
5187 | \fi\fi\fi | 4397 | \fi\fi\fi |
5188 | % | 4398 | % |
5189 | % Write the toc entry for this chapter. Must come before the | 4399 | % Write the toc entry for this chapter. Must come before the |
@@ -5199,7 +4409,6 @@ end | |||
5199 | \donoderef{#2}% | 4409 | \donoderef{#2}% |
5200 | % | 4410 | % |
5201 | % Typeset the actual heading. | 4411 | % Typeset the actual heading. |
5202 | \nobreak % Avoid page breaks at the interline glue. | ||
5203 | \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright | 4412 | \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright |
5204 | \hangindent=\wd0 \centerparametersmaybe | 4413 | \hangindent=\wd0 \centerparametersmaybe |
5205 | \unhbox0 #1\par}% | 4414 | \unhbox0 #1\par}% |
@@ -5262,95 +4471,45 @@ end | |||
5262 | % the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the | 4471 | % the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the |
5263 | % section number. | 4472 | % section number. |
5264 | % | 4473 | % |
5265 | \def\seckeyword{sec} | ||
5266 | % | ||
5267 | \def\sectionheading#1#2#3#4{% | 4474 | \def\sectionheading#1#2#3#4{% |
5268 | {% | 4475 | {% |
5269 | % Switch to the right set of fonts. | 4476 | % Switch to the right set of fonts. |
5270 | \csname #2fonts\endcsname \rm | 4477 | \csname #2fonts\endcsname \rm |
5271 | % | 4478 | % |
5272 | \def\sectionlevel{#2}% | ||
5273 | \def\temptype{#3}% | ||
5274 | % | ||
5275 | % Insert first mark before the heading break (see notes for \domark). | ||
5276 | \let\prevsectiondefs=\lastsectiondefs | ||
5277 | \ifx\temptype\Ynothingkeyword | ||
5278 | \ifx\sectionlevel\seckeyword | ||
5279 | \gdef\lastsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}% | ||
5280 | \gdef\thissection{\thissectionname}}% | ||
5281 | \fi | ||
5282 | \else\ifx\temptype\Yomitfromtockeyword | ||
5283 | % Don't redefine \thissection. | ||
5284 | \else\ifx\temptype\Yappendixkeyword | ||
5285 | \ifx\sectionlevel\seckeyword | ||
5286 | \toks0={#1}% | ||
5287 | \xdef\lastsectiondefs{% | ||
5288 | \gdef\noexpand\thissectionname{\the\toks0}% | ||
5289 | \gdef\noexpand\thissectionnum{#4}% | ||
5290 | \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum: | ||
5291 | \noexpand\thissectionname}% | ||
5292 | }% | ||
5293 | \fi | ||
5294 | \else | ||
5295 | \ifx\sectionlevel\seckeyword | ||
5296 | \toks0={#1}% | ||
5297 | \xdef\lastsectiondefs{% | ||
5298 | \gdef\noexpand\thissectionname{\the\toks0}% | ||
5299 | \gdef\noexpand\thissectionnum{#4}% | ||
5300 | \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum: | ||
5301 | \noexpand\thissectionname}% | ||
5302 | }% | ||
5303 | \fi | ||
5304 | \fi\fi\fi | ||
5305 | % | ||
5306 | % Output the mark. Pass it through \safewhatsit, to take care of | ||
5307 | % the preceding space. | ||
5308 | \safewhatsit\domark | ||
5309 | % | ||
5310 | % Insert space above the heading. | 4479 | % Insert space above the heading. |
5311 | \csname #2headingbreak\endcsname | 4480 | \csname #2headingbreak\endcsname |
5312 | % | 4481 | % |
5313 | % Now the second mark, after the heading break. No break points | ||
5314 | % between here and the heading. | ||
5315 | \let\prevsectiondefs=\lastsectiondefs | ||
5316 | \domark | ||
5317 | % | ||
5318 | % Only insert the space after the number if we have a section number. | 4482 | % Only insert the space after the number if we have a section number. |
4483 | \def\sectionlevel{#2}% | ||
4484 | \def\temptype{#3}% | ||
4485 | % | ||
5319 | \ifx\temptype\Ynothingkeyword | 4486 | \ifx\temptype\Ynothingkeyword |
5320 | \setbox0 = \hbox{}% | 4487 | \setbox0 = \hbox{}% |
5321 | \def\toctype{unn}% | 4488 | \def\toctype{unn}% |
5322 | \gdef\lastsection{#1}% | 4489 | \gdef\thissection{#1}% |
5323 | \else\ifx\temptype\Yomitfromtockeyword | 4490 | \else\ifx\temptype\Yomitfromtockeyword |
5324 | % for @headings -- no section number, don't include in toc, | 4491 | % for @headings -- no section number, don't include in toc, |
5325 | % and don't redefine \lastsection. | 4492 | % and don't redefine \thissection. |
5326 | \setbox0 = \hbox{}% | 4493 | \setbox0 = \hbox{}% |
5327 | \def\toctype{omit}% | 4494 | \def\toctype{omit}% |
5328 | \let\sectionlevel=\empty | 4495 | \let\sectionlevel=\empty |
5329 | \else\ifx\temptype\Yappendixkeyword | 4496 | \else\ifx\temptype\Yappendixkeyword |
5330 | \setbox0 = \hbox{#4\enspace}% | 4497 | \setbox0 = \hbox{#4\enspace}% |
5331 | \def\toctype{app}% | 4498 | \def\toctype{app}% |
5332 | \gdef\lastsection{#1}% | 4499 | \gdef\thissection{#1}% |
5333 | \else | 4500 | \else |
5334 | \setbox0 = \hbox{#4\enspace}% | 4501 | \setbox0 = \hbox{#4\enspace}% |
5335 | \def\toctype{num}% | 4502 | \def\toctype{num}% |
5336 | \gdef\lastsection{#1}% | 4503 | \gdef\thissection{#1}% |
5337 | \fi\fi\fi | 4504 | \fi\fi\fi |
5338 | % | 4505 | % |
5339 | % Write the toc entry (before \donoderef). See comments in \chapmacro. | 4506 | % Write the toc entry (before \donoderef). See comments in \chfplain. |
5340 | \writetocentry{\toctype\sectionlevel}{#1}{#4}% | 4507 | \writetocentry{\toctype\sectionlevel}{#1}{#4}% |
5341 | % | 4508 | % |
5342 | % Write the node reference (= pdf destination for pdftex). | 4509 | % Write the node reference (= pdf destination for pdftex). |
5343 | % Again, see comments in \chapmacro. | 4510 | % Again, see comments in \chfplain. |
5344 | \donoderef{#3}% | 4511 | \donoderef{#3}% |
5345 | % | 4512 | % |
5346 | % Interline glue will be inserted when the vbox is completed. | ||
5347 | % That glue will be a valid breakpoint for the page, since it'll be | ||
5348 | % preceded by a whatsit (usually from the \donoderef, or from the | ||
5349 | % \writetocentry if there was no node). We don't want to allow that | ||
5350 | % break, since then the whatsits could end up on page n while the | ||
5351 | % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000. | ||
5352 | \nobreak | ||
5353 | % | ||
5354 | % Output the actual section heading. | 4513 | % Output the actual section heading. |
5355 | \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright | 4514 | \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright |
5356 | \hangindent=\wd0 % zero if no section number | 4515 | \hangindent=\wd0 % zero if no section number |
@@ -5413,7 +4572,7 @@ end | |||
5413 | \edef\temp{% | 4572 | \edef\temp{% |
5414 | \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}% | 4573 | \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}% |
5415 | \temp | 4574 | \temp |
5416 | }% | 4575 | } |
5417 | \fi | 4576 | \fi |
5418 | \fi | 4577 | \fi |
5419 | % | 4578 | % |
@@ -5448,7 +4607,7 @@ end | |||
5448 | \def\readtocfile{% | 4607 | \def\readtocfile{% |
5449 | \setupdatafile | 4608 | \setupdatafile |
5450 | \activecatcodes | 4609 | \activecatcodes |
5451 | \input \tocreadfilename | 4610 | \input \jobname.toc |
5452 | } | 4611 | } |
5453 | 4612 | ||
5454 | \newskip\contentsrightmargin \contentsrightmargin=1in | 4613 | \newskip\contentsrightmargin \contentsrightmargin=1in |
@@ -5467,6 +4626,7 @@ end | |||
5467 | % | 4626 | % |
5468 | % Don't need to put `Contents' or `Short Contents' in the headline. | 4627 | % Don't need to put `Contents' or `Short Contents' in the headline. |
5469 | % It is abundantly clear what they are. | 4628 | % It is abundantly clear what they are. |
4629 | \def\thischapter{}% | ||
5470 | \chapmacro{#1}{Yomitfromtoc}{}% | 4630 | \chapmacro{#1}{Yomitfromtoc}{}% |
5471 | % | 4631 | % |
5472 | \savepageno = \pageno | 4632 | \savepageno = \pageno |
@@ -5478,16 +4638,11 @@ end | |||
5478 | \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi | 4638 | \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi |
5479 | } | 4639 | } |
5480 | 4640 | ||
5481 | % redefined for the two-volume lispref. We always output on | ||
5482 | % \jobname.toc even if this is redefined. | ||
5483 | % | ||
5484 | \def\tocreadfilename{\jobname.toc} | ||
5485 | 4641 | ||
5486 | % Normal (long) toc. | 4642 | % Normal (long) toc. |
5487 | % | ||
5488 | \def\contents{% | 4643 | \def\contents{% |
5489 | \startcontents{\putwordTOC}% | 4644 | \startcontents{\putwordTOC}% |
5490 | \openin 1 \tocreadfilename\space | 4645 | \openin 1 \jobname.toc |
5491 | \ifeof 1 \else | 4646 | \ifeof 1 \else |
5492 | \readtocfile | 4647 | \readtocfile |
5493 | \fi | 4648 | \fi |
@@ -5525,7 +4680,7 @@ end | |||
5525 | \let\numsubsubsecentry = \numsecentry | 4680 | \let\numsubsubsecentry = \numsecentry |
5526 | \let\appsubsubsecentry = \numsecentry | 4681 | \let\appsubsubsecentry = \numsecentry |
5527 | \let\unnsubsubsecentry = \numsecentry | 4682 | \let\unnsubsubsecentry = \numsecentry |
5528 | \openin 1 \tocreadfilename\space | 4683 | \openin 1 \jobname.toc |
5529 | \ifeof 1 \else | 4684 | \ifeof 1 \else |
5530 | \readtocfile | 4685 | \readtocfile |
5531 | \fi | 4686 | \fi |
@@ -5669,7 +4824,7 @@ end | |||
5669 | {\tentt \global\dimen0 = 3em}% Width of the box. | 4824 | {\tentt \global\dimen0 = 3em}% Width of the box. |
5670 | \dimen2 = .55pt % Thickness of rules | 4825 | \dimen2 = .55pt % Thickness of rules |
5671 | % The text. (`r' is open on the right, `e' somewhat less so on the left.) | 4826 | % The text. (`r' is open on the right, `e' somewhat less so on the left.) |
5672 | \setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt} | 4827 | \setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt} |
5673 | % | 4828 | % |
5674 | \setbox\errorbox=\hbox to \dimen0{\hfil | 4829 | \setbox\errorbox=\hbox to \dimen0{\hfil |
5675 | \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. | 4830 | \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. |
@@ -5860,18 +5015,12 @@ end | |||
5860 | \let\SETdispenvsize\relax | 5015 | \let\SETdispenvsize\relax |
5861 | \def\setnormaldispenv{% | 5016 | \def\setnormaldispenv{% |
5862 | \ifx\SETdispenvsize\smallword | 5017 | \ifx\SETdispenvsize\smallword |
5863 | % end paragraph for sake of leading, in case document has no blank | ||
5864 | % line. This is redundant with what happens in \aboveenvbreak, but | ||
5865 | % we need to do it before changing the fonts, and it's inconvenient | ||
5866 | % to change the fonts afterward. | ||
5867 | \ifnum \lastpenalty=10000 \else \endgraf \fi | ||
5868 | \smallexamplefonts \rm | 5018 | \smallexamplefonts \rm |
5869 | \fi | 5019 | \fi |
5870 | } | 5020 | } |
5871 | \def\setsmalldispenv{% | 5021 | \def\setsmalldispenv{% |
5872 | \ifx\SETdispenvsize\nosmallword | 5022 | \ifx\SETdispenvsize\nosmallword |
5873 | \else | 5023 | \else |
5874 | \ifnum \lastpenalty=10000 \else \endgraf \fi | ||
5875 | \smallexamplefonts \rm | 5024 | \smallexamplefonts \rm |
5876 | \fi | 5025 | \fi |
5877 | } | 5026 | } |
@@ -5898,10 +5047,11 @@ end | |||
5898 | % | 5047 | % |
5899 | \maketwodispenvs {lisp}{example}{% | 5048 | \maketwodispenvs {lisp}{example}{% |
5900 | \nonfillstart | 5049 | \nonfillstart |
5901 | \tt\quoteexpand | 5050 | \tt |
5902 | \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. | 5051 | \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. |
5903 | \gobble % eat return | 5052 | \gobble % eat return |
5904 | } | 5053 | } |
5054 | |||
5905 | % @display/@smalldisplay: same as @lisp except keep current font. | 5055 | % @display/@smalldisplay: same as @lisp except keep current font. |
5906 | % | 5056 | % |
5907 | \makedispenv {display}{% | 5057 | \makedispenv {display}{% |
@@ -6029,34 +5179,6 @@ end | |||
6029 | \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount | 5179 | \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount |
6030 | % | 5180 | % |
6031 | \def\starttabbox{\setbox0=\hbox\bgroup} | 5181 | \def\starttabbox{\setbox0=\hbox\bgroup} |
6032 | |||
6033 | % Allow an option to not replace quotes with a regular directed right | ||
6034 | % quote/apostrophe (char 0x27), but instead use the undirected quote | ||
6035 | % from cmtt (char 0x0d). The undirected quote is ugly, so don't make it | ||
6036 | % the default, but it works for pasting with more pdf viewers (at least | ||
6037 | % evince), the lilypond developers report. xpdf does work with the | ||
6038 | % regular 0x27. | ||
6039 | % | ||
6040 | \def\codequoteright{% | ||
6041 | \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax | ||
6042 | \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax | ||
6043 | '% | ||
6044 | \else \char'15 \fi | ||
6045 | \else \char'15 \fi | ||
6046 | } | ||
6047 | % | ||
6048 | % and a similar option for the left quote char vs. a grave accent. | ||
6049 | % Modern fonts display ASCII 0x60 as a grave accent, so some people like | ||
6050 | % the code environments to do likewise. | ||
6051 | % | ||
6052 | \def\codequoteleft{% | ||
6053 | \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax | ||
6054 | \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax | ||
6055 | `% | ||
6056 | \else \char'22 \fi | ||
6057 | \else \char'22 \fi | ||
6058 | } | ||
6059 | % | ||
6060 | \begingroup | 5182 | \begingroup |
6061 | \catcode`\^^I=\active | 5183 | \catcode`\^^I=\active |
6062 | \gdef\tabexpand{% | 5184 | \gdef\tabexpand{% |
@@ -6069,16 +5191,7 @@ end | |||
6069 | \wd0=\dimen0 \box0 \starttabbox | 5191 | \wd0=\dimen0 \box0 \starttabbox |
6070 | }% | 5192 | }% |
6071 | } | 5193 | } |
6072 | \catcode`\'=\active | ||
6073 | \gdef\rquoteexpand{\catcode\rquoteChar=\active \def'{\codequoteright}}% | ||
6074 | % | ||
6075 | \catcode`\`=\active | ||
6076 | \gdef\lquoteexpand{\catcode\lquoteChar=\active \def`{\codequoteleft}}% | ||
6077 | % | ||
6078 | \gdef\quoteexpand{\rquoteexpand \lquoteexpand}% | ||
6079 | \endgroup | 5194 | \endgroup |
6080 | |||
6081 | % start the verbatim environment. | ||
6082 | \def\setupverbatim{% | 5195 | \def\setupverbatim{% |
6083 | \let\nonarrowing = t% | 5196 | \let\nonarrowing = t% |
6084 | \nonfillstart | 5197 | \nonfillstart |
@@ -6087,7 +5200,6 @@ end | |||
6087 | \def\par{\leavevmode\egroup\box0\endgraf}% | 5200 | \def\par{\leavevmode\egroup\box0\endgraf}% |
6088 | \catcode`\`=\active | 5201 | \catcode`\`=\active |
6089 | \tabexpand | 5202 | \tabexpand |
6090 | \quoteexpand | ||
6091 | % Respect line breaks, | 5203 | % Respect line breaks, |
6092 | % print special symbols as themselves, and | 5204 | % print special symbols as themselves, and |
6093 | % make each space count | 5205 | % make each space count |
@@ -6172,35 +5284,27 @@ end | |||
6172 | \endgroup | 5284 | \endgroup |
6173 | } | 5285 | } |
6174 | 5286 | ||
6175 | |||
6176 | \message{defuns,} | 5287 | \message{defuns,} |
6177 | % @defun etc. | 5288 | % @defun etc. |
6178 | 5289 | ||
6179 | \newskip\defbodyindent \defbodyindent=.4in | 5290 | \newskip\defbodyindent \defbodyindent=.4in |
6180 | \newskip\defargsindent \defargsindent=50pt | 5291 | \newskip\defargsindent \defargsindent=50pt |
6181 | \newskip\deflastargmargin \deflastargmargin=18pt | 5292 | \newskip\deflastargmargin \deflastargmargin=18pt |
6182 | \newcount\defunpenalty | ||
6183 | 5293 | ||
6184 | % Start the processing of @deffn: | 5294 | % Start the processing of @deffn: |
6185 | \def\startdefun{% | 5295 | \def\startdefun{% |
6186 | \ifnum\lastpenalty<10000 | 5296 | \ifnum\lastpenalty<10000 |
6187 | \medbreak | 5297 | \medbreak |
6188 | \defunpenalty=10003 % Will keep this @deffn together with the | ||
6189 | % following @def command, see below. | ||
6190 | \else | 5298 | \else |
6191 | % If there are two @def commands in a row, we'll have a \nobreak, | 5299 | % If there are two @def commands in a row, we'll have a \nobreak, |
6192 | % which is there to keep the function description together with its | 5300 | % which is there to keep the function description together with its |
6193 | % header. But if there's nothing but headers, we need to allow a | 5301 | % header. But if there's nothing but headers, we need to allow a |
6194 | % break somewhere. Check specifically for penalty 10002, inserted | 5302 | % break somewhere. Check specifically for penalty 10002, inserted |
6195 | % by \printdefunline, instead of 10000, since the sectioning | 5303 | % by \defargscommonending, instead of 10000, since the sectioning |
6196 | % commands also insert a nobreak penalty, and we don't want to allow | 5304 | % commands also insert a nobreak penalty, and we don't want to allow |
6197 | % a break between a section heading and a defun. | 5305 | % a break between a section heading and a defun. |
6198 | % | 5306 | % |
6199 | % As a minor refinement, we avoid "club" headers by signalling | 5307 | \ifnum\lastpenalty=10002 \penalty2000 \fi |
6200 | % with penalty of 10003 after the very first @deffn in the | ||
6201 | % sequence (see above), and penalty of 10002 after any following | ||
6202 | % @def command. | ||
6203 | \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \fi | ||
6204 | % | 5308 | % |
6205 | % Similarly, after a section heading, do not allow a break. | 5309 | % Similarly, after a section heading, do not allow a break. |
6206 | % But do insert the glue. | 5310 | % But do insert the glue. |
@@ -6218,7 +5322,7 @@ end | |||
6218 | % | 5322 | % |
6219 | % As above, allow line break if we have multiple x headers in a row. | 5323 | % As above, allow line break if we have multiple x headers in a row. |
6220 | % It's not a great place, though. | 5324 | % It's not a great place, though. |
6221 | \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi | 5325 | \ifnum\lastpenalty=10002 \penalty3000 \fi |
6222 | % | 5326 | % |
6223 | % And now, it's time to reuse the body of the original defun: | 5327 | % And now, it's time to reuse the body of the original defun: |
6224 | \expandafter\gobbledefun#1% | 5328 | \expandafter\gobbledefun#1% |
@@ -6236,7 +5340,7 @@ end | |||
6236 | \advance\rightskip by 0pt plus 1fil | 5340 | \advance\rightskip by 0pt plus 1fil |
6237 | \endgraf | 5341 | \endgraf |
6238 | \nobreak\vskip -\parskip | 5342 | \nobreak\vskip -\parskip |
6239 | \penalty\defunpenalty % signal to \startdefun and \dodefunx | 5343 | \penalty 10002 % signal to \startdefun and \dodefunx |
6240 | % Some of the @defun-type tags do not enable magic parentheses, | 5344 | % Some of the @defun-type tags do not enable magic parentheses, |
6241 | % rendering the following check redundant. But we don't optimize. | 5345 | % rendering the following check redundant. But we don't optimize. |
6242 | \checkparencounts | 5346 | \checkparencounts |
@@ -6505,14 +5609,12 @@ end | |||
6505 | \ifnum\parencount=0 \else \badparencount \fi | 5609 | \ifnum\parencount=0 \else \badparencount \fi |
6506 | \ifnum\brackcount=0 \else \badbrackcount \fi | 5610 | \ifnum\brackcount=0 \else \badbrackcount \fi |
6507 | } | 5611 | } |
6508 | % these should not use \errmessage; the glibc manual, at least, actually | ||
6509 | % has such constructs (when documenting function pointers). | ||
6510 | \def\badparencount{% | 5612 | \def\badparencount{% |
6511 | \message{Warning: unbalanced parentheses in @def...}% | 5613 | \errmessage{Unbalanced parentheses in @def}% |
6512 | \global\parencount=0 | 5614 | \global\parencount=0 |
6513 | } | 5615 | } |
6514 | \def\badbrackcount{% | 5616 | \def\badbrackcount{% |
6515 | \message{Warning: unbalanced square brackets in @def...}% | 5617 | \errmessage{Unbalanced square braces in @def}% |
6516 | \global\brackcount=0 | 5618 | \global\brackcount=0 |
6517 | } | 5619 | } |
6518 | 5620 | ||
@@ -6547,6 +5649,7 @@ end | |||
6547 | \spaceisspace | 5649 | \spaceisspace |
6548 | % | 5650 | % |
6549 | % Append \endinput to make sure that TeX does not see the ending newline. | 5651 | % Append \endinput to make sure that TeX does not see the ending newline. |
5652 | % | ||
6550 | % I've verified that it is necessary both for e-TeX and for ordinary TeX | 5653 | % I've verified that it is necessary both for e-TeX and for ordinary TeX |
6551 | % --kasal, 29nov03 | 5654 | % --kasal, 29nov03 |
6552 | \scantokens{#1\endinput}% | 5655 | \scantokens{#1\endinput}% |
@@ -6607,10 +5710,6 @@ end | |||
6607 | % all characters are catcode 10, 11 or 12, except \ which is active | 5710 | % all characters are catcode 10, 11 or 12, except \ which is active |
6608 | % (as in normal texinfo). It is necessary to change the definition of \. | 5711 | % (as in normal texinfo). It is necessary to change the definition of \. |
6609 | 5712 | ||
6610 | % Non-ASCII encodings make 8-bit characters active, so un-activate | ||
6611 | % them to avoid their expansion. Must do this non-globally, to | ||
6612 | % confine the change to the current group. | ||
6613 | |||
6614 | % It's necessary to have hard CRs when the macro is executed. This is | 5713 | % It's necessary to have hard CRs when the macro is executed. This is |
6615 | % done by making ^^M (\endlinechar) catcode 12 when reading the macro | 5714 | % done by making ^^M (\endlinechar) catcode 12 when reading the macro |
6616 | % body, and then making it the \newlinechar in \scanmacro. | 5715 | % body, and then making it the \newlinechar in \scanmacro. |
@@ -6625,7 +5724,6 @@ end | |||
6625 | \catcode`\_=\other | 5724 | \catcode`\_=\other |
6626 | \catcode`\|=\other | 5725 | \catcode`\|=\other |
6627 | \catcode`\~=\other | 5726 | \catcode`\~=\other |
6628 | \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi | ||
6629 | } | 5727 | } |
6630 | 5728 | ||
6631 | \def\scanargctxt{% | 5729 | \def\scanargctxt{% |
@@ -6818,11 +5916,11 @@ end | |||
6818 | % {. If so it reads up to the closing }, if not, it reads the whole | 5916 | % {. If so it reads up to the closing }, if not, it reads the whole |
6819 | % line. Whatever was read is then fed to the next control sequence | 5917 | % line. Whatever was read is then fed to the next control sequence |
6820 | % as an argument (by \parsebrace or \parsearg) | 5918 | % as an argument (by \parsebrace or \parsearg) |
6821 | \def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx} | 5919 | \def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx} |
6822 | \def\braceorlinexxx{% | 5920 | \def\braceorlinexxx{% |
6823 | \ifx\nchar\bgroup\else | 5921 | \ifx\nchar\bgroup\else |
6824 | \expandafter\parsearg | 5922 | \expandafter\parsearg |
6825 | \fi \macnamexxx} | 5923 | \fi \next} |
6826 | 5924 | ||
6827 | 5925 | ||
6828 | % @alias. | 5926 | % @alias. |
@@ -6843,6 +5941,7 @@ end | |||
6843 | \message{cross references,} | 5941 | \message{cross references,} |
6844 | 5942 | ||
6845 | \newwrite\auxfile | 5943 | \newwrite\auxfile |
5944 | |||
6846 | \newif\ifhavexrefs % True if xref values are known. | 5945 | \newif\ifhavexrefs % True if xref values are known. |
6847 | \newif\ifwarnedxrefs % True if we warned once that they aren't known. | 5946 | \newif\ifwarnedxrefs % True if we warned once that they aren't known. |
6848 | 5947 | ||
@@ -6887,7 +5986,7 @@ end | |||
6887 | 5986 | ||
6888 | % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an | 5987 | % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an |
6889 | % anchor), which consists of three parts: | 5988 | % anchor), which consists of three parts: |
6890 | % 1) NAME-title - the current sectioning name taken from \lastsection, | 5989 | % 1) NAME-title - the current sectioning name taken from \thissection, |
6891 | % or the anchor name. | 5990 | % or the anchor name. |
6892 | % 2) NAME-snt - section number and type, passed as the SNT arg, or | 5991 | % 2) NAME-snt - section number and type, passed as the SNT arg, or |
6893 | % empty for anchors. | 5992 | % empty for anchors. |
@@ -6906,10 +6005,10 @@ end | |||
6906 | \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef | 6005 | \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef |
6907 | ##1}{##2}}% these are parameters of \writexrdef | 6006 | ##1}{##2}}% these are parameters of \writexrdef |
6908 | }% | 6007 | }% |
6909 | \toks0 = \expandafter{\lastsection}% | 6008 | \toks0 = \expandafter{\thissection}% |
6910 | \immediate \writexrdef{title}{\the\toks0 }% | 6009 | \immediate \writexrdef{title}{\the\toks0 }% |
6911 | \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. | 6010 | \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. |
6912 | \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, during \shipout | 6011 | \writexrdef{pg}{\folio}% will be written later, during \shipout |
6913 | }% | 6012 | }% |
6914 | \fi | 6013 | \fi |
6915 | } | 6014 | } |
@@ -6955,8 +6054,7 @@ end | |||
6955 | \ifpdf | 6054 | \ifpdf |
6956 | \leavevmode | 6055 | \leavevmode |
6957 | \getfilename{#4}% | 6056 | \getfilename{#4}% |
6958 | {\indexnofonts | 6057 | {\turnoffactive |
6959 | \turnoffactive | ||
6960 | % See comments at \activebackslashdouble. | 6058 | % See comments at \activebackslashdouble. |
6961 | {\activebackslashdouble \xdef\pdfxrefdest{#1}% | 6059 | {\activebackslashdouble \xdef\pdfxrefdest{#1}% |
6962 | \backslashparens\pdfxrefdest}% | 6060 | \backslashparens\pdfxrefdest}% |
@@ -6969,7 +6067,7 @@ end | |||
6969 | goto name{\pdfmkpgn{\pdfxrefdest}}% | 6067 | goto name{\pdfmkpgn{\pdfxrefdest}}% |
6970 | \fi | 6068 | \fi |
6971 | }% | 6069 | }% |
6972 | \setcolor{\linkcolor}% | 6070 | \linkcolor |
6973 | \fi | 6071 | \fi |
6974 | % | 6072 | % |
6975 | % Float references are printed completely differently: "Figure 1.2" | 6073 | % Float references are printed completely differently: "Figure 1.2" |
@@ -6987,7 +6085,7 @@ end | |||
6987 | % If the user specified the print name (third arg) to the ref, | 6085 | % If the user specified the print name (third arg) to the ref, |
6988 | % print it instead of our usual "Figure 1.2". | 6086 | % print it instead of our usual "Figure 1.2". |
6989 | \ifdim\wd0 = 0pt | 6087 | \ifdim\wd0 = 0pt |
6990 | \refx{#1-snt}{}% | 6088 | \refx{#1-snt}% |
6991 | \else | 6089 | \else |
6992 | \printedrefname | 6090 | \printedrefname |
6993 | \fi | 6091 | \fi |
@@ -7007,7 +6105,7 @@ end | |||
7007 | % is a loss. Therefore, we give the text of the node name again, so it | 6105 | % is a loss. Therefore, we give the text of the node name again, so it |
7008 | % is as if TeX is seeing it for the first time. | 6106 | % is as if TeX is seeing it for the first time. |
7009 | \ifdim \wd1 > 0pt | 6107 | \ifdim \wd1 > 0pt |
7010 | \putwordSection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}% | 6108 | \putwordsection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}% |
7011 | \else | 6109 | \else |
7012 | % _ (for example) has to be the character _ for the purposes of the | 6110 | % _ (for example) has to be the character _ for the purposes of the |
7013 | % control sequence corresponding to the node, but it has to expand | 6111 | % control sequence corresponding to the node, but it has to expand |
@@ -7103,18 +6201,10 @@ end | |||
7103 | % collisions). But if this is a float type, we have more work to do. | 6201 | % collisions). But if this is a float type, we have more work to do. |
7104 | % | 6202 | % |
7105 | \def\xrdef#1#2{% | 6203 | \def\xrdef#1#2{% |
7106 | {% The node name might contain 8-bit characters, which in our current | 6204 | \expandafter\gdef\csname XR#1\endcsname{#2}% remember this xref value. |
7107 | % implementation are changed to commands like @'e. Don't let these | ||
7108 | % mess up the control sequence name. | ||
7109 | \indexnofonts | ||
7110 | \turnoffactive | ||
7111 | \xdef\safexrefname{#1}% | ||
7112 | }% | ||
7113 | % | ||
7114 | \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% remember this xref | ||
7115 | % | 6205 | % |
7116 | % Was that xref control sequence that we just defined for a float? | 6206 | % Was that xref control sequence that we just defined for a float? |
7117 | \expandafter\iffloat\csname XR\safexrefname\endcsname | 6207 | \expandafter\iffloat\csname XR#1\endcsname |
7118 | % it was a float, and we have the (safe) float type in \iffloattype. | 6208 | % it was a float, and we have the (safe) float type in \iffloattype. |
7119 | \expandafter\let\expandafter\floatlist | 6209 | \expandafter\let\expandafter\floatlist |
7120 | \csname floatlist\iffloattype\endcsname | 6210 | \csname floatlist\iffloattype\endcsname |
@@ -7129,8 +6219,7 @@ end | |||
7129 | % | 6219 | % |
7130 | % Remember this xref in the control sequence \floatlistFLOATTYPE, | 6220 | % Remember this xref in the control sequence \floatlistFLOATTYPE, |
7131 | % for later use in \listoffloats. | 6221 | % for later use in \listoffloats. |
7132 | \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0 | 6222 | \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0{#1}}% |
7133 | {\safexrefname}}% | ||
7134 | \fi | 6223 | \fi |
7135 | } | 6224 | } |
7136 | 6225 | ||
@@ -7234,7 +6323,6 @@ end | |||
7234 | \input\jobname.#1 | 6323 | \input\jobname.#1 |
7235 | \endgroup} | 6324 | \endgroup} |
7236 | 6325 | ||
7237 | |||
7238 | \message{insertions,} | 6326 | \message{insertions,} |
7239 | % including footnotes. | 6327 | % including footnotes. |
7240 | 6328 | ||
@@ -7427,7 +6515,7 @@ end | |||
7427 | % above and below. | 6515 | % above and below. |
7428 | \nobreak\vskip\parskip | 6516 | \nobreak\vskip\parskip |
7429 | \nobreak | 6517 | \nobreak |
7430 | \line\bgroup | 6518 | \line\bgroup\hss |
7431 | \fi | 6519 | \fi |
7432 | % | 6520 | % |
7433 | % Output the image. | 6521 | % Output the image. |
@@ -7440,7 +6528,7 @@ end | |||
7440 | \epsfbox{#1.eps}% | 6528 | \epsfbox{#1.eps}% |
7441 | \fi | 6529 | \fi |
7442 | % | 6530 | % |
7443 | \ifimagevmode \egroup \bigbreak \fi % space after the image | 6531 | \ifimagevmode \hss \egroup \bigbreak \fi % space after the image |
7444 | \endgroup} | 6532 | \endgroup} |
7445 | 6533 | ||
7446 | 6534 | ||
@@ -7507,13 +6595,13 @@ end | |||
7507 | \global\advance\floatno by 1 | 6595 | \global\advance\floatno by 1 |
7508 | % | 6596 | % |
7509 | {% | 6597 | {% |
7510 | % This magic value for \lastsection is output by \setref as the | 6598 | % This magic value for \thissection is output by \setref as the |
7511 | % XREFLABEL-title value. \xrefX uses it to distinguish float | 6599 | % XREFLABEL-title value. \xrefX uses it to distinguish float |
7512 | % labels (which have a completely different output format) from | 6600 | % labels (which have a completely different output format) from |
7513 | % node and anchor labels. And \xrdef uses it to construct the | 6601 | % node and anchor labels. And \xrdef uses it to construct the |
7514 | % lists of floats. | 6602 | % lists of floats. |
7515 | % | 6603 | % |
7516 | \edef\lastsection{\floatmagic=\safefloattype}% | 6604 | \edef\thissection{\floatmagic=\safefloattype}% |
7517 | \setref{\floatlabel}{Yfloat}% | 6605 | \setref{\floatlabel}{Yfloat}% |
7518 | }% | 6606 | }% |
7519 | \fi | 6607 | \fi |
@@ -7581,7 +6669,6 @@ end | |||
7581 | % caption if specified, else the full caption if specified, else nothing. | 6669 | % caption if specified, else the full caption if specified, else nothing. |
7582 | {% | 6670 | {% |
7583 | \atdummies | 6671 | \atdummies |
7584 | % | ||
7585 | % since we read the caption text in the macro world, where ^^M | 6672 | % since we read the caption text in the macro world, where ^^M |
7586 | % is turned into a normal character, we have to scan it back, so | 6673 | % is turned into a normal character, we have to scan it back, so |
7587 | % we don't write the literal three characters "^^M" into the aux file. | 6674 | % we don't write the literal three characters "^^M" into the aux file. |
@@ -7602,9 +6689,8 @@ end | |||
7602 | % | 6689 | % |
7603 | % place the captured inserts | 6690 | % place the captured inserts |
7604 | % | 6691 | % |
7605 | % BEWARE: when the floats start floating, we have to issue warning | 6692 | % BEWARE: when the floats start float, we have to issue warning whenever an |
7606 | % whenever an insert appears inside a float which could possibly | 6693 | % insert appears inside a float which could possibly float. --kasal, 26may04 |
7607 | % float. --kasal, 26may04 | ||
7608 | % | 6694 | % |
7609 | \checkinserts | 6695 | \checkinserts |
7610 | } | 6696 | } |
@@ -7648,7 +6734,7 @@ end | |||
7648 | 6734 | ||
7649 | % #1 is the control sequence we are passed; we expand into a conditional | 6735 | % #1 is the control sequence we are passed; we expand into a conditional |
7650 | % which is true if #1 represents a float ref. That is, the magic | 6736 | % which is true if #1 represents a float ref. That is, the magic |
7651 | % \lastsection value which we \setref above. | 6737 | % \thissection value which we \setref above. |
7652 | % | 6738 | % |
7653 | \def\iffloat#1{\expandafter\doiffloat#1==\finish} | 6739 | \def\iffloat#1{\expandafter\doiffloat#1==\finish} |
7654 | % | 6740 | % |
@@ -7709,871 +6795,39 @@ end | |||
7709 | \writeentry | 6795 | \writeentry |
7710 | }} | 6796 | }} |
7711 | 6797 | ||
7712 | |||
7713 | \message{localization,} | 6798 | \message{localization,} |
6799 | % and i18n. | ||
7714 | 6800 | ||
7715 | % @documentlanguage is usually given very early, just after | 6801 | % @documentlanguage is usually given very early, just after |
7716 | % @setfilename. If done too late, it may not override everything | 6802 | % @setfilename. If done too late, it may not override everything |
7717 | % properly. Single argument is the language (de) or locale (de_DE) | 6803 | % properly. Single argument is the language abbreviation. |
7718 | % abbreviation. It would be nice if we could set up a hyphenation file. | 6804 | % It would be nice if we could set up a hyphenation file here. |
7719 | % | 6805 | % |
7720 | { | 6806 | \parseargdef\documentlanguage{% |
7721 | \catcode`\_ = \active | ||
7722 | \globaldefs=1 | ||
7723 | \parseargdef\documentlanguage{\begingroup | ||
7724 | \let_=\normalunderscore % normal _ character for filenames | ||
7725 | \tex % read txi-??.tex file in plain TeX. | 6807 | \tex % read txi-??.tex file in plain TeX. |
7726 | % Read the file by the name they passed if it exists. | 6808 | % Read the file if it exists. |
7727 | \openin 1 txi-#1.tex | 6809 | \openin 1 txi-#1.tex |
7728 | \ifeof 1 | 6810 | \ifeof 1 |
7729 | \documentlanguagetrywithoutunderscore{#1_\finish}% | 6811 | \errhelp = \nolanghelp |
6812 | \errmessage{Cannot read language file txi-#1.tex}% | ||
7730 | \else | 6813 | \else |
7731 | \input txi-#1.tex | 6814 | \input txi-#1.tex |
7732 | \fi | 6815 | \fi |
7733 | \closein 1 | 6816 | \closein 1 |
7734 | \endgroup | 6817 | \endgroup |
7735 | \endgroup} | ||
7736 | } | ||
7737 | % | ||
7738 | % If they passed de_DE, and txi-de_DE.tex doesn't exist, | ||
7739 | % try txi-de.tex. | ||
7740 | % | ||
7741 | \def\documentlanguagetrywithoutunderscore#1_#2\finish{% | ||
7742 | \openin 1 txi-#1.tex | ||
7743 | \ifeof 1 | ||
7744 | \errhelp = \nolanghelp | ||
7745 | \errmessage{Cannot read language file txi-#1.tex}% | ||
7746 | \else | ||
7747 | \input txi-#1.tex | ||
7748 | \fi | ||
7749 | \closein 1 | ||
7750 | } | 6818 | } |
7751 | % | ||
7752 | \newhelp\nolanghelp{The given language definition file cannot be found or | 6819 | \newhelp\nolanghelp{The given language definition file cannot be found or |
7753 | is empty. Maybe you need to install it? In the current directory | 6820 | is empty. Maybe you need to install it? In the current directory |
7754 | should work if nowhere else does.} | 6821 | should work if nowhere else does.} |
7755 | 6822 | ||
7756 | % Set the catcode of characters 128 through 255 to the specified number. | ||
7757 | % | ||
7758 | \def\setnonasciicharscatcode#1{% | ||
7759 | \count255=128 | ||
7760 | \loop\ifnum\count255<256 | ||
7761 | \global\catcode\count255=#1\relax | ||
7762 | \advance\count255 by 1 | ||
7763 | \repeat | ||
7764 | } | ||
7765 | 6823 | ||
7766 | \def\setnonasciicharscatcodenonglobal#1{% | 6824 | % @documentencoding should change something in TeX eventually, most |
7767 | \count255=128 | 6825 | % likely, but for now just recognize it. |
7768 | \loop\ifnum\count255<256 | 6826 | \let\documentencoding = \comment |
7769 | \catcode\count255=#1\relax | ||
7770 | \advance\count255 by 1 | ||
7771 | \repeat | ||
7772 | } | ||
7773 | 6827 | ||
7774 | % @documentencoding sets the definition of non-ASCII characters | ||
7775 | % according to the specified encoding. | ||
7776 | % | ||
7777 | \parseargdef\documentencoding{% | ||
7778 | % Encoding being declared for the document. | ||
7779 | \def\declaredencoding{\csname #1.enc\endcsname}% | ||
7780 | % | ||
7781 | % Supported encodings: names converted to tokens in order to be able | ||
7782 | % to compare them with \ifx. | ||
7783 | \def\ascii{\csname US-ASCII.enc\endcsname}% | ||
7784 | \def\latnine{\csname ISO-8859-15.enc\endcsname}% | ||
7785 | \def\latone{\csname ISO-8859-1.enc\endcsname}% | ||
7786 | \def\lattwo{\csname ISO-8859-2.enc\endcsname}% | ||
7787 | \def\utfeight{\csname UTF-8.enc\endcsname}% | ||
7788 | % | ||
7789 | \ifx \declaredencoding \ascii | ||
7790 | \asciichardefs | ||
7791 | % | ||
7792 | \else \ifx \declaredencoding \lattwo | ||
7793 | \setnonasciicharscatcode\active | ||
7794 | \lattwochardefs | ||
7795 | % | ||
7796 | \else \ifx \declaredencoding \latone | ||
7797 | \setnonasciicharscatcode\active | ||
7798 | \latonechardefs | ||
7799 | % | ||
7800 | \else \ifx \declaredencoding \latnine | ||
7801 | \setnonasciicharscatcode\active | ||
7802 | \latninechardefs | ||
7803 | % | ||
7804 | \else \ifx \declaredencoding \utfeight | ||
7805 | \setnonasciicharscatcode\active | ||
7806 | \utfeightchardefs | ||
7807 | % | ||
7808 | \else | ||
7809 | \message{Unknown document encoding #1, ignoring.}% | ||
7810 | % | ||
7811 | \fi % utfeight | ||
7812 | \fi % latnine | ||
7813 | \fi % latone | ||
7814 | \fi % lattwo | ||
7815 | \fi % ascii | ||
7816 | } | ||
7817 | |||
7818 | % A message to be logged when using a character that isn't available | ||
7819 | % the default font encoding (OT1). | ||
7820 | % | ||
7821 | \def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}} | ||
7822 | |||
7823 | % Take account of \c (plain) vs. \, (Texinfo) difference. | ||
7824 | \def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi} | ||
7825 | |||
7826 | % First, make active non-ASCII characters in order for them to be | ||
7827 | % correctly categorized when TeX reads the replacement text of | ||
7828 | % macros containing the character definitions. | ||
7829 | \setnonasciicharscatcode\active | ||
7830 | % | ||
7831 | % Latin1 (ISO-8859-1) character definitions. | ||
7832 | \def\latonechardefs{% | ||
7833 | \gdef^^a0{~} | ||
7834 | \gdef^^a1{\exclamdown} | ||
7835 | \gdef^^a2{\missingcharmsg{CENT SIGN}} | ||
7836 | \gdef^^a3{{\pounds}} | ||
7837 | \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} | ||
7838 | \gdef^^a5{\missingcharmsg{YEN SIGN}} | ||
7839 | \gdef^^a6{\missingcharmsg{BROKEN BAR}} | ||
7840 | \gdef^^a7{\S} | ||
7841 | \gdef^^a8{\"{}} | ||
7842 | \gdef^^a9{\copyright} | ||
7843 | \gdef^^aa{\ordf} | ||
7844 | \gdef^^ab{\missingcharmsg{LEFT-POINTING DOUBLE ANGLE QUOTATION MARK}} | ||
7845 | \gdef^^ac{$\lnot$} | ||
7846 | \gdef^^ad{\-} | ||
7847 | \gdef^^ae{\registeredsymbol} | ||
7848 | \gdef^^af{\={}} | ||
7849 | % | ||
7850 | \gdef^^b0{\textdegree} | ||
7851 | \gdef^^b1{$\pm$} | ||
7852 | \gdef^^b2{$^2$} | ||
7853 | \gdef^^b3{$^3$} | ||
7854 | \gdef^^b4{\'{}} | ||
7855 | \gdef^^b5{$\mu$} | ||
7856 | \gdef^^b6{\P} | ||
7857 | % | ||
7858 | \gdef^^b7{$^.$} | ||
7859 | \gdef^^b8{\cedilla\ } | ||
7860 | \gdef^^b9{$^1$} | ||
7861 | \gdef^^ba{\ordm} | ||
7862 | % | ||
7863 | \gdef^^bb{\missingcharmsg{RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK}} | ||
7864 | \gdef^^bc{$1\over4$} | ||
7865 | \gdef^^bd{$1\over2$} | ||
7866 | \gdef^^be{$3\over4$} | ||
7867 | \gdef^^bf{\questiondown} | ||
7868 | % | ||
7869 | \gdef^^c0{\`A} | ||
7870 | \gdef^^c1{\'A} | ||
7871 | \gdef^^c2{\^A} | ||
7872 | \gdef^^c3{\~A} | ||
7873 | \gdef^^c4{\"A} | ||
7874 | \gdef^^c5{\ringaccent A} | ||
7875 | \gdef^^c6{\AE} | ||
7876 | \gdef^^c7{\cedilla C} | ||
7877 | \gdef^^c8{\`E} | ||
7878 | \gdef^^c9{\'E} | ||
7879 | \gdef^^ca{\^E} | ||
7880 | \gdef^^cb{\"E} | ||
7881 | \gdef^^cc{\`I} | ||
7882 | \gdef^^cd{\'I} | ||
7883 | \gdef^^ce{\^I} | ||
7884 | \gdef^^cf{\"I} | ||
7885 | % | ||
7886 | \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER ETH}} | ||
7887 | \gdef^^d1{\~N} | ||
7888 | \gdef^^d2{\`O} | ||
7889 | \gdef^^d3{\'O} | ||
7890 | \gdef^^d4{\^O} | ||
7891 | \gdef^^d5{\~O} | ||
7892 | \gdef^^d6{\"O} | ||
7893 | \gdef^^d7{$\times$} | ||
7894 | \gdef^^d8{\O} | ||
7895 | \gdef^^d9{\`U} | ||
7896 | \gdef^^da{\'U} | ||
7897 | \gdef^^db{\^U} | ||
7898 | \gdef^^dc{\"U} | ||
7899 | \gdef^^dd{\'Y} | ||
7900 | \gdef^^de{\missingcharmsg{LATIN CAPITAL LETTER THORN}} | ||
7901 | \gdef^^df{\ss} | ||
7902 | % | ||
7903 | \gdef^^e0{\`a} | ||
7904 | \gdef^^e1{\'a} | ||
7905 | \gdef^^e2{\^a} | ||
7906 | \gdef^^e3{\~a} | ||
7907 | \gdef^^e4{\"a} | ||
7908 | \gdef^^e5{\ringaccent a} | ||
7909 | \gdef^^e6{\ae} | ||
7910 | \gdef^^e7{\cedilla c} | ||
7911 | \gdef^^e8{\`e} | ||
7912 | \gdef^^e9{\'e} | ||
7913 | \gdef^^ea{\^e} | ||
7914 | \gdef^^eb{\"e} | ||
7915 | \gdef^^ec{\`{\dotless i}} | ||
7916 | \gdef^^ed{\'{\dotless i}} | ||
7917 | \gdef^^ee{\^{\dotless i}} | ||
7918 | \gdef^^ef{\"{\dotless i}} | ||
7919 | % | ||
7920 | \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER ETH}} | ||
7921 | \gdef^^f1{\~n} | ||
7922 | \gdef^^f2{\`o} | ||
7923 | \gdef^^f3{\'o} | ||
7924 | \gdef^^f4{\^o} | ||
7925 | \gdef^^f5{\~o} | ||
7926 | \gdef^^f6{\"o} | ||
7927 | \gdef^^f7{$\div$} | ||
7928 | \gdef^^f8{\o} | ||
7929 | \gdef^^f9{\`u} | ||
7930 | \gdef^^fa{\'u} | ||
7931 | \gdef^^fb{\^u} | ||
7932 | \gdef^^fc{\"u} | ||
7933 | \gdef^^fd{\'y} | ||
7934 | \gdef^^fe{\missingcharmsg{LATIN SMALL LETTER THORN}} | ||
7935 | \gdef^^ff{\"y} | ||
7936 | } | ||
7937 | |||
7938 | % Latin9 (ISO-8859-15) encoding character definitions. | ||
7939 | \def\latninechardefs{% | ||
7940 | % Encoding is almost identical to Latin1. | ||
7941 | \latonechardefs | ||
7942 | % | ||
7943 | \gdef^^a4{\euro} | ||
7944 | \gdef^^a6{\v S} | ||
7945 | \gdef^^a8{\v s} | ||
7946 | \gdef^^b4{\v Z} | ||
7947 | \gdef^^b8{\v z} | ||
7948 | \gdef^^bc{\OE} | ||
7949 | \gdef^^bd{\oe} | ||
7950 | \gdef^^be{\"Y} | ||
7951 | } | ||
7952 | |||
7953 | % Latin2 (ISO-8859-2) character definitions. | ||
7954 | \def\lattwochardefs{% | ||
7955 | \gdef^^a0{~} | ||
7956 | \gdef^^a1{\missingcharmsg{LATIN CAPITAL LETTER A WITH OGONEK}} | ||
7957 | \gdef^^a2{\u{}} | ||
7958 | \gdef^^a3{\L} | ||
7959 | \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} | ||
7960 | \gdef^^a5{\v L} | ||
7961 | \gdef^^a6{\'S} | ||
7962 | \gdef^^a7{\S} | ||
7963 | \gdef^^a8{\"{}} | ||
7964 | \gdef^^a9{\v S} | ||
7965 | \gdef^^aa{\cedilla S} | ||
7966 | \gdef^^ab{\v T} | ||
7967 | \gdef^^ac{\'Z} | ||
7968 | \gdef^^ad{\-} | ||
7969 | \gdef^^ae{\v Z} | ||
7970 | \gdef^^af{\dotaccent Z} | ||
7971 | % | ||
7972 | \gdef^^b0{\textdegree} | ||
7973 | \gdef^^b1{\missingcharmsg{LATIN SMALL LETTER A WITH OGONEK}} | ||
7974 | \gdef^^b2{\missingcharmsg{OGONEK}} | ||
7975 | \gdef^^b3{\l} | ||
7976 | \gdef^^b4{\'{}} | ||
7977 | \gdef^^b5{\v l} | ||
7978 | \gdef^^b6{\'s} | ||
7979 | \gdef^^b7{\v{}} | ||
7980 | \gdef^^b8{\cedilla\ } | ||
7981 | \gdef^^b9{\v s} | ||
7982 | \gdef^^ba{\cedilla s} | ||
7983 | \gdef^^bb{\v t} | ||
7984 | \gdef^^bc{\'z} | ||
7985 | \gdef^^bd{\H{}} | ||
7986 | \gdef^^be{\v z} | ||
7987 | \gdef^^bf{\dotaccent z} | ||
7988 | % | ||
7989 | \gdef^^c0{\'R} | ||
7990 | \gdef^^c1{\'A} | ||
7991 | \gdef^^c2{\^A} | ||
7992 | \gdef^^c3{\u A} | ||
7993 | \gdef^^c4{\"A} | ||
7994 | \gdef^^c5{\'L} | ||
7995 | \gdef^^c6{\'C} | ||
7996 | \gdef^^c7{\cedilla C} | ||
7997 | \gdef^^c8{\v C} | ||
7998 | \gdef^^c9{\'E} | ||
7999 | \gdef^^ca{\missingcharmsg{LATIN CAPITAL LETTER E WITH OGONEK}} | ||
8000 | \gdef^^cb{\"E} | ||
8001 | \gdef^^cc{\v E} | ||
8002 | \gdef^^cd{\'I} | ||
8003 | \gdef^^ce{\^I} | ||
8004 | \gdef^^cf{\v D} | ||
8005 | % | ||
8006 | \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER D WITH STROKE}} | ||
8007 | \gdef^^d1{\'N} | ||
8008 | \gdef^^d2{\v N} | ||
8009 | \gdef^^d3{\'O} | ||
8010 | \gdef^^d4{\^O} | ||
8011 | \gdef^^d5{\H O} | ||
8012 | \gdef^^d6{\"O} | ||
8013 | \gdef^^d7{$\times$} | ||
8014 | \gdef^^d8{\v R} | ||
8015 | \gdef^^d9{\ringaccent U} | ||
8016 | \gdef^^da{\'U} | ||
8017 | \gdef^^db{\H U} | ||
8018 | \gdef^^dc{\"U} | ||
8019 | \gdef^^dd{\'Y} | ||
8020 | \gdef^^de{\cedilla T} | ||
8021 | \gdef^^df{\ss} | ||
8022 | % | ||
8023 | \gdef^^e0{\'r} | ||
8024 | \gdef^^e1{\'a} | ||
8025 | \gdef^^e2{\^a} | ||
8026 | \gdef^^e3{\u a} | ||
8027 | \gdef^^e4{\"a} | ||
8028 | \gdef^^e5{\'l} | ||
8029 | \gdef^^e6{\'c} | ||
8030 | \gdef^^e7{\cedilla c} | ||
8031 | \gdef^^e8{\v c} | ||
8032 | \gdef^^e9{\'e} | ||
8033 | \gdef^^ea{\missingcharmsg{LATIN SMALL LETTER E WITH OGONEK}} | ||
8034 | \gdef^^eb{\"e} | ||
8035 | \gdef^^ec{\v e} | ||
8036 | \gdef^^ed{\'\i} | ||
8037 | \gdef^^ee{\^\i} | ||
8038 | \gdef^^ef{\v d} | ||
8039 | % | ||
8040 | \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER D WITH STROKE}} | ||
8041 | \gdef^^f1{\'n} | ||
8042 | \gdef^^f2{\v n} | ||
8043 | \gdef^^f3{\'o} | ||
8044 | \gdef^^f4{\^o} | ||
8045 | \gdef^^f5{\H o} | ||
8046 | \gdef^^f6{\"o} | ||
8047 | \gdef^^f7{$\div$} | ||
8048 | \gdef^^f8{\v r} | ||
8049 | \gdef^^f9{\ringaccent u} | ||
8050 | \gdef^^fa{\'u} | ||
8051 | \gdef^^fb{\H u} | ||
8052 | \gdef^^fc{\"u} | ||
8053 | \gdef^^fd{\'y} | ||
8054 | \gdef^^fe{\cedilla t} | ||
8055 | \gdef^^ff{\dotaccent{}} | ||
8056 | } | ||
8057 | |||
8058 | % UTF-8 character definitions. | ||
8059 | % | ||
8060 | % This code to support UTF-8 is based on LaTeX's utf8.def, with some | ||
8061 | % changes for Texinfo conventions. It is included here under the GPL by | ||
8062 | % permission from Frank Mittelbach and the LaTeX team. | ||
8063 | % | ||
8064 | \newcount\countUTFx | ||
8065 | \newcount\countUTFy | ||
8066 | \newcount\countUTFz | ||
8067 | 6828 | ||
8068 | \gdef\UTFviiiTwoOctets#1#2{\expandafter | 6829 | % Page size parameters. |
8069 | \UTFviiiDefined\csname u8:#1\string #2\endcsname} | ||
8070 | % | ||
8071 | \gdef\UTFviiiThreeOctets#1#2#3{\expandafter | ||
8072 | \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname} | ||
8073 | % | 6830 | % |
8074 | \gdef\UTFviiiFourOctets#1#2#3#4{\expandafter | ||
8075 | \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname} | ||
8076 | |||
8077 | \gdef\UTFviiiDefined#1{% | ||
8078 | \ifx #1\relax | ||
8079 | \message{\linenumber Unicode char \string #1 not defined for Texinfo}% | ||
8080 | \else | ||
8081 | \expandafter #1% | ||
8082 | \fi | ||
8083 | } | ||
8084 | |||
8085 | \begingroup | ||
8086 | \catcode`\~13 | ||
8087 | \catcode`\"12 | ||
8088 | |||
8089 | \def\UTFviiiLoop{% | ||
8090 | \global\catcode\countUTFx\active | ||
8091 | \uccode`\~\countUTFx | ||
8092 | \uppercase\expandafter{\UTFviiiTmp}% | ||
8093 | \advance\countUTFx by 1 | ||
8094 | \ifnum\countUTFx < \countUTFy | ||
8095 | \expandafter\UTFviiiLoop | ||
8096 | \fi} | ||
8097 | |||
8098 | \countUTFx = "C2 | ||
8099 | \countUTFy = "E0 | ||
8100 | \def\UTFviiiTmp{% | ||
8101 | \xdef~{\noexpand\UTFviiiTwoOctets\string~}} | ||
8102 | \UTFviiiLoop | ||
8103 | |||
8104 | \countUTFx = "E0 | ||
8105 | \countUTFy = "F0 | ||
8106 | \def\UTFviiiTmp{% | ||
8107 | \xdef~{\noexpand\UTFviiiThreeOctets\string~}} | ||
8108 | \UTFviiiLoop | ||
8109 | |||
8110 | \countUTFx = "F0 | ||
8111 | \countUTFy = "F4 | ||
8112 | \def\UTFviiiTmp{% | ||
8113 | \xdef~{\noexpand\UTFviiiFourOctets\string~}} | ||
8114 | \UTFviiiLoop | ||
8115 | \endgroup | ||
8116 | |||
8117 | \begingroup | ||
8118 | \catcode`\"=12 | ||
8119 | \catcode`\<=12 | ||
8120 | \catcode`\.=12 | ||
8121 | \catcode`\,=12 | ||
8122 | \catcode`\;=12 | ||
8123 | \catcode`\!=12 | ||
8124 | \catcode`\~=13 | ||
8125 | |||
8126 | \gdef\DeclareUnicodeCharacter#1#2{% | ||
8127 | \countUTFz = "#1\relax | ||
8128 | \wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}% | ||
8129 | \begingroup | ||
8130 | \parseXMLCharref | ||
8131 | \def\UTFviiiTwoOctets##1##2{% | ||
8132 | \csname u8:##1\string ##2\endcsname}% | ||
8133 | \def\UTFviiiThreeOctets##1##2##3{% | ||
8134 | \csname u8:##1\string ##2\string ##3\endcsname}% | ||
8135 | \def\UTFviiiFourOctets##1##2##3##4{% | ||
8136 | \csname u8:##1\string ##2\string ##3\string ##4\endcsname}% | ||
8137 | \expandafter\expandafter\expandafter\expandafter | ||
8138 | \expandafter\expandafter\expandafter | ||
8139 | \gdef\UTFviiiTmp{#2}% | ||
8140 | \endgroup} | ||
8141 | |||
8142 | \gdef\parseXMLCharref{% | ||
8143 | \ifnum\countUTFz < "A0\relax | ||
8144 | \errhelp = \EMsimple | ||
8145 | \errmessage{Cannot define Unicode char value < 00A0}% | ||
8146 | \else\ifnum\countUTFz < "800\relax | ||
8147 | \parseUTFviiiA,% | ||
8148 | \parseUTFviiiB C\UTFviiiTwoOctets.,% | ||
8149 | \else\ifnum\countUTFz < "10000\relax | ||
8150 | \parseUTFviiiA;% | ||
8151 | \parseUTFviiiA,% | ||
8152 | \parseUTFviiiB E\UTFviiiThreeOctets.{,;}% | ||
8153 | \else | ||
8154 | \parseUTFviiiA;% | ||
8155 | \parseUTFviiiA,% | ||
8156 | \parseUTFviiiA!% | ||
8157 | \parseUTFviiiB F\UTFviiiFourOctets.{!,;}% | ||
8158 | \fi\fi\fi | ||
8159 | } | ||
8160 | |||
8161 | \gdef\parseUTFviiiA#1{% | ||
8162 | \countUTFx = \countUTFz | ||
8163 | \divide\countUTFz by 64 | ||
8164 | \countUTFy = \countUTFz | ||
8165 | \multiply\countUTFz by 64 | ||
8166 | \advance\countUTFx by -\countUTFz | ||
8167 | \advance\countUTFx by 128 | ||
8168 | \uccode `#1\countUTFx | ||
8169 | \countUTFz = \countUTFy} | ||
8170 | |||
8171 | \gdef\parseUTFviiiB#1#2#3#4{% | ||
8172 | \advance\countUTFz by "#10\relax | ||
8173 | \uccode `#3\countUTFz | ||
8174 | \uppercase{\gdef\UTFviiiTmp{#2#3#4}}} | ||
8175 | \endgroup | ||
8176 | |||
8177 | \def\utfeightchardefs{% | ||
8178 | \DeclareUnicodeCharacter{00A0}{\tie} | ||
8179 | \DeclareUnicodeCharacter{00A1}{\exclamdown} | ||
8180 | \DeclareUnicodeCharacter{00A3}{\pounds} | ||
8181 | \DeclareUnicodeCharacter{00A8}{\"{ }} | ||
8182 | \DeclareUnicodeCharacter{00A9}{\copyright} | ||
8183 | \DeclareUnicodeCharacter{00AA}{\ordf} | ||
8184 | \DeclareUnicodeCharacter{00AB}{\guillemetleft} | ||
8185 | \DeclareUnicodeCharacter{00AD}{\-} | ||
8186 | \DeclareUnicodeCharacter{00AE}{\registeredsymbol} | ||
8187 | \DeclareUnicodeCharacter{00AF}{\={ }} | ||
8188 | |||
8189 | \DeclareUnicodeCharacter{00B0}{\ringaccent{ }} | ||
8190 | \DeclareUnicodeCharacter{00B4}{\'{ }} | ||
8191 | \DeclareUnicodeCharacter{00B8}{\cedilla{ }} | ||
8192 | \DeclareUnicodeCharacter{00BA}{\ordm} | ||
8193 | \DeclareUnicodeCharacter{00BB}{\guillemetright} | ||
8194 | \DeclareUnicodeCharacter{00BF}{\questiondown} | ||
8195 | |||
8196 | \DeclareUnicodeCharacter{00C0}{\`A} | ||
8197 | \DeclareUnicodeCharacter{00C1}{\'A} | ||
8198 | \DeclareUnicodeCharacter{00C2}{\^A} | ||
8199 | \DeclareUnicodeCharacter{00C3}{\~A} | ||
8200 | \DeclareUnicodeCharacter{00C4}{\"A} | ||
8201 | \DeclareUnicodeCharacter{00C5}{\AA} | ||
8202 | \DeclareUnicodeCharacter{00C6}{\AE} | ||
8203 | \DeclareUnicodeCharacter{00C7}{\cedilla{C}} | ||
8204 | \DeclareUnicodeCharacter{00C8}{\`E} | ||
8205 | \DeclareUnicodeCharacter{00C9}{\'E} | ||
8206 | \DeclareUnicodeCharacter{00CA}{\^E} | ||
8207 | \DeclareUnicodeCharacter{00CB}{\"E} | ||
8208 | \DeclareUnicodeCharacter{00CC}{\`I} | ||
8209 | \DeclareUnicodeCharacter{00CD}{\'I} | ||
8210 | \DeclareUnicodeCharacter{00CE}{\^I} | ||
8211 | \DeclareUnicodeCharacter{00CF}{\"I} | ||
8212 | |||
8213 | \DeclareUnicodeCharacter{00D1}{\~N} | ||
8214 | \DeclareUnicodeCharacter{00D2}{\`O} | ||
8215 | \DeclareUnicodeCharacter{00D3}{\'O} | ||
8216 | \DeclareUnicodeCharacter{00D4}{\^O} | ||
8217 | \DeclareUnicodeCharacter{00D5}{\~O} | ||
8218 | \DeclareUnicodeCharacter{00D6}{\"O} | ||
8219 | \DeclareUnicodeCharacter{00D8}{\O} | ||
8220 | \DeclareUnicodeCharacter{00D9}{\`U} | ||
8221 | \DeclareUnicodeCharacter{00DA}{\'U} | ||
8222 | \DeclareUnicodeCharacter{00DB}{\^U} | ||
8223 | \DeclareUnicodeCharacter{00DC}{\"U} | ||
8224 | \DeclareUnicodeCharacter{00DD}{\'Y} | ||
8225 | \DeclareUnicodeCharacter{00DF}{\ss} | ||
8226 | |||
8227 | \DeclareUnicodeCharacter{00E0}{\`a} | ||
8228 | \DeclareUnicodeCharacter{00E1}{\'a} | ||
8229 | \DeclareUnicodeCharacter{00E2}{\^a} | ||
8230 | \DeclareUnicodeCharacter{00E3}{\~a} | ||
8231 | \DeclareUnicodeCharacter{00E4}{\"a} | ||
8232 | \DeclareUnicodeCharacter{00E5}{\aa} | ||
8233 | \DeclareUnicodeCharacter{00E6}{\ae} | ||
8234 | \DeclareUnicodeCharacter{00E7}{\cedilla{c}} | ||
8235 | \DeclareUnicodeCharacter{00E8}{\`e} | ||
8236 | \DeclareUnicodeCharacter{00E9}{\'e} | ||
8237 | \DeclareUnicodeCharacter{00EA}{\^e} | ||
8238 | \DeclareUnicodeCharacter{00EB}{\"e} | ||
8239 | \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}} | ||
8240 | \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}} | ||
8241 | \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}} | ||
8242 | \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}} | ||
8243 | |||
8244 | \DeclareUnicodeCharacter{00F1}{\~n} | ||
8245 | \DeclareUnicodeCharacter{00F2}{\`o} | ||
8246 | \DeclareUnicodeCharacter{00F3}{\'o} | ||
8247 | \DeclareUnicodeCharacter{00F4}{\^o} | ||
8248 | \DeclareUnicodeCharacter{00F5}{\~o} | ||
8249 | \DeclareUnicodeCharacter{00F6}{\"o} | ||
8250 | \DeclareUnicodeCharacter{00F8}{\o} | ||
8251 | \DeclareUnicodeCharacter{00F9}{\`u} | ||
8252 | \DeclareUnicodeCharacter{00FA}{\'u} | ||
8253 | \DeclareUnicodeCharacter{00FB}{\^u} | ||
8254 | \DeclareUnicodeCharacter{00FC}{\"u} | ||
8255 | \DeclareUnicodeCharacter{00FD}{\'y} | ||
8256 | \DeclareUnicodeCharacter{00FF}{\"y} | ||
8257 | |||
8258 | \DeclareUnicodeCharacter{0100}{\=A} | ||
8259 | \DeclareUnicodeCharacter{0101}{\=a} | ||
8260 | \DeclareUnicodeCharacter{0102}{\u{A}} | ||
8261 | \DeclareUnicodeCharacter{0103}{\u{a}} | ||
8262 | \DeclareUnicodeCharacter{0106}{\'C} | ||
8263 | \DeclareUnicodeCharacter{0107}{\'c} | ||
8264 | \DeclareUnicodeCharacter{0108}{\^C} | ||
8265 | \DeclareUnicodeCharacter{0109}{\^c} | ||
8266 | \DeclareUnicodeCharacter{010A}{\dotaccent{C}} | ||
8267 | \DeclareUnicodeCharacter{010B}{\dotaccent{c}} | ||
8268 | \DeclareUnicodeCharacter{010C}{\v{C}} | ||
8269 | \DeclareUnicodeCharacter{010D}{\v{c}} | ||
8270 | \DeclareUnicodeCharacter{010E}{\v{D}} | ||
8271 | |||
8272 | \DeclareUnicodeCharacter{0112}{\=E} | ||
8273 | \DeclareUnicodeCharacter{0113}{\=e} | ||
8274 | \DeclareUnicodeCharacter{0114}{\u{E}} | ||
8275 | \DeclareUnicodeCharacter{0115}{\u{e}} | ||
8276 | \DeclareUnicodeCharacter{0116}{\dotaccent{E}} | ||
8277 | \DeclareUnicodeCharacter{0117}{\dotaccent{e}} | ||
8278 | \DeclareUnicodeCharacter{011A}{\v{E}} | ||
8279 | \DeclareUnicodeCharacter{011B}{\v{e}} | ||
8280 | \DeclareUnicodeCharacter{011C}{\^G} | ||
8281 | \DeclareUnicodeCharacter{011D}{\^g} | ||
8282 | \DeclareUnicodeCharacter{011E}{\u{G}} | ||
8283 | \DeclareUnicodeCharacter{011F}{\u{g}} | ||
8284 | |||
8285 | \DeclareUnicodeCharacter{0120}{\dotaccent{G}} | ||
8286 | \DeclareUnicodeCharacter{0121}{\dotaccent{g}} | ||
8287 | \DeclareUnicodeCharacter{0124}{\^H} | ||
8288 | \DeclareUnicodeCharacter{0125}{\^h} | ||
8289 | \DeclareUnicodeCharacter{0128}{\~I} | ||
8290 | \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}} | ||
8291 | \DeclareUnicodeCharacter{012A}{\=I} | ||
8292 | \DeclareUnicodeCharacter{012B}{\={\dotless{i}}} | ||
8293 | \DeclareUnicodeCharacter{012C}{\u{I}} | ||
8294 | \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}} | ||
8295 | |||
8296 | \DeclareUnicodeCharacter{0130}{\dotaccent{I}} | ||
8297 | \DeclareUnicodeCharacter{0131}{\dotless{i}} | ||
8298 | \DeclareUnicodeCharacter{0132}{IJ} | ||
8299 | \DeclareUnicodeCharacter{0133}{ij} | ||
8300 | \DeclareUnicodeCharacter{0134}{\^J} | ||
8301 | \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}} | ||
8302 | \DeclareUnicodeCharacter{0139}{\'L} | ||
8303 | \DeclareUnicodeCharacter{013A}{\'l} | ||
8304 | |||
8305 | \DeclareUnicodeCharacter{0141}{\L} | ||
8306 | \DeclareUnicodeCharacter{0142}{\l} | ||
8307 | \DeclareUnicodeCharacter{0143}{\'N} | ||
8308 | \DeclareUnicodeCharacter{0144}{\'n} | ||
8309 | \DeclareUnicodeCharacter{0147}{\v{N}} | ||
8310 | \DeclareUnicodeCharacter{0148}{\v{n}} | ||
8311 | \DeclareUnicodeCharacter{014C}{\=O} | ||
8312 | \DeclareUnicodeCharacter{014D}{\=o} | ||
8313 | \DeclareUnicodeCharacter{014E}{\u{O}} | ||
8314 | \DeclareUnicodeCharacter{014F}{\u{o}} | ||
8315 | |||
8316 | \DeclareUnicodeCharacter{0150}{\H{O}} | ||
8317 | \DeclareUnicodeCharacter{0151}{\H{o}} | ||
8318 | \DeclareUnicodeCharacter{0152}{\OE} | ||
8319 | \DeclareUnicodeCharacter{0153}{\oe} | ||
8320 | \DeclareUnicodeCharacter{0154}{\'R} | ||
8321 | \DeclareUnicodeCharacter{0155}{\'r} | ||
8322 | \DeclareUnicodeCharacter{0158}{\v{R}} | ||
8323 | \DeclareUnicodeCharacter{0159}{\v{r}} | ||
8324 | \DeclareUnicodeCharacter{015A}{\'S} | ||
8325 | \DeclareUnicodeCharacter{015B}{\'s} | ||
8326 | \DeclareUnicodeCharacter{015C}{\^S} | ||
8327 | \DeclareUnicodeCharacter{015D}{\^s} | ||
8328 | \DeclareUnicodeCharacter{015E}{\cedilla{S}} | ||
8329 | \DeclareUnicodeCharacter{015F}{\cedilla{s}} | ||
8330 | |||
8331 | \DeclareUnicodeCharacter{0160}{\v{S}} | ||
8332 | \DeclareUnicodeCharacter{0161}{\v{s}} | ||
8333 | \DeclareUnicodeCharacter{0162}{\cedilla{t}} | ||
8334 | \DeclareUnicodeCharacter{0163}{\cedilla{T}} | ||
8335 | \DeclareUnicodeCharacter{0164}{\v{T}} | ||
8336 | |||
8337 | \DeclareUnicodeCharacter{0168}{\~U} | ||
8338 | \DeclareUnicodeCharacter{0169}{\~u} | ||
8339 | \DeclareUnicodeCharacter{016A}{\=U} | ||
8340 | \DeclareUnicodeCharacter{016B}{\=u} | ||
8341 | \DeclareUnicodeCharacter{016C}{\u{U}} | ||
8342 | \DeclareUnicodeCharacter{016D}{\u{u}} | ||
8343 | \DeclareUnicodeCharacter{016E}{\ringaccent{U}} | ||
8344 | \DeclareUnicodeCharacter{016F}{\ringaccent{u}} | ||
8345 | |||
8346 | \DeclareUnicodeCharacter{0170}{\H{U}} | ||
8347 | \DeclareUnicodeCharacter{0171}{\H{u}} | ||
8348 | \DeclareUnicodeCharacter{0174}{\^W} | ||
8349 | \DeclareUnicodeCharacter{0175}{\^w} | ||
8350 | \DeclareUnicodeCharacter{0176}{\^Y} | ||
8351 | \DeclareUnicodeCharacter{0177}{\^y} | ||
8352 | \DeclareUnicodeCharacter{0178}{\"Y} | ||
8353 | \DeclareUnicodeCharacter{0179}{\'Z} | ||
8354 | \DeclareUnicodeCharacter{017A}{\'z} | ||
8355 | \DeclareUnicodeCharacter{017B}{\dotaccent{Z}} | ||
8356 | \DeclareUnicodeCharacter{017C}{\dotaccent{z}} | ||
8357 | \DeclareUnicodeCharacter{017D}{\v{Z}} | ||
8358 | \DeclareUnicodeCharacter{017E}{\v{z}} | ||
8359 | |||
8360 | \DeclareUnicodeCharacter{01C4}{D\v{Z}} | ||
8361 | \DeclareUnicodeCharacter{01C5}{D\v{z}} | ||
8362 | \DeclareUnicodeCharacter{01C6}{d\v{z}} | ||
8363 | \DeclareUnicodeCharacter{01C7}{LJ} | ||
8364 | \DeclareUnicodeCharacter{01C8}{Lj} | ||
8365 | \DeclareUnicodeCharacter{01C9}{lj} | ||
8366 | \DeclareUnicodeCharacter{01CA}{NJ} | ||
8367 | \DeclareUnicodeCharacter{01CB}{Nj} | ||
8368 | \DeclareUnicodeCharacter{01CC}{nj} | ||
8369 | \DeclareUnicodeCharacter{01CD}{\v{A}} | ||
8370 | \DeclareUnicodeCharacter{01CE}{\v{a}} | ||
8371 | \DeclareUnicodeCharacter{01CF}{\v{I}} | ||
8372 | |||
8373 | \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}} | ||
8374 | \DeclareUnicodeCharacter{01D1}{\v{O}} | ||
8375 | \DeclareUnicodeCharacter{01D2}{\v{o}} | ||
8376 | \DeclareUnicodeCharacter{01D3}{\v{U}} | ||
8377 | \DeclareUnicodeCharacter{01D4}{\v{u}} | ||
8378 | |||
8379 | \DeclareUnicodeCharacter{01E2}{\={\AE}} | ||
8380 | \DeclareUnicodeCharacter{01E3}{\={\ae}} | ||
8381 | \DeclareUnicodeCharacter{01E6}{\v{G}} | ||
8382 | \DeclareUnicodeCharacter{01E7}{\v{g}} | ||
8383 | \DeclareUnicodeCharacter{01E8}{\v{K}} | ||
8384 | \DeclareUnicodeCharacter{01E9}{\v{k}} | ||
8385 | |||
8386 | \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}} | ||
8387 | \DeclareUnicodeCharacter{01F1}{DZ} | ||
8388 | \DeclareUnicodeCharacter{01F2}{Dz} | ||
8389 | \DeclareUnicodeCharacter{01F3}{dz} | ||
8390 | \DeclareUnicodeCharacter{01F4}{\'G} | ||
8391 | \DeclareUnicodeCharacter{01F5}{\'g} | ||
8392 | \DeclareUnicodeCharacter{01F8}{\`N} | ||
8393 | \DeclareUnicodeCharacter{01F9}{\`n} | ||
8394 | \DeclareUnicodeCharacter{01FC}{\'{\AE}} | ||
8395 | \DeclareUnicodeCharacter{01FD}{\'{\ae}} | ||
8396 | \DeclareUnicodeCharacter{01FE}{\'{\O}} | ||
8397 | \DeclareUnicodeCharacter{01FF}{\'{\o}} | ||
8398 | |||
8399 | \DeclareUnicodeCharacter{021E}{\v{H}} | ||
8400 | \DeclareUnicodeCharacter{021F}{\v{h}} | ||
8401 | |||
8402 | \DeclareUnicodeCharacter{0226}{\dotaccent{A}} | ||
8403 | \DeclareUnicodeCharacter{0227}{\dotaccent{a}} | ||
8404 | \DeclareUnicodeCharacter{0228}{\cedilla{E}} | ||
8405 | \DeclareUnicodeCharacter{0229}{\cedilla{e}} | ||
8406 | \DeclareUnicodeCharacter{022E}{\dotaccent{O}} | ||
8407 | \DeclareUnicodeCharacter{022F}{\dotaccent{o}} | ||
8408 | |||
8409 | \DeclareUnicodeCharacter{0232}{\=Y} | ||
8410 | \DeclareUnicodeCharacter{0233}{\=y} | ||
8411 | \DeclareUnicodeCharacter{0237}{\dotless{j}} | ||
8412 | |||
8413 | \DeclareUnicodeCharacter{1E02}{\dotaccent{B}} | ||
8414 | \DeclareUnicodeCharacter{1E03}{\dotaccent{b}} | ||
8415 | \DeclareUnicodeCharacter{1E04}{\udotaccent{B}} | ||
8416 | \DeclareUnicodeCharacter{1E05}{\udotaccent{b}} | ||
8417 | \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}} | ||
8418 | \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}} | ||
8419 | \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}} | ||
8420 | \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}} | ||
8421 | \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}} | ||
8422 | \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}} | ||
8423 | \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}} | ||
8424 | \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}} | ||
8425 | |||
8426 | \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}} | ||
8427 | \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}} | ||
8428 | |||
8429 | \DeclareUnicodeCharacter{1E20}{\=G} | ||
8430 | \DeclareUnicodeCharacter{1E21}{\=g} | ||
8431 | \DeclareUnicodeCharacter{1E22}{\dotaccent{H}} | ||
8432 | \DeclareUnicodeCharacter{1E23}{\dotaccent{h}} | ||
8433 | \DeclareUnicodeCharacter{1E24}{\udotaccent{H}} | ||
8434 | \DeclareUnicodeCharacter{1E25}{\udotaccent{h}} | ||
8435 | \DeclareUnicodeCharacter{1E26}{\"H} | ||
8436 | \DeclareUnicodeCharacter{1E27}{\"h} | ||
8437 | |||
8438 | \DeclareUnicodeCharacter{1E30}{\'K} | ||
8439 | \DeclareUnicodeCharacter{1E31}{\'k} | ||
8440 | \DeclareUnicodeCharacter{1E32}{\udotaccent{K}} | ||
8441 | \DeclareUnicodeCharacter{1E33}{\udotaccent{k}} | ||
8442 | \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}} | ||
8443 | \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}} | ||
8444 | \DeclareUnicodeCharacter{1E36}{\udotaccent{L}} | ||
8445 | \DeclareUnicodeCharacter{1E37}{\udotaccent{l}} | ||
8446 | \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}} | ||
8447 | \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}} | ||
8448 | \DeclareUnicodeCharacter{1E3E}{\'M} | ||
8449 | \DeclareUnicodeCharacter{1E3F}{\'m} | ||
8450 | |||
8451 | \DeclareUnicodeCharacter{1E40}{\dotaccent{M}} | ||
8452 | \DeclareUnicodeCharacter{1E41}{\dotaccent{m}} | ||
8453 | \DeclareUnicodeCharacter{1E42}{\udotaccent{M}} | ||
8454 | \DeclareUnicodeCharacter{1E43}{\udotaccent{m}} | ||
8455 | \DeclareUnicodeCharacter{1E44}{\dotaccent{N}} | ||
8456 | \DeclareUnicodeCharacter{1E45}{\dotaccent{n}} | ||
8457 | \DeclareUnicodeCharacter{1E46}{\udotaccent{N}} | ||
8458 | \DeclareUnicodeCharacter{1E47}{\udotaccent{n}} | ||
8459 | \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}} | ||
8460 | \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}} | ||
8461 | |||
8462 | \DeclareUnicodeCharacter{1E54}{\'P} | ||
8463 | \DeclareUnicodeCharacter{1E55}{\'p} | ||
8464 | \DeclareUnicodeCharacter{1E56}{\dotaccent{P}} | ||
8465 | \DeclareUnicodeCharacter{1E57}{\dotaccent{p}} | ||
8466 | \DeclareUnicodeCharacter{1E58}{\dotaccent{R}} | ||
8467 | \DeclareUnicodeCharacter{1E59}{\dotaccent{r}} | ||
8468 | \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}} | ||
8469 | \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}} | ||
8470 | \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}} | ||
8471 | \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}} | ||
8472 | |||
8473 | \DeclareUnicodeCharacter{1E60}{\dotaccent{S}} | ||
8474 | \DeclareUnicodeCharacter{1E61}{\dotaccent{s}} | ||
8475 | \DeclareUnicodeCharacter{1E62}{\udotaccent{S}} | ||
8476 | \DeclareUnicodeCharacter{1E63}{\udotaccent{s}} | ||
8477 | \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}} | ||
8478 | \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}} | ||
8479 | \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}} | ||
8480 | \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}} | ||
8481 | \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}} | ||
8482 | \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}} | ||
8483 | |||
8484 | \DeclareUnicodeCharacter{1E7C}{\~V} | ||
8485 | \DeclareUnicodeCharacter{1E7D}{\~v} | ||
8486 | \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}} | ||
8487 | \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}} | ||
8488 | |||
8489 | \DeclareUnicodeCharacter{1E80}{\`W} | ||
8490 | \DeclareUnicodeCharacter{1E81}{\`w} | ||
8491 | \DeclareUnicodeCharacter{1E82}{\'W} | ||
8492 | \DeclareUnicodeCharacter{1E83}{\'w} | ||
8493 | \DeclareUnicodeCharacter{1E84}{\"W} | ||
8494 | \DeclareUnicodeCharacter{1E85}{\"w} | ||
8495 | \DeclareUnicodeCharacter{1E86}{\dotaccent{W}} | ||
8496 | \DeclareUnicodeCharacter{1E87}{\dotaccent{w}} | ||
8497 | \DeclareUnicodeCharacter{1E88}{\udotaccent{W}} | ||
8498 | \DeclareUnicodeCharacter{1E89}{\udotaccent{w}} | ||
8499 | \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}} | ||
8500 | \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}} | ||
8501 | \DeclareUnicodeCharacter{1E8C}{\"X} | ||
8502 | \DeclareUnicodeCharacter{1E8D}{\"x} | ||
8503 | \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}} | ||
8504 | \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}} | ||
8505 | |||
8506 | \DeclareUnicodeCharacter{1E90}{\^Z} | ||
8507 | \DeclareUnicodeCharacter{1E91}{\^z} | ||
8508 | \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}} | ||
8509 | \DeclareUnicodeCharacter{1E93}{\udotaccent{z}} | ||
8510 | \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}} | ||
8511 | \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}} | ||
8512 | \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}} | ||
8513 | \DeclareUnicodeCharacter{1E97}{\"t} | ||
8514 | \DeclareUnicodeCharacter{1E98}{\ringaccent{w}} | ||
8515 | \DeclareUnicodeCharacter{1E99}{\ringaccent{y}} | ||
8516 | |||
8517 | \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}} | ||
8518 | \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}} | ||
8519 | |||
8520 | \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}} | ||
8521 | \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}} | ||
8522 | \DeclareUnicodeCharacter{1EBC}{\~E} | ||
8523 | \DeclareUnicodeCharacter{1EBD}{\~e} | ||
8524 | |||
8525 | \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}} | ||
8526 | \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}} | ||
8527 | \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}} | ||
8528 | \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}} | ||
8529 | |||
8530 | \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}} | ||
8531 | \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}} | ||
8532 | |||
8533 | \DeclareUnicodeCharacter{1EF2}{\`Y} | ||
8534 | \DeclareUnicodeCharacter{1EF3}{\`y} | ||
8535 | \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}} | ||
8536 | |||
8537 | \DeclareUnicodeCharacter{1EF8}{\~Y} | ||
8538 | \DeclareUnicodeCharacter{1EF9}{\~y} | ||
8539 | |||
8540 | \DeclareUnicodeCharacter{2013}{--} | ||
8541 | \DeclareUnicodeCharacter{2014}{---} | ||
8542 | \DeclareUnicodeCharacter{2018}{\quoteleft} | ||
8543 | \DeclareUnicodeCharacter{2019}{\quoteright} | ||
8544 | \DeclareUnicodeCharacter{201A}{\quotesinglbase} | ||
8545 | \DeclareUnicodeCharacter{201C}{\quotedblleft} | ||
8546 | \DeclareUnicodeCharacter{201D}{\quotedblright} | ||
8547 | \DeclareUnicodeCharacter{201E}{\quotedblbase} | ||
8548 | \DeclareUnicodeCharacter{2022}{\bullet} | ||
8549 | \DeclareUnicodeCharacter{2026}{\dots} | ||
8550 | \DeclareUnicodeCharacter{2039}{\guilsinglleft} | ||
8551 | \DeclareUnicodeCharacter{203A}{\guilsinglright} | ||
8552 | \DeclareUnicodeCharacter{20AC}{\euro} | ||
8553 | |||
8554 | \DeclareUnicodeCharacter{2192}{\expansion} | ||
8555 | \DeclareUnicodeCharacter{21D2}{\result} | ||
8556 | |||
8557 | \DeclareUnicodeCharacter{2212}{\minus} | ||
8558 | \DeclareUnicodeCharacter{2217}{\point} | ||
8559 | \DeclareUnicodeCharacter{2261}{\equiv} | ||
8560 | }% end of \utfeightchardefs | ||
8561 | |||
8562 | |||
8563 | % US-ASCII character definitions. | ||
8564 | \def\asciichardefs{% nothing need be done | ||
8565 | \relax | ||
8566 | } | ||
8567 | |||
8568 | % Make non-ASCII characters printable again for compatibility with | ||
8569 | % existing Texinfo documents that may use them, even without declaring a | ||
8570 | % document encoding. | ||
8571 | % | ||
8572 | \setnonasciicharscatcode \other | ||
8573 | |||
8574 | |||
8575 | \message{formatting,} | ||
8576 | |||
8577 | \newdimen\defaultparindent \defaultparindent = 15pt | 6831 | \newdimen\defaultparindent \defaultparindent = 15pt |
8578 | 6832 | ||
8579 | \chapheadingskip = 15pt plus 4pt minus 2pt | 6833 | \chapheadingskip = 15pt plus 4pt minus 2pt |
@@ -8586,7 +6840,7 @@ should work if nowhere else does.} | |||
8586 | % Don't be so finicky about underfull hboxes, either. | 6840 | % Don't be so finicky about underfull hboxes, either. |
8587 | \hbadness = 2000 | 6841 | \hbadness = 2000 |
8588 | 6842 | ||
8589 | % Following George Bush, get rid of widows and orphans. | 6843 | % Following George Bush, just get rid of widows and orphans. |
8590 | \widowpenalty=10000 | 6844 | \widowpenalty=10000 |
8591 | \clubpenalty=10000 | 6845 | \clubpenalty=10000 |
8592 | 6846 | ||
@@ -8633,10 +6887,6 @@ should work if nowhere else does.} | |||
8633 | \ifpdf | 6887 | \ifpdf |
8634 | \pdfpageheight #7\relax | 6888 | \pdfpageheight #7\relax |
8635 | \pdfpagewidth #8\relax | 6889 | \pdfpagewidth #8\relax |
8636 | % if we don't reset these, they will remain at "1 true in" of | ||
8637 | % whatever layout pdftex was dumped with. | ||
8638 | \pdfhorigin = 1 true in | ||
8639 | \pdfvorigin = 1 true in | ||
8640 | \fi | 6890 | \fi |
8641 | % | 6891 | % |
8642 | \setleading{\textleading} | 6892 | \setleading{\textleading} |
@@ -8651,7 +6901,7 @@ should work if nowhere else does.} | |||
8651 | \textleading = 13.2pt | 6901 | \textleading = 13.2pt |
8652 | % | 6902 | % |
8653 | % If page is nothing but text, make it come out even. | 6903 | % If page is nothing but text, make it come out even. |
8654 | \internalpagesizes{607.2pt}{6in}% that's 46 lines | 6904 | \internalpagesizes{46\baselineskip}{6in}% |
8655 | {\voffset}{.25in}% | 6905 | {\voffset}{.25in}% |
8656 | {\bindingoffset}{36pt}% | 6906 | {\bindingoffset}{36pt}% |
8657 | {11in}{8.5in}% | 6907 | {11in}{8.5in}% |
@@ -8663,7 +6913,7 @@ should work if nowhere else does.} | |||
8663 | \textleading = 12pt | 6913 | \textleading = 12pt |
8664 | % | 6914 | % |
8665 | \internalpagesizes{7.5in}{5in}% | 6915 | \internalpagesizes{7.5in}{5in}% |
8666 | {-.2in}{0in}% | 6916 | {\voffset}{.25in}% |
8667 | {\bindingoffset}{16pt}% | 6917 | {\bindingoffset}{16pt}% |
8668 | {9.25in}{7in}% | 6918 | {9.25in}{7in}% |
8669 | % | 6919 | % |
@@ -8707,7 +6957,7 @@ should work if nowhere else does.} | |||
8707 | % \global\normaloffset = -6mm | 6957 | % \global\normaloffset = -6mm |
8708 | % \global\bindingoffset = 10mm | 6958 | % \global\bindingoffset = 10mm |
8709 | % @end tex | 6959 | % @end tex |
8710 | \internalpagesizes{673.2pt}{160mm}% that's 51 lines | 6960 | \internalpagesizes{51\baselineskip}{160mm} |
8711 | {\voffset}{\hoffset}% | 6961 | {\voffset}{\hoffset}% |
8712 | {\bindingoffset}{44pt}% | 6962 | {\bindingoffset}{44pt}% |
8713 | {297mm}{210mm}% | 6963 | {297mm}{210mm}% |
@@ -8772,7 +7022,7 @@ should work if nowhere else does.} | |||
8772 | \parskip = 3pt plus 2pt minus 1pt | 7022 | \parskip = 3pt plus 2pt minus 1pt |
8773 | \setleading{\textleading}% | 7023 | \setleading{\textleading}% |
8774 | % | 7024 | % |
8775 | \dimen0 = #1\relax | 7025 | \dimen0 = #1 |
8776 | \advance\dimen0 by \voffset | 7026 | \advance\dimen0 by \voffset |
8777 | % | 7027 | % |
8778 | \dimen2 = \hsize | 7028 | \dimen2 = \hsize |
@@ -8867,13 +7117,6 @@ should work if nowhere else does.} | |||
8867 | % \otherifyactive is called near the end of this file. | 7117 | % \otherifyactive is called near the end of this file. |
8868 | \def\otherifyactive{\catcode`+=\other \catcode`\_=\other} | 7118 | \def\otherifyactive{\catcode`+=\other \catcode`\_=\other} |
8869 | 7119 | ||
8870 | % Used sometimes to turn off (effectively) the active characters even after | ||
8871 | % parsing them. | ||
8872 | \def\turnoffactive{% | ||
8873 | \normalturnoffactive | ||
8874 | \otherbackslash | ||
8875 | } | ||
8876 | |||
8877 | \catcode`\@=0 | 7120 | \catcode`\@=0 |
8878 | 7121 | ||
8879 | % \backslashcurfont outputs one backslash character in current font, | 7122 | % \backslashcurfont outputs one backslash character in current font, |
@@ -8881,29 +7124,28 @@ should work if nowhere else does.} | |||
8881 | \global\chardef\backslashcurfont=`\\ | 7124 | \global\chardef\backslashcurfont=`\\ |
8882 | \global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work | 7125 | \global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work |
8883 | 7126 | ||
7127 | % \rawbackslash defines an active \ to do \backslashcurfont. | ||
7128 | % \otherbackslash defines an active \ to be a literal `\' character with | ||
7129 | % catcode other. | ||
7130 | {\catcode`\\=\active | ||
7131 | @gdef@rawbackslash{@let\=@backslashcurfont} | ||
7132 | @gdef@otherbackslash{@let\=@realbackslash} | ||
7133 | } | ||
7134 | |||
8884 | % \realbackslash is an actual character `\' with catcode other, and | 7135 | % \realbackslash is an actual character `\' with catcode other, and |
8885 | % \doublebackslash is two of them (for the pdf outlines). | 7136 | % \doublebackslash is two of them (for the pdf outlines). |
8886 | {\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}} | 7137 | {\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}} |
8887 | 7138 | ||
8888 | % In texinfo, backslash is an active character; it prints the backslash | 7139 | % \normalbackslash outputs one backslash in fixed width font. |
8889 | % in fixed width font. | 7140 | \def\normalbackslash{{\tt\backslashcurfont}} |
8890 | \catcode`\\=\active | ||
8891 | @def@normalbackslash{{@tt@backslashcurfont}} | ||
8892 | % On startup, @fixbackslash assigns: | ||
8893 | % @let \ = @normalbackslash | ||
8894 | 7141 | ||
8895 | % \rawbackslash defines an active \ to do \backslashcurfont. | 7142 | \catcode`\\=\active |
8896 | % \otherbackslash defines an active \ to be a literal `\' character with | ||
8897 | % catcode other. | ||
8898 | @gdef@rawbackslash{@let\=@backslashcurfont} | ||
8899 | @gdef@otherbackslash{@let\=@realbackslash} | ||
8900 | 7143 | ||
8901 | % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of | 7144 | % Used sometimes to turn off (effectively) the active characters |
8902 | % the literal character `\'. | 7145 | % even after parsing them. |
8903 | % | 7146 | @def@turnoffactive{% |
8904 | @def@normalturnoffactive{% | ||
8905 | @let\=@normalbackslash | ||
8906 | @let"=@normaldoublequote | 7147 | @let"=@normaldoublequote |
7148 | @let\=@realbackslash | ||
8907 | @let~=@normaltilde | 7149 | @let~=@normaltilde |
8908 | @let^=@normalcaret | 7150 | @let^=@normalcaret |
8909 | @let_=@normalunderscore | 7151 | @let_=@normalunderscore |
@@ -8915,6 +7157,12 @@ should work if nowhere else does.} | |||
8915 | @unsepspaces | 7157 | @unsepspaces |
8916 | } | 7158 | } |
8917 | 7159 | ||
7160 | % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of | ||
7161 | % the literal character `\'. (Thus, \ is not expandable when this is in | ||
7162 | % effect.) | ||
7163 | % | ||
7164 | @def@normalturnoffactive{@turnoffactive @let\=@normalbackslash} | ||
7165 | |||
8918 | % Make _ and + \other characters, temporarily. | 7166 | % Make _ and + \other characters, temporarily. |
8919 | % This is canceled by @fixbackslash. | 7167 | % This is canceled by @fixbackslash. |
8920 | @otherifyactive | 7168 | @otherifyactive |
@@ -8927,7 +7175,7 @@ should work if nowhere else does.} | |||
8927 | @global@let\ = @eatinput | 7175 | @global@let\ = @eatinput |
8928 | 7176 | ||
8929 | % On the other hand, perhaps the file did not have a `\input texinfo'. Then | 7177 | % On the other hand, perhaps the file did not have a `\input texinfo'. Then |
8930 | % the first `\' in the file would cause an error. This macro tries to fix | 7178 | % the first `\{ in the file would cause an error. This macro tries to fix |
8931 | % that, assuming it is called before the first `\' could plausibly occur. | 7179 | % that, assuming it is called before the first `\' could plausibly occur. |
8932 | % Also turn back on active characters that might appear in the input | 7180 | % Also turn back on active characters that might appear in the input |
8933 | % file name, in case not using a pre-dumped format. | 7181 | % file name, in case not using a pre-dumped format. |