aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorGlenn Morris2009-10-29 16:46:52 +0000
committerGlenn Morris2009-10-29 16:46:52 +0000
commitd9a57abf8154b57d50371250348628e0102e28a2 (patch)
tree4d8ec287a3e8aff8a234a9979d0628fb34827420 /doc
parente0880dcffb6082aeb2a6b7faaafdcfb8b7acd125 (diff)
downloademacs-d9a57abf8154b57d50371250348628e0102e28a2.tar.gz
emacs-d9a57abf8154b57d50371250348628e0102e28a2.zip
Update to version 2009-08-14.15 from ftp://tug.org/tex/.
Diffstat (limited to 'doc')
-rw-r--r--doc/misc/ChangeLog4
-rw-r--r--doc/misc/texinfo.tex1321
2 files changed, 979 insertions, 346 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 512348f452a..1943862aa90 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,7 @@
12009-10-29 Glenn Morris <rgm@gnu.org>
2
3 * texinfo.tex: Update to version 2009-08-14.15 from ftp://tug.org/tex/.
4
12009-10-23 Michael Albinus <michael.albinus@gmx.de> 52009-10-23 Michael Albinus <michael.albinus@gmx.de>
2 6
3 * tramp.texi (External methods): Temporary files are kept for 7 * tramp.texi (External methods): Temporary files are kept for
diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex
index 62f7a723ed7..91408263bc9 100644
--- a/doc/misc/texinfo.tex
+++ b/doc/misc/texinfo.tex
@@ -1,18 +1,18 @@
1% texinfo.tex -- TeX macros to handle Texinfo files. 1% texinfo.tex -- TeX macros to handle Texinfo files.
2% 2%
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-07-09.21} 6\def\texinfoversion{2009-08-14.15}
7% 7%
8% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 8% Copyright 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, 2006,
10% 2007, 2008 Free Software Foundation, Inc. 10% 2007, 2008, 2009 Free Software 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 2, or (at 14% published by the Free Software Foundation, either version 3 of the
15% your option) any later version. 15% License, or (at 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,9 +20,7 @@
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 texinfo.tex file; see the file COPYING. If not, write 23% along with this program. If not, see <http://www.gnu.org/licenses/>.
24% to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
25% Boston, MA 02110-1301, USA.
26% 24%
27% As a special exception, when this file is read by TeX when processing 25% As a special exception, when this file is read by TeX when processing
28% a Texinfo source document, you may use the result without 26% a Texinfo source document, you may use the result without
@@ -99,6 +97,10 @@
99\let\ptexslash=\/ 97\let\ptexslash=\/
100\let\ptexstar=\* 98\let\ptexstar=\*
101\let\ptext=\t 99\let\ptext=\t
100\let\ptextop=\top
101{\catcode`\'=\active
102\global\let\ptexquoteright'}% Math-mode def from plain.tex.
103\let\ptexraggedright=\raggedright
102 104
103% If this character appears in an error message or help string, it 105% If this character appears in an error message or help string, it
104% starts a new line in the output. 106% starts a new line in the output.
@@ -279,6 +281,50 @@
279\newdimen\cornerthick \cornerthick=.3pt 281\newdimen\cornerthick \cornerthick=.3pt
280\newdimen\topandbottommargin \topandbottommargin=.75in 282\newdimen\topandbottommargin \topandbottommargin=.75in
281 283
284% Output a mark which sets \thischapter, \thissection and \thiscolor.
285% We dump everything together because we only have one kind of mark.
286% This works because we only use \botmark / \topmark, not \firstmark.
287%
288% A mark contains a subexpression of the \ifcase ... \fi construct.
289% \get*marks macros below extract the needed part using \ifcase.
290%
291% Another complication is to let the user choose whether \thischapter
292% (\thissection) refers to the chapter (section) in effect at the top
293% of a page, or that at the bottom of a page. The solution is
294% described on page 260 of The TeXbook. It involves outputting two
295% marks for the sectioning macros, one before the section break, and
296% one after. I won't pretend I can describe this better than DEK...
297\def\domark{%
298 \toks0=\expandafter{\lastchapterdefs}%
299 \toks2=\expandafter{\lastsectiondefs}%
300 \toks4=\expandafter{\prevchapterdefs}%
301 \toks6=\expandafter{\prevsectiondefs}%
302 \toks8=\expandafter{\lastcolordefs}%
303 \mark{%
304 \the\toks0 \the\toks2
305 \noexpand\or \the\toks4 \the\toks6
306 \noexpand\else \the\toks8
307 }%
308}
309% \topmark doesn't work for the very first chapter (after the title
310% page or the contents), so we use \firstmark there -- this gets us
311% the mark with the chapter defs, unless the user sneaks in, e.g.,
312% @setcolor (or @url, or @link, etc.) between @contents and the very
313% first @chapter.
314\def\gettopheadingmarks{%
315 \ifcase0\topmark\fi
316 \ifx\thischapter\empty \ifcase0\firstmark\fi \fi
317}
318\def\getbottomheadingmarks{\ifcase1\botmark\fi}
319\def\getcolormarks{\ifcase2\topmark\fi}
320
321% Avoid "undefined control sequence" errors.
322\def\lastchapterdefs{}
323\def\lastsectiondefs{}
324\def\prevchapterdefs{}
325\def\prevsectiondefs{}
326\def\lastcolordefs{}
327
282% Main output routine. 328% Main output routine.
283\chardef\PAGE = 255 329\chardef\PAGE = 255
284\output = {\onepageout{\pagecontents\PAGE}} 330\output = {\onepageout{\pagecontents\PAGE}}
@@ -296,7 +342,9 @@
296 % 342 %
297 % Do this outside of the \shipout so @code etc. will be expanded in 343 % Do this outside of the \shipout so @code etc. will be expanded in
298 % the headline as they should be, not taken literally (outputting ''code). 344 % the headline as they should be, not taken literally (outputting ''code).
345 \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
299 \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}% 346 \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
347 \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
300 \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}% 348 \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
301 % 349 %
302 {% 350 {%
@@ -310,7 +358,7 @@
310 % We don't want .vr (or whatever) entries like this: 358 % We don't want .vr (or whatever) entries like this:
311 % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}} 359 % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}}
312 % "\acronym" won't work when it's read back in; 360 % "\acronym" won't work when it's read back in;
313 % it needs to be 361 % it needs to be
314 % {\code {{\tt \backslashcurfont }acronym} 362 % {\code {{\tt \backslashcurfont }acronym}
315 \shipout\vbox{% 363 \shipout\vbox{%
316 % Do this early so pdf references go to the beginning of the page. 364 % Do this early so pdf references go to the beginning of the page.
@@ -375,7 +423,7 @@
375% marginal hacks, juha@viisa.uucp (Juha Takala) 423% marginal hacks, juha@viisa.uucp (Juha Takala)
376\ifvoid\margin\else % marginal info is present 424\ifvoid\margin\else % marginal info is present
377 \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi 425 \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi
378\dimen@=\dp#1 \unvbox#1 426\dimen@=\dp#1\relax \unvbox#1\relax
379\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi 427\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
380\ifr@ggedbottom \kern-\dimen@ \vfil \fi} 428\ifr@ggedbottom \kern-\dimen@ \vfil \fi}
381} 429}
@@ -416,7 +464,7 @@
416\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm} 464\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
417\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm} 465\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
418 466
419% Each occurence of `\^^M' or `<space>\^^M' is replaced by a single space. 467% Each occurrence of `\^^M' or `<space>\^^M' is replaced by a single space.
420% 468%
421% \argremovec might leave us with trailing space, e.g., 469% \argremovec might leave us with trailing space, e.g.,
422% @end itemize @c foo 470% @end itemize @c foo
@@ -441,7 +489,7 @@
441% to get _exactly_ the rest of the line, we had to prevent such situation. 489% to get _exactly_ the rest of the line, we had to prevent such situation.
442% We prepended an \empty token at the very beginning and we expand it now, 490% We prepended an \empty token at the very beginning and we expand it now,
443% just before passing the control to \argtorun. 491% just before passing the control to \argtorun.
444% (Similarily, we have to think about #3 of \argcheckspacesY above: it is 492% (Similarly, we have to think about #3 of \argcheckspacesY above: it is
445% either the null string, or it ends with \^^M---thus there is no danger 493% either the null string, or it ends with \^^M---thus there is no danger
446% that a pair of braces would be stripped. 494% that a pair of braces would be stripped.
447% 495%
@@ -498,12 +546,12 @@
498% used to check whether the current environment is the one expected. 546% used to check whether the current environment is the one expected.
499% 547%
500% Non-false conditionals (@iftex, @ifset) don't fit into this, so they 548% Non-false conditionals (@iftex, @ifset) don't fit into this, so they
501% are not treated as enviroments; they don't open a group. (The 549% are not treated as environments; they don't open a group. (The
502% implementation of @end takes care not to call \endgroup in this 550% implementation of @end takes care not to call \endgroup in this
503% special case.) 551% special case.)
504 552
505 553
506% At runtime, environments start with this: 554% At run-time, environments start with this:
507\def\startenvironment#1{\begingroup\def\thisenv{#1}} 555\def\startenvironment#1{\begingroup\def\thisenv{#1}}
508% initialize 556% initialize
509\let\thisenv\empty 557\let\thisenv\empty
@@ -521,7 +569,7 @@
521 \fi 569 \fi
522} 570}
523 571
524% Evironment mismatch, #1 expected: 572% Environment mismatch, #1 expected:
525\def\badenverr{% 573\def\badenverr{%
526 \errhelp = \EMsimple 574 \errhelp = \EMsimple
527 \errmessage{This command can appear only \inenvironment\temp, 575 \errmessage{This command can appear only \inenvironment\temp,
@@ -605,8 +653,8 @@
605\def\jmacro{j} 653\def\jmacro{j}
606\def\dotless#1{% 654\def\dotless#1{%
607 \def\temp{#1}% 655 \def\temp{#1}%
608 \ifx\temp\imacro \ptexi 656 \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi
609 \else\ifx\temp\jmacro \j 657 \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi
610 \else \errmessage{@dotless can be used only with i or j}% 658 \else \errmessage{@dotless can be used only with i or j}%
611 \fi\fi 659 \fi\fi
612} 660}
@@ -661,7 +709,7 @@
661\def\?{?\spacefactor=\endofsentencespacefactor\space} 709\def\?{?\spacefactor=\endofsentencespacefactor\space}
662 710
663% @frenchspacing on|off says whether to put extra space after punctuation. 711% @frenchspacing on|off says whether to put extra space after punctuation.
664% 712%
665\def\onword{on} 713\def\onword{on}
666\def\offword{off} 714\def\offword{off}
667% 715%
@@ -872,15 +920,20 @@ where each line of input produces a line of output.}
872 \temp 920 \temp
873} 921}
874 922
875% @include file insert text of that file as input. 923% @include FILE -- \input text of FILE.
876% 924%
877\def\include{\parseargusing\filenamecatcodes\includezzz} 925\def\include{\parseargusing\filenamecatcodes\includezzz}
878\def\includezzz#1{% 926\def\includezzz#1{%
879 \pushthisfilestack 927 \pushthisfilestack
880 \def\thisfile{#1}% 928 \def\thisfile{#1}%
881 {% 929 {%
882 \makevalueexpandable 930 \makevalueexpandable % we want to expand any @value in FILE.
883 \def\temp{\input #1 }% 931 \turnoffactive % and allow special characters in the expansion
932 \indexnofonts % Allow `@@' and other weird things in file names.
933 \edef\temp{\noexpand\input #1 }%
934 %
935 % This trickery is to read FILE outside of a group, in case it makes
936 % definitions, etc.
884 \expandafter 937 \expandafter
885 }\temp 938 }\temp
886 \popthisfilestack 939 \popthisfilestack
@@ -895,6 +948,8 @@ where each line of input produces a line of output.}
895 \catcode`>=\other 948 \catcode`>=\other
896 \catcode`+=\other 949 \catcode`+=\other
897 \catcode`-=\other 950 \catcode`-=\other
951 \catcode`\`=\other
952 \catcode`\'=\other
898} 953}
899 954
900\def\pushthisfilestack{% 955\def\pushthisfilestack{%
@@ -1070,6 +1125,16 @@ where each line of input produces a line of output.}
1070 \mathunderscore 1125 \mathunderscore
1071 \let\\ = \mathbackslash 1126 \let\\ = \mathbackslash
1072 \mathactive 1127 \mathactive
1128 % make the texinfo accent commands work in math mode
1129 \let\"=\ddot
1130 \let\'=\acute
1131 \let\==\bar
1132 \let\^=\hat
1133 \let\`=\grave
1134 \let\u=\breve
1135 \let\v=\check
1136 \let\~=\tilde
1137 \let\dotaccent=\dot
1073 $\finishmath 1138 $\finishmath
1074} 1139}
1075\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. 1140\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex.
@@ -1083,17 +1148,21 @@ where each line of input produces a line of output.}
1083 \catcode`< = \active 1148 \catcode`< = \active
1084 \catcode`> = \active 1149 \catcode`> = \active
1085 \catcode`+ = \active 1150 \catcode`+ = \active
1151 \catcode`' = \active
1086 \gdef\mathactive{% 1152 \gdef\mathactive{%
1087 \let^ = \ptexhat 1153 \let^ = \ptexhat
1088 \let< = \ptexless 1154 \let< = \ptexless
1089 \let> = \ptexgtr 1155 \let> = \ptexgtr
1090 \let+ = \ptexplus 1156 \let+ = \ptexplus
1157 \let' = \ptexquoteright
1091 } 1158 }
1092} 1159}
1093 1160
1094% @bullet and @minus need the same treatment as @math, just above. 1161% Some math mode symbols.
1095\def\bullet{$\ptexbullet$} 1162\def\bullet{$\ptexbullet$}
1096\def\minus{$-$} 1163\def\geq{\ifmmode \ge\else $\ge$\fi}
1164\def\leq{\ifmmode \le\else $\le$\fi}
1165\def\minus{\ifmmode -\else $-$\fi}
1097 1166
1098% @dots{} outputs an ellipsis using the current font. 1167% @dots{} outputs an ellipsis using the current font.
1099% We do .5em per period so that it has the same spacing in the cm 1168% We do .5em per period so that it has the same spacing in the cm
@@ -1216,7 +1285,7 @@ where each line of input produces a line of output.}
1216% that's what we do). 1285% that's what we do).
1217 1286
1218% double active backslashes. 1287% double active backslashes.
1219% 1288%
1220{\catcode`\@=0 \catcode`\\=\active 1289{\catcode`\@=0 \catcode`\\=\active
1221 @gdef@activebackslashdouble{% 1290 @gdef@activebackslashdouble{%
1222 @catcode`@\=@active 1291 @catcode`@\=@active
@@ -1228,11 +1297,11 @@ where each line of input produces a line of output.}
1228% us) handles it with this amazing macro to replace tokens, with minor 1297% us) handles it with this amazing macro to replace tokens, with minor
1229% changes for Texinfo. It is included here under the GPL by permission 1298% changes for Texinfo. It is included here under the GPL by permission
1230% from the author, Heiko Oberdiek. 1299% from the author, Heiko Oberdiek.
1231% 1300%
1232% #1 is the tokens to replace. 1301% #1 is the tokens to replace.
1233% #2 is the replacement. 1302% #2 is the replacement.
1234% #3 is the control sequence with the string. 1303% #3 is the control sequence with the string.
1235% 1304%
1236\def\HyPsdSubst#1#2#3{% 1305\def\HyPsdSubst#1#2#3{%
1237 \def\HyPsdReplace##1#1##2\END{% 1306 \def\HyPsdReplace##1#1##2\END{%
1238 ##1% 1307 ##1%
@@ -1262,7 +1331,52 @@ be supported due to the design of the PDF format; use regular TeX (DVI
1262output) for that.)} 1331output) for that.)}
1263 1332
1264\ifpdf 1333\ifpdf
1265 \input pdfcolor 1334 %
1335 % Color manipulation macros based on pdfcolor.tex,
1336 % except using rgb instead of cmyk; the latter is said to render as a
1337 % very dark gray on-screen and a very dark halftone in print, instead
1338 % of actual black.
1339 \def\rgbDarkRed{0.50 0.09 0.12}
1340 \def\rgbBlack{0 0 0}
1341 %
1342 % k sets the color for filling (usual text, etc.);
1343 % K sets the color for stroking (thin rules, e.g., normal _'s).
1344 \def\pdfsetcolor#1{\pdfliteral{#1 rg #1 RG}}
1345 %
1346 % Set color, and create a mark which defines \thiscolor accordingly,
1347 % so that \makeheadline knows which color to restore.
1348 \def\setcolor#1{%
1349 \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}%
1350 \domark
1351 \pdfsetcolor{#1}%
1352 }
1353 %
1354 \def\maincolor{\rgbBlack}
1355 \pdfsetcolor{\maincolor}
1356 \edef\thiscolor{\maincolor}
1357 \def\lastcolordefs{}
1358 %
1359 \def\makefootline{%
1360 \baselineskip24pt
1361 \line{\pdfsetcolor{\maincolor}\the\footline}%
1362 }
1363 %
1364 \def\makeheadline{%
1365 \vbox to 0pt{%
1366 \vskip-22.5pt
1367 \line{%
1368 \vbox to8.5pt{}%
1369 % Extract \thiscolor definition from the marks.
1370 \getcolormarks
1371 % Typeset the headline with \maincolor, then restore the color.
1372 \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}%
1373 }%
1374 \vss
1375 }%
1376 \nointerlineskip
1377 }
1378 %
1379 %
1266 \pdfcatalog{/PageMode /UseOutlines} 1380 \pdfcatalog{/PageMode /UseOutlines}
1267 % 1381 %
1268 % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). 1382 % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
@@ -1279,8 +1393,11 @@ output) for that.)}
1279 \openin 1 #1.jpeg \ifeof 1 1393 \openin 1 #1.jpeg \ifeof 1
1280 \openin 1 #1.JPG \ifeof 1 1394 \openin 1 #1.JPG \ifeof 1
1281 \openin 1 #1.pdf \ifeof 1 1395 \openin 1 #1.pdf \ifeof 1
1282 \errhelp = \nopdfimagehelp 1396 \openin 1 #1.PDF \ifeof 1
1283 \errmessage{Could not find image file #1 for pdf}% 1397 \errhelp = \nopdfimagehelp
1398 \errmessage{Could not find image file #1 for pdf}%
1399 \else \gdef\pdfimgext{PDF}%
1400 \fi
1284 \else \gdef\pdfimgext{pdf}% 1401 \else \gdef\pdfimgext{pdf}%
1285 \fi 1402 \fi
1286 \else \gdef\pdfimgext{JPG}% 1403 \else \gdef\pdfimgext{JPG}%
@@ -1294,7 +1411,7 @@ output) for that.)}
1294 \closein 1 1411 \closein 1
1295 \endgroup 1412 \endgroup
1296 % 1413 %
1297 % without \immediate, pdftex seg faults when the same image is 1414 % without \immediate, ancient pdftex seg faults when the same image is
1298 % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) 1415 % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.)
1299 \ifnum\pdftexversion < 14 1416 \ifnum\pdftexversion < 14
1300 \immediate\pdfimage 1417 \immediate\pdfimage
@@ -1329,10 +1446,9 @@ output) for that.)}
1329 % 1446 %
1330 % by default, use a color that is dark enough to print on paper as 1447 % by default, use a color that is dark enough to print on paper as
1331 % nearly black, but still distinguishable for online viewing. 1448 % nearly black, but still distinguishable for online viewing.
1332 % (Defined in pdfcolor.tex.) 1449 \def\urlcolor{\rgbDarkRed}
1333 \let\urlcolor = \BrickRed 1450 \def\linkcolor{\rgbDarkRed}
1334 \let\linkcolor = \BrickRed 1451 \def\endlink{\setcolor{\maincolor}\pdfendlink}
1335 \def\endlink{\Black\pdfendlink}
1336 % 1452 %
1337 % Adding outlines to PDF; macros for calculating structure of outlines 1453 % Adding outlines to PDF; macros for calculating structure of outlines
1338 % come from Petr Olsak 1454 % come from Petr Olsak
@@ -1460,12 +1576,16 @@ output) for that.)}
1460 % tried to figure out what each command should do in the context 1576 % tried to figure out what each command should do in the context
1461 % of @url. for now, just make @/ a no-op, that's the only one 1577 % of @url. for now, just make @/ a no-op, that's the only one
1462 % people have actually reported a problem with. 1578 % people have actually reported a problem with.
1463 % 1579 %
1464 \normalturnoffactive 1580 \normalturnoffactive
1465 \def\@{@}% 1581 \def\@{@}%
1466 \let\/=\empty 1582 \let\/=\empty
1467 \makevalueexpandable 1583 \makevalueexpandable
1468 \leavevmode\urlcolor 1584 % do we want to go so far as to use \indexnofonts instead of just
1585 % special-casing \var here?
1586 \def\var##1{##1}%
1587 %
1588 \leavevmode\setcolor{\urlcolor}%
1469 \startlink attr{/Border [0 0 0]}% 1589 \startlink attr{/Border [0 0 0]}%
1470 user{/Subtype /Link /A << /S /URI /URI (#1) >>}% 1590 user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
1471 \endgroup} 1591 \endgroup}
@@ -1492,13 +1612,15 @@ output) for that.)}
1492 {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} 1612 {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
1493 \def\pdflink#1{% 1613 \def\pdflink#1{%
1494 \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} 1614 \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}}
1495 \linkcolor #1\endlink} 1615 \setcolor{\linkcolor}#1\endlink}
1496 \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} 1616 \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
1497\else 1617\else
1618 % non-pdf mode
1498 \let\pdfmkdest = \gobble 1619 \let\pdfmkdest = \gobble
1499 \let\pdfurl = \gobble 1620 \let\pdfurl = \gobble
1500 \let\endlink = \relax 1621 \let\endlink = \relax
1501 \let\linkcolor = \relax 1622 \let\setcolor = \gobble
1623 \let\pdfsetcolor = \gobble
1502 \let\pdfmakeoutlines = \relax 1624 \let\pdfmakeoutlines = \relax
1503\fi % \ifx\pdfoutput 1625\fi % \ifx\pdfoutput
1504 1626
@@ -1524,6 +1646,10 @@ output) for that.)}
1524\def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf} 1646\def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf}
1525\def\tt{\fam=\ttfam \setfontstyle{tt}} 1647\def\tt{\fam=\ttfam \setfontstyle{tt}}
1526 1648
1649% Unfortunately, we have to override this for titles and the like, since
1650% in those cases "rm" is bold. Sigh.
1651\def\rmisbold{\rm\def\curfontstyle{bf}}
1652
1527% Texinfo sort of supports the sans serif font style, which plain TeX does not. 1653% Texinfo sort of supports the sans serif font style, which plain TeX does not.
1528% So we set up a \sf. 1654% So we set up a \sf.
1529\newfam\sffam 1655\newfam\sffam
@@ -1545,8 +1671,12 @@ output) for that.)}
1545\def\strutheightpercent{.70833} 1671\def\strutheightpercent{.70833}
1546\def\strutdepthpercent {.29167} 1672\def\strutdepthpercent {.29167}
1547% 1673%
1674% can get a sort of poor man's double spacing by redefining this.
1675\def\baselinefactor{1}
1676%
1548\def\setleading#1{% 1677\def\setleading#1{%
1549 \normalbaselineskip = #1\relax 1678 \dimen0 = #1\relax
1679 \normalbaselineskip = \baselinefactor\dimen0
1550 \normallineskip = \lineskipfactor\normalbaselineskip 1680 \normallineskip = \lineskipfactor\normalbaselineskip
1551 \normalbaselines 1681 \normalbaselines
1552 \setbox\strutbox =\hbox{% 1682 \setbox\strutbox =\hbox{%
@@ -1555,11 +1685,17 @@ output) for that.)}
1555 }% 1685 }%
1556} 1686}
1557 1687
1558%
1559% PDF CMaps. See also LaTeX's t1.cmap. 1688% PDF CMaps. See also LaTeX's t1.cmap.
1560% 1689%
1561% \cmapOT1 1690% do nothing with this by default.
1562\ifpdf 1691\expandafter\let\csname cmapOT1\endcsname\gobble
1692\expandafter\let\csname cmapOT1IT\endcsname\gobble
1693\expandafter\let\csname cmapOT1TT\endcsname\gobble
1694
1695% if we are producing pdf, and we have \pdffontattr, then define cmaps.
1696% (\pdffontattr was introduced many years ago, but people still run
1697% older pdftex's; it's easy to conditionalize, so we do.)
1698\ifpdf \ifx\pdffontattr\undefined \else
1563 \begingroup 1699 \begingroup
1564 \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. 1700 \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
1565 \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap 1701 \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
@@ -1807,11 +1943,7 @@ end
1807 \expandafter\edef\csname cmapOT1TT\endcsname#1{% 1943 \expandafter\edef\csname cmapOT1TT\endcsname#1{%
1808 \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% 1944 \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
1809 }% 1945 }%
1810\else 1946\fi\fi
1811 \expandafter\let\csname cmapOT1\endcsname\gobble
1812 \expandafter\let\csname cmapOT1IT\endcsname\gobble
1813 \expandafter\let\csname cmapOT1TT\endcsname\gobble
1814\fi
1815 1947
1816 1948
1817% Set the font macro #1 to the font named #2, adding on the 1949% Set the font macro #1 to the font named #2, adding on the
@@ -1825,7 +1957,7 @@ end
1825} 1957}
1826% This is what gets called when #5 of \setfont is empty. 1958% This is what gets called when #5 of \setfont is empty.
1827\let\cmap\gobble 1959\let\cmap\gobble
1828 1960% emacs-page end of cmaps
1829 1961
1830% Use cm as the default font prefix. 1962% Use cm as the default font prefix.
1831% To specify the font prefix, you must define \fontprefix 1963% To specify the font prefix, you must define \fontprefix
@@ -1852,7 +1984,7 @@ end
1852 1984
1853% Definitions for a main text size of 11pt. This is the default in 1985% Definitions for a main text size of 11pt. This is the default in
1854% Texinfo. 1986% Texinfo.
1855% 1987%
1856\def\definetextfontsizexi{% 1988\def\definetextfontsizexi{%
1857% Text fonts (11.2pt, magstep1). 1989% Text fonts (11.2pt, magstep1).
1858\def\textnominalsize{11pt} 1990\def\textnominalsize{11pt}
@@ -1867,6 +1999,7 @@ end
1867\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} 1999\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT}
1868\font\texti=cmmi10 scaled \mainmagstep 2000\font\texti=cmmi10 scaled \mainmagstep
1869\font\textsy=cmsy10 scaled \mainmagstep 2001\font\textsy=cmsy10 scaled \mainmagstep
2002\def\textecsize{1095}
1870 2003
1871% A few fonts for @defun names and args. 2004% A few fonts for @defun names and args.
1872\setfont\defbf\bfshape{10}{\magstep1}{OT1} 2005\setfont\defbf\bfshape{10}{\magstep1}{OT1}
@@ -1886,6 +2019,7 @@ end
1886\setfont\smallttsl\ttslshape{10}{900}{OT1TT} 2019\setfont\smallttsl\ttslshape{10}{900}{OT1TT}
1887\font\smalli=cmmi9 2020\font\smalli=cmmi9
1888\font\smallsy=cmsy9 2021\font\smallsy=cmsy9
2022\def\smallecsize{0900}
1889 2023
1890% Fonts for small examples (8pt). 2024% Fonts for small examples (8pt).
1891\def\smallernominalsize{8pt} 2025\def\smallernominalsize{8pt}
@@ -1899,6 +2033,7 @@ end
1899\setfont\smallerttsl\ttslshape{10}{800}{OT1TT} 2033\setfont\smallerttsl\ttslshape{10}{800}{OT1TT}
1900\font\smalleri=cmmi8 2034\font\smalleri=cmmi8
1901\font\smallersy=cmsy8 2035\font\smallersy=cmsy8
2036\def\smallerecsize{0800}
1902 2037
1903% Fonts for title page (20.4pt): 2038% Fonts for title page (20.4pt):
1904\def\titlenominalsize{20pt} 2039\def\titlenominalsize{20pt}
@@ -1912,8 +2047,7 @@ end
1912\setfont\titlesc\scbshape{10}{\magstep4}{OT1} 2047\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
1913\font\titlei=cmmi12 scaled \magstep3 2048\font\titlei=cmmi12 scaled \magstep3
1914\font\titlesy=cmsy10 scaled \magstep4 2049\font\titlesy=cmsy10 scaled \magstep4
1915\def\authorrm{\secrm} 2050\def\titleecsize{2074}
1916\def\authortt{\sectt}
1917 2051
1918% Chapter (and unnumbered) fonts (17.28pt). 2052% Chapter (and unnumbered) fonts (17.28pt).
1919\def\chapnominalsize{17pt} 2053\def\chapnominalsize{17pt}
@@ -1927,6 +2061,7 @@ end
1927\setfont\chapsc\scbshape{10}{\magstep3}{OT1} 2061\setfont\chapsc\scbshape{10}{\magstep3}{OT1}
1928\font\chapi=cmmi12 scaled \magstep2 2062\font\chapi=cmmi12 scaled \magstep2
1929\font\chapsy=cmsy10 scaled \magstep3 2063\font\chapsy=cmsy10 scaled \magstep3
2064\def\chapecsize{1728}
1930 2065
1931% Section fonts (14.4pt). 2066% Section fonts (14.4pt).
1932\def\secnominalsize{14pt} 2067\def\secnominalsize{14pt}
@@ -1940,6 +2075,7 @@ end
1940\setfont\secsc\scbshape{10}{\magstep2}{OT1} 2075\setfont\secsc\scbshape{10}{\magstep2}{OT1}
1941\font\seci=cmmi12 scaled \magstep1 2076\font\seci=cmmi12 scaled \magstep1
1942\font\secsy=cmsy10 scaled \magstep2 2077\font\secsy=cmsy10 scaled \magstep2
2078\def\sececsize{1440}
1943 2079
1944% Subsection fonts (13.15pt). 2080% Subsection fonts (13.15pt).
1945\def\ssecnominalsize{13pt} 2081\def\ssecnominalsize{13pt}
@@ -1953,6 +2089,7 @@ end
1953\setfont\ssecsc\scbshape{10}{1315}{OT1} 2089\setfont\ssecsc\scbshape{10}{1315}{OT1}
1954\font\sseci=cmmi12 scaled \magstephalf 2090\font\sseci=cmmi12 scaled \magstephalf
1955\font\ssecsy=cmsy10 scaled 1315 2091\font\ssecsy=cmsy10 scaled 1315
2092\def\ssececsize{1200}
1956 2093
1957% Reduced fonts for @acro in text (10pt). 2094% Reduced fonts for @acro in text (10pt).
1958\def\reducednominalsize{10pt} 2095\def\reducednominalsize{10pt}
@@ -1966,6 +2103,7 @@ end
1966\setfont\reducedttsl\ttslshape{10}{1000}{OT1TT} 2103\setfont\reducedttsl\ttslshape{10}{1000}{OT1TT}
1967\font\reducedi=cmmi10 2104\font\reducedi=cmmi10
1968\font\reducedsy=cmsy10 2105\font\reducedsy=cmsy10
2106\def\reducedecsize{1000}
1969 2107
1970% reset the current fonts 2108% reset the current fonts
1971\textfonts 2109\textfonts
@@ -1977,7 +2115,7 @@ end
1977% section, chapter, etc., sizes following suit. This is for the GNU 2115% section, chapter, etc., sizes following suit. This is for the GNU
1978% Press printing of the Emacs 22 manual. Maybe other manuals in the 2116% Press printing of the Emacs 22 manual. Maybe other manuals in the
1979% future. Used with @smallbook, which sets the leading to 12pt. 2117% future. Used with @smallbook, which sets the leading to 12pt.
1980% 2118%
1981\def\definetextfontsizex{% 2119\def\definetextfontsizex{%
1982% Text fonts (10pt). 2120% Text fonts (10pt).
1983\def\textnominalsize{10pt} 2121\def\textnominalsize{10pt}
@@ -1992,6 +2130,7 @@ end
1992\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} 2130\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT}
1993\font\texti=cmmi10 scaled \mainmagstep 2131\font\texti=cmmi10 scaled \mainmagstep
1994\font\textsy=cmsy10 scaled \mainmagstep 2132\font\textsy=cmsy10 scaled \mainmagstep
2133\def\textecsize{1000}
1995 2134
1996% A few fonts for @defun names and args. 2135% A few fonts for @defun names and args.
1997\setfont\defbf\bfshape{10}{\magstephalf}{OT1} 2136\setfont\defbf\bfshape{10}{\magstephalf}{OT1}
@@ -2011,6 +2150,7 @@ end
2011\setfont\smallttsl\ttslshape{10}{900}{OT1TT} 2150\setfont\smallttsl\ttslshape{10}{900}{OT1TT}
2012\font\smalli=cmmi9 2151\font\smalli=cmmi9
2013\font\smallsy=cmsy9 2152\font\smallsy=cmsy9
2153\def\smallecsize{0900}
2014 2154
2015% Fonts for small examples (8pt). 2155% Fonts for small examples (8pt).
2016\def\smallernominalsize{8pt} 2156\def\smallernominalsize{8pt}
@@ -2024,6 +2164,7 @@ end
2024\setfont\smallerttsl\ttslshape{10}{800}{OT1TT} 2164\setfont\smallerttsl\ttslshape{10}{800}{OT1TT}
2025\font\smalleri=cmmi8 2165\font\smalleri=cmmi8
2026\font\smallersy=cmsy8 2166\font\smallersy=cmsy8
2167\def\smallerecsize{0800}
2027 2168
2028% Fonts for title page (20.4pt): 2169% Fonts for title page (20.4pt):
2029\def\titlenominalsize{20pt} 2170\def\titlenominalsize{20pt}
@@ -2037,8 +2178,7 @@ end
2037\setfont\titlesc\scbshape{10}{\magstep4}{OT1} 2178\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
2038\font\titlei=cmmi12 scaled \magstep3 2179\font\titlei=cmmi12 scaled \magstep3
2039\font\titlesy=cmsy10 scaled \magstep4 2180\font\titlesy=cmsy10 scaled \magstep4
2040\def\authorrm{\secrm} 2181\def\titleecsize{2074}
2041\def\authortt{\sectt}
2042 2182
2043% Chapter fonts (14.4pt). 2183% Chapter fonts (14.4pt).
2044\def\chapnominalsize{14pt} 2184\def\chapnominalsize{14pt}
@@ -2052,6 +2192,7 @@ end
2052\setfont\chapsc\scbshape{10}{\magstep2}{OT1} 2192\setfont\chapsc\scbshape{10}{\magstep2}{OT1}
2053\font\chapi=cmmi12 scaled \magstep1 2193\font\chapi=cmmi12 scaled \magstep1
2054\font\chapsy=cmsy10 scaled \magstep2 2194\font\chapsy=cmsy10 scaled \magstep2
2195\def\chapecsize{1440}
2055 2196
2056% Section fonts (12pt). 2197% Section fonts (12pt).
2057\def\secnominalsize{12pt} 2198\def\secnominalsize{12pt}
@@ -2063,8 +2204,9 @@ end
2063\setfont\secsf\sfbshape{12}{1000}{OT1} 2204\setfont\secsf\sfbshape{12}{1000}{OT1}
2064\let\secbf\secrm 2205\let\secbf\secrm
2065\setfont\secsc\scbshape{10}{\magstep1}{OT1} 2206\setfont\secsc\scbshape{10}{\magstep1}{OT1}
2066\font\seci=cmmi12 2207\font\seci=cmmi12
2067\font\secsy=cmsy10 scaled \magstep1 2208\font\secsy=cmsy10 scaled \magstep1
2209\def\sececsize{1200}
2068 2210
2069% Subsection fonts (10pt). 2211% Subsection fonts (10pt).
2070\def\ssecnominalsize{10pt} 2212\def\ssecnominalsize{10pt}
@@ -2078,6 +2220,7 @@ end
2078\setfont\ssecsc\scbshape{10}{1000}{OT1} 2220\setfont\ssecsc\scbshape{10}{1000}{OT1}
2079\font\sseci=cmmi10 2221\font\sseci=cmmi10
2080\font\ssecsy=cmsy10 2222\font\ssecsy=cmsy10
2223\def\ssececsize{1000}
2081 2224
2082% Reduced fonts for @acro in text (9pt). 2225% Reduced fonts for @acro in text (9pt).
2083\def\reducednominalsize{9pt} 2226\def\reducednominalsize{9pt}
@@ -2091,6 +2234,7 @@ end
2091\setfont\reducedttsl\ttslshape{10}{900}{OT1TT} 2234\setfont\reducedttsl\ttslshape{10}{900}{OT1TT}
2092\font\reducedi=cmmi9 2235\font\reducedi=cmmi9
2093\font\reducedsy=cmsy9 2236\font\reducedsy=cmsy9
2237\def\reducedecsize{0900}
2094 2238
2095% reduce space between paragraphs 2239% reduce space between paragraphs
2096\divide\parskip by 2 2240\divide\parskip by 2
@@ -2104,7 +2248,7 @@ end
2104% We provide the user-level command 2248% We provide the user-level command
2105% @fonttextsize 10 2249% @fonttextsize 10
2106% (or 11) to redefine the text font size. pt is assumed. 2250% (or 11) to redefine the text font size. pt is assumed.
2107% 2251%
2108\def\xword{10} 2252\def\xword{10}
2109\def\xiword{11} 2253\def\xiword{11}
2110% 2254%
@@ -2114,7 +2258,7 @@ end
2114 % 2258 %
2115 % Set \globaldefs so that documents can use this inside @tex, since 2259 % Set \globaldefs so that documents can use this inside @tex, since
2116 % makeinfo 4.8 does not support it, but we need it nonetheless. 2260 % makeinfo 4.8 does not support it, but we need it nonetheless.
2117 % 2261 %
2118 \begingroup \globaldefs=1 2262 \begingroup \globaldefs=1
2119 \ifx\textsizearg\xword \definetextfontsizex 2263 \ifx\textsizearg\xword \definetextfontsizex
2120 \else \ifx\textsizearg\xiword \definetextfontsizexi 2264 \else \ifx\textsizearg\xiword \definetextfontsizexi
@@ -2165,7 +2309,7 @@ end
2165 \def\curfontsize{title}% 2309 \def\curfontsize{title}%
2166 \def\lsize{chap}\def\lllsize{subsec}% 2310 \def\lsize{chap}\def\lllsize{subsec}%
2167 \resetmathfonts \setleading{25pt}} 2311 \resetmathfonts \setleading{25pt}}
2168\def\titlefont#1{{\titlefonts\rm #1}} 2312\def\titlefont#1{{\titlefonts\rmisbold #1}}
2169\def\chapfonts{% 2313\def\chapfonts{%
2170 \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl 2314 \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
2171 \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc 2315 \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
@@ -2216,6 +2360,16 @@ end
2216 \def\lsize{smaller}\def\lllsize{smaller}% 2360 \def\lsize{smaller}\def\lllsize{smaller}%
2217 \resetmathfonts \setleading{9.5pt}} 2361 \resetmathfonts \setleading{9.5pt}}
2218 2362
2363% Fonts for short table of contents.
2364\setfont\shortcontrm\rmshape{12}{1000}{OT1}
2365\setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12
2366\setfont\shortcontsl\slshape{12}{1000}{OT1}
2367\setfont\shortconttt\ttshape{12}{1000}{OT1TT}
2368
2369% Define these just so they can be easily changed for other fonts.
2370\def\angleleft{$\langle$}
2371\def\angleright{$\rangle$}
2372
2219% Set the fonts to use with the @small... environments. 2373% Set the fonts to use with the @small... environments.
2220\let\smallexamplefonts = \smallfonts 2374\let\smallexamplefonts = \smallfonts
2221 2375
@@ -2229,28 +2383,128 @@ end
2229% 2383%
2230% By the way, for comparison, here's what fits with @example (10pt): 2384% By the way, for comparison, here's what fits with @example (10pt):
2231% 8.5x11=71 smallbook=60 a4=75 a5=58 2385% 8.5x11=71 smallbook=60 a4=75 a5=58
2232%
2233% I wish the USA used A4 paper.
2234% --karl, 24jan03. 2386% --karl, 24jan03.
2235 2387
2236
2237% Set up the default fonts, so we can use them for creating boxes. 2388% Set up the default fonts, so we can use them for creating boxes.
2238% 2389%
2239\definetextfontsizexi 2390\definetextfontsizexi
2240 2391
2241% Define these so they can be easily changed for other fonts. 2392
2242\def\angleleft{$\langle$} 2393\message{markup,}
2243\def\angleright{$\rangle$} 2394
2395% Check if we are currently using a typewriter font. Since all the
2396% Computer Modern typewriter fonts have zero interword stretch (and
2397% shrink), and it is reasonable to expect all typewriter fonts to have
2398% this property, we can check that font parameter.
2399%
2400\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
2401
2402% Markup style infrastructure. \defmarkupstylesetup\INITMACRO will
2403% define and register \INITMACRO to be called on markup style changes.
2404% \INITMACRO can check \currentmarkupstyle for the innermost
2405% style and the set of \ifmarkupSTYLE switches for all styles
2406% currently in effect.
2407\newif\ifmarkupvar
2408\newif\ifmarkupsamp
2409\newif\ifmarkupkey
2410%\newif\ifmarkupfile % @file == @samp.
2411%\newif\ifmarkupoption % @option == @samp.
2412\newif\ifmarkupcode
2413\newif\ifmarkupkbd
2414%\newif\ifmarkupenv % @env == @code.
2415%\newif\ifmarkupcommand % @command == @code.
2416\newif\ifmarkuptex % @tex (and part of @math, for now).
2417\newif\ifmarkupexample
2418\newif\ifmarkupverb
2419\newif\ifmarkupverbatim
2420
2421\let\currentmarkupstyle\empty
2422
2423\def\setupmarkupstyle#1{%
2424 \csname markup#1true\endcsname
2425 \def\currentmarkupstyle{#1}%
2426 \markupstylesetup
2427}
2428
2429\let\markupstylesetup\empty
2430
2431\def\defmarkupstylesetup#1{%
2432 \expandafter\def\expandafter\markupstylesetup
2433 \expandafter{\markupstylesetup #1}%
2434 \def#1%
2435}
2436
2437% Markup style setup for left and right quotes.
2438\defmarkupstylesetup\markupsetuplq{%
2439 \expandafter\let\expandafter \temp \csname markupsetuplq\currentmarkupstyle\endcsname
2440 \ifx\temp\relax \markupsetuplqdefault \else \temp \fi
2441}
2442
2443\defmarkupstylesetup\markupsetuprq{%
2444 \expandafter\let\expandafter \temp \csname markupsetuprq\currentmarkupstyle\endcsname
2445 \ifx\temp\relax \markupsetuprqdefault \else \temp \fi
2446}
2447
2448{
2449\catcode`\'=\active
2450\catcode`\`=\active
2451
2452\gdef\markupsetuplqdefault{\let`\lq}
2453\gdef\markupsetuprqdefault{\let'\rq}
2454
2455\gdef\markupsetcodequoteleft{\let`\codequoteleft}
2456\gdef\markupsetcodequoteright{\let'\codequoteright}
2457
2458\gdef\markupsetnoligaturesquoteleft{\let`\noligaturesquoteleft}
2459}
2460
2461\let\markupsetuplqcode \markupsetcodequoteleft
2462\let\markupsetuprqcode \markupsetcodequoteright
2463\let\markupsetuplqexample \markupsetcodequoteleft
2464\let\markupsetuprqexample \markupsetcodequoteright
2465\let\markupsetuplqverb \markupsetcodequoteleft
2466\let\markupsetuprqverb \markupsetcodequoteright
2467\let\markupsetuplqverbatim \markupsetcodequoteleft
2468\let\markupsetuprqverbatim \markupsetcodequoteright
2469
2470\let\markupsetuplqsamp \markupsetnoligaturesquoteleft
2471\let\markupsetuplqkbd \markupsetnoligaturesquoteleft
2472
2473% Allow an option to not replace quotes with a regular directed right
2474% quote/apostrophe (char 0x27), but instead use the undirected quote
2475% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it
2476% the default, but it works for pasting with more pdf viewers (at least
2477% evince), the lilypond developers report. xpdf does work with the
2478% regular 0x27.
2479%
2480\def\codequoteright{%
2481 \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
2482 \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
2483 '%
2484 \else \char'15 \fi
2485 \else \char'15 \fi
2486}
2487%
2488% and a similar option for the left quote char vs. a grave accent.
2489% Modern fonts display ASCII 0x60 as a grave accent, so some people like
2490% the code environments to do likewise.
2491%
2492\def\codequoteleft{%
2493 \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
2494 \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
2495 % [Knuth] pp. 380,381,391
2496 % \relax disables Spanish ligatures ?` and !` of \tt font.
2497 \relax`%
2498 \else \char'22 \fi
2499 \else \char'22 \fi
2500}
2501
2502% [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font.
2503\def\noligaturesquoteleft{\relax\lq}
2244 2504
2245% Count depth in font-changes, for error checks 2505% Count depth in font-changes, for error checks
2246\newcount\fontdepth \fontdepth=0 2506\newcount\fontdepth \fontdepth=0
2247 2507
2248% Fonts for short table of contents.
2249\setfont\shortcontrm\rmshape{12}{1000}{OT1}
2250\setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12
2251\setfont\shortcontsl\slshape{12}{1000}{OT1}
2252\setfont\shortconttt\ttshape{12}{1000}{OT1TT}
2253
2254%% Add scribe-like font environments, plus @l for inline lisp (usually sans 2508%% Add scribe-like font environments, plus @l for inline lisp (usually sans
2255%% serif) and @ii for TeX italic 2509%% serif) and @ii for TeX italic
2256 2510
@@ -2265,17 +2519,22 @@ end
2265% @var is set to this for defun arguments. 2519% @var is set to this for defun arguments.
2266\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx} 2520\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx}
2267 2521
2268% like \smartslanted except unconditionally use \sl. We never want 2522% @cite is like \smartslanted except unconditionally use \sl. We never want
2269% ttsl for book titles, do we? 2523% ttsl for book titles, do we?
2270\def\cite#1{{\sl #1}\futurelet\next\smartitalicx} 2524\def\cite#1{{\sl #1}\futurelet\next\smartitalicx}
2271 2525
2272\let\i=\smartitalic 2526\let\i=\smartitalic
2273\let\slanted=\smartslanted 2527\let\slanted=\smartslanted
2274\let\var=\smartslanted 2528\def\var#1{{\setupmarkupstyle{var}\smartslanted{#1}}}
2275\let\dfn=\smartslanted 2529\let\dfn=\smartslanted
2276\let\emph=\smartitalic 2530\let\emph=\smartitalic
2277 2531
2278% @b, explicit bold. 2532% Explicit font changes: @r, @sc, undocumented @ii.
2533\def\r#1{{\rm #1}} % roman font
2534\def\sc#1{{\smallcaps#1}} % smallcaps font
2535\def\ii#1{{\it #1}} % italic font
2536
2537% @b, explicit bold. Also @strong.
2279\def\b#1{{\bf #1}} 2538\def\b#1{{\bf #1}}
2280\let\strong=\b 2539\let\strong=\b
2281 2540
@@ -2307,22 +2566,35 @@ end
2307\catcode`@=\other 2566\catcode`@=\other
2308\def\endofsentencespacefactor{3000}% default 2567\def\endofsentencespacefactor{3000}% default
2309 2568
2569% @t, explicit typewriter.
2310\def\t#1{% 2570\def\t#1{%
2311 {\tt \rawbackslash \plainfrenchspacing #1}% 2571 {\tt \rawbackslash \plainfrenchspacing #1}%
2312 \null 2572 \null
2313} 2573}
2314\def\samp#1{`\tclose{#1}'\null} 2574
2315\setfont\keyrm\rmshape{8}{1000}{OT1} 2575% @samp.
2316\font\keysy=cmsy9 2576\def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}}
2317\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% 2577
2318 \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% 2578% definition of @key that produces a lozenge. Doesn't adjust to text size.
2319 \vbox{\hrule\kern-0.4pt 2579%\setfont\keyrm\rmshape{8}{1000}{OT1}
2320 \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% 2580%\font\keysy=cmsy9
2321 \kern-0.4pt\hrule}% 2581%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
2322 \kern-.06em\raise0.4pt\hbox{\angleright}}}} 2582% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
2323\def\key #1{{\nohyphenation \uppercase{#1}}\null} 2583% \vbox{\hrule\kern-0.4pt
2324% The old definition, with no lozenge: 2584% \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
2325%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null} 2585% \kern-0.4pt\hrule}%
2586% \kern-.06em\raise0.4pt\hbox{\angleright}}}}
2587
2588% definition of @key with no lozenge. If the current font is already
2589% monospace, don't change it; that way, we respect @kbdinputstyle. But
2590% if it isn't monospace, then use \tt.
2591%
2592\def\key#1{{\setupmarkupstyle{key}%
2593 \nohyphenation
2594 \ifmonospace\else\tt\fi
2595 #1}\null}
2596
2597% ctrl is no longer a Texinfo command.
2326\def\ctrl #1{{\tt \rawbackslash \hat}#1} 2598\def\ctrl #1{{\tt \rawbackslash \hat}#1}
2327 2599
2328% @file, @option are the same as @samp. 2600% @file, @option are the same as @samp.
@@ -2364,11 +2636,11 @@ end
2364{ 2636{
2365 \catcode`\-=\active \catcode`\_=\active 2637 \catcode`\-=\active \catcode`\_=\active
2366 \catcode`\'=\active \catcode`\`=\active 2638 \catcode`\'=\active \catcode`\`=\active
2639 \global\let'=\rq \global\let`=\lq % default definitions
2367 % 2640 %
2368 \global\def\code{\begingroup 2641 \global\def\code{\begingroup
2369 \catcode\rquoteChar=\active \catcode\lquoteChar=\active 2642 \setupmarkupstyle{code}%
2370 \let'\codequoteright \let`\codequoteleft 2643 % The following should really be moved into \setupmarkupstyle handlers.
2371 %
2372 \catcode\dashChar=\active \catcode\underChar=\active 2644 \catcode\dashChar=\active \catcode\underChar=\active
2373 \ifallowcodebreaks 2645 \ifallowcodebreaks
2374 \let-\codedash 2646 \let-\codedash
@@ -2400,7 +2672,7 @@ end
2400% each of the four underscores in __typeof__. This is undesirable in 2672% each of the four underscores in __typeof__. This is undesirable in
2401% some manuals, especially if they don't have long identifiers in 2673% some manuals, especially if they don't have long identifiers in
2402% general. @allowcodebreaks provides a way to control this. 2674% general. @allowcodebreaks provides a way to control this.
2403% 2675%
2404\newif\ifallowcodebreaks \allowcodebreakstrue 2676\newif\ifallowcodebreaks \allowcodebreakstrue
2405 2677
2406\def\keywordtrue{true} 2678\def\keywordtrue{true}
@@ -2420,6 +2692,7 @@ end
2420 2692
2421% @kbd is like @code, except that if the argument is just one @key command, 2693% @kbd is like @code, except that if the argument is just one @key command,
2422% then @kbd has no effect. 2694% then @kbd has no effect.
2695\def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}}
2423 2696
2424% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), 2697% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
2425% `example' (@kbd uses ttsl only inside of @example and friends), 2698% `example' (@kbd uses ttsl only inside of @example and friends),
@@ -2441,20 +2714,27 @@ end
2441\def\wordexample{example} 2714\def\wordexample{example}
2442\def\wordcode{code} 2715\def\wordcode{code}
2443 2716
2444% Default is `distinct.' 2717% Default is `distinct'.
2445\kbdinputstyle distinct 2718\kbdinputstyle distinct
2446 2719
2447\def\xkey{\key} 2720\def\xkey{\key}
2448\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}% 2721\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
2449\ifx\one\xkey\ifx\threex\three \key{#2}% 2722\ifx\one\xkey\ifx\threex\three \key{#2}%
2450\else{\tclose{\kbdfont\look}}\fi 2723\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
2451\else{\tclose{\kbdfont\look}}\fi} 2724\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi}
2452 2725
2453% For @indicateurl, @env, @command quotes seem unnecessary, so use \code. 2726% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
2454\let\indicateurl=\code 2727\let\indicateurl=\code
2455\let\env=\code 2728\let\env=\code
2456\let\command=\code 2729\let\command=\code
2457 2730
2731% @clicksequence{File @click{} Open ...}
2732\def\clicksequence#1{\begingroup #1\endgroup}
2733
2734% @clickstyle @arrow (by default)
2735\parseargdef\clickstyle{\def\click{#1}}
2736\def\click{\arrow}
2737
2458% @uref (abbreviation for `urlref') takes an optional (comma-separated) 2738% @uref (abbreviation for `urlref') takes an optional (comma-separated)
2459% second argument specifying the text to display and an optional third 2739% second argument specifying the text to display and an optional third
2460% arg as text to display instead of (rather than in addition to) the url 2740% arg as text to display instead of (rather than in addition to) the url
@@ -2504,34 +2784,20 @@ end
2504 \let\email=\uref 2784 \let\email=\uref
2505\fi 2785\fi
2506 2786
2507% Check if we are currently using a typewriter font. Since all the
2508% Computer Modern typewriter fonts have zero interword stretch (and
2509% shrink), and it is reasonable to expect all typewriter fonts to have
2510% this property, we can check that font parameter.
2511%
2512\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
2513
2514% Typeset a dimension, e.g., `in' or `pt'. The only reason for the 2787% Typeset a dimension, e.g., `in' or `pt'. The only reason for the
2515% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. 2788% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt.
2516% 2789%
2517\def\dmn#1{\thinspace #1} 2790\def\dmn#1{\thinspace #1}
2518 2791
2519\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
2520
2521% @l was never documented to mean ``switch to the Lisp font'', 2792% @l was never documented to mean ``switch to the Lisp font'',
2522% and it is not used as such in any manual I can find. We need it for 2793% and it is not used as such in any manual I can find. We need it for
2523% Polish suppressed-l. --karl, 22sep96. 2794% Polish suppressed-l. --karl, 22sep96.
2524%\def\l#1{{\li #1}\null} 2795%\def\l#1{{\li #1}\null}
2525 2796
2526% Explicit font changes: @r, @sc, undocumented @ii.
2527\def\r#1{{\rm #1}} % roman font
2528\def\sc#1{{\smallcaps#1}} % smallcaps font
2529\def\ii#1{{\it #1}} % italic font
2530
2531% @acronym for "FBI", "NATO", and the like. 2797% @acronym for "FBI", "NATO", and the like.
2532% We print this one point size smaller, since it's intended for 2798% We print this one point size smaller, since it's intended for
2533% all-uppercase. 2799% all-uppercase.
2534% 2800%
2535\def\acronym#1{\doacronym #1,,\finish} 2801\def\acronym#1{\doacronym #1,,\finish}
2536\def\doacronym#1,#2,#3\finish{% 2802\def\doacronym#1,#2,#3\finish{%
2537 {\selectfonts\lsize #1}% 2803 {\selectfonts\lsize #1}%
@@ -2543,7 +2809,7 @@ end
2543 2809
2544% @abbr for "Comput. J." and the like. 2810% @abbr for "Comput. J." and the like.
2545% No font change, but don't do end-of-sentence spacing. 2811% No font change, but don't do end-of-sentence spacing.
2546% 2812%
2547\def\abbr#1{\doabbr #1,,\finish} 2813\def\abbr#1{\doabbr #1,,\finish}
2548\def\doabbr#1,#2,#3\finish{% 2814\def\doabbr#1,#2,#3\finish{%
2549 {\plainfrenchspacing #1}% 2815 {\plainfrenchspacing #1}%
@@ -2553,6 +2819,44 @@ end
2553 \fi 2819 \fi
2554} 2820}
2555 2821
2822
2823\message{glyphs,}
2824
2825% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
2826%
2827% Since these characters are used in examples, they should be an even number of
2828% \tt widths. Each \tt character is 1en, so two makes it 1em.
2829%
2830\def\point{$\star$}
2831\def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}}
2832\def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
2833\def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}}
2834\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
2835\def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}}
2836
2837% The @error{} command.
2838% Adapted from the TeXbook's \boxit.
2839%
2840\newbox\errorbox
2841%
2842{\tentt \global\dimen0 = 3em}% Width of the box.
2843\dimen2 = .55pt % Thickness of rules
2844% The text. (`r' is open on the right, `e' somewhat less so on the left.)
2845\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt}
2846%
2847\setbox\errorbox=\hbox to \dimen0{\hfil
2848 \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
2849 \advance\hsize by -2\dimen2 % Rules.
2850 \vbox{%
2851 \hrule height\dimen2
2852 \hbox{\vrule width\dimen2 \kern3pt % Space to left of text.
2853 \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
2854 \kern3pt\vrule width\dimen2}% Space to right.
2855 \hrule height\dimen2}
2856 \hfil}
2857%
2858\def\error{\leavevmode\lower.7ex\copy\errorbox}
2859
2556% @pounds{} is a sterling sign, which Knuth put in the CM italic font. 2860% @pounds{} is a sterling sign, which Knuth put in the CM italic font.
2557% 2861%
2558\def\pounds{{\it\$}} 2862\def\pounds{{\it\$}}
@@ -2562,49 +2866,113 @@ end
2562% Theiling, which support regular, slanted, bold and bold slanted (and 2866% Theiling, which support regular, slanted, bold and bold slanted (and
2563% "outlined" (blackboard board, sort of) versions, which we don't need). 2867% "outlined" (blackboard board, sort of) versions, which we don't need).
2564% It is available from http://www.ctan.org/tex-archive/fonts/eurosym. 2868% It is available from http://www.ctan.org/tex-archive/fonts/eurosym.
2565% 2869%
2566% Although only regular is the truly official Euro symbol, we ignore 2870% Although only regular is the truly official Euro symbol, we ignore
2567% that. The Euro is designed to be slightly taller than the regular 2871% that. The Euro is designed to be slightly taller than the regular
2568% font height. 2872% font height.
2569% 2873%
2570% feymr - regular 2874% feymr - regular
2571% feymo - slanted 2875% feymo - slanted
2572% feybr - bold 2876% feybr - bold
2573% feybo - bold slanted 2877% feybo - bold slanted
2574% 2878%
2575% There is no good (free) typewriter version, to my knowledge. 2879% There is no good (free) typewriter version, to my knowledge.
2576% A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide. 2880% A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide.
2577% Hmm. 2881% Hmm.
2578% 2882%
2579% Also doesn't work in math. Do we need to do math with euro symbols? 2883% Also doesn't work in math. Do we need to do math with euro symbols?
2580% Hope not. 2884% Hope not.
2581% 2885%
2582% 2886%
2583\def\euro{{\eurofont e}} 2887\def\euro{{\eurofont e}}
2584\def\eurofont{% 2888\def\eurofont{%
2585 % We set the font at each command, rather than predefining it in 2889 % We set the font at each command, rather than predefining it in
2586 % \textfonts and the other font-switching commands, so that 2890 % \textfonts and the other font-switching commands, so that
2587 % installations which never need the symbol don't have to have the 2891 % installations which never need the symbol don't have to have the
2588 % font installed. 2892 % font installed.
2589 % 2893 %
2590 % There is only one designed size (nominal 10pt), so we always scale 2894 % There is only one designed size (nominal 10pt), so we always scale
2591 % that to the current nominal size. 2895 % that to the current nominal size.
2592 % 2896 %
2593 % By the way, simply using "at 1em" works for cmr10 and the like, but 2897 % By the way, simply using "at 1em" works for cmr10 and the like, but
2594 % does not work for cmbx10 and other extended/shrunken fonts. 2898 % does not work for cmbx10 and other extended/shrunken fonts.
2595 % 2899 %
2596 \def\eurosize{\csname\curfontsize nominalsize\endcsname}% 2900 \def\eurosize{\csname\curfontsize nominalsize\endcsname}%
2597 % 2901 %
2598 \ifx\curfontstyle\bfstylename 2902 \ifx\curfontstyle\bfstylename
2599 % bold: 2903 % bold:
2600 \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize 2904 \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize
2601 \else 2905 \else
2602 % regular: 2906 % regular:
2603 \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize 2907 \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize
2604 \fi 2908 \fi
2605 \thiseurofont 2909 \thiseurofont
2606} 2910}
2607 2911
2912% Glyphs from the EC fonts. We don't use \let for the aliases, because
2913% sometimes we redefine the original macro, and the alias should reflect
2914% the redefinition.
2915%
2916% Use LaTeX names for the Icelandic letters.
2917\def\DH{{\ecfont \char"D0}} % Eth
2918\def\dh{{\ecfont \char"F0}} % eth
2919\def\TH{{\ecfont \char"DE}} % Thorn
2920\def\th{{\ecfont \char"FE}} % thorn
2921%
2922\def\guillemetleft{{\ecfont \char"13}}
2923\def\guillemotleft{\guillemetleft}
2924\def\guillemetright{{\ecfont \char"14}}
2925\def\guillemotright{\guillemetright}
2926\def\guilsinglleft{{\ecfont \char"0E}}
2927\def\guilsinglright{{\ecfont \char"0F}}
2928\def\quotedblbase{{\ecfont \char"12}}
2929\def\quotesinglbase{{\ecfont \char"0D}}
2930%
2931% This positioning is not perfect (see the ogonek LaTeX package), but
2932% we have the precomposed glyphs for the most common cases. We put the
2933% tests to use those glyphs in the single \ogonek macro so we have fewer
2934% dummy definitions to worry about for index entries, etc.
2935%
2936% ogonek is also used with other letters in Lithuanian (IOU), but using
2937% the precomposed glyphs for those is not so easy since they aren't in
2938% the same EC font.
2939\def\ogonek#1{{%
2940 \def\temp{#1}%
2941 \ifx\temp\macrocharA\Aogonek
2942 \else\ifx\temp\macrochara\aogonek
2943 \else\ifx\temp\macrocharE\Eogonek
2944 \else\ifx\temp\macrochare\eogonek
2945 \else
2946 \ecfont \setbox0=\hbox{#1}%
2947 \ifdim\ht0=1ex\accent"0C #1%
2948 \else\ooalign{\unhbox0\crcr\hidewidth\char"0C \hidewidth}%
2949 \fi
2950 \fi\fi\fi\fi
2951 }%
2952}
2953\def\Aogonek{{\ecfont \char"81}}\def\macrocharA{A}
2954\def\aogonek{{\ecfont \char"A1}}\def\macrochara{a}
2955\def\Eogonek{{\ecfont \char"86}}\def\macrocharE{E}
2956\def\eogonek{{\ecfont \char"A6}}\def\macrochare{e}
2957%
2958% Use the ec* fonts (cm-super in outline format) for non-CM glyphs.
2959\def\ecfont{%
2960 % We can't distinguish serif/sans and italic/slanted, but this
2961 % is used for crude hacks anyway (like adding French and German
2962 % quotes to documents typeset with CM, where we lose kerning), so
2963 % hopefully nobody will notice/care.
2964 \edef\ecsize{\csname\curfontsize ecsize\endcsname}%
2965 \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}%
2966 \ifx\curfontstyle\bfstylename
2967 % bold:
2968 \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
2969 \else
2970 % regular:
2971 \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
2972 \fi
2973 \thisecfont
2974}
2975
2608% @registeredsymbol - R in a circle. The font for the R should really 2976% @registeredsymbol - R in a circle. The font for the R should really
2609% be smaller yet, but lllsize is the best we can do for now. 2977% be smaller yet, but lllsize is the best we can do for now.
2610% Adapted from the plain.tex definition of \copyright. 2978% Adapted from the plain.tex definition of \copyright.
@@ -2622,11 +2990,17 @@ end
2622% Laurent Siebenmann reports \Orb undefined with: 2990% Laurent Siebenmann reports \Orb undefined with:
2623% Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 2991% Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38
2624% so we'll define it if necessary. 2992% so we'll define it if necessary.
2625% 2993%
2626\ifx\Orb\undefined 2994\ifx\Orb\undefined
2627\def\Orb{\mathhexbox20D} 2995\def\Orb{\mathhexbox20D}
2628\fi 2996\fi
2629 2997
2998% Quotes.
2999\chardef\quotedblleft="5C
3000\chardef\quotedblright=`\"
3001\chardef\quoteleft=`\`
3002\chardef\quoteright=`\'
3003
2630 3004
2631\message{page headings,} 3005\message{page headings,}
2632 3006
@@ -2711,12 +3085,9 @@ end
2711\let\subtitlerm=\tenrm 3085\let\subtitlerm=\tenrm
2712\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines} 3086\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}
2713 3087
2714\def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines
2715 \let\tt=\authortt}
2716
2717\parseargdef\title{% 3088\parseargdef\title{%
2718 \checkenv\titlepage 3089 \checkenv\titlepage
2719 \leftline{\titlefonts\rm #1} 3090 \leftline{\titlefonts\rmisbold #1}
2720 % print a rule at the page bottom also. 3091 % print a rule at the page bottom also.
2721 \finishedtitlepagefalse 3092 \finishedtitlepagefalse
2722 \vskip4pt \hrule height 4pt width \hsize \vskip4pt 3093 \vskip4pt \hrule height 4pt width \hsize \vskip4pt
@@ -2737,7 +3108,7 @@ end
2737 \else 3108 \else
2738 \checkenv\titlepage 3109 \checkenv\titlepage
2739 \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi 3110 \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi
2740 {\authorfont \leftline{#1}}% 3111 {\secfonts\rmisbold \leftline{#1}}%
2741 \fi 3112 \fi
2742} 3113}
2743 3114
@@ -2796,6 +3167,33 @@ end
2796 3167
2797\parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} 3168\parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}}
2798 3169
3170% @evenheadingmarks top \thischapter <- chapter at the top of a page
3171% @evenheadingmarks bottom \thischapter <- chapter at the bottom of a page
3172%
3173% The same set of arguments for:
3174%
3175% @oddheadingmarks
3176% @evenfootingmarks
3177% @oddfootingmarks
3178% @everyheadingmarks
3179% @everyfootingmarks
3180
3181\def\evenheadingmarks{\headingmarks{even}{heading}}
3182\def\oddheadingmarks{\headingmarks{odd}{heading}}
3183\def\evenfootingmarks{\headingmarks{even}{footing}}
3184\def\oddfootingmarks{\headingmarks{odd}{footing}}
3185\def\everyheadingmarks#1 {\headingmarks{even}{heading}{#1}
3186 \headingmarks{odd}{heading}{#1} }
3187\def\everyfootingmarks#1 {\headingmarks{even}{footing}{#1}
3188 \headingmarks{odd}{footing}{#1} }
3189% #1 = even/odd, #2 = heading/footing, #3 = top/bottom.
3190\def\headingmarks#1#2#3 {%
3191 \expandafter\let\expandafter\temp \csname get#3headingmarks\endcsname
3192 \global\expandafter\let\csname get#1#2marks\endcsname \temp
3193}
3194
3195\everyheadingmarks bottom
3196\everyfootingmarks bottom
2799 3197
2800% @headings double turns headings on for double-sided printing. 3198% @headings double turns headings on for double-sided printing.
2801% @headings single turns headings on for single-sided printing. 3199% @headings single turns headings on for single-sided printing.
@@ -2938,7 +3336,7 @@ end
2938 % cause the example and the item to crash together. So we use this 3336 % cause the example and the item to crash together. So we use this
2939 % bizarre value of 10001 as a signal to \aboveenvbreak to insert 3337 % bizarre value of 10001 as a signal to \aboveenvbreak to insert
2940 % \parskip glue after all. Section titles are handled this way also. 3338 % \parskip glue after all. Section titles are handled this way also.
2941 % 3339 %
2942 \penalty 10001 3340 \penalty 10001
2943 \endgroup 3341 \endgroup
2944 \itemxneedsnegativevskipfalse 3342 \itemxneedsnegativevskipfalse
@@ -3032,9 +3430,18 @@ end
3032 \parindent=0pt 3430 \parindent=0pt
3033 \parskip=\smallskipamount 3431 \parskip=\smallskipamount
3034 \ifdim\parskip=0pt \parskip=2pt \fi 3432 \ifdim\parskip=0pt \parskip=2pt \fi
3433 %
3434 % Try typesetting the item mark that if the document erroneously says
3435 % something like @itemize @samp (intending @table), there's an error
3436 % right away at the @itemize. It's not the best error message in the
3437 % world, but it's better than leaving it to the @item. This means if
3438 % the user wants an empty mark, they have to say @w{} not just @w.
3035 \def\itemcontents{#1}% 3439 \def\itemcontents{#1}%
3440 \setbox0 = \hbox{\itemcontents}%
3441 %
3036 % @itemize with no arg is equivalent to @itemize @bullet. 3442 % @itemize with no arg is equivalent to @itemize @bullet.
3037 \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi 3443 \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi
3444 %
3038 \let\item=\itemizeitem 3445 \let\item=\itemizeitem
3039} 3446}
3040 3447
@@ -3055,6 +3462,7 @@ end
3055 \ifnum\lastpenalty<10000 \parskip=0in \fi 3462 \ifnum\lastpenalty<10000 \parskip=0in \fi
3056 \noindent 3463 \noindent
3057 \hbox to 0pt{\hss \itemcontents \kern\itemmargin}% 3464 \hbox to 0pt{\hss \itemcontents \kern\itemmargin}%
3465 %
3058 \vadjust{\penalty 1200}}% not good to break after first line of item. 3466 \vadjust{\penalty 1200}}% not good to break after first line of item.
3059 \flushcr 3467 \flushcr
3060} 3468}
@@ -3276,12 +3684,19 @@ end
3276% 3684%
3277% @headitem starts a heading row, which we typeset in bold. 3685% @headitem starts a heading row, which we typeset in bold.
3278% Assignments have to be global since we are inside the implicit group 3686% Assignments have to be global since we are inside the implicit group
3279% of an alignment entry. Note that \everycr resets \everytab. 3687% of an alignment entry. \everycr resets \everytab so we don't have to
3280\def\headitem{\checkenv\multitable \crcr \global\everytab={\bf}\the\everytab}% 3688% undo it ourselves.
3689\def\headitemfont{\b}% for people to use in the template row; not changeable
3690\def\headitem{%
3691 \checkenv\multitable
3692 \crcr
3693 \global\everytab={\bf}% can't use \headitemfont since the parsing differs
3694 \the\everytab % for the first item
3695}%
3281% 3696%
3282% A \tab used to include \hskip1sp. But then the space in a template 3697% A \tab used to include \hskip1sp. But then the space in a template
3283% line is not enough. That is bad. So let's go back to just `&' until 3698% line is not enough. That is bad. So let's go back to just `&' until
3284% we encounter the problem it was intended to solve again. 3699% we again encounter the problem the 1sp was intended to solve.
3285% --karl, nathan@acm.org, 20apr99. 3700% --karl, nathan@acm.org, 20apr99.
3286\def\tab{\checkenv\multitable &\the\everytab}% 3701\def\tab{\checkenv\multitable &\the\everytab}%
3287 3702
@@ -3680,11 +4095,11 @@ end
3680\def\dosynindex#1#2#3{% 4095\def\dosynindex#1#2#3{%
3681 % Only do \closeout if we haven't already done it, else we'll end up 4096 % Only do \closeout if we haven't already done it, else we'll end up
3682 % closing the target index. 4097 % closing the target index.
3683 \expandafter \ifx\csname donesynindex#2\endcsname \undefined 4098 \expandafter \ifx\csname donesynindex#2\endcsname \relax
3684 % The \closeout helps reduce unnecessary open files; the limit on the 4099 % The \closeout helps reduce unnecessary open files; the limit on the
3685 % Acorn RISC OS is a mere 16 files. 4100 % Acorn RISC OS is a mere 16 files.
3686 \expandafter\closeout\csname#2indfile\endcsname 4101 \expandafter\closeout\csname#2indfile\endcsname
3687 \expandafter\let\csname\donesynindex#2\endcsname = 1 4102 \expandafter\let\csname donesynindex#2\endcsname = 1
3688 \fi 4103 \fi
3689 % redefine \fooindfile: 4104 % redefine \fooindfile:
3690 \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname 4105 \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname
@@ -3734,7 +4149,7 @@ end
3734 % processing continues to some further point. On the other hand, it 4149 % processing continues to some further point. On the other hand, it
3735 % seems \endinput does not hurt in the printed index arg, since that 4150 % seems \endinput does not hurt in the printed index arg, since that
3736 % is still getting written without apparent harm. 4151 % is still getting written without apparent harm.
3737 % 4152 %
3738 % Sample source (mac-idx3.tex, reported by Graham Percival to 4153 % Sample source (mac-idx3.tex, reported by Graham Percival to
3739 % help-texinfo, 22may06): 4154 % help-texinfo, 22may06):
3740 % @macro funindex {WORD} 4155 % @macro funindex {WORD}
@@ -3742,12 +4157,12 @@ end
3742 % @end macro 4157 % @end macro
3743 % ... 4158 % ...
3744 % @funindex commtest 4159 % @funindex commtest
3745 % 4160 %
3746 % The above is not enough to reproduce the bug, but it gives the flavor. 4161 % The above is not enough to reproduce the bug, but it gives the flavor.
3747 % 4162 %
3748 % Sample whatsit resulting: 4163 % Sample whatsit resulting:
3749 % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}} 4164 % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}}
3750 % 4165 %
3751 % So: 4166 % So:
3752 \let\endinput = \empty 4167 \let\endinput = \empty
3753 % 4168 %
@@ -3799,19 +4214,23 @@ end
3799 % Non-English letters. 4214 % Non-English letters.
3800 \definedummyword\AA 4215 \definedummyword\AA
3801 \definedummyword\AE 4216 \definedummyword\AE
4217 \definedummyword\DH
3802 \definedummyword\L 4218 \definedummyword\L
3803 \definedummyword\OE
3804 \definedummyword\O 4219 \definedummyword\O
4220 \definedummyword\OE
4221 \definedummyword\TH
3805 \definedummyword\aa 4222 \definedummyword\aa
3806 \definedummyword\ae 4223 \definedummyword\ae
4224 \definedummyword\dh
4225 \definedummyword\exclamdown
3807 \definedummyword\l 4226 \definedummyword\l
3808 \definedummyword\oe
3809 \definedummyword\o 4227 \definedummyword\o
3810 \definedummyword\ss 4228 \definedummyword\oe
3811 \definedummyword\exclamdown
3812 \definedummyword\questiondown
3813 \definedummyword\ordf 4229 \definedummyword\ordf
3814 \definedummyword\ordm 4230 \definedummyword\ordm
4231 \definedummyword\questiondown
4232 \definedummyword\ss
4233 \definedummyword\th
3815 % 4234 %
3816 % Although these internal commands shouldn't show up, sometimes they do. 4235 % Although these internal commands shouldn't show up, sometimes they do.
3817 \definedummyword\bf 4236 \definedummyword\bf
@@ -3836,11 +4255,22 @@ end
3836 \definedummyword\equiv 4255 \definedummyword\equiv
3837 \definedummyword\error 4256 \definedummyword\error
3838 \definedummyword\euro 4257 \definedummyword\euro
4258 \definedummyword\guillemetleft
4259 \definedummyword\guillemetright
4260 \definedummyword\guilsinglleft
4261 \definedummyword\guilsinglright
3839 \definedummyword\expansion 4262 \definedummyword\expansion
3840 \definedummyword\minus 4263 \definedummyword\minus
4264 \definedummyword\ogonek
3841 \definedummyword\pounds 4265 \definedummyword\pounds
3842 \definedummyword\point 4266 \definedummyword\point
3843 \definedummyword\print 4267 \definedummyword\print
4268 \definedummyword\quotedblbase
4269 \definedummyword\quotedblleft
4270 \definedummyword\quotedblright
4271 \definedummyword\quoteleft
4272 \definedummyword\quoteright
4273 \definedummyword\quotesinglbase
3844 \definedummyword\result 4274 \definedummyword\result
3845 \definedummyword\textdegree 4275 \definedummyword\textdegree
3846 % 4276 %
@@ -3875,6 +4305,7 @@ end
3875 \definedummyword\v 4305 \definedummyword\v
3876 \definedummyword\H 4306 \definedummyword\H
3877 \definedummyword\dotaccent 4307 \definedummyword\dotaccent
4308 \definedummyword\ogonek
3878 \definedummyword\ringaccent 4309 \definedummyword\ringaccent
3879 \definedummyword\tieaccent 4310 \definedummyword\tieaccent
3880 \definedummyword\ubaraccent 4311 \definedummyword\ubaraccent
@@ -3894,6 +4325,7 @@ end
3894 \definedummyword\code 4325 \definedummyword\code
3895 \definedummyword\command 4326 \definedummyword\command
3896 \definedummyword\dfn 4327 \definedummyword\dfn
4328 \definedummyword\email
3897 \definedummyword\emph 4329 \definedummyword\emph
3898 \definedummyword\env 4330 \definedummyword\env
3899 \definedummyword\file 4331 \definedummyword\file
@@ -3942,19 +4374,23 @@ end
3942 % Non-English letters. 4374 % Non-English letters.
3943 \def\AA{AA}% 4375 \def\AA{AA}%
3944 \def\AE{AE}% 4376 \def\AE{AE}%
4377 \def\DH{DZZ}%
3945 \def\L{L}% 4378 \def\L{L}%
3946 \def\OE{OE}% 4379 \def\OE{OE}%
3947 \def\O{O}% 4380 \def\O{O}%
4381 \def\TH{ZZZ}%
3948 \def\aa{aa}% 4382 \def\aa{aa}%
3949 \def\ae{ae}% 4383 \def\ae{ae}%
4384 \def\dh{dzz}%
4385 \def\exclamdown{!}%
3950 \def\l{l}% 4386 \def\l{l}%
3951 \def\oe{oe}% 4387 \def\oe{oe}%
3952 \def\o{o}%
3953 \def\ss{ss}%
3954 \def\exclamdown{!}%
3955 \def\questiondown{?}%
3956 \def\ordf{a}% 4388 \def\ordf{a}%
3957 \def\ordm{o}% 4389 \def\ordm{o}%
4390 \def\o{o}%
4391 \def\questiondown{?}%
4392 \def\ss{ss}%
4393 \def\th{zzz}%
3958 % 4394 %
3959 \def\LaTeX{LaTeX}% 4395 \def\LaTeX{LaTeX}%
3960 \def\TeX{TeX}% 4396 \def\TeX{TeX}%
@@ -3964,30 +4400,40 @@ end
3964 \def\bullet{bullet}% 4400 \def\bullet{bullet}%
3965 \def\comma{,}% 4401 \def\comma{,}%
3966 \def\copyright{copyright}% 4402 \def\copyright{copyright}%
3967 \def\registeredsymbol{R}%
3968 \def\dots{...}% 4403 \def\dots{...}%
3969 \def\enddots{...}% 4404 \def\enddots{...}%
3970 \def\equiv{==}% 4405 \def\equiv{==}%
3971 \def\error{error}% 4406 \def\error{error}%
3972 \def\euro{euro}% 4407 \def\euro{euro}%
3973 \def\expansion{==>}% 4408 \def\expansion{==>}%
4409 \def\guillemetleft{<<}%
4410 \def\guillemetright{>>}%
4411 \def\guilsinglleft{<}%
4412 \def\guilsinglright{>}%
3974 \def\minus{-}% 4413 \def\minus{-}%
3975 \def\pounds{pounds}%
3976 \def\point{.}% 4414 \def\point{.}%
4415 \def\pounds{pounds}%
3977 \def\print{-|}% 4416 \def\print{-|}%
4417 \def\quotedblbase{"}%
4418 \def\quotedblleft{"}%
4419 \def\quotedblright{"}%
4420 \def\quoteleft{`}%
4421 \def\quoteright{'}%
4422 \def\quotesinglbase{,}%
4423 \def\registeredsymbol{R}%
3978 \def\result{=>}% 4424 \def\result{=>}%
3979 \def\textdegree{degrees}% 4425 \def\textdegree{o}%
3980 % 4426 %
3981 % We need to get rid of all macros, leaving only the arguments (if present). 4427 % We need to get rid of all macros, leaving only the arguments (if present).
3982 % Of course this is not nearly correct, but it is the best we can do for now. 4428 % Of course this is not nearly correct, but it is the best we can do for now.
3983 % makeinfo does not expand macros in the argument to @deffn, which ends up 4429 % makeinfo does not expand macros in the argument to @deffn, which ends up
3984 % writing an index entry, and texindex isn't prepared for an index sort entry 4430 % writing an index entry, and texindex isn't prepared for an index sort entry
3985 % that starts with \. 4431 % that starts with \.
3986 % 4432 %
3987 % Since macro invocations are followed by braces, we can just redefine them 4433 % Since macro invocations are followed by braces, we can just redefine them
3988 % to take a single TeX argument. The case of a macro invocation that 4434 % to take a single TeX argument. The case of a macro invocation that
3989 % goes to end-of-line is not handled. 4435 % goes to end-of-line is not handled.
3990 % 4436 %
3991 \macrolist 4437 \macrolist
3992} 4438}
3993 4439
@@ -4099,7 +4545,7 @@ end
4099 % 4545 %
4100 % If \lastskip is nonzero, that means the last item was a 4546 % If \lastskip is nonzero, that means the last item was a
4101 % skip. And since a skip is discardable, that means this 4547 % skip. And since a skip is discardable, that means this
4102 % -\skip0 glue we're inserting is preceded by a 4548 % -\whatsitskip glue we're inserting is preceded by a
4103 % non-discardable item, therefore it is not a potential 4549 % non-discardable item, therefore it is not a potential
4104 % breakpoint, therefore no \nobreak needed. 4550 % breakpoint, therefore no \nobreak needed.
4105 \ifx\lastskipmacro\zeroskipmacro 4551 \ifx\lastskipmacro\zeroskipmacro
@@ -4115,7 +4561,7 @@ end
4115 % to re-insert the same penalty (values >10000 are used for various 4561 % to re-insert the same penalty (values >10000 are used for various
4116 % signals); since we just inserted a non-discardable item, any 4562 % signals); since we just inserted a non-discardable item, any
4117 % following glue (such as a \parskip) would be a breakpoint. For example: 4563 % following glue (such as a \parskip) would be a breakpoint. For example:
4118 % 4564 %
4119 % @deffn deffn-whatever 4565 % @deffn deffn-whatever
4120 % @vindex index-whatever 4566 % @vindex index-whatever
4121 % Description. 4567 % Description.
@@ -4245,7 +4691,7 @@ end
4245% 4691%
4246% A straightforward implementation would start like this: 4692% A straightforward implementation would start like this:
4247% \def\entry#1#2{... 4693% \def\entry#1#2{...
4248% But this frozes the catcodes in the argument, and can cause problems to 4694% But this freezes the catcodes in the argument, and can cause problems to
4249% @code, which sets - active. This problem was fixed by a kludge--- 4695% @code, which sets - active. This problem was fixed by a kludge---
4250% ``-'' was active throughout whole index, but this isn't really right. 4696% ``-'' was active throughout whole index, but this isn't really right.
4251% 4697%
@@ -4575,11 +5021,15 @@ end
4575 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi 5021 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
4576 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} 5022 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
4577 5023
4578% Each @chapter defines this as the name of the chapter. 5024% Each @chapter defines these (using marks) as the number+name, number
4579% page headings and footings can use it. @section does likewise. 5025% and name of the chapter. Page headings and footings can use
4580% However, they are not reliable, because we don't use marks. 5026% these. @section does likewise.
4581\def\thischapter{} 5027\def\thischapter{}
5028\def\thischapternum{}
5029\def\thischaptername{}
4582\def\thissection{} 5030\def\thissection{}
5031\def\thissectionnum{}
5032\def\thissectionname{}
4583 5033
4584\newcount\absseclevel % used to calculate proper heading level 5034\newcount\absseclevel % used to calculate proper heading level
4585\newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count 5035\newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count
@@ -4692,7 +5142,9 @@ end
4692 \gdef\chaplevelprefix{\the\chapno.}% 5142 \gdef\chaplevelprefix{\the\chapno.}%
4693 \resetallfloatnos 5143 \resetallfloatnos
4694 % 5144 %
4695 \message{\putwordChapter\space \the\chapno}% 5145 % \putwordChapter can contain complex things in translations.
5146 \toks0=\expandafter{\putwordChapter}%
5147 \message{\the\toks0 \space \the\chapno}%
4696 % 5148 %
4697 % Write the actual heading. 5149 % Write the actual heading.
4698 \chapmacro{#1}{Ynumbered}{\the\chapno}% 5150 \chapmacro{#1}{Ynumbered}{\the\chapno}%
@@ -4703,15 +5155,17 @@ end
4703 \global\let\subsubsection = \numberedsubsubsec 5155 \global\let\subsubsection = \numberedsubsubsec
4704} 5156}
4705 5157
4706\outer\parseargdef\appendix{\apphead0{#1}} % normally apphead0 calls appendixzzz 5158\outer\parseargdef\appendix{\apphead0{#1}} % normally calls appendixzzz
5159%
4707\def\appendixzzz#1{% 5160\def\appendixzzz#1{%
4708 \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 5161 \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
4709 \global\advance\appendixno by 1 5162 \global\advance\appendixno by 1
4710 \gdef\chaplevelprefix{\appendixletter.}% 5163 \gdef\chaplevelprefix{\appendixletter.}%
4711 \resetallfloatnos 5164 \resetallfloatnos
4712 % 5165 %
4713 \def\appendixnum{\putwordAppendix\space \appendixletter}% 5166 % \putwordAppendix can contain complex things in translations.
4714 \message{\appendixnum}% 5167 \toks0=\expandafter{\putwordAppendix}%
5168 \message{\the\toks0 \space \appendixletter}%
4715 % 5169 %
4716 \chapmacro{#1}{Yappendix}{\appendixletter}% 5170 \chapmacro{#1}{Yappendix}{\appendixletter}%
4717 % 5171 %
@@ -4843,7 +5297,6 @@ end
4843% 3) Likewise, headings look best if no \parindent is used, and 5297% 3) Likewise, headings look best if no \parindent is used, and
4844% if justification is not attempted. Hence \raggedright. 5298% if justification is not attempted. Hence \raggedright.
4845 5299
4846
4847\def\majorheading{% 5300\def\majorheading{%
4848 {\advance\chapheadingskip by 10pt \chapbreak }% 5301 {\advance\chapheadingskip by 10pt \chapbreak }%
4849 \parsearg\chapheadingzzz 5302 \parsearg\chapheadingzzz
@@ -4852,8 +5305,8 @@ end
4852\def\chapheading{\chapbreak \parsearg\chapheadingzzz} 5305\def\chapheading{\chapbreak \parsearg\chapheadingzzz}
4853\def\chapheadingzzz#1{% 5306\def\chapheadingzzz#1{%
4854 {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 5307 {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
4855 \parindent=0pt\raggedright 5308 \parindent=0pt\ptexraggedright
4856 \rm #1\hfill}}% 5309 \rmisbold #1\hfill}}%
4857 \bigskip \par\penalty 200\relax 5310 \bigskip \par\penalty 200\relax
4858 \suppressfirstparagraphindent 5311 \suppressfirstparagraphindent
4859} 5312}
@@ -4880,7 +5333,20 @@ end
4880 5333
4881\def\chapbreak{\dobreak \chapheadingskip {-4000}} 5334\def\chapbreak{\dobreak \chapheadingskip {-4000}}
4882\def\chappager{\par\vfill\supereject} 5335\def\chappager{\par\vfill\supereject}
4883\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi} 5336% Because \domark is called before \chapoddpage, the filler page will
5337% get the headings for the next chapter, which is wrong. But we don't
5338% care -- we just disable all headings on the filler page.
5339\def\chapoddpage{%
5340 \chappager
5341 \ifodd\pageno \else
5342 \begingroup
5343 \evenheadline={\hfil}\evenfootline={\hfil}%
5344 \oddheadline={\hfil}\oddfootline={\hfil}%
5345 \hbox to 0pt{}%
5346 \chappager
5347 \endgroup
5348 \fi
5349}
4884 5350
4885\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname} 5351\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
4886 5352
@@ -4914,45 +5380,78 @@ end
4914\def\Yappendixkeyword{Yappendix} 5380\def\Yappendixkeyword{Yappendix}
4915% 5381%
4916\def\chapmacro#1#2#3{% 5382\def\chapmacro#1#2#3{%
5383 % Insert the first mark before the heading break (see notes for \domark).
5384 \let\prevchapterdefs=\lastchapterdefs
5385 \let\prevsectiondefs=\lastsectiondefs
5386 \gdef\lastsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}%
5387 \gdef\thissection{}}%
5388 %
5389 \def\temptype{#2}%
5390 \ifx\temptype\Ynothingkeyword
5391 \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
5392 \gdef\thischapter{\thischaptername}}%
5393 \else\ifx\temptype\Yomitfromtockeyword
5394 \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
5395 \gdef\thischapter{}}%
5396 \else\ifx\temptype\Yappendixkeyword
5397 \toks0={#1}%
5398 \xdef\lastchapterdefs{%
5399 \gdef\noexpand\thischaptername{\the\toks0}%
5400 \gdef\noexpand\thischapternum{\appendixletter}%
5401 % \noexpand\putwordAppendix avoids expanding indigestible
5402 % commands in some of the translations.
5403 \gdef\noexpand\thischapter{\noexpand\putwordAppendix{}
5404 \noexpand\thischapternum:
5405 \noexpand\thischaptername}%
5406 }%
5407 \else
5408 \toks0={#1}%
5409 \xdef\lastchapterdefs{%
5410 \gdef\noexpand\thischaptername{\the\toks0}%
5411 \gdef\noexpand\thischapternum{\the\chapno}%
5412 % \noexpand\putwordChapter avoids expanding indigestible
5413 % commands in some of the translations.
5414 \gdef\noexpand\thischapter{\noexpand\putwordChapter{}
5415 \noexpand\thischapternum:
5416 \noexpand\thischaptername}%
5417 }%
5418 \fi\fi\fi
5419 %
5420 % Output the mark. Pass it through \safewhatsit, to take care of
5421 % the preceding space.
5422 \safewhatsit\domark
5423 %
5424 % Insert the chapter heading break.
4917 \pchapsepmacro 5425 \pchapsepmacro
5426 %
5427 % Now the second mark, after the heading break. No break points
5428 % between here and the heading.
5429 \let\prevchapterdefs=\lastchapterdefs
5430 \let\prevsectiondefs=\lastsectiondefs
5431 \domark
5432 %
4918 {% 5433 {%
4919 \chapfonts \rm 5434 \chapfonts \rmisbold
4920 % 5435 %
4921 % Have to define \thissection before calling \donoderef, because the 5436 % Have to define \lastsection before calling \donoderef, because the
4922 % xref code eventually uses it. On the other hand, it has to be called 5437 % xref code eventually uses it. On the other hand, it has to be called
4923 % after \pchapsepmacro, or the headline will change too soon. 5438 % after \pchapsepmacro, or the headline will change too soon.
4924 \gdef\thissection{#1}% 5439 \gdef\lastsection{#1}%
4925 \gdef\thischaptername{#1}%
4926 % 5440 %
4927 % Only insert the separating space if we have a chapter/appendix 5441 % Only insert the separating space if we have a chapter/appendix
4928 % number, and don't print the unnumbered ``number''. 5442 % number, and don't print the unnumbered ``number''.
4929 \def\temptype{#2}%
4930 \ifx\temptype\Ynothingkeyword 5443 \ifx\temptype\Ynothingkeyword
4931 \setbox0 = \hbox{}% 5444 \setbox0 = \hbox{}%
4932 \def\toctype{unnchap}% 5445 \def\toctype{unnchap}%
4933 \gdef\thischapternum{}%
4934 \gdef\thischapter{#1}%
4935 \else\ifx\temptype\Yomitfromtockeyword 5446 \else\ifx\temptype\Yomitfromtockeyword
4936 \setbox0 = \hbox{}% contents like unnumbered, but no toc entry 5447 \setbox0 = \hbox{}% contents like unnumbered, but no toc entry
4937 \def\toctype{omit}% 5448 \def\toctype{omit}%
4938 \gdef\thischapternum{}%
4939 \gdef\thischapter{}%
4940 \else\ifx\temptype\Yappendixkeyword 5449 \else\ifx\temptype\Yappendixkeyword
4941 \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% 5450 \setbox0 = \hbox{\putwordAppendix{} #3\enspace}%
4942 \def\toctype{app}% 5451 \def\toctype{app}%
4943 \xdef\thischapternum{\appendixletter}%
4944 % We don't substitute the actual chapter name into \thischapter
4945 % because we don't want its macros evaluated now. And we don't
4946 % use \thissection because that changes with each section.
4947 %
4948 \xdef\thischapter{\putwordAppendix{} \appendixletter:
4949 \noexpand\thischaptername}%
4950 \else 5452 \else
4951 \setbox0 = \hbox{#3\enspace}% 5453 \setbox0 = \hbox{#3\enspace}%
4952 \def\toctype{numchap}% 5454 \def\toctype{numchap}%
4953 \xdef\thischapternum{\the\chapno}%
4954 \xdef\thischapter{\putwordChapter{} \the\chapno:
4955 \noexpand\thischaptername}%
4956 \fi\fi\fi 5455 \fi\fi\fi
4957 % 5456 %
4958 % Write the toc entry for this chapter. Must come before the 5457 % Write the toc entry for this chapter. Must come before the
@@ -4968,7 +5467,8 @@ end
4968 \donoderef{#2}% 5467 \donoderef{#2}%
4969 % 5468 %
4970 % Typeset the actual heading. 5469 % Typeset the actual heading.
4971 \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright 5470 \nobreak % Avoid page breaks at the interline glue.
5471 \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright
4972 \hangindent=\wd0 \centerparametersmaybe 5472 \hangindent=\wd0 \centerparametersmaybe
4973 \unhbox0 #1\par}% 5473 \unhbox0 #1\par}%
4974 }% 5474 }%
@@ -4992,8 +5492,8 @@ end
4992% 5492%
4993\def\unnchfopen #1{% 5493\def\unnchfopen #1{%
4994\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 5494\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
4995 \parindent=0pt\raggedright 5495 \parindent=0pt\ptexraggedright
4996 \rm #1\hfill}}\bigskip \par\nobreak 5496 \rmisbold #1\hfill}}\bigskip \par\nobreak
4997} 5497}
4998\def\chfopen #1#2{\chapoddpage {\chapfonts 5498\def\chfopen #1#2{\chapoddpage {\chapfonts
4999\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% 5499\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
@@ -5002,7 +5502,7 @@ end
5002\def\centerchfopen #1{% 5502\def\centerchfopen #1{%
5003\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 5503\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
5004 \parindent=0pt 5504 \parindent=0pt
5005 \hfill {\rm #1}\hfill}}\bigskip \par\nobreak 5505 \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak
5006} 5506}
5007\def\CHAPFopen{% 5507\def\CHAPFopen{%
5008 \global\let\chapmacro=\chfopen 5508 \global\let\chapmacro=\chfopen
@@ -5030,36 +5530,89 @@ end
5030% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the 5530% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the
5031% section number. 5531% section number.
5032% 5532%
5533\def\seckeyword{sec}
5534%
5033\def\sectionheading#1#2#3#4{% 5535\def\sectionheading#1#2#3#4{%
5034 {% 5536 {%
5035 % Switch to the right set of fonts. 5537 % Switch to the right set of fonts.
5036 \csname #2fonts\endcsname \rm 5538 \csname #2fonts\endcsname \rmisbold
5539 %
5540 \def\sectionlevel{#2}%
5541 \def\temptype{#3}%
5542 %
5543 % Insert first mark before the heading break (see notes for \domark).
5544 \let\prevsectiondefs=\lastsectiondefs
5545 \ifx\temptype\Ynothingkeyword
5546 \ifx\sectionlevel\seckeyword
5547 \gdef\lastsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}%
5548 \gdef\thissection{\thissectionname}}%
5549 \fi
5550 \else\ifx\temptype\Yomitfromtockeyword
5551 % Don't redefine \thissection.
5552 \else\ifx\temptype\Yappendixkeyword
5553 \ifx\sectionlevel\seckeyword
5554 \toks0={#1}%
5555 \xdef\lastsectiondefs{%
5556 \gdef\noexpand\thissectionname{\the\toks0}%
5557 \gdef\noexpand\thissectionnum{#4}%
5558 % \noexpand\putwordSection avoids expanding indigestible
5559 % commands in some of the translations.
5560 \gdef\noexpand\thissection{\noexpand\putwordSection{}
5561 \noexpand\thissectionnum:
5562 \noexpand\thissectionname}%
5563 }%
5564 \fi
5565 \else
5566 \ifx\sectionlevel\seckeyword
5567 \toks0={#1}%
5568 \xdef\lastsectiondefs{%
5569 \gdef\noexpand\thissectionname{\the\toks0}%
5570 \gdef\noexpand\thissectionnum{#4}%
5571 % \noexpand\putwordSection avoids expanding indigestible
5572 % commands in some of the translations.
5573 \gdef\noexpand\thissection{\noexpand\putwordSection{}
5574 \noexpand\thissectionnum:
5575 \noexpand\thissectionname}%
5576 }%
5577 \fi
5578 \fi\fi\fi
5579 %
5580 % Go into vertical mode. Usually we'll already be there, but we
5581 % don't want the following whatsit to end up in a preceding paragraph
5582 % if the document didn't happen to have a blank line.
5583 \par
5584 %
5585 % Output the mark. Pass it through \safewhatsit, to take care of
5586 % the preceding space.
5587 \safewhatsit\domark
5037 % 5588 %
5038 % Insert space above the heading. 5589 % Insert space above the heading.
5039 \csname #2headingbreak\endcsname 5590 \csname #2headingbreak\endcsname
5040 % 5591 %
5041 % Only insert the space after the number if we have a section number. 5592 % Now the second mark, after the heading break. No break points
5042 \def\sectionlevel{#2}% 5593 % between here and the heading.
5043 \def\temptype{#3}% 5594 \let\prevsectiondefs=\lastsectiondefs
5595 \domark
5044 % 5596 %
5597 % Only insert the space after the number if we have a section number.
5045 \ifx\temptype\Ynothingkeyword 5598 \ifx\temptype\Ynothingkeyword
5046 \setbox0 = \hbox{}% 5599 \setbox0 = \hbox{}%
5047 \def\toctype{unn}% 5600 \def\toctype{unn}%
5048 \gdef\thissection{#1}% 5601 \gdef\lastsection{#1}%
5049 \else\ifx\temptype\Yomitfromtockeyword 5602 \else\ifx\temptype\Yomitfromtockeyword
5050 % for @headings -- no section number, don't include in toc, 5603 % for @headings -- no section number, don't include in toc,
5051 % and don't redefine \thissection. 5604 % and don't redefine \lastsection.
5052 \setbox0 = \hbox{}% 5605 \setbox0 = \hbox{}%
5053 \def\toctype{omit}% 5606 \def\toctype{omit}%
5054 \let\sectionlevel=\empty 5607 \let\sectionlevel=\empty
5055 \else\ifx\temptype\Yappendixkeyword 5608 \else\ifx\temptype\Yappendixkeyword
5056 \setbox0 = \hbox{#4\enspace}% 5609 \setbox0 = \hbox{#4\enspace}%
5057 \def\toctype{app}% 5610 \def\toctype{app}%
5058 \gdef\thissection{#1}% 5611 \gdef\lastsection{#1}%
5059 \else 5612 \else
5060 \setbox0 = \hbox{#4\enspace}% 5613 \setbox0 = \hbox{#4\enspace}%
5061 \def\toctype{num}% 5614 \def\toctype{num}%
5062 \gdef\thissection{#1}% 5615 \gdef\lastsection{#1}%
5063 \fi\fi\fi 5616 \fi\fi\fi
5064 % 5617 %
5065 % Write the toc entry (before \donoderef). See comments in \chapmacro. 5618 % Write the toc entry (before \donoderef). See comments in \chapmacro.
@@ -5078,7 +5631,7 @@ end
5078 \nobreak 5631 \nobreak
5079 % 5632 %
5080 % Output the actual section heading. 5633 % Output the actual section heading.
5081 \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright 5634 \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright
5082 \hangindent=\wd0 % zero if no section number 5635 \hangindent=\wd0 % zero if no section number
5083 \unhbox0 #1}% 5636 \unhbox0 #1}%
5084 }% 5637 }%
@@ -5094,11 +5647,11 @@ end
5094 % glue accumulate. (Not a breakpoint because it's preceded by a 5647 % glue accumulate. (Not a breakpoint because it's preceded by a
5095 % discardable item.) 5648 % discardable item.)
5096 \vskip-\parskip 5649 \vskip-\parskip
5097 % 5650 %
5098 % This is purely so the last item on the list is a known \penalty > 5651 % This is purely so the last item on the list is a known \penalty >
5099 % 10000. This is so \startdefun can avoid allowing breakpoints after 5652 % 10000. This is so \startdefun can avoid allowing breakpoints after
5100 % section headings. Otherwise, it would insert a valid breakpoint between: 5653 % section headings. Otherwise, it would insert a valid breakpoint between:
5101 % 5654 %
5102 % @section sec-whatever 5655 % @section sec-whatever
5103 % @deffn def-whatever 5656 % @deffn def-whatever
5104 \penalty 10001 5657 \penalty 10001
@@ -5156,7 +5709,7 @@ end
5156% These characters do not print properly in the Computer Modern roman 5709% These characters do not print properly in the Computer Modern roman
5157% fonts, so we must take special care. This is more or less redundant 5710% fonts, so we must take special care. This is more or less redundant
5158% with the Texinfo input format setup at the end of this file. 5711% with the Texinfo input format setup at the end of this file.
5159% 5712%
5160\def\activecatcodes{% 5713\def\activecatcodes{%
5161 \catcode`\"=\active 5714 \catcode`\"=\active
5162 \catcode`\$=\active 5715 \catcode`\$=\active
@@ -5193,7 +5746,6 @@ end
5193 % 5746 %
5194 % Don't need to put `Contents' or `Short Contents' in the headline. 5747 % Don't need to put `Contents' or `Short Contents' in the headline.
5195 % It is abundantly clear what they are. 5748 % It is abundantly clear what they are.
5196 \def\thischapter{}%
5197 \chapmacro{#1}{Yomitfromtoc}{}% 5749 \chapmacro{#1}{Yomitfromtoc}{}%
5198 % 5750 %
5199 \savepageno = \pageno 5751 \savepageno = \pageno
@@ -5207,7 +5759,7 @@ end
5207 5759
5208% redefined for the two-volume lispref. We always output on 5760% redefined for the two-volume lispref. We always output on
5209% \jobname.toc even if this is redefined. 5761% \jobname.toc even if this is redefined.
5210% 5762%
5211\def\tocreadfilename{\jobname.toc} 5763\def\tocreadfilename{\jobname.toc}
5212 5764
5213% Normal (long) toc. 5765% Normal (long) toc.
@@ -5377,45 +5929,12 @@ end
5377\message{environments,} 5929\message{environments,}
5378% @foo ... @end foo. 5930% @foo ... @end foo.
5379 5931
5380% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
5381%
5382% Since these characters are used in examples, it should be an even number of
5383% \tt widths. Each \tt character is 1en, so two makes it 1em.
5384%
5385\def\point{$\star$}
5386\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
5387\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
5388\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
5389\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
5390
5391% The @error{} command.
5392% Adapted from the TeXbook's \boxit.
5393%
5394\newbox\errorbox
5395%
5396{\tentt \global\dimen0 = 3em}% Width of the box.
5397\dimen2 = .55pt % Thickness of rules
5398% The text. (`r' is open on the right, `e' somewhat less so on the left.)
5399\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt}
5400%
5401\setbox\errorbox=\hbox to \dimen0{\hfil
5402 \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
5403 \advance\hsize by -2\dimen2 % Rules.
5404 \vbox{%
5405 \hrule height\dimen2
5406 \hbox{\vrule width\dimen2 \kern3pt % Space to left of text.
5407 \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
5408 \kern3pt\vrule width\dimen2}% Space to right.
5409 \hrule height\dimen2}
5410 \hfil}
5411%
5412\def\error{\leavevmode\lower.7ex\copy\errorbox}
5413
5414% @tex ... @end tex escapes into raw Tex temporarily. 5932% @tex ... @end tex escapes into raw Tex temporarily.
5415% One exception: @ is still an escape character, so that @end tex works. 5933% One exception: @ is still an escape character, so that @end tex works.
5416% But \@ or @@ will get a plain tex @ character. 5934% But \@ or @@ will get a plain tex @ character.
5417 5935
5418\envdef\tex{% 5936\envdef\tex{%
5937 \setupmarkupstyle{tex}%
5419 \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 5938 \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
5420 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 5939 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
5421 \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie 5940 \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
@@ -5425,6 +5944,8 @@ end
5425 \catcode `\|=\other 5944 \catcode `\|=\other
5426 \catcode `\<=\other 5945 \catcode `\<=\other
5427 \catcode `\>=\other 5946 \catcode `\>=\other
5947 \catcode`\`=\other
5948 \catcode`\'=\other
5428 \escapechar=`\\ 5949 \escapechar=`\\
5429 % 5950 %
5430 \let\b=\ptexb 5951 \let\b=\ptexb
@@ -5444,6 +5965,7 @@ end
5444 \let\/=\ptexslash 5965 \let\/=\ptexslash
5445 \let\*=\ptexstar 5966 \let\*=\ptexstar
5446 \let\t=\ptext 5967 \let\t=\ptext
5968 \expandafter \let\csname top\endcsname=\ptextop % outer
5447 \let\frenchspacing=\plainfrenchspacing 5969 \let\frenchspacing=\plainfrenchspacing
5448 % 5970 %
5449 \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% 5971 \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
@@ -5559,6 +6081,7 @@ end
5559 6081
5560% This macro is called at the beginning of all the @example variants, 6082% This macro is called at the beginning of all the @example variants,
5561% inside a group. 6083% inside a group.
6084\newdimen\nonfillparindent
5562\def\nonfillstart{% 6085\def\nonfillstart{%
5563 \aboveenvbreak 6086 \aboveenvbreak
5564 \hfuzz = 12pt % Don't be fussy 6087 \hfuzz = 12pt % Don't be fussy
@@ -5566,7 +6089,12 @@ end
5566 \let\par = \lisppar % don't ignore blank lines 6089 \let\par = \lisppar % don't ignore blank lines
5567 \obeylines % each line of input is a line of output 6090 \obeylines % each line of input is a line of output
5568 \parskip = 0pt 6091 \parskip = 0pt
6092 % Turn off paragraph indentation but redefine \indent to emulate
6093 % the normal \indent.
6094 \nonfillparindent=\parindent
5569 \parindent = 0pt 6095 \parindent = 0pt
6096 \let\indent\nonfillindent
6097 %
5570 \emergencystretch = 0pt % don't try to avoid overfull boxes 6098 \emergencystretch = 0pt % don't try to avoid overfull boxes
5571 \ifx\nonarrowing\relax 6099 \ifx\nonarrowing\relax
5572 \advance \leftskip by \lispnarrowing 6100 \advance \leftskip by \lispnarrowing
@@ -5577,6 +6105,24 @@ end
5577 \let\exdent=\nofillexdent 6105 \let\exdent=\nofillexdent
5578} 6106}
5579 6107
6108\begingroup
6109\obeyspaces
6110% We want to swallow spaces (but not other tokens) after the fake
6111% @indent in our nonfill-environments, where spaces are normally
6112% active and set to @tie, resulting in them not being ignored after
6113% @indent.
6114\gdef\nonfillindent{\futurelet\temp\nonfillindentcheck}%
6115\gdef\nonfillindentcheck{%
6116\ifx\temp %
6117\expandafter\nonfillindentgobble%
6118\else%
6119\leavevmode\nonfillindentbox%
6120\fi%
6121}%
6122\endgroup
6123\def\nonfillindentgobble#1{\nonfillindent}
6124\def\nonfillindentbox{\hbox to \nonfillparindent{\hss}}
6125
5580% If you want all examples etc. small: @set dispenvsize small. 6126% If you want all examples etc. small: @set dispenvsize small.
5581% If you want even small examples the full size: @set dispenvsize nosmall. 6127% If you want even small examples the full size: @set dispenvsize nosmall.
5582% This affects the following displayed environments: 6128% This affects the following displayed environments:
@@ -5625,7 +6171,7 @@ end
5625% 6171%
5626\maketwodispenvs {lisp}{example}{% 6172\maketwodispenvs {lisp}{example}{%
5627 \nonfillstart 6173 \nonfillstart
5628 \tt\quoteexpand 6174 \tt\setupmarkupstyle{example}%
5629 \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. 6175 \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
5630 \gobble % eat return 6176 \gobble % eat return
5631} 6177}
@@ -5663,12 +6209,36 @@ end
5663\let\Eflushright = \afterenvbreak 6209\let\Eflushright = \afterenvbreak
5664 6210
5665 6211
6212% @raggedright does more-or-less normal line breaking but no right
6213% justification. From plain.tex.
6214\envdef\raggedright{%
6215 \rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax
6216}
6217\let\Eraggedright\par
6218
6219\envdef\raggedleft{%
6220 \parindent=0pt \leftskip0pt plus2em
6221 \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt
6222 \hbadness=10000 % Last line will usually be underfull, so turn off
6223 % badness reporting.
6224}
6225\let\Eraggedleft\par
6226
6227\envdef\raggedcenter{%
6228 \parindent=0pt \rightskip0pt plus1em \leftskip0pt plus1em
6229 \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt
6230 \hbadness=10000 % Last line will usually be underfull, so turn off
6231 % badness reporting.
6232}
6233\let\Eraggedcenter\par
6234
6235
5666% @quotation does normal linebreaking (hence we can't use \nonfillstart) 6236% @quotation does normal linebreaking (hence we can't use \nonfillstart)
5667% and narrows the margins. We keep \parskip nonzero in general, since 6237% and narrows the margins. We keep \parskip nonzero in general, since
5668% we're doing normal filling. So, when using \aboveenvbreak and 6238% we're doing normal filling. So, when using \aboveenvbreak and
5669% \afterenvbreak, temporarily make \parskip 0. 6239% \afterenvbreak, temporarily make \parskip 0.
5670% 6240%
5671\envdef\quotation{% 6241\def\quotationstart{%
5672 {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip 6242 {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
5673 \parindent=0pt 6243 \parindent=0pt
5674 % 6244 %
@@ -5683,6 +6253,17 @@ end
5683 \parsearg\quotationlabel 6253 \parsearg\quotationlabel
5684} 6254}
5685 6255
6256\envdef\quotation{%
6257 \setnormaldispenv
6258 \quotationstart
6259}
6260
6261\envdef\smallquotation{%
6262 \setsmalldispenv
6263 \quotationstart
6264}
6265\let\Esmallquotation = \Equotation
6266
5686% We have retained a nonzero parskip for the environment, since we're 6267% We have retained a nonzero parskip for the environment, since we're
5687% doing normal filling. 6268% doing normal filling.
5688% 6269%
@@ -5718,18 +6299,16 @@ end
5718 \do\ \do\\\do\{\do\}\do\$\do\&% 6299 \do\ \do\\\do\{\do\}\do\$\do\&%
5719 \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~% 6300 \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~%
5720 \do\<\do\>\do\|\do\@\do+\do\"% 6301 \do\<\do\>\do\|\do\@\do+\do\"%
6302 % Don't do the quotes -- if we do, @set txicodequoteundirected and
6303 % @set txicodequotebacktick will not have effect on @verb and
6304 % @verbatim, and ?` and !` ligatures won't get disabled.
6305 %\do\`\do\'%
5721} 6306}
5722% 6307%
5723% [Knuth] p. 380 6308% [Knuth] p. 380
5724\def\uncatcodespecials{% 6309\def\uncatcodespecials{%
5725 \def\do##1{\catcode`##1=\other}\dospecials} 6310 \def\do##1{\catcode`##1=\other}\dospecials}
5726% 6311%
5727% [Knuth] pp. 380,381,391
5728% Disable Spanish ligatures ?` and !` of \tt font
5729\begingroup
5730 \catcode`\`=\active\gdef`{\relax\lq}
5731\endgroup
5732%
5733% Setup for the @verb command. 6312% Setup for the @verb command.
5734% 6313%
5735% Eight spaces for a tab 6314% Eight spaces for a tab
@@ -5741,7 +6320,7 @@ end
5741\def\setupverb{% 6320\def\setupverb{%
5742 \tt % easiest (and conventionally used) font for verbatim 6321 \tt % easiest (and conventionally used) font for verbatim
5743 \def\par{\leavevmode\endgraf}% 6322 \def\par{\leavevmode\endgraf}%
5744 \catcode`\`=\active 6323 \setupmarkupstyle{verb}%
5745 \tabeightspaces 6324 \tabeightspaces
5746 % Respect line breaks, 6325 % Respect line breaks,
5747 % print special symbols as themselves, and 6326 % print special symbols as themselves, and
@@ -5756,33 +6335,6 @@ end
5756\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount 6335\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
5757% 6336%
5758\def\starttabbox{\setbox0=\hbox\bgroup} 6337\def\starttabbox{\setbox0=\hbox\bgroup}
5759
5760% Allow an option to not replace quotes with a regular directed right
5761% quote/apostrophe (char 0x27), but instead use the undirected quote
5762% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it
5763% the default, but it works for pasting with more pdf viewers (at least
5764% evince), the lilypond developers report. xpdf does work with the
5765% regular 0x27.
5766%
5767\def\codequoteright{%
5768 \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
5769 \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
5770 '%
5771 \else \char'15 \fi
5772 \else \char'15 \fi
5773}
5774%
5775% and a similar option for the left quote char vs. a grave accent.
5776% Modern fonts display ASCII 0x60 as a grave accent, so some people like
5777% the code environments to do likewise.
5778%
5779\def\codequoteleft{%
5780 \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
5781 \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
5782 `%
5783 \else \char'22 \fi
5784 \else \char'22 \fi
5785}
5786% 6338%
5787\begingroup 6339\begingroup
5788 \catcode`\^^I=\active 6340 \catcode`\^^I=\active
@@ -5796,13 +6348,6 @@ end
5796 \wd0=\dimen0 \box0 \starttabbox 6348 \wd0=\dimen0 \box0 \starttabbox
5797 }% 6349 }%
5798 } 6350 }
5799 \catcode`\'=\active
5800 \gdef\rquoteexpand{\catcode\rquoteChar=\active \def'{\codequoteright}}%
5801 %
5802 \catcode`\`=\active
5803 \gdef\lquoteexpand{\catcode\lquoteChar=\active \def`{\codequoteleft}}%
5804 %
5805 \gdef\quoteexpand{\rquoteexpand \lquoteexpand}%
5806\endgroup 6351\endgroup
5807 6352
5808% start the verbatim environment. 6353% start the verbatim environment.
@@ -5812,9 +6357,8 @@ end
5812 % Easiest (and conventionally used) font for verbatim 6357 % Easiest (and conventionally used) font for verbatim
5813 \tt 6358 \tt
5814 \def\par{\leavevmode\egroup\box0\endgraf}% 6359 \def\par{\leavevmode\egroup\box0\endgraf}%
5815 \catcode`\`=\active
5816 \tabexpand 6360 \tabexpand
5817 \quoteexpand 6361 \setupmarkupstyle{verbatim}%
5818 % Respect line breaks, 6362 % Respect line breaks,
5819 % print special symbols as themselves, and 6363 % print special symbols as themselves, and
5820 % make each space count 6364 % make each space count
@@ -5874,6 +6418,7 @@ end
5874 {% 6418 {%
5875 \makevalueexpandable 6419 \makevalueexpandable
5876 \setupverbatim 6420 \setupverbatim
6421 \indexnofonts % Allow `@@' and other weird things in file names.
5877 \input #1 6422 \input #1
5878 \afterenvbreak 6423 \afterenvbreak
5879 }% 6424 }%
@@ -5973,7 +6518,7 @@ end
5973\def\Edefun{\endgraf\medbreak} 6518\def\Edefun{\endgraf\medbreak}
5974 6519
5975% \makedefun{deffn} creates \deffn, \deffnx and \Edeffn; 6520% \makedefun{deffn} creates \deffn, \deffnx and \Edeffn;
5976% the only thing remainnig is to define \deffnheader. 6521% the only thing remaining is to define \deffnheader.
5977% 6522%
5978\def\makedefun#1{% 6523\def\makedefun#1{%
5979 \expandafter\let\csname E#1\endcsname = \Edefun 6524 \expandafter\let\csname E#1\endcsname = \Edefun
@@ -6152,7 +6697,7 @@ end
6152 % 6697 %
6153 % On the other hand, if an argument has two dashes (for instance), we 6698 % On the other hand, if an argument has two dashes (for instance), we
6154 % want a way to get ttsl. Let's try @var for that. 6699 % want a way to get ttsl. Let's try @var for that.
6155 \let\var=\ttslanted 6700 \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}%
6156 #1% 6701 #1%
6157 \sl\hyphenchar\font=45 6702 \sl\hyphenchar\font=45
6158} 6703}
@@ -6232,12 +6777,14 @@ end
6232 \ifnum\parencount=0 \else \badparencount \fi 6777 \ifnum\parencount=0 \else \badparencount \fi
6233 \ifnum\brackcount=0 \else \badbrackcount \fi 6778 \ifnum\brackcount=0 \else \badbrackcount \fi
6234} 6779}
6780% these should not use \errmessage; the glibc manual, at least, actually
6781% has such constructs (when documenting function pointers).
6235\def\badparencount{% 6782\def\badparencount{%
6236 \errmessage{Unbalanced parentheses in @def}% 6783 \message{Warning: unbalanced parentheses in @def...}%
6237 \global\parencount=0 6784 \global\parencount=0
6238} 6785}
6239\def\badbrackcount{% 6786\def\badbrackcount{%
6240 \errmessage{Unbalanced square braces in @def}% 6787 \message{Warning: unbalanced square brackets in @def...}%
6241 \global\brackcount=0 6788 \global\brackcount=0
6242} 6789}
6243 6790
@@ -6304,7 +6851,7 @@ end
6304% This does \let #1 = #2, with \csnames; that is, 6851% This does \let #1 = #2, with \csnames; that is,
6305% \let \csname#1\endcsname = \csname#2\endcsname 6852% \let \csname#1\endcsname = \csname#2\endcsname
6306% (except of course we have to play expansion games). 6853% (except of course we have to play expansion games).
6307% 6854%
6308\def\cslet#1#2{% 6855\def\cslet#1#2{%
6309 \expandafter\let 6856 \expandafter\let
6310 \csname#1\expandafter\endcsname 6857 \csname#1\expandafter\endcsname
@@ -6332,6 +6879,10 @@ end
6332% all characters are catcode 10, 11 or 12, except \ which is active 6879% all characters are catcode 10, 11 or 12, except \ which is active
6333% (as in normal texinfo). It is necessary to change the definition of \. 6880% (as in normal texinfo). It is necessary to change the definition of \.
6334 6881
6882% Non-ASCII encodings make 8-bit characters active, so un-activate
6883% them to avoid their expansion. Must do this non-globally, to
6884% confine the change to the current group.
6885
6335% It's necessary to have hard CRs when the macro is executed. This is 6886% It's necessary to have hard CRs when the macro is executed. This is
6336% done by making ^^M (\endlinechar) catcode 12 when reading the macro 6887% done by making ^^M (\endlinechar) catcode 12 when reading the macro
6337% body, and then making it the \newlinechar in \scanmacro. 6888% body, and then making it the \newlinechar in \scanmacro.
@@ -6346,6 +6897,7 @@ end
6346 \catcode`\_=\other 6897 \catcode`\_=\other
6347 \catcode`\|=\other 6898 \catcode`\|=\other
6348 \catcode`\~=\other 6899 \catcode`\~=\other
6900 \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi
6349} 6901}
6350 6902
6351\def\scanargctxt{% 6903\def\scanargctxt{%
@@ -6607,7 +7159,7 @@ end
6607 7159
6608% \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an 7160% \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an
6609% anchor), which consists of three parts: 7161% anchor), which consists of three parts:
6610% 1) NAME-title - the current sectioning name taken from \thissection, 7162% 1) NAME-title - the current sectioning name taken from \lastsection,
6611% or the anchor name. 7163% or the anchor name.
6612% 2) NAME-snt - section number and type, passed as the SNT arg, or 7164% 2) NAME-snt - section number and type, passed as the SNT arg, or
6613% empty for anchors. 7165% empty for anchors.
@@ -6626,7 +7178,7 @@ end
6626 \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef 7178 \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
6627 ##1}{##2}}% these are parameters of \writexrdef 7179 ##1}{##2}}% these are parameters of \writexrdef
6628 }% 7180 }%
6629 \toks0 = \expandafter{\thissection}% 7181 \toks0 = \expandafter{\lastsection}%
6630 \immediate \writexrdef{title}{\the\toks0 }% 7182 \immediate \writexrdef{title}{\the\toks0 }%
6631 \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. 7183 \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
6632 \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, during \shipout 7184 \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, during \shipout
@@ -6673,23 +7225,25 @@ end
6673 % 7225 %
6674 % Make link in pdf output. 7226 % Make link in pdf output.
6675 \ifpdf 7227 \ifpdf
6676 \leavevmode
6677 \getfilename{#4}%
6678 {\indexnofonts 7228 {\indexnofonts
6679 \turnoffactive 7229 \turnoffactive
7230 % This expands tokens, so do it after making catcode changes, so _
7231 % etc. don't get their TeX definitions.
7232 \getfilename{#4}%
7233 %
6680 % See comments at \activebackslashdouble. 7234 % See comments at \activebackslashdouble.
6681 {\activebackslashdouble \xdef\pdfxrefdest{#1}% 7235 {\activebackslashdouble \xdef\pdfxrefdest{#1}%
6682 \backslashparens\pdfxrefdest}% 7236 \backslashparens\pdfxrefdest}%
6683 % 7237 %
7238 \leavevmode
7239 \startlink attr{/Border [0 0 0]}%
6684 \ifnum\filenamelength>0 7240 \ifnum\filenamelength>0
6685 \startlink attr{/Border [0 0 0]}% 7241 goto file{\the\filename.pdf} name{\pdfxrefdest}%
6686 goto file{\the\filename.pdf} name{\pdfxrefdest}%
6687 \else 7242 \else
6688 \startlink attr{/Border [0 0 0]}% 7243 goto name{\pdfmkpgn{\pdfxrefdest}}%
6689 goto name{\pdfmkpgn{\pdfxrefdest}}%
6690 \fi 7244 \fi
6691 }% 7245 }%
6692 \linkcolor 7246 \setcolor{\linkcolor}%
6693 \fi 7247 \fi
6694 % 7248 %
6695 % Float references are printed completely differently: "Figure 1.2" 7249 % Float references are printed completely differently: "Figure 1.2"
@@ -6727,7 +7281,7 @@ end
6727 % is a loss. Therefore, we give the text of the node name again, so it 7281 % is a loss. Therefore, we give the text of the node name again, so it
6728 % is as if TeX is seeing it for the first time. 7282 % is as if TeX is seeing it for the first time.
6729 \ifdim \wd1 > 0pt 7283 \ifdim \wd1 > 0pt
6730 \putwordsection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}% 7284 \putwordSection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
6731 \else 7285 \else
6732 % _ (for example) has to be the character _ for the purposes of the 7286 % _ (for example) has to be the character _ for the purposes of the
6733 % control sequence corresponding to the node, but it has to expand 7287 % control sequence corresponding to the node, but it has to expand
@@ -7037,7 +7591,7 @@ end
7037% In case a @footnote appears in a vbox, save the footnote text and create 7591% In case a @footnote appears in a vbox, save the footnote text and create
7038% the real \insert just after the vbox finished. Otherwise, the insertion 7592% the real \insert just after the vbox finished. Otherwise, the insertion
7039% would be lost. 7593% would be lost.
7040% Similarily, if a @footnote appears inside an alignment, save the footnote 7594% Similarly, if a @footnote appears inside an alignment, save the footnote
7041% text to a box and make the \insert when a row of the table is finished. 7595% text to a box and make the \insert when a row of the table is finished.
7042% And the same can be done for other insert classes. --kasal, 16nov03. 7596% And the same can be done for other insert classes. --kasal, 16nov03.
7043 7597
@@ -7141,15 +7695,19 @@ end
7141 % If the image is by itself, center it. 7695 % If the image is by itself, center it.
7142 \ifvmode 7696 \ifvmode
7143 \imagevmodetrue 7697 \imagevmodetrue
7144 \nobreak\bigskip 7698 \nobreak\medskip
7145 % Usually we'll have text after the image which will insert 7699 % Usually we'll have text after the image which will insert
7146 % \parskip glue, so insert it here too to equalize the space 7700 % \parskip glue, so insert it here too to equalize the space
7147 % above and below. 7701 % above and below.
7148 \nobreak\vskip\parskip 7702 \nobreak\vskip\parskip
7149 \nobreak 7703 \nobreak
7150 \line\bgroup
7151 \fi 7704 \fi
7152 % 7705 %
7706 % Leave vertical mode so that indentation from an enclosing
7707 % environment such as @quotation is respected. On the other hand, if
7708 % it's at the top level, we don't want the normal paragraph indentation.
7709 \noindent
7710 %
7153 % Output the image. 7711 % Output the image.
7154 \ifpdf 7712 \ifpdf
7155 \dopdfimage{#1}{#2}{#3}% 7713 \dopdfimage{#1}{#2}{#3}%
@@ -7160,7 +7718,7 @@ end
7160 \epsfbox{#1.eps}% 7718 \epsfbox{#1.eps}%
7161 \fi 7719 \fi
7162 % 7720 %
7163 \ifimagevmode \egroup \bigbreak \fi % space after the image 7721 \ifimagevmode \medskip \fi % space after the standalone image
7164\endgroup} 7722\endgroup}
7165 7723
7166 7724
@@ -7227,13 +7785,13 @@ end
7227 \global\advance\floatno by 1 7785 \global\advance\floatno by 1
7228 % 7786 %
7229 {% 7787 {%
7230 % This magic value for \thissection is output by \setref as the 7788 % This magic value for \lastsection is output by \setref as the
7231 % XREFLABEL-title value. \xrefX uses it to distinguish float 7789 % XREFLABEL-title value. \xrefX uses it to distinguish float
7232 % labels (which have a completely different output format) from 7790 % labels (which have a completely different output format) from
7233 % node and anchor labels. And \xrdef uses it to construct the 7791 % node and anchor labels. And \xrdef uses it to construct the
7234 % lists of floats. 7792 % lists of floats.
7235 % 7793 %
7236 \edef\thissection{\floatmagic=\safefloattype}% 7794 \edef\lastsection{\floatmagic=\safefloattype}%
7237 \setref{\floatlabel}{Yfloat}% 7795 \setref{\floatlabel}{Yfloat}%
7238 }% 7796 }%
7239 \fi 7797 \fi
@@ -7368,7 +7926,7 @@ end
7368 7926
7369% #1 is the control sequence we are passed; we expand into a conditional 7927% #1 is the control sequence we are passed; we expand into a conditional
7370% which is true if #1 represents a float ref. That is, the magic 7928% which is true if #1 represents a float ref. That is, the magic
7371% \thissection value which we \setref above. 7929% \lastsection value which we \setref above.
7372% 7930%
7373\def\iffloat#1{\expandafter\doiffloat#1==\finish} 7931\def\iffloat#1{\expandafter\doiffloat#1==\finish}
7374% 7932%
@@ -7432,10 +7990,9 @@ end
7432 7990
7433\message{localization,} 7991\message{localization,}
7434 7992
7435% @documentlanguage is usually given very early, just after 7993% For single-language documents, @documentlanguage is usually given very
7436% @setfilename. If done too late, it may not override everything 7994% early, just after @documentencoding. Single argument is the language
7437% properly. Single argument is the language (de) or locale (de_DE) 7995% (de) or locale (de_DE) abbreviation.
7438% abbreviation. It would be nice if we could set up a hyphenation file.
7439% 7996%
7440{ 7997{
7441 \catcode`\_ = \active 7998 \catcode`\_ = \active
@@ -7448,37 +8005,74 @@ end
7448 \ifeof 1 8005 \ifeof 1
7449 \documentlanguagetrywithoutunderscore{#1_\finish}% 8006 \documentlanguagetrywithoutunderscore{#1_\finish}%
7450 \else 8007 \else
8008 \globaldefs = 1 % everything in the txi-LL files needs to persist
7451 \input txi-#1.tex 8009 \input txi-#1.tex
7452 \fi 8010 \fi
7453 \closein 1 8011 \closein 1
7454 \endgroup 8012 \endgroup % end raw TeX
7455\endgroup} 8013\endgroup}
7456}
7457% 8014%
7458% If they passed de_DE, and txi-de_DE.tex doesn't exist, 8015% If they passed de_DE, and txi-de_DE.tex doesn't exist,
7459% try txi-de.tex. 8016% try txi-de.tex.
7460% 8017%
7461\def\documentlanguagetrywithoutunderscore#1_#2\finish{% 8018\gdef\documentlanguagetrywithoutunderscore#1_#2\finish{%
7462 \openin 1 txi-#1.tex 8019 \openin 1 txi-#1.tex
7463 \ifeof 1 8020 \ifeof 1
7464 \errhelp = \nolanghelp 8021 \errhelp = \nolanghelp
7465 \errmessage{Cannot read language file txi-#1.tex}% 8022 \errmessage{Cannot read language file txi-#1.tex}%
7466 \else 8023 \else
8024 \globaldefs = 1 % everything in the txi-LL files needs to persist
7467 \input txi-#1.tex 8025 \input txi-#1.tex
7468 \fi 8026 \fi
7469 \closein 1 8027 \closein 1
7470} 8028}
8029}% end of special _ catcode
7471% 8030%
7472\newhelp\nolanghelp{The given language definition file cannot be found or 8031\newhelp\nolanghelp{The given language definition file cannot be found or
7473is empty. Maybe you need to install it? In the current directory 8032is empty. Maybe you need to install it? Putting it in the current
7474should work if nowhere else does.} 8033directory should work if nowhere else does.}
7475 8034
8035% This macro is called from txi-??.tex files; the first argument is the
8036% \language name to set (without the "\lang@" prefix), the second and
8037% third args are \{left,right}hyphenmin.
8038%
8039% The language names to pass are determined when the format is built.
8040% See the etex.log file created at that time, e.g.,
8041% /usr/local/texlive/2008/texmf-var/web2c/pdftex/etex.log.
8042%
8043% With TeX Live 2008, etex now includes hyphenation patterns for all
8044% available languages. This means we can support hyphenation in
8045% Texinfo, at least to some extent. (This still doesn't solve the
8046% accented characters problem.)
8047%
8048\catcode`@=11
8049\def\txisetlanguage#1#2#3{%
8050 % do not set the language if the name is undefined in the current TeX.
8051 \expandafter\ifx\csname lang@#1\endcsname \relax
8052 \message{no patterns for #1}%
8053 \else
8054 \global\language = \csname lang@#1\endcsname
8055 \fi
8056 % but there is no harm in adjusting the hyphenmin values regardless.
8057 \global\lefthyphenmin = #2\relax
8058 \global\righthyphenmin = #3\relax
8059}
8060
8061% Helpers for encodings.
7476% Set the catcode of characters 128 through 255 to the specified number. 8062% Set the catcode of characters 128 through 255 to the specified number.
7477% 8063%
7478\def\setnonasciicharscatcode#1{% 8064\def\setnonasciicharscatcode#1{%
7479 \count255=128 8065 \count255=128
7480 \loop\ifnum\count255<256 8066 \loop\ifnum\count255<256
7481 \global\catcode\count255=#1 8067 \global\catcode\count255=#1\relax
8068 \advance\count255 by 1
8069 \repeat
8070}
8071
8072\def\setnonasciicharscatcodenonglobal#1{%
8073 \count255=128
8074 \loop\ifnum\count255<256
8075 \catcode\count255=#1\relax
7482 \advance\count255 by 1 8076 \advance\count255 by 1
7483 \repeat 8077 \repeat
7484} 8078}
@@ -7505,7 +8099,7 @@ should work if nowhere else does.}
7505 \setnonasciicharscatcode\active 8099 \setnonasciicharscatcode\active
7506 \lattwochardefs 8100 \lattwochardefs
7507 % 8101 %
7508 \else \ifx \declaredencoding \latone 8102 \else \ifx \declaredencoding \latone
7509 \setnonasciicharscatcode\active 8103 \setnonasciicharscatcode\active
7510 \latonechardefs 8104 \latonechardefs
7511 % 8105 %
@@ -7517,7 +8111,7 @@ should work if nowhere else does.}
7517 \setnonasciicharscatcode\active 8111 \setnonasciicharscatcode\active
7518 \utfeightchardefs 8112 \utfeightchardefs
7519 % 8113 %
7520 \else 8114 \else
7521 \message{Unknown document encoding #1, ignoring.}% 8115 \message{Unknown document encoding #1, ignoring.}%
7522 % 8116 %
7523 \fi % utfeight 8117 \fi % utfeight
@@ -7529,7 +8123,7 @@ should work if nowhere else does.}
7529 8123
7530% A message to be logged when using a character that isn't available 8124% A message to be logged when using a character that isn't available
7531% the default font encoding (OT1). 8125% the default font encoding (OT1).
7532% 8126%
7533\def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}} 8127\def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}}
7534 8128
7535% Take account of \c (plain) vs. \, (Texinfo) difference. 8129% Take account of \c (plain) vs. \, (Texinfo) difference.
@@ -7542,21 +8136,21 @@ should work if nowhere else does.}
7542% 8136%
7543% Latin1 (ISO-8859-1) character definitions. 8137% Latin1 (ISO-8859-1) character definitions.
7544\def\latonechardefs{% 8138\def\latonechardefs{%
7545 \gdef^^a0{~} 8139 \gdef^^a0{~}
7546 \gdef^^a1{\exclamdown} 8140 \gdef^^a1{\exclamdown}
7547 \gdef^^a2{\missingcharmsg{CENT SIGN}} 8141 \gdef^^a2{\missingcharmsg{CENT SIGN}}
7548 \gdef^^a3{{\pounds}} 8142 \gdef^^a3{{\pounds}}
7549 \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} 8143 \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
7550 \gdef^^a5{\missingcharmsg{YEN SIGN}} 8144 \gdef^^a5{\missingcharmsg{YEN SIGN}}
7551 \gdef^^a6{\missingcharmsg{BROKEN BAR}} 8145 \gdef^^a6{\missingcharmsg{BROKEN BAR}}
7552 \gdef^^a7{\S} 8146 \gdef^^a7{\S}
7553 \gdef^^a8{\"{}} 8147 \gdef^^a8{\"{}}
7554 \gdef^^a9{\copyright} 8148 \gdef^^a9{\copyright}
7555 \gdef^^aa{\ordf} 8149 \gdef^^aa{\ordf}
7556 \gdef^^ab{\missingcharmsg{LEFT-POINTING DOUBLE ANGLE QUOTATION MARK}} 8150 \gdef^^ab{\guillemetleft}
7557 \gdef^^ac{$\lnot$} 8151 \gdef^^ac{$\lnot$}
7558 \gdef^^ad{\-} 8152 \gdef^^ad{\-}
7559 \gdef^^ae{\registeredsymbol} 8153 \gdef^^ae{\registeredsymbol}
7560 \gdef^^af{\={}} 8154 \gdef^^af{\={}}
7561 % 8155 %
7562 \gdef^^b0{\textdegree} 8156 \gdef^^b0{\textdegree}
@@ -7572,7 +8166,7 @@ should work if nowhere else does.}
7572 \gdef^^b9{$^1$} 8166 \gdef^^b9{$^1$}
7573 \gdef^^ba{\ordm} 8167 \gdef^^ba{\ordm}
7574 % 8168 %
7575 \gdef^^bb{\missingcharmsg{RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK}} 8169 \gdef^^bb{\guilletright}
7576 \gdef^^bc{$1\over4$} 8170 \gdef^^bc{$1\over4$}
7577 \gdef^^bd{$1\over2$} 8171 \gdef^^bd{$1\over2$}
7578 \gdef^^be{$3\over4$} 8172 \gdef^^be{$3\over4$}
@@ -7583,7 +8177,7 @@ should work if nowhere else does.}
7583 \gdef^^c2{\^A} 8177 \gdef^^c2{\^A}
7584 \gdef^^c3{\~A} 8178 \gdef^^c3{\~A}
7585 \gdef^^c4{\"A} 8179 \gdef^^c4{\"A}
7586 \gdef^^c5{\ringaccent A} 8180 \gdef^^c5{\ringaccent A}
7587 \gdef^^c6{\AE} 8181 \gdef^^c6{\AE}
7588 \gdef^^c7{\cedilla C} 8182 \gdef^^c7{\cedilla C}
7589 \gdef^^c8{\`E} 8183 \gdef^^c8{\`E}
@@ -7595,7 +8189,7 @@ should work if nowhere else does.}
7595 \gdef^^ce{\^I} 8189 \gdef^^ce{\^I}
7596 \gdef^^cf{\"I} 8190 \gdef^^cf{\"I}
7597 % 8191 %
7598 \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER ETH}} 8192 \gdef^^d0{\DH}
7599 \gdef^^d1{\~N} 8193 \gdef^^d1{\~N}
7600 \gdef^^d2{\`O} 8194 \gdef^^d2{\`O}
7601 \gdef^^d3{\'O} 8195 \gdef^^d3{\'O}
@@ -7609,7 +8203,7 @@ should work if nowhere else does.}
7609 \gdef^^db{\^U} 8203 \gdef^^db{\^U}
7610 \gdef^^dc{\"U} 8204 \gdef^^dc{\"U}
7611 \gdef^^dd{\'Y} 8205 \gdef^^dd{\'Y}
7612 \gdef^^de{\missingcharmsg{LATIN CAPITAL LETTER THORN}} 8206 \gdef^^de{\TH}
7613 \gdef^^df{\ss} 8207 \gdef^^df{\ss}
7614 % 8208 %
7615 \gdef^^e0{\`a} 8209 \gdef^^e0{\`a}
@@ -7629,7 +8223,7 @@ should work if nowhere else does.}
7629 \gdef^^ee{\^{\dotless i}} 8223 \gdef^^ee{\^{\dotless i}}
7630 \gdef^^ef{\"{\dotless i}} 8224 \gdef^^ef{\"{\dotless i}}
7631 % 8225 %
7632 \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER ETH}} 8226 \gdef^^f0{\dh}
7633 \gdef^^f1{\~n} 8227 \gdef^^f1{\~n}
7634 \gdef^^f2{\`o} 8228 \gdef^^f2{\`o}
7635 \gdef^^f3{\'o} 8229 \gdef^^f3{\'o}
@@ -7643,7 +8237,7 @@ should work if nowhere else does.}
7643 \gdef^^fb{\^u} 8237 \gdef^^fb{\^u}
7644 \gdef^^fc{\"u} 8238 \gdef^^fc{\"u}
7645 \gdef^^fd{\'y} 8239 \gdef^^fd{\'y}
7646 \gdef^^fe{\missingcharmsg{LATIN SMALL LETTER THORN}} 8240 \gdef^^fe{\th}
7647 \gdef^^ff{\"y} 8241 \gdef^^ff{\"y}
7648} 8242}
7649 8243
@@ -7665,7 +8259,7 @@ should work if nowhere else does.}
7665% Latin2 (ISO-8859-2) character definitions. 8259% Latin2 (ISO-8859-2) character definitions.
7666\def\lattwochardefs{% 8260\def\lattwochardefs{%
7667 \gdef^^a0{~} 8261 \gdef^^a0{~}
7668 \gdef^^a1{\missingcharmsg{LATIN CAPITAL LETTER A WITH OGONEK}} 8262 \gdef^^a1{\ogonek{A}}
7669 \gdef^^a2{\u{}} 8263 \gdef^^a2{\u{}}
7670 \gdef^^a3{\L} 8264 \gdef^^a3{\L}
7671 \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} 8265 \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
@@ -7682,8 +8276,8 @@ should work if nowhere else does.}
7682 \gdef^^af{\dotaccent Z} 8276 \gdef^^af{\dotaccent Z}
7683 % 8277 %
7684 \gdef^^b0{\textdegree} 8278 \gdef^^b0{\textdegree}
7685 \gdef^^b1{\missingcharmsg{LATIN SMALL LETTER A WITH OGONEK}} 8279 \gdef^^b1{\ogonek{a}}
7686 \gdef^^b2{\missingcharmsg{OGONEK}} 8280 \gdef^^b2{\ogonek{ }}
7687 \gdef^^b3{\l} 8281 \gdef^^b3{\l}
7688 \gdef^^b4{\'{}} 8282 \gdef^^b4{\'{}}
7689 \gdef^^b5{\v l} 8283 \gdef^^b5{\v l}
@@ -7708,14 +8302,14 @@ should work if nowhere else does.}
7708 \gdef^^c7{\cedilla C} 8302 \gdef^^c7{\cedilla C}
7709 \gdef^^c8{\v C} 8303 \gdef^^c8{\v C}
7710 \gdef^^c9{\'E} 8304 \gdef^^c9{\'E}
7711 \gdef^^ca{\missingcharmsg{LATIN CAPITAL LETTER E WITH OGONEK}} 8305 \gdef^^ca{\ogonek{E}}
7712 \gdef^^cb{\"E} 8306 \gdef^^cb{\"E}
7713 \gdef^^cc{\v E} 8307 \gdef^^cc{\v E}
7714 \gdef^^cd{\'I} 8308 \gdef^^cd{\'I}
7715 \gdef^^ce{\^I} 8309 \gdef^^ce{\^I}
7716 \gdef^^cf{\v D} 8310 \gdef^^cf{\v D}
7717 % 8311 %
7718 \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER D WITH STROKE}} 8312 \gdef^^d0{\DH}
7719 \gdef^^d1{\'N} 8313 \gdef^^d1{\'N}
7720 \gdef^^d2{\v N} 8314 \gdef^^d2{\v N}
7721 \gdef^^d3{\'O} 8315 \gdef^^d3{\'O}
@@ -7724,7 +8318,7 @@ should work if nowhere else does.}
7724 \gdef^^d6{\"O} 8318 \gdef^^d6{\"O}
7725 \gdef^^d7{$\times$} 8319 \gdef^^d7{$\times$}
7726 \gdef^^d8{\v R} 8320 \gdef^^d8{\v R}
7727 \gdef^^d9{\ringaccent U} 8321 \gdef^^d9{\ringaccent U}
7728 \gdef^^da{\'U} 8322 \gdef^^da{\'U}
7729 \gdef^^db{\H U} 8323 \gdef^^db{\H U}
7730 \gdef^^dc{\"U} 8324 \gdef^^dc{\"U}
@@ -7742,14 +8336,14 @@ should work if nowhere else does.}
7742 \gdef^^e7{\cedilla c} 8336 \gdef^^e7{\cedilla c}
7743 \gdef^^e8{\v c} 8337 \gdef^^e8{\v c}
7744 \gdef^^e9{\'e} 8338 \gdef^^e9{\'e}
7745 \gdef^^ea{\missingcharmsg{LATIN SMALL LETTER E WITH OGONEK}} 8339 \gdef^^ea{\ogonek{e}}
7746 \gdef^^eb{\"e} 8340 \gdef^^eb{\"e}
7747 \gdef^^ec{\v e} 8341 \gdef^^ec{\v e}
7748 \gdef^^ed{\'\i} 8342 \gdef^^ed{\'\i}
7749 \gdef^^ee{\^\i} 8343 \gdef^^ee{\^\i}
7750 \gdef^^ef{\v d} 8344 \gdef^^ef{\v d}
7751 % 8345 %
7752 \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER D WITH STROKE}} 8346 \gdef^^f0{\dh}
7753 \gdef^^f1{\'n} 8347 \gdef^^f1{\'n}
7754 \gdef^^f2{\v n} 8348 \gdef^^f2{\v n}
7755 \gdef^^f3{\'o} 8349 \gdef^^f3{\'o}
@@ -7768,11 +8362,11 @@ should work if nowhere else does.}
7768} 8362}
7769 8363
7770% UTF-8 character definitions. 8364% UTF-8 character definitions.
7771% 8365%
7772% This code to support UTF-8 is based on LaTeX's utf8.def, with some 8366% This code to support UTF-8 is based on LaTeX's utf8.def, with some
7773% changes for Texinfo conventions. It is included here under the GPL by 8367% changes for Texinfo conventions. It is included here under the GPL by
7774% permission from Frank Mittelbach and the LaTeX team. 8368% permission from Frank Mittelbach and the LaTeX team.
7775% 8369%
7776\newcount\countUTFx 8370\newcount\countUTFx
7777\newcount\countUTFy 8371\newcount\countUTFy
7778\newcount\countUTFz 8372\newcount\countUTFz
@@ -7893,6 +8487,7 @@ should work if nowhere else does.}
7893 \DeclareUnicodeCharacter{00A8}{\"{ }} 8487 \DeclareUnicodeCharacter{00A8}{\"{ }}
7894 \DeclareUnicodeCharacter{00A9}{\copyright} 8488 \DeclareUnicodeCharacter{00A9}{\copyright}
7895 \DeclareUnicodeCharacter{00AA}{\ordf} 8489 \DeclareUnicodeCharacter{00AA}{\ordf}
8490 \DeclareUnicodeCharacter{00AB}{\guillemetleft}
7896 \DeclareUnicodeCharacter{00AD}{\-} 8491 \DeclareUnicodeCharacter{00AD}{\-}
7897 \DeclareUnicodeCharacter{00AE}{\registeredsymbol} 8492 \DeclareUnicodeCharacter{00AE}{\registeredsymbol}
7898 \DeclareUnicodeCharacter{00AF}{\={ }} 8493 \DeclareUnicodeCharacter{00AF}{\={ }}
@@ -7901,6 +8496,7 @@ should work if nowhere else does.}
7901 \DeclareUnicodeCharacter{00B4}{\'{ }} 8496 \DeclareUnicodeCharacter{00B4}{\'{ }}
7902 \DeclareUnicodeCharacter{00B8}{\cedilla{ }} 8497 \DeclareUnicodeCharacter{00B8}{\cedilla{ }}
7903 \DeclareUnicodeCharacter{00BA}{\ordm} 8498 \DeclareUnicodeCharacter{00BA}{\ordm}
8499 \DeclareUnicodeCharacter{00BB}{\guillemetright}
7904 \DeclareUnicodeCharacter{00BF}{\questiondown} 8500 \DeclareUnicodeCharacter{00BF}{\questiondown}
7905 8501
7906 \DeclareUnicodeCharacter{00C0}{\`A} 8502 \DeclareUnicodeCharacter{00C0}{\`A}
@@ -7920,6 +8516,7 @@ should work if nowhere else does.}
7920 \DeclareUnicodeCharacter{00CE}{\^I} 8516 \DeclareUnicodeCharacter{00CE}{\^I}
7921 \DeclareUnicodeCharacter{00CF}{\"I} 8517 \DeclareUnicodeCharacter{00CF}{\"I}
7922 8518
8519 \DeclareUnicodeCharacter{00D0}{\DH}
7923 \DeclareUnicodeCharacter{00D1}{\~N} 8520 \DeclareUnicodeCharacter{00D1}{\~N}
7924 \DeclareUnicodeCharacter{00D2}{\`O} 8521 \DeclareUnicodeCharacter{00D2}{\`O}
7925 \DeclareUnicodeCharacter{00D3}{\'O} 8522 \DeclareUnicodeCharacter{00D3}{\'O}
@@ -7932,6 +8529,7 @@ should work if nowhere else does.}
7932 \DeclareUnicodeCharacter{00DB}{\^U} 8529 \DeclareUnicodeCharacter{00DB}{\^U}
7933 \DeclareUnicodeCharacter{00DC}{\"U} 8530 \DeclareUnicodeCharacter{00DC}{\"U}
7934 \DeclareUnicodeCharacter{00DD}{\'Y} 8531 \DeclareUnicodeCharacter{00DD}{\'Y}
8532 \DeclareUnicodeCharacter{00DE}{\TH}
7935 \DeclareUnicodeCharacter{00DF}{\ss} 8533 \DeclareUnicodeCharacter{00DF}{\ss}
7936 8534
7937 \DeclareUnicodeCharacter{00E0}{\`a} 8535 \DeclareUnicodeCharacter{00E0}{\`a}
@@ -7951,6 +8549,7 @@ should work if nowhere else does.}
7951 \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}} 8549 \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}
7952 \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}} 8550 \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}
7953 8551
8552 \DeclareUnicodeCharacter{00F0}{\dh}
7954 \DeclareUnicodeCharacter{00F1}{\~n} 8553 \DeclareUnicodeCharacter{00F1}{\~n}
7955 \DeclareUnicodeCharacter{00F2}{\`o} 8554 \DeclareUnicodeCharacter{00F2}{\`o}
7956 \DeclareUnicodeCharacter{00F3}{\'o} 8555 \DeclareUnicodeCharacter{00F3}{\'o}
@@ -7963,16 +8562,21 @@ should work if nowhere else does.}
7963 \DeclareUnicodeCharacter{00FB}{\^u} 8562 \DeclareUnicodeCharacter{00FB}{\^u}
7964 \DeclareUnicodeCharacter{00FC}{\"u} 8563 \DeclareUnicodeCharacter{00FC}{\"u}
7965 \DeclareUnicodeCharacter{00FD}{\'y} 8564 \DeclareUnicodeCharacter{00FD}{\'y}
8565 \DeclareUnicodeCharacter{00FE}{\th}
7966 \DeclareUnicodeCharacter{00FF}{\"y} 8566 \DeclareUnicodeCharacter{00FF}{\"y}
7967 8567
7968 \DeclareUnicodeCharacter{0100}{\=A} 8568 \DeclareUnicodeCharacter{0100}{\=A}
7969 \DeclareUnicodeCharacter{0101}{\=a} 8569 \DeclareUnicodeCharacter{0101}{\=a}
7970 \DeclareUnicodeCharacter{0102}{\u{A}} 8570 \DeclareUnicodeCharacter{0102}{\u{A}}
7971 \DeclareUnicodeCharacter{0103}{\u{a}} 8571 \DeclareUnicodeCharacter{0103}{\u{a}}
8572 \DeclareUnicodeCharacter{0104}{\ogonek{A}}
8573 \DeclareUnicodeCharacter{0105}{\ogonek{a}}
7972 \DeclareUnicodeCharacter{0106}{\'C} 8574 \DeclareUnicodeCharacter{0106}{\'C}
7973 \DeclareUnicodeCharacter{0107}{\'c} 8575 \DeclareUnicodeCharacter{0107}{\'c}
7974 \DeclareUnicodeCharacter{0108}{\^C} 8576 \DeclareUnicodeCharacter{0108}{\^C}
7975 \DeclareUnicodeCharacter{0109}{\^c} 8577 \DeclareUnicodeCharacter{0109}{\^c}
8578 \DeclareUnicodeCharacter{0118}{\ogonek{E}}
8579 \DeclareUnicodeCharacter{0119}{\ogonek{e}}
7976 \DeclareUnicodeCharacter{010A}{\dotaccent{C}} 8580 \DeclareUnicodeCharacter{010A}{\dotaccent{C}}
7977 \DeclareUnicodeCharacter{010B}{\dotaccent{c}} 8581 \DeclareUnicodeCharacter{010B}{\dotaccent{c}}
7978 \DeclareUnicodeCharacter{010C}{\v{C}} 8582 \DeclareUnicodeCharacter{010C}{\v{C}}
@@ -8120,6 +8724,8 @@ should work if nowhere else does.}
8120 \DeclareUnicodeCharacter{0233}{\=y} 8724 \DeclareUnicodeCharacter{0233}{\=y}
8121 \DeclareUnicodeCharacter{0237}{\dotless{j}} 8725 \DeclareUnicodeCharacter{0237}{\dotless{j}}
8122 8726
8727 \DeclareUnicodeCharacter{02DB}{\ogonek{ }}
8728
8123 \DeclareUnicodeCharacter{1E02}{\dotaccent{B}} 8729 \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}
8124 \DeclareUnicodeCharacter{1E03}{\dotaccent{b}} 8730 \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}
8125 \DeclareUnicodeCharacter{1E04}{\udotaccent{B}} 8731 \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}
@@ -8249,8 +8855,16 @@ should work if nowhere else does.}
8249 8855
8250 \DeclareUnicodeCharacter{2013}{--} 8856 \DeclareUnicodeCharacter{2013}{--}
8251 \DeclareUnicodeCharacter{2014}{---} 8857 \DeclareUnicodeCharacter{2014}{---}
8858 \DeclareUnicodeCharacter{2018}{\quoteleft}
8859 \DeclareUnicodeCharacter{2019}{\quoteright}
8860 \DeclareUnicodeCharacter{201A}{\quotesinglbase}
8861 \DeclareUnicodeCharacter{201C}{\quotedblleft}
8862 \DeclareUnicodeCharacter{201D}{\quotedblright}
8863 \DeclareUnicodeCharacter{201E}{\quotedblbase}
8252 \DeclareUnicodeCharacter{2022}{\bullet} 8864 \DeclareUnicodeCharacter{2022}{\bullet}
8253 \DeclareUnicodeCharacter{2026}{\dots} 8865 \DeclareUnicodeCharacter{2026}{\dots}
8866 \DeclareUnicodeCharacter{2039}{\guilsinglleft}
8867 \DeclareUnicodeCharacter{203A}{\guilsinglright}
8254 \DeclareUnicodeCharacter{20AC}{\euro} 8868 \DeclareUnicodeCharacter{20AC}{\euro}
8255 8869
8256 \DeclareUnicodeCharacter{2192}{\expansion} 8870 \DeclareUnicodeCharacter{2192}{\expansion}
@@ -8288,7 +8902,7 @@ should work if nowhere else does.}
8288% Don't be so finicky about underfull hboxes, either. 8902% Don't be so finicky about underfull hboxes, either.
8289\hbadness = 2000 8903\hbadness = 2000
8290 8904
8291% Following George Bush, just get rid of widows and orphans. 8905% Following George Bush, get rid of widows and orphans.
8292\widowpenalty=10000 8906\widowpenalty=10000
8293\clubpenalty=10000 8907\clubpenalty=10000
8294 8908
@@ -8335,6 +8949,8 @@ should work if nowhere else does.}
8335 \ifpdf 8949 \ifpdf
8336 \pdfpageheight #7\relax 8950 \pdfpageheight #7\relax
8337 \pdfpagewidth #8\relax 8951 \pdfpagewidth #8\relax
8952 % if we don't reset these, they will remain at "1 true in" of
8953 % whatever layout pdftex was dumped with.
8338 \pdfhorigin = 1 true in 8954 \pdfhorigin = 1 true in
8339 \pdfvorigin = 1 true in 8955 \pdfvorigin = 1 true in
8340 \fi 8956 \fi
@@ -8351,7 +8967,7 @@ should work if nowhere else does.}
8351 \textleading = 13.2pt 8967 \textleading = 13.2pt
8352 % 8968 %
8353 % If page is nothing but text, make it come out even. 8969 % If page is nothing but text, make it come out even.
8354 \internalpagesizes{46\baselineskip}{6in}% 8970 \internalpagesizes{607.2pt}{6in}% that's 46 lines
8355 {\voffset}{.25in}% 8971 {\voffset}{.25in}%
8356 {\bindingoffset}{36pt}% 8972 {\bindingoffset}{36pt}%
8357 {11in}{8.5in}% 8973 {11in}{8.5in}%
@@ -8407,7 +9023,7 @@ should work if nowhere else does.}
8407 % \global\normaloffset = -6mm 9023 % \global\normaloffset = -6mm
8408 % \global\bindingoffset = 10mm 9024 % \global\bindingoffset = 10mm
8409 % @end tex 9025 % @end tex
8410 \internalpagesizes{51\baselineskip}{160mm} 9026 \internalpagesizes{673.2pt}{160mm}% that's 51 lines
8411 {\voffset}{\hoffset}% 9027 {\voffset}{\hoffset}%
8412 {\bindingoffset}{44pt}% 9028 {\bindingoffset}{44pt}%
8413 {297mm}{210mm}% 9029 {297mm}{210mm}%
@@ -8472,7 +9088,7 @@ should work if nowhere else does.}
8472 \parskip = 3pt plus 2pt minus 1pt 9088 \parskip = 3pt plus 2pt minus 1pt
8473 \setleading{\textleading}% 9089 \setleading{\textleading}%
8474 % 9090 %
8475 \dimen0 = #1 9091 \dimen0 = #1\relax
8476 \advance\dimen0 by \voffset 9092 \advance\dimen0 by \voffset
8477 % 9093 %
8478 \dimen2 = \hsize 9094 \dimen2 = \hsize
@@ -8491,6 +9107,9 @@ should work if nowhere else does.}
8491 9107
8492\message{and turning on texinfo input format.} 9108\message{and turning on texinfo input format.}
8493 9109
9110% DEL is a comment character, in case @c does not suffice.
9111\catcode`\^^? = 14
9112
8494% Define macros to output various characters with catcode for normal text. 9113% Define macros to output various characters with catcode for normal text.
8495\catcode`\"=\other 9114\catcode`\"=\other
8496\catcode`\~=\other 9115\catcode`\~=\other
@@ -8600,7 +9219,7 @@ should work if nowhere else does.}
8600 9219
8601% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of 9220% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
8602% the literal character `\'. 9221% the literal character `\'.
8603% 9222%
8604@def@normalturnoffactive{% 9223@def@normalturnoffactive{%
8605 @let\=@normalbackslash 9224 @let\=@normalbackslash
8606 @let"=@normaldoublequote 9225 @let"=@normaldoublequote
@@ -8612,6 +9231,8 @@ should work if nowhere else does.}
8612 @let>=@normalgreater 9231 @let>=@normalgreater
8613 @let+=@normalplus 9232 @let+=@normalplus
8614 @let$=@normaldollar %$ font-lock fix 9233 @let$=@normaldollar %$ font-lock fix
9234 @markupsetuplqdefault
9235 @markupsetuprqdefault
8615 @unsepspaces 9236 @unsepspaces
8616} 9237}
8617 9238
@@ -8646,6 +9267,14 @@ should work if nowhere else does.}
8646@catcode`@# = @other 9267@catcode`@# = @other
8647@catcode`@% = @other 9268@catcode`@% = @other
8648 9269
9270@c Finally, make ` and ' active, so that txicodequoteundirected and
9271@c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we
9272@c don't make ` and ' active, @code will not get them as active chars.
9273@c Do this last of all since we use ` in the previous @catcode assignments.
9274@catcode`@'=@active
9275@catcode`@`=@active
9276@markupsetuplqdefault
9277@markupsetuprqdefault
8649 9278
8650@c Local variables: 9279@c Local variables:
8651@c eval: (add-hook 'write-file-hooks 'time-stamp) 9280@c eval: (add-hook 'write-file-hooks 'time-stamp)