aboutsummaryrefslogtreecommitdiff
path: root/doc/texinfo.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/texinfo.tex')
-rw-r--r--doc/texinfo.tex2008
1 files changed, 1744 insertions, 264 deletions
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index 80836223..d2b264dd 100644
--- a/doc/texinfo.tex
+++ b/doc/texinfo.tex
@@ -3,16 +3,16 @@
3% Load plain if necessary, i.e., if running under initex. 3% Load plain if necessary, i.e., if running under initex.
4\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi 4\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
5% 5%
6\def\texinfoversion{2006-10-04.17} 6\def\texinfoversion{2007-12-02.17}
7% 7%
8% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 8% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 2007,
9% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free 9% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
10% Software Foundation, Inc. 10% 2007 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
@@ -67,7 +65,7 @@
67\everyjob{\message{[Texinfo version \texinfoversion]}% 65\everyjob{\message{[Texinfo version \texinfoversion]}%
68 \catcode`+=\active \catcode`\_=\active} 66 \catcode`+=\active \catcode`\_=\active}
69 67
70\message{Basics,} 68
71\chardef\other=12 69\chardef\other=12
72 70
73% We never want plain's \outer definition of \+ in Texinfo. 71% We never want plain's \outer definition of \+ in Texinfo.
@@ -279,6 +277,50 @@
279\newdimen\cornerthick \cornerthick=.3pt 277\newdimen\cornerthick \cornerthick=.3pt
280\newdimen\topandbottommargin \topandbottommargin=.75in 278\newdimen\topandbottommargin \topandbottommargin=.75in
281 279
280% Output a mark which sets \thischapter, \thissection and \thiscolor.
281% We dump everything together because we only have one kind of mark.
282% This works because we only use \botmark / \topmark, not \firstmark.
283%
284% A mark contains a subexpression of the \ifcase ... \fi construct.
285% \get*marks macros below extract the needed part using \ifcase.
286%
287% Another complication is to let the user choose whether \thischapter
288% (\thissection) refers to the chapter (section) in effect at the top
289% of a page, or that at the bottom of a page. The solution is
290% described on page 260 of The TeXbook. It involves outputting two
291% marks for the sectioning macros, one before the section break, and
292% one after. I won't pretend I can describe this better than DEK...
293\def\domark{%
294 \toks0=\expandafter{\lastchapterdefs}%
295 \toks2=\expandafter{\lastsectiondefs}%
296 \toks4=\expandafter{\prevchapterdefs}%
297 \toks6=\expandafter{\prevsectiondefs}%
298 \toks8=\expandafter{\lastcolordefs}%
299 \mark{%
300 \the\toks0 \the\toks2
301 \noexpand\or \the\toks4 \the\toks6
302 \noexpand\else \the\toks8
303 }%
304}
305% \topmark doesn't work for the very first chapter (after the title
306% page or the contents), so we use \firstmark there -- this gets us
307% the mark with the chapter defs, unless the user sneaks in, e.g.,
308% @setcolor (or @url, or @link, etc.) between @contents and the very
309% first @chapter.
310\def\gettopheadingmarks{%
311 \ifcase0\topmark\fi
312 \ifx\thischapter\empty \ifcase0\firstmark\fi \fi
313}
314\def\getbottomheadingmarks{\ifcase1\botmark\fi}
315\def\getcolormarks{\ifcase2\topmark\fi}
316
317% Avoid "undefined control sequence" errors.
318\def\lastchapterdefs{}
319\def\lastsectiondefs{}
320\def\prevchapterdefs{}
321\def\prevsectiondefs{}
322\def\lastcolordefs{}
323
282% Main output routine. 324% Main output routine.
283\chardef\PAGE = 255 325\chardef\PAGE = 255
284\output = {\onepageout{\pagecontents\PAGE}} 326\output = {\onepageout{\pagecontents\PAGE}}
@@ -296,7 +338,9 @@
296 % 338 %
297 % Do this outside of the \shipout so @code etc. will be expanded in 339 % 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). 340 % the headline as they should be, not taken literally (outputting ''code).
341 \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
299 \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}% 342 \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
343 \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
300 \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}% 344 \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
301 % 345 %
302 {% 346 {%
@@ -375,7 +419,7 @@
375% marginal hacks, juha@viisa.uucp (Juha Takala) 419% marginal hacks, juha@viisa.uucp (Juha Takala)
376\ifvoid\margin\else % marginal info is present 420\ifvoid\margin\else % marginal info is present
377 \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi 421 \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi
378\dimen@=\dp#1 \unvbox#1 422\dimen@=\dp#1\relax \unvbox#1\relax
379\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi 423\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
380\ifr@ggedbottom \kern-\dimen@ \vfil \fi} 424\ifr@ggedbottom \kern-\dimen@ \vfil \fi}
381} 425}
@@ -1225,8 +1269,9 @@ where each line of input produces a line of output.}
1225 1269
1226% To handle parens, we must adopt a different approach, since parens are 1270% To handle parens, we must adopt a different approach, since parens are
1227% not active characters. hyperref.dtx (which has the same problem as 1271% not active characters. hyperref.dtx (which has the same problem as
1228% us) handles it with this amazing macro to replace tokens. I've 1272% us) handles it with this amazing macro to replace tokens, with minor
1229% tinkered with it a little for texinfo, but it's definitely from there. 1273% changes for Texinfo. It is included here under the GPL by permission
1274% from the author, Heiko Oberdiek.
1230% 1275%
1231% #1 is the tokens to replace. 1276% #1 is the tokens to replace.
1232% #2 is the replacement. 1277% #2 is the replacement.
@@ -1255,13 +1300,83 @@ where each line of input produces a line of output.}
1255 \HyPsdSubst{)}{\realbackslash)}{#1}% 1300 \HyPsdSubst{)}{\realbackslash)}{#1}%
1256} 1301}
1257 1302
1303\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images
1304with PDF output, and none of those formats could be found. (.eps cannot
1305be supported due to the design of the PDF format; use regular TeX (DVI
1306output) for that.)}
1307
1258\ifpdf 1308\ifpdf
1259 \input pdfcolor 1309 %
1260 \pdfcatalog{/PageMode /UseOutlines}% 1310 % Color manipulation macros based on pdfcolor.tex.
1311 \def\cmykDarkRed{0.28 1 1 0.35}
1312 \def\cmykBlack{0 0 0 1}
1313 %
1314 \def\pdfsetcolor#1{\pdfliteral{#1 k}}
1315 % Set color, and create a mark which defines \thiscolor accordingly,
1316 % so that \makeheadline knows which color to restore.
1317 \def\setcolor#1{%
1318 \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}%
1319 \domark
1320 \pdfsetcolor{#1}%
1321 }
1322 %
1323 \def\maincolor{\cmykBlack}
1324 \pdfsetcolor{\maincolor}
1325 \edef\thiscolor{\maincolor}
1326 \def\lastcolordefs{}
1327 %
1328 \def\makefootline{%
1329 \baselineskip24pt
1330 \line{\pdfsetcolor{\maincolor}\the\footline}%
1331 }
1332 %
1333 \def\makeheadline{%
1334 \vbox to 0pt{%
1335 \vskip-22.5pt
1336 \line{%
1337 \vbox to8.5pt{}%
1338 % Extract \thiscolor definition from the marks.
1339 \getcolormarks
1340 % Typeset the headline with \maincolor, then restore the color.
1341 \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}%
1342 }%
1343 \vss
1344 }%
1345 \nointerlineskip
1346 }
1347 %
1348 %
1349 \pdfcatalog{/PageMode /UseOutlines}
1350 %
1261 % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). 1351 % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
1262 \def\dopdfimage#1#2#3{% 1352 \def\dopdfimage#1#2#3{%
1263 \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% 1353 \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
1264 \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% 1354 \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
1355 %
1356 % pdftex (and the PDF format) support .png, .jpg, .pdf (among
1357 % others). Let's try in that order.
1358 \let\pdfimgext=\empty
1359 \begingroup
1360 \openin 1 #1.png \ifeof 1
1361 \openin 1 #1.jpg \ifeof 1
1362 \openin 1 #1.jpeg \ifeof 1
1363 \openin 1 #1.JPG \ifeof 1
1364 \openin 1 #1.pdf \ifeof 1
1365 \errhelp = \nopdfimagehelp
1366 \errmessage{Could not find image file #1 for pdf}%
1367 \else \gdef\pdfimgext{pdf}%
1368 \fi
1369 \else \gdef\pdfimgext{JPG}%
1370 \fi
1371 \else \gdef\pdfimgext{jpeg}%
1372 \fi
1373 \else \gdef\pdfimgext{jpg}%
1374 \fi
1375 \else \gdef\pdfimgext{png}%
1376 \fi
1377 \closein 1
1378 \endgroup
1379 %
1265 % without \immediate, pdftex seg faults when the same image is 1380 % without \immediate, pdftex seg faults when the same image is
1266 % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) 1381 % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.)
1267 \ifnum\pdftexversion < 14 1382 \ifnum\pdftexversion < 14
@@ -1272,28 +1387,35 @@ where each line of input produces a line of output.}
1272 \ifdim \wd0 >0pt width \imagewidth \fi 1387 \ifdim \wd0 >0pt width \imagewidth \fi
1273 \ifdim \wd2 >0pt height \imageheight \fi 1388 \ifdim \wd2 >0pt height \imageheight \fi
1274 \ifnum\pdftexversion<13 1389 \ifnum\pdftexversion<13
1275 #1.pdf% 1390 #1.\pdfimgext
1276 \else 1391 \else
1277 {#1.pdf}% 1392 {#1.\pdfimgext}%
1278 \fi 1393 \fi
1279 \ifnum\pdftexversion < 14 \else 1394 \ifnum\pdftexversion < 14 \else
1280 \pdfrefximage \pdflastximage 1395 \pdfrefximage \pdflastximage
1281 \fi} 1396 \fi}
1397 %
1282 \def\pdfmkdest#1{{% 1398 \def\pdfmkdest#1{{%
1283 % We have to set dummies so commands such as @code, and characters 1399 % We have to set dummies so commands such as @code, and characters
1284 % such as \, aren't expanded when present in a section title. 1400 % such as \, aren't expanded when present in a section title.
1285 \atdummies 1401 \indexnofonts
1402 \turnoffactive
1286 \activebackslashdouble 1403 \activebackslashdouble
1404 \makevalueexpandable
1287 \def\pdfdestname{#1}% 1405 \def\pdfdestname{#1}%
1288 \backslashparens\pdfdestname 1406 \backslashparens\pdfdestname
1289 \pdfdest name{\pdfdestname} xyz% 1407 \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
1290 }}% 1408 }}
1291 % 1409 %
1292 % used to mark target names; must be expandable. 1410 % used to mark target names; must be expandable.
1293 \def\pdfmkpgn#1{#1}% 1411 \def\pdfmkpgn#1{#1}
1412 %
1413 % by default, use a color that is dark enough to print on paper as
1414 % nearly black, but still distinguishable for online viewing.
1415 \def\urlcolor{\cmykDarkRed}
1416 \def\linkcolor{\cmykDarkRed}
1417 \def\endlink{\setcolor{\maincolor}\pdfendlink}
1294 % 1418 %
1295 \let\linkcolor = \Blue % was Cyan, but that seems light?
1296 \def\endlink{\Black\pdfendlink}
1297 % Adding outlines to PDF; macros for calculating structure of outlines 1419 % Adding outlines to PDF; macros for calculating structure of outlines
1298 % come from Petr Olsak 1420 % come from Petr Olsak
1299 \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% 1421 \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0%
@@ -1395,7 +1517,7 @@ where each line of input produces a line of output.}
1395 \indexnofonts 1517 \indexnofonts
1396 \setupdatafile 1518 \setupdatafile
1397 \catcode`\\=\active \otherbackslash 1519 \catcode`\\=\active \otherbackslash
1398 \input \jobname.toc 1520 \input \tocreadfilename
1399 \endgroup 1521 \endgroup
1400 } 1522 }
1401 % 1523 %
@@ -1425,7 +1547,7 @@ where each line of input produces a line of output.}
1425 \def\@{@}% 1547 \def\@{@}%
1426 \let\/=\empty 1548 \let\/=\empty
1427 \makevalueexpandable 1549 \makevalueexpandable
1428 \leavevmode\Red 1550 \leavevmode\setcolor{\urlcolor}%
1429 \startlink attr{/Border [0 0 0]}% 1551 \startlink attr{/Border [0 0 0]}%
1430 user{/Subtype /Link /A << /S /URI /URI (#1) >>}% 1552 user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
1431 \endgroup} 1553 \endgroup}
@@ -1452,13 +1574,14 @@ where each line of input produces a line of output.}
1452 {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} 1574 {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
1453 \def\pdflink#1{% 1575 \def\pdflink#1{%
1454 \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} 1576 \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}}
1455 \linkcolor #1\endlink} 1577 \setcolor{\linkcolor}#1\endlink}
1456 \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} 1578 \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
1457\else 1579\else
1458 \let\pdfmkdest = \gobble 1580 \let\pdfmkdest = \gobble
1459 \let\pdfurl = \gobble 1581 \let\pdfurl = \gobble
1460 \let\endlink = \relax 1582 \let\endlink = \relax
1461 \let\linkcolor = \relax 1583 \let\setcolor = \gobble
1584 \let\pdfsetcolor = \gobble
1462 \let\pdfmakeoutlines = \relax 1585 \let\pdfmakeoutlines = \relax
1463\fi % \ifx\pdfoutput 1586\fi % \ifx\pdfoutput
1464 1587
@@ -1505,8 +1628,12 @@ where each line of input produces a line of output.}
1505\def\strutheightpercent{.70833} 1628\def\strutheightpercent{.70833}
1506\def\strutdepthpercent {.29167} 1629\def\strutdepthpercent {.29167}
1507% 1630%
1631% can get a sort of poor man's double spacing by redefining this.
1632\def\baselinefactor{1}
1633%
1508\def\setleading#1{% 1634\def\setleading#1{%
1509 \normalbaselineskip = #1\relax 1635 \dimen0 = #1\relax
1636 \normalbaselineskip = \baselinefactor\dimen0
1510 \normallineskip = \lineskipfactor\normalbaselineskip 1637 \normallineskip = \lineskipfactor\normalbaselineskip
1511 \normalbaselines 1638 \normalbaselines
1512 \setbox\strutbox =\hbox{% 1639 \setbox\strutbox =\hbox{%
@@ -1515,12 +1642,279 @@ where each line of input produces a line of output.}
1515 }% 1642 }%
1516} 1643}
1517 1644
1645% PDF CMaps. See also LaTeX's t1.cmap.
1646%
1647% do nothing with this by default.
1648\expandafter\let\csname cmapOT1\endcsname\gobble
1649\expandafter\let\csname cmapOT1IT\endcsname\gobble
1650\expandafter\let\csname cmapOT1TT\endcsname\gobble
1651
1652% if we are producing pdf, and we have \pdffontattr, then define cmaps.
1653% (\pdffontattr was introduced many years ago, but people still run
1654% older pdftex's; it's easy to conditionalize, so we do.)
1655\ifpdf \ifx\pdffontattr\undefined \else
1656 \begingroup
1657 \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
1658 \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
1659%%DocumentNeededResources: ProcSet (CIDInit)
1660%%IncludeResource: ProcSet (CIDInit)
1661%%BeginResource: CMap (TeX-OT1-0)
1662%%Title: (TeX-OT1-0 TeX OT1 0)
1663%%Version: 1.000
1664%%EndComments
1665/CIDInit /ProcSet findresource begin
166612 dict begin
1667begincmap
1668/CIDSystemInfo
1669<< /Registry (TeX)
1670/Ordering (OT1)
1671/Supplement 0
1672>> def
1673/CMapName /TeX-OT1-0 def
1674/CMapType 2 def
16751 begincodespacerange
1676<00> <7F>
1677endcodespacerange
16788 beginbfrange
1679<00> <01> <0393>
1680<09> <0A> <03A8>
1681<23> <26> <0023>
1682<28> <3B> <0028>
1683<3F> <5B> <003F>
1684<5D> <5E> <005D>
1685<61> <7A> <0061>
1686<7B> <7C> <2013>
1687endbfrange
168840 beginbfchar
1689<02> <0398>
1690<03> <039B>
1691<04> <039E>
1692<05> <03A0>
1693<06> <03A3>
1694<07> <03D2>
1695<08> <03A6>
1696<0B> <00660066>
1697<0C> <00660069>
1698<0D> <0066006C>
1699<0E> <006600660069>
1700<0F> <00660066006C>
1701<10> <0131>
1702<11> <0237>
1703<12> <0060>
1704<13> <00B4>
1705<14> <02C7>
1706<15> <02D8>
1707<16> <00AF>
1708<17> <02DA>
1709<18> <00B8>
1710<19> <00DF>
1711<1A> <00E6>
1712<1B> <0153>
1713<1C> <00F8>
1714<1D> <00C6>
1715<1E> <0152>
1716<1F> <00D8>
1717<21> <0021>
1718<22> <201D>
1719<27> <2019>
1720<3C> <00A1>
1721<3D> <003D>
1722<3E> <00BF>
1723<5C> <201C>
1724<5F> <02D9>
1725<60> <2018>
1726<7D> <02DD>
1727<7E> <007E>
1728<7F> <00A8>
1729endbfchar
1730endcmap
1731CMapName currentdict /CMap defineresource pop
1732end
1733end
1734%%EndResource
1735%%EOF
1736 }\endgroup
1737 \expandafter\edef\csname cmapOT1\endcsname#1{%
1738 \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
1739 }%
1740%
1741% \cmapOT1IT
1742 \begingroup
1743 \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
1744 \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
1745%%DocumentNeededResources: ProcSet (CIDInit)
1746%%IncludeResource: ProcSet (CIDInit)
1747%%BeginResource: CMap (TeX-OT1IT-0)
1748%%Title: (TeX-OT1IT-0 TeX OT1IT 0)
1749%%Version: 1.000
1750%%EndComments
1751/CIDInit /ProcSet findresource begin
175212 dict begin
1753begincmap
1754/CIDSystemInfo
1755<< /Registry (TeX)
1756/Ordering (OT1IT)
1757/Supplement 0
1758>> def
1759/CMapName /TeX-OT1IT-0 def
1760/CMapType 2 def
17611 begincodespacerange
1762<00> <7F>
1763endcodespacerange
17648 beginbfrange
1765<00> <01> <0393>
1766<09> <0A> <03A8>
1767<25> <26> <0025>
1768<28> <3B> <0028>
1769<3F> <5B> <003F>
1770<5D> <5E> <005D>
1771<61> <7A> <0061>
1772<7B> <7C> <2013>
1773endbfrange
177442 beginbfchar
1775<02> <0398>
1776<03> <039B>
1777<04> <039E>
1778<05> <03A0>
1779<06> <03A3>
1780<07> <03D2>
1781<08> <03A6>
1782<0B> <00660066>
1783<0C> <00660069>
1784<0D> <0066006C>
1785<0E> <006600660069>
1786<0F> <00660066006C>
1787<10> <0131>
1788<11> <0237>
1789<12> <0060>
1790<13> <00B4>
1791<14> <02C7>
1792<15> <02D8>
1793<16> <00AF>
1794<17> <02DA>
1795<18> <00B8>
1796<19> <00DF>
1797<1A> <00E6>
1798<1B> <0153>
1799<1C> <00F8>
1800<1D> <00C6>
1801<1E> <0152>
1802<1F> <00D8>
1803<21> <0021>
1804<22> <201D>
1805<23> <0023>
1806<24> <00A3>
1807<27> <2019>
1808<3C> <00A1>
1809<3D> <003D>
1810<3E> <00BF>
1811<5C> <201C>
1812<5F> <02D9>
1813<60> <2018>
1814<7D> <02DD>
1815<7E> <007E>
1816<7F> <00A8>
1817endbfchar
1818endcmap
1819CMapName currentdict /CMap defineresource pop
1820end
1821end
1822%%EndResource
1823%%EOF
1824 }\endgroup
1825 \expandafter\edef\csname cmapOT1IT\endcsname#1{%
1826 \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
1827 }%
1828%
1829% \cmapOT1TT
1830 \begingroup
1831 \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
1832 \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
1833%%DocumentNeededResources: ProcSet (CIDInit)
1834%%IncludeResource: ProcSet (CIDInit)
1835%%BeginResource: CMap (TeX-OT1TT-0)
1836%%Title: (TeX-OT1TT-0 TeX OT1TT 0)
1837%%Version: 1.000
1838%%EndComments
1839/CIDInit /ProcSet findresource begin
184012 dict begin
1841begincmap
1842/CIDSystemInfo
1843<< /Registry (TeX)
1844/Ordering (OT1TT)
1845/Supplement 0
1846>> def
1847/CMapName /TeX-OT1TT-0 def
1848/CMapType 2 def
18491 begincodespacerange
1850<00> <7F>
1851endcodespacerange
18525 beginbfrange
1853<00> <01> <0393>
1854<09> <0A> <03A8>
1855<21> <26> <0021>
1856<28> <5F> <0028>
1857<61> <7E> <0061>
1858endbfrange
185932 beginbfchar
1860<02> <0398>
1861<03> <039B>
1862<04> <039E>
1863<05> <03A0>
1864<06> <03A3>
1865<07> <03D2>
1866<08> <03A6>
1867<0B> <2191>
1868<0C> <2193>
1869<0D> <0027>
1870<0E> <00A1>
1871<0F> <00BF>
1872<10> <0131>
1873<11> <0237>
1874<12> <0060>
1875<13> <00B4>
1876<14> <02C7>
1877<15> <02D8>
1878<16> <00AF>
1879<17> <02DA>
1880<18> <00B8>
1881<19> <00DF>
1882<1A> <00E6>
1883<1B> <0153>
1884<1C> <00F8>
1885<1D> <00C6>
1886<1E> <0152>
1887<1F> <00D8>
1888<20> <2423>
1889<27> <2019>
1890<60> <2018>
1891<7F> <00A8>
1892endbfchar
1893endcmap
1894CMapName currentdict /CMap defineresource pop
1895end
1896end
1897%%EndResource
1898%%EOF
1899 }\endgroup
1900 \expandafter\edef\csname cmapOT1TT\endcsname#1{%
1901 \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
1902 }%
1903\fi\fi
1904
1518 1905
1519% Set the font macro #1 to the font named #2, adding on the 1906% Set the font macro #1 to the font named #2, adding on the
1520% specified font prefix (normally `cm'). 1907% specified font prefix (normally `cm').
1521% #3 is the font's design size, #4 is a scale factor 1908% #3 is the font's design size, #4 is a scale factor, #5 is the CMap
1522\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4} 1909% encoding (currently only OT1, OT1IT and OT1TT are allowed, pass
1523 1910% empty to omit).
1911\def\setfont#1#2#3#4#5{%
1912 \font#1=\fontprefix#2#3 scaled #4
1913 \csname cmap#5\endcsname#1%
1914}
1915% This is what gets called when #5 of \setfont is empty.
1916\let\cmap\gobble
1917% emacs-page end of cmaps
1524 1918
1525% Use cm as the default font prefix. 1919% Use cm as the default font prefix.
1526% To specify the font prefix, you must define \fontprefix 1920% To specify the font prefix, you must define \fontprefix
@@ -1548,119 +1942,127 @@ where each line of input produces a line of output.}
1548% Definitions for a main text size of 11pt. This is the default in 1942% Definitions for a main text size of 11pt. This is the default in
1549% Texinfo. 1943% Texinfo.
1550% 1944%
1551\def\definetextfontsizexi{ 1945\def\definetextfontsizexi{%
1552% Text fonts (11.2pt, magstep1). 1946% Text fonts (11.2pt, magstep1).
1553\def\textnominalsize{11pt} 1947\def\textnominalsize{11pt}
1554\edef\mainmagstep{\magstephalf} 1948\edef\mainmagstep{\magstephalf}
1555\setfont\textrm\rmshape{10}{\mainmagstep} 1949\setfont\textrm\rmshape{10}{\mainmagstep}{OT1}
1556\setfont\texttt\ttshape{10}{\mainmagstep} 1950\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT}
1557\setfont\textbf\bfshape{10}{\mainmagstep} 1951\setfont\textbf\bfshape{10}{\mainmagstep}{OT1}
1558\setfont\textit\itshape{10}{\mainmagstep} 1952\setfont\textit\itshape{10}{\mainmagstep}{OT1IT}
1559\setfont\textsl\slshape{10}{\mainmagstep} 1953\setfont\textsl\slshape{10}{\mainmagstep}{OT1}
1560\setfont\textsf\sfshape{10}{\mainmagstep} 1954\setfont\textsf\sfshape{10}{\mainmagstep}{OT1}
1561\setfont\textsc\scshape{10}{\mainmagstep} 1955\setfont\textsc\scshape{10}{\mainmagstep}{OT1}
1562\setfont\textttsl\ttslshape{10}{\mainmagstep} 1956\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT}
1563\font\texti=cmmi10 scaled \mainmagstep 1957\font\texti=cmmi10 scaled \mainmagstep
1564\font\textsy=cmsy10 scaled \mainmagstep 1958\font\textsy=cmsy10 scaled \mainmagstep
1959\def\textecsize{1095}
1565 1960
1566% A few fonts for @defun names and args. 1961% A few fonts for @defun names and args.
1567\setfont\defbf\bfshape{10}{\magstep1} 1962\setfont\defbf\bfshape{10}{\magstep1}{OT1}
1568\setfont\deftt\ttshape{10}{\magstep1} 1963\setfont\deftt\ttshape{10}{\magstep1}{OT1TT}
1569\setfont\defttsl\ttslshape{10}{\magstep1} 1964\setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT}
1570\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} 1965\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
1571 1966
1572% Fonts for indices, footnotes, small examples (9pt). 1967% Fonts for indices, footnotes, small examples (9pt).
1573\def\smallnominalsize{9pt} 1968\def\smallnominalsize{9pt}
1574\setfont\smallrm\rmshape{9}{1000} 1969\setfont\smallrm\rmshape{9}{1000}{OT1}
1575\setfont\smalltt\ttshape{9}{1000} 1970\setfont\smalltt\ttshape{9}{1000}{OT1TT}
1576\setfont\smallbf\bfshape{10}{900} 1971\setfont\smallbf\bfshape{10}{900}{OT1}
1577\setfont\smallit\itshape{9}{1000} 1972\setfont\smallit\itshape{9}{1000}{OT1IT}
1578\setfont\smallsl\slshape{9}{1000} 1973\setfont\smallsl\slshape{9}{1000}{OT1}
1579\setfont\smallsf\sfshape{9}{1000} 1974\setfont\smallsf\sfshape{9}{1000}{OT1}
1580\setfont\smallsc\scshape{10}{900} 1975\setfont\smallsc\scshape{10}{900}{OT1}
1581\setfont\smallttsl\ttslshape{10}{900} 1976\setfont\smallttsl\ttslshape{10}{900}{OT1TT}
1582\font\smalli=cmmi9 1977\font\smalli=cmmi9
1583\font\smallsy=cmsy9 1978\font\smallsy=cmsy9
1979\def\smallecsize{0900}
1584 1980
1585% Fonts for small examples (8pt). 1981% Fonts for small examples (8pt).
1586\def\smallernominalsize{8pt} 1982\def\smallernominalsize{8pt}
1587\setfont\smallerrm\rmshape{8}{1000} 1983\setfont\smallerrm\rmshape{8}{1000}{OT1}
1588\setfont\smallertt\ttshape{8}{1000} 1984\setfont\smallertt\ttshape{8}{1000}{OT1TT}
1589\setfont\smallerbf\bfshape{10}{800} 1985\setfont\smallerbf\bfshape{10}{800}{OT1}
1590\setfont\smallerit\itshape{8}{1000} 1986\setfont\smallerit\itshape{8}{1000}{OT1IT}
1591\setfont\smallersl\slshape{8}{1000} 1987\setfont\smallersl\slshape{8}{1000}{OT1}
1592\setfont\smallersf\sfshape{8}{1000} 1988\setfont\smallersf\sfshape{8}{1000}{OT1}
1593\setfont\smallersc\scshape{10}{800} 1989\setfont\smallersc\scshape{10}{800}{OT1}
1594\setfont\smallerttsl\ttslshape{10}{800} 1990\setfont\smallerttsl\ttslshape{10}{800}{OT1TT}
1595\font\smalleri=cmmi8 1991\font\smalleri=cmmi8
1596\font\smallersy=cmsy8 1992\font\smallersy=cmsy8
1993\def\smallerecsize{0800}
1597 1994
1598% Fonts for title page (20.4pt): 1995% Fonts for title page (20.4pt):
1599\def\titlenominalsize{20pt} 1996\def\titlenominalsize{20pt}
1600\setfont\titlerm\rmbshape{12}{\magstep3} 1997\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
1601\setfont\titleit\itbshape{10}{\magstep4} 1998\setfont\titleit\itbshape{10}{\magstep4}{OT1IT}
1602\setfont\titlesl\slbshape{10}{\magstep4} 1999\setfont\titlesl\slbshape{10}{\magstep4}{OT1}
1603\setfont\titlett\ttbshape{12}{\magstep3} 2000\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT}
1604\setfont\titlettsl\ttslshape{10}{\magstep4} 2001\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT}
1605\setfont\titlesf\sfbshape{17}{\magstep1} 2002\setfont\titlesf\sfbshape{17}{\magstep1}{OT1}
1606\let\titlebf=\titlerm 2003\let\titlebf=\titlerm
1607\setfont\titlesc\scbshape{10}{\magstep4} 2004\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
1608\font\titlei=cmmi12 scaled \magstep3 2005\font\titlei=cmmi12 scaled \magstep3
1609\font\titlesy=cmsy10 scaled \magstep4 2006\font\titlesy=cmsy10 scaled \magstep4
1610\def\authorrm{\secrm} 2007\def\authorrm{\secrm}
1611\def\authortt{\sectt} 2008\def\authortt{\sectt}
2009\def\titleecsize{2074}
1612 2010
1613% Chapter (and unnumbered) fonts (17.28pt). 2011% Chapter (and unnumbered) fonts (17.28pt).
1614\def\chapnominalsize{17pt} 2012\def\chapnominalsize{17pt}
1615\setfont\chaprm\rmbshape{12}{\magstep2} 2013\setfont\chaprm\rmbshape{12}{\magstep2}{OT1}
1616\setfont\chapit\itbshape{10}{\magstep3} 2014\setfont\chapit\itbshape{10}{\magstep3}{OT1IT}
1617\setfont\chapsl\slbshape{10}{\magstep3} 2015\setfont\chapsl\slbshape{10}{\magstep3}{OT1}
1618\setfont\chaptt\ttbshape{12}{\magstep2} 2016\setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT}
1619\setfont\chapttsl\ttslshape{10}{\magstep3} 2017\setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT}
1620\setfont\chapsf\sfbshape{17}{1000} 2018\setfont\chapsf\sfbshape{17}{1000}{OT1}
1621\let\chapbf=\chaprm 2019\let\chapbf=\chaprm
1622\setfont\chapsc\scbshape{10}{\magstep3} 2020\setfont\chapsc\scbshape{10}{\magstep3}{OT1}
1623\font\chapi=cmmi12 scaled \magstep2 2021\font\chapi=cmmi12 scaled \magstep2
1624\font\chapsy=cmsy10 scaled \magstep3 2022\font\chapsy=cmsy10 scaled \magstep3
2023\def\chapecsize{1728}
1625 2024
1626% Section fonts (14.4pt). 2025% Section fonts (14.4pt).
1627\def\secnominalsize{14pt} 2026\def\secnominalsize{14pt}
1628\setfont\secrm\rmbshape{12}{\magstep1} 2027\setfont\secrm\rmbshape{12}{\magstep1}{OT1}
1629\setfont\secit\itbshape{10}{\magstep2} 2028\setfont\secit\itbshape{10}{\magstep2}{OT1IT}
1630\setfont\secsl\slbshape{10}{\magstep2} 2029\setfont\secsl\slbshape{10}{\magstep2}{OT1}
1631\setfont\sectt\ttbshape{12}{\magstep1} 2030\setfont\sectt\ttbshape{12}{\magstep1}{OT1TT}
1632\setfont\secttsl\ttslshape{10}{\magstep2} 2031\setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT}
1633\setfont\secsf\sfbshape{12}{\magstep1} 2032\setfont\secsf\sfbshape{12}{\magstep1}{OT1}
1634\let\secbf\secrm 2033\let\secbf\secrm
1635\setfont\secsc\scbshape{10}{\magstep2} 2034\setfont\secsc\scbshape{10}{\magstep2}{OT1}
1636\font\seci=cmmi12 scaled \magstep1 2035\font\seci=cmmi12 scaled \magstep1
1637\font\secsy=cmsy10 scaled \magstep2 2036\font\secsy=cmsy10 scaled \magstep2
2037\def\sececsize{1440}
1638 2038
1639% Subsection fonts (13.15pt). 2039% Subsection fonts (13.15pt).
1640\def\ssecnominalsize{13pt} 2040\def\ssecnominalsize{13pt}
1641\setfont\ssecrm\rmbshape{12}{\magstephalf} 2041\setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1}
1642\setfont\ssecit\itbshape{10}{1315} 2042\setfont\ssecit\itbshape{10}{1315}{OT1IT}
1643\setfont\ssecsl\slbshape{10}{1315} 2043\setfont\ssecsl\slbshape{10}{1315}{OT1}
1644\setfont\ssectt\ttbshape{12}{\magstephalf} 2044\setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT}
1645\setfont\ssecttsl\ttslshape{10}{1315} 2045\setfont\ssecttsl\ttslshape{10}{1315}{OT1TT}
1646\setfont\ssecsf\sfbshape{12}{\magstephalf} 2046\setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1}
1647\let\ssecbf\ssecrm 2047\let\ssecbf\ssecrm
1648\setfont\ssecsc\scbshape{10}{1315} 2048\setfont\ssecsc\scbshape{10}{1315}{OT1}
1649\font\sseci=cmmi12 scaled \magstephalf 2049\font\sseci=cmmi12 scaled \magstephalf
1650\font\ssecsy=cmsy10 scaled 1315 2050\font\ssecsy=cmsy10 scaled 1315
2051\def\ssececsize{1200}
1651 2052
1652% Reduced fonts for @acro in text (10pt). 2053% Reduced fonts for @acro in text (10pt).
1653\def\reducednominalsize{10pt} 2054\def\reducednominalsize{10pt}
1654\setfont\reducedrm\rmshape{10}{1000} 2055\setfont\reducedrm\rmshape{10}{1000}{OT1}
1655\setfont\reducedtt\ttshape{10}{1000} 2056\setfont\reducedtt\ttshape{10}{1000}{OT1TT}
1656\setfont\reducedbf\bfshape{10}{1000} 2057\setfont\reducedbf\bfshape{10}{1000}{OT1}
1657\setfont\reducedit\itshape{10}{1000} 2058\setfont\reducedit\itshape{10}{1000}{OT1IT}
1658\setfont\reducedsl\slshape{10}{1000} 2059\setfont\reducedsl\slshape{10}{1000}{OT1}
1659\setfont\reducedsf\sfshape{10}{1000} 2060\setfont\reducedsf\sfshape{10}{1000}{OT1}
1660\setfont\reducedsc\scshape{10}{1000} 2061\setfont\reducedsc\scshape{10}{1000}{OT1}
1661\setfont\reducedttsl\ttslshape{10}{1000} 2062\setfont\reducedttsl\ttslshape{10}{1000}{OT1TT}
1662\font\reducedi=cmmi10 2063\font\reducedi=cmmi10
1663\font\reducedsy=cmsy10 2064\font\reducedsy=cmsy10
2065\def\reducedecsize{1000}
1664 2066
1665% reset the current fonts 2067% reset the current fonts
1666\textfonts 2068\textfonts
@@ -1677,115 +2079,123 @@ where each line of input produces a line of output.}
1677% Text fonts (10pt). 2079% Text fonts (10pt).
1678\def\textnominalsize{10pt} 2080\def\textnominalsize{10pt}
1679\edef\mainmagstep{1000} 2081\edef\mainmagstep{1000}
1680\setfont\textrm\rmshape{10}{\mainmagstep} 2082\setfont\textrm\rmshape{10}{\mainmagstep}{OT1}
1681\setfont\texttt\ttshape{10}{\mainmagstep} 2083\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT}
1682\setfont\textbf\bfshape{10}{\mainmagstep} 2084\setfont\textbf\bfshape{10}{\mainmagstep}{OT1}
1683\setfont\textit\itshape{10}{\mainmagstep} 2085\setfont\textit\itshape{10}{\mainmagstep}{OT1IT}
1684\setfont\textsl\slshape{10}{\mainmagstep} 2086\setfont\textsl\slshape{10}{\mainmagstep}{OT1}
1685\setfont\textsf\sfshape{10}{\mainmagstep} 2087\setfont\textsf\sfshape{10}{\mainmagstep}{OT1}
1686\setfont\textsc\scshape{10}{\mainmagstep} 2088\setfont\textsc\scshape{10}{\mainmagstep}{OT1}
1687\setfont\textttsl\ttslshape{10}{\mainmagstep} 2089\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT}
1688\font\texti=cmmi10 scaled \mainmagstep 2090\font\texti=cmmi10 scaled \mainmagstep
1689\font\textsy=cmsy10 scaled \mainmagstep 2091\font\textsy=cmsy10 scaled \mainmagstep
2092\def\textecsize{1000}
1690 2093
1691% A few fonts for @defun names and args. 2094% A few fonts for @defun names and args.
1692\setfont\defbf\bfshape{10}{\magstephalf} 2095\setfont\defbf\bfshape{10}{\magstephalf}{OT1}
1693\setfont\deftt\ttshape{10}{\magstephalf} 2096\setfont\deftt\ttshape{10}{\magstephalf}{OT1TT}
1694\setfont\defttsl\ttslshape{10}{\magstephalf} 2097\setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT}
1695\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} 2098\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
1696 2099
1697% Fonts for indices, footnotes, small examples (9pt). 2100% Fonts for indices, footnotes, small examples (9pt).
1698\def\smallnominalsize{9pt} 2101\def\smallnominalsize{9pt}
1699\setfont\smallrm\rmshape{9}{1000} 2102\setfont\smallrm\rmshape{9}{1000}{OT1}
1700\setfont\smalltt\ttshape{9}{1000} 2103\setfont\smalltt\ttshape{9}{1000}{OT1TT}
1701\setfont\smallbf\bfshape{10}{900} 2104\setfont\smallbf\bfshape{10}{900}{OT1}
1702\setfont\smallit\itshape{9}{1000} 2105\setfont\smallit\itshape{9}{1000}{OT1IT}
1703\setfont\smallsl\slshape{9}{1000} 2106\setfont\smallsl\slshape{9}{1000}{OT1}
1704\setfont\smallsf\sfshape{9}{1000} 2107\setfont\smallsf\sfshape{9}{1000}{OT1}
1705\setfont\smallsc\scshape{10}{900} 2108\setfont\smallsc\scshape{10}{900}{OT1}
1706\setfont\smallttsl\ttslshape{10}{900} 2109\setfont\smallttsl\ttslshape{10}{900}{OT1TT}
1707\font\smalli=cmmi9 2110\font\smalli=cmmi9
1708\font\smallsy=cmsy9 2111\font\smallsy=cmsy9
2112\def\smallecsize{0900}
1709 2113
1710% Fonts for small examples (8pt). 2114% Fonts for small examples (8pt).
1711\def\smallernominalsize{8pt} 2115\def\smallernominalsize{8pt}
1712\setfont\smallerrm\rmshape{8}{1000} 2116\setfont\smallerrm\rmshape{8}{1000}{OT1}
1713\setfont\smallertt\ttshape{8}{1000} 2117\setfont\smallertt\ttshape{8}{1000}{OT1TT}
1714\setfont\smallerbf\bfshape{10}{800} 2118\setfont\smallerbf\bfshape{10}{800}{OT1}
1715\setfont\smallerit\itshape{8}{1000} 2119\setfont\smallerit\itshape{8}{1000}{OT1IT}
1716\setfont\smallersl\slshape{8}{1000} 2120\setfont\smallersl\slshape{8}{1000}{OT1}
1717\setfont\smallersf\sfshape{8}{1000} 2121\setfont\smallersf\sfshape{8}{1000}{OT1}
1718\setfont\smallersc\scshape{10}{800} 2122\setfont\smallersc\scshape{10}{800}{OT1}
1719\setfont\smallerttsl\ttslshape{10}{800} 2123\setfont\smallerttsl\ttslshape{10}{800}{OT1TT}
1720\font\smalleri=cmmi8 2124\font\smalleri=cmmi8
1721\font\smallersy=cmsy8 2125\font\smallersy=cmsy8
2126\def\smallerecsize{0800}
1722 2127
1723% Fonts for title page (20.4pt): 2128% Fonts for title page (20.4pt):
1724\def\titlenominalsize{20pt} 2129\def\titlenominalsize{20pt}
1725\setfont\titlerm\rmbshape{12}{\magstep3} 2130\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
1726\setfont\titleit\itbshape{10}{\magstep4} 2131\setfont\titleit\itbshape{10}{\magstep4}{OT1IT}
1727\setfont\titlesl\slbshape{10}{\magstep4} 2132\setfont\titlesl\slbshape{10}{\magstep4}{OT1}
1728\setfont\titlett\ttbshape{12}{\magstep3} 2133\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT}
1729\setfont\titlettsl\ttslshape{10}{\magstep4} 2134\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT}
1730\setfont\titlesf\sfbshape{17}{\magstep1} 2135\setfont\titlesf\sfbshape{17}{\magstep1}{OT1}
1731\let\titlebf=\titlerm 2136\let\titlebf=\titlerm
1732\setfont\titlesc\scbshape{10}{\magstep4} 2137\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
1733\font\titlei=cmmi12 scaled \magstep3 2138\font\titlei=cmmi12 scaled \magstep3
1734\font\titlesy=cmsy10 scaled \magstep4 2139\font\titlesy=cmsy10 scaled \magstep4
1735\def\authorrm{\secrm} 2140\def\authorrm{\secrm}
1736\def\authortt{\sectt} 2141\def\authortt{\sectt}
2142\def\titleecsize{2074}
1737 2143
1738% Chapter fonts (14.4pt). 2144% Chapter fonts (14.4pt).
1739\def\chapnominalsize{14pt} 2145\def\chapnominalsize{14pt}
1740\setfont\chaprm\rmbshape{12}{\magstep1} 2146\setfont\chaprm\rmbshape{12}{\magstep1}{OT1}
1741\setfont\chapit\itbshape{10}{\magstep2} 2147\setfont\chapit\itbshape{10}{\magstep2}{OT1IT}
1742\setfont\chapsl\slbshape{10}{\magstep2} 2148\setfont\chapsl\slbshape{10}{\magstep2}{OT1}
1743\setfont\chaptt\ttbshape{12}{\magstep1} 2149\setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT}
1744\setfont\chapttsl\ttslshape{10}{\magstep2} 2150\setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT}
1745\setfont\chapsf\sfbshape{12}{\magstep1} 2151\setfont\chapsf\sfbshape{12}{\magstep1}{OT1}
1746\let\chapbf\chaprm 2152\let\chapbf\chaprm
1747\setfont\chapsc\scbshape{10}{\magstep2} 2153\setfont\chapsc\scbshape{10}{\magstep2}{OT1}
1748\font\chapi=cmmi12 scaled \magstep1 2154\font\chapi=cmmi12 scaled \magstep1
1749\font\chapsy=cmsy10 scaled \magstep2 2155\font\chapsy=cmsy10 scaled \magstep2
2156\def\chapecsize{1440}
1750 2157
1751% Section fonts (12pt). 2158% Section fonts (12pt).
1752\def\secnominalsize{12pt} 2159\def\secnominalsize{12pt}
1753\setfont\secrm\rmbshape{12}{1000} 2160\setfont\secrm\rmbshape{12}{1000}{OT1}
1754\setfont\secit\itbshape{10}{\magstep1} 2161\setfont\secit\itbshape{10}{\magstep1}{OT1IT}
1755\setfont\secsl\slbshape{10}{\magstep1} 2162\setfont\secsl\slbshape{10}{\magstep1}{OT1}
1756\setfont\sectt\ttbshape{12}{1000} 2163\setfont\sectt\ttbshape{12}{1000}{OT1TT}
1757\setfont\secttsl\ttslshape{10}{\magstep1} 2164\setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT}
1758\setfont\secsf\sfbshape{12}{1000} 2165\setfont\secsf\sfbshape{12}{1000}{OT1}
1759\let\secbf\secrm 2166\let\secbf\secrm
1760\setfont\secsc\scbshape{10}{\magstep1} 2167\setfont\secsc\scbshape{10}{\magstep1}{OT1}
1761\font\seci=cmmi12 2168\font\seci=cmmi12
1762\font\secsy=cmsy10 scaled \magstep1 2169\font\secsy=cmsy10 scaled \magstep1
2170\def\sececsize{1200}
1763 2171
1764% Subsection fonts (10pt). 2172% Subsection fonts (10pt).
1765\def\ssecnominalsize{10pt} 2173\def\ssecnominalsize{10pt}
1766\setfont\ssecrm\rmbshape{10}{1000} 2174\setfont\ssecrm\rmbshape{10}{1000}{OT1}
1767\setfont\ssecit\itbshape{10}{1000} 2175\setfont\ssecit\itbshape{10}{1000}{OT1IT}
1768\setfont\ssecsl\slbshape{10}{1000} 2176\setfont\ssecsl\slbshape{10}{1000}{OT1}
1769\setfont\ssectt\ttbshape{10}{1000} 2177\setfont\ssectt\ttbshape{10}{1000}{OT1TT}
1770\setfont\ssecttsl\ttslshape{10}{1000} 2178\setfont\ssecttsl\ttslshape{10}{1000}{OT1TT}
1771\setfont\ssecsf\sfbshape{10}{1000} 2179\setfont\ssecsf\sfbshape{10}{1000}{OT1}
1772\let\ssecbf\ssecrm 2180\let\ssecbf\ssecrm
1773\setfont\ssecsc\scbshape{10}{1000} 2181\setfont\ssecsc\scbshape{10}{1000}{OT1}
1774\font\sseci=cmmi10 2182\font\sseci=cmmi10
1775\font\ssecsy=cmsy10 2183\font\ssecsy=cmsy10
2184\def\ssececsize{1000}
1776 2185
1777% Reduced fonts for @acro in text (9pt). 2186% Reduced fonts for @acro in text (9pt).
1778\def\reducednominalsize{9pt} 2187\def\reducednominalsize{9pt}
1779\setfont\reducedrm\rmshape{9}{1000} 2188\setfont\reducedrm\rmshape{9}{1000}{OT1}
1780\setfont\reducedtt\ttshape{9}{1000} 2189\setfont\reducedtt\ttshape{9}{1000}{OT1TT}
1781\setfont\reducedbf\bfshape{10}{900} 2190\setfont\reducedbf\bfshape{10}{900}{OT1}
1782\setfont\reducedit\itshape{9}{1000} 2191\setfont\reducedit\itshape{9}{1000}{OT1IT}
1783\setfont\reducedsl\slshape{9}{1000} 2192\setfont\reducedsl\slshape{9}{1000}{OT1}
1784\setfont\reducedsf\sfshape{9}{1000} 2193\setfont\reducedsf\sfshape{9}{1000}{OT1}
1785\setfont\reducedsc\scshape{10}{900} 2194\setfont\reducedsc\scshape{10}{900}{OT1}
1786\setfont\reducedttsl\ttslshape{10}{900} 2195\setfont\reducedttsl\ttslshape{10}{900}{OT1TT}
1787\font\reducedi=cmmi9 2196\font\reducedi=cmmi9
1788\font\reducedsy=cmsy9 2197\font\reducedsy=cmsy9
2198\def\reducedecsize{0900}
1789 2199
1790% reduce space between paragraphs 2200% reduce space between paragraphs
1791\divide\parskip by 2 2201\divide\parskip by 2
@@ -1941,10 +2351,10 @@ where each line of input produces a line of output.}
1941\newcount\fontdepth \fontdepth=0 2351\newcount\fontdepth \fontdepth=0
1942 2352
1943% Fonts for short table of contents. 2353% Fonts for short table of contents.
1944\setfont\shortcontrm\rmshape{12}{1000} 2354\setfont\shortcontrm\rmshape{12}{1000}{OT1}
1945\setfont\shortcontbf\bfshape{10}{\magstep1} % no cmb12 2355\setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12
1946\setfont\shortcontsl\slshape{12}{1000} 2356\setfont\shortcontsl\slshape{12}{1000}{OT1}
1947\setfont\shortconttt\ttshape{12}{1000} 2357\setfont\shortconttt\ttshape{12}{1000}{OT1TT}
1948 2358
1949%% Add scribe-like font environments, plus @l for inline lisp (usually sans 2359%% Add scribe-like font environments, plus @l for inline lisp (usually sans
1950%% serif) and @ii for TeX italic 2360%% serif) and @ii for TeX italic
@@ -2007,7 +2417,7 @@ where each line of input produces a line of output.}
2007 \null 2417 \null
2008} 2418}
2009\def\samp#1{`\tclose{#1}'\null} 2419\def\samp#1{`\tclose{#1}'\null}
2010\setfont\keyrm\rmshape{8}{1000} 2420\setfont\keyrm\rmshape{8}{1000}{OT1}
2011\font\keysy=cmsy9 2421\font\keysy=cmsy9
2012\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% 2422\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
2013 \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% 2423 \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
@@ -2015,6 +2425,7 @@ where each line of input produces a line of output.}
2015 \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% 2425 \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
2016 \kern-0.4pt\hrule}% 2426 \kern-0.4pt\hrule}%
2017 \kern-.06em\raise0.4pt\hbox{\angleright}}}} 2427 \kern-.06em\raise0.4pt\hbox{\angleright}}}}
2428\def\key #1{{\nohyphenation \uppercase{#1}}\null}
2018% The old definition, with no lozenge: 2429% The old definition, with no lozenge:
2019%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null} 2430%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
2020\def\ctrl #1{{\tt \rawbackslash \hat}#1} 2431\def\ctrl #1{{\tt \rawbackslash \hat}#1}
@@ -2299,6 +2710,35 @@ where each line of input produces a line of output.}
2299 \thiseurofont 2710 \thiseurofont
2300} 2711}
2301 2712
2713% Hacks for glyphs from the EC fonts similar to \euro. We don't
2714% use \let for the aliases, because sometimes we redefine the original
2715% macro, and the alias should reflect the redefinition.
2716\def\guillemetleft{{\ecfont \char"13}}
2717\def\guillemotleft{\guillemetleft}
2718\def\guillemetright{{\ecfont \char"14}}
2719\def\guillemotright{\guillemetright}
2720\def\guilsinglleft{{\ecfont \char"0E}}
2721\def\guilsinglright{{\ecfont \char"0F}}
2722\def\quotedblbase{{\ecfont \char"12}}
2723\def\quotesinglbase{{\ecfont \char"0D}}
2724%
2725\def\ecfont{%
2726 % We can't distinguish serif/sanserif and italic/slanted, but this
2727 % is used for crude hacks anyway (like adding French and German
2728 % quotes to documents typeset with CM, where we lose kerning), so
2729 % hopefully nobody will notice/care.
2730 \edef\ecsize{\csname\curfontsize ecsize\endcsname}%
2731 \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}%
2732 \ifx\curfontstyle\bfstylename
2733 % bold:
2734 \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
2735 \else
2736 % regular:
2737 \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
2738 \fi
2739 \thisecfont
2740}
2741
2302% @registeredsymbol - R in a circle. The font for the R should really 2742% @registeredsymbol - R in a circle. The font for the R should really
2303% be smaller yet, but lllsize is the best we can do for now. 2743% be smaller yet, but lllsize is the best we can do for now.
2304% Adapted from the plain.tex definition of \copyright. 2744% Adapted from the plain.tex definition of \copyright.
@@ -2321,6 +2761,12 @@ where each line of input produces a line of output.}
2321\def\Orb{\mathhexbox20D} 2761\def\Orb{\mathhexbox20D}
2322\fi 2762\fi
2323 2763
2764% Quotes.
2765\chardef\quotedblleft="5C
2766\chardef\quotedblright=`\"
2767\chardef\quoteleft=`\`
2768\chardef\quoteright=`\'
2769
2324 2770
2325\message{page headings,} 2771\message{page headings,}
2326 2772
@@ -2490,6 +2936,33 @@ where each line of input produces a line of output.}
2490 2936
2491\parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} 2937\parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}}
2492 2938
2939% @evenheadingmarks top \thischapter <- chapter at the top of a page
2940% @evenheadingmarks bottom \thischapter <- chapter at the bottom of a page
2941%
2942% The same set of arguments for:
2943%
2944% @oddheadingmarks
2945% @evenfootingmarks
2946% @oddfootingmarks
2947% @everyheadingmarks
2948% @everyfootingmarks
2949
2950\def\evenheadingmarks{\headingmarks{even}{heading}}
2951\def\oddheadingmarks{\headingmarks{odd}{heading}}
2952\def\evenfootingmarks{\headingmarks{even}{footing}}
2953\def\oddfootingmarks{\headingmarks{odd}{footing}}
2954\def\everyheadingmarks#1 {\headingmarks{even}{heading}{#1}
2955 \headingmarks{odd}{heading}{#1} }
2956\def\everyfootingmarks#1 {\headingmarks{even}{footing}{#1}
2957 \headingmarks{odd}{footing}{#1} }
2958% #1 = even/odd, #2 = heading/footing, #3 = top/bottom.
2959\def\headingmarks#1#2#3 {%
2960 \expandafter\let\expandafter\temp \csname get#3headingmarks\endcsname
2961 \global\expandafter\let\csname get#1#2marks\endcsname \temp
2962}
2963
2964\everyheadingmarks bottom
2965\everyfootingmarks bottom
2493 2966
2494% @headings double turns headings on for double-sided printing. 2967% @headings double turns headings on for double-sided printing.
2495% @headings single turns headings on for single-sided printing. 2968% @headings single turns headings on for single-sided printing.
@@ -3530,11 +4003,21 @@ where each line of input produces a line of output.}
3530 \definedummyword\equiv 4003 \definedummyword\equiv
3531 \definedummyword\error 4004 \definedummyword\error
3532 \definedummyword\euro 4005 \definedummyword\euro
4006 \definedummyword\guillemetleft
4007 \definedummyword\guillemetright
4008 \definedummyword\guilsinglleft
4009 \definedummyword\guilsinglright
3533 \definedummyword\expansion 4010 \definedummyword\expansion
3534 \definedummyword\minus 4011 \definedummyword\minus
3535 \definedummyword\pounds 4012 \definedummyword\pounds
3536 \definedummyword\point 4013 \definedummyword\point
3537 \definedummyword\print 4014 \definedummyword\print
4015 \definedummyword\quotedblbase
4016 \definedummyword\quotedblleft
4017 \definedummyword\quotedblright
4018 \definedummyword\quoteleft
4019 \definedummyword\quoteright
4020 \definedummyword\quotesinglbase
3538 \definedummyword\result 4021 \definedummyword\result
3539 \definedummyword\textdegree 4022 \definedummyword\textdegree
3540 % 4023 %
@@ -3664,11 +4147,21 @@ where each line of input produces a line of output.}
3664 \def\equiv{==}% 4147 \def\equiv{==}%
3665 \def\error{error}% 4148 \def\error{error}%
3666 \def\euro{euro}% 4149 \def\euro{euro}%
4150 \def\guillemetleft{<<}%
4151 \def\guillemetright{>>}%
4152 \def\guilsinglleft{<}%
4153 \def\guilsinglright{>}%
3667 \def\expansion{==>}% 4154 \def\expansion{==>}%
3668 \def\minus{-}% 4155 \def\minus{-}%
3669 \def\pounds{pounds}% 4156 \def\pounds{pounds}%
3670 \def\point{.}% 4157 \def\point{.}%
3671 \def\print{-|}% 4158 \def\print{-|}%
4159 \def\quotedblbase{"}%
4160 \def\quotedblleft{"}%
4161 \def\quotedblright{"}%
4162 \def\quoteleft{`}%
4163 \def\quoteright{'}%
4164 \def\quotesinglbase{,}%
3672 \def\result{=>}% 4165 \def\result{=>}%
3673 \def\textdegree{degrees}% 4166 \def\textdegree{degrees}%
3674 % 4167 %
@@ -3710,11 +4203,7 @@ where each line of input produces a line of output.}
3710 % 4203 %
3711 \edef\writeto{\csname#1indfile\endcsname}% 4204 \edef\writeto{\csname#1indfile\endcsname}%
3712 % 4205 %
3713 \ifvmode 4206 \safewhatsit\dosubindwrite
3714 \dosubindsanitize
3715 \else
3716 \dosubindwrite
3717 \fi
3718 }% 4207 }%
3719 \fi 4208 \fi
3720} 4209}
@@ -3751,13 +4240,13 @@ where each line of input produces a line of output.}
3751 \temp 4240 \temp
3752} 4241}
3753 4242
3754% Take care of unwanted page breaks: 4243% Take care of unwanted page breaks/skips around a whatsit:
3755% 4244%
3756% If a skip is the last thing on the list now, preserve it 4245% If a skip is the last thing on the list now, preserve it
3757% by backing up by \lastskip, doing the \write, then inserting 4246% by backing up by \lastskip, doing the \write, then inserting
3758% the skip again. Otherwise, the whatsit generated by the 4247% the skip again. Otherwise, the whatsit generated by the
3759% \write will make \lastskip zero. The result is that sequences 4248% \write or \pdfdest will make \lastskip zero. The result is that
3760% like this: 4249% sequences like this:
3761% @end defun 4250% @end defun
3762% @tindex whatever 4251% @tindex whatever
3763% @defun ... 4252% @defun ...
@@ -3781,25 +4270,31 @@ where each line of input produces a line of output.}
3781% 4270%
3782\edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname} 4271\edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname}
3783% 4272%
4273\newskip\whatsitskip
4274\newcount\whatsitpenalty
4275%
3784% ..., ready, GO: 4276% ..., ready, GO:
3785% 4277%
3786\def\dosubindsanitize{% 4278\def\safewhatsit#1{%
4279\ifhmode
4280 #1%
4281\else
3787 % \lastskip and \lastpenalty cannot both be nonzero simultaneously. 4282 % \lastskip and \lastpenalty cannot both be nonzero simultaneously.
3788 \skip0 = \lastskip 4283 \whatsitskip = \lastskip
3789 \edef\lastskipmacro{\the\lastskip}% 4284 \edef\lastskipmacro{\the\lastskip}%
3790 \count255 = \lastpenalty 4285 \whatsitpenalty = \lastpenalty
3791 % 4286 %
3792 % If \lastskip is nonzero, that means the last item was a 4287 % If \lastskip is nonzero, that means the last item was a
3793 % skip. And since a skip is discardable, that means this 4288 % skip. And since a skip is discardable, that means this
3794 % -\skip0 glue we're inserting is preceded by a 4289 % -\whatsitskip glue we're inserting is preceded by a
3795 % non-discardable item, therefore it is not a potential 4290 % non-discardable item, therefore it is not a potential
3796 % breakpoint, therefore no \nobreak needed. 4291 % breakpoint, therefore no \nobreak needed.
3797 \ifx\lastskipmacro\zeroskipmacro 4292 \ifx\lastskipmacro\zeroskipmacro
3798 \else 4293 \else
3799 \vskip-\skip0 4294 \vskip-\whatsitskip
3800 \fi 4295 \fi
3801 % 4296 %
3802 \dosubindwrite 4297 #1%
3803 % 4298 %
3804 \ifx\lastskipmacro\zeroskipmacro 4299 \ifx\lastskipmacro\zeroskipmacro
3805 % If \lastskip was zero, perhaps the last item was a penalty, and 4300 % If \lastskip was zero, perhaps the last item was a penalty, and
@@ -3813,13 +4308,14 @@ where each line of input produces a line of output.}
3813 % Description. 4308 % Description.
3814 % would allow a break between the index-whatever whatsit 4309 % would allow a break between the index-whatever whatsit
3815 % and the "Description." paragraph. 4310 % and the "Description." paragraph.
3816 \ifnum\count255>9999 \penalty\count255 \fi 4311 \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi
3817 \else 4312 \else
3818 % On the other hand, if we had a nonzero \lastskip, 4313 % On the other hand, if we had a nonzero \lastskip,
3819 % this make-up glue would be preceded by a non-discardable item 4314 % this make-up glue would be preceded by a non-discardable item
3820 % (the whatsit from the \write), so we must insert a \nobreak. 4315 % (the whatsit from the \write), so we must insert a \nobreak.
3821 \nobreak\vskip\skip0 4316 \nobreak\vskip\whatsitskip
3822 \fi 4317 \fi
4318\fi
3823} 4319}
3824 4320
3825% The index entry written in the file actually looks like 4321% The index entry written in the file actually looks like
@@ -3862,6 +4358,7 @@ where each line of input produces a line of output.}
3862 % 4358 %
3863 \smallfonts \rm 4359 \smallfonts \rm
3864 \tolerance = 9500 4360 \tolerance = 9500
4361 \plainfrenchspacing
3865 \everypar = {}% don't want the \kern\-parindent from indentation suppression. 4362 \everypar = {}% don't want the \kern\-parindent from indentation suppression.
3866 % 4363 %
3867 % See if the index file exists and is nonempty. 4364 % See if the index file exists and is nonempty.
@@ -3991,11 +4488,8 @@ where each line of input produces a line of output.}
3991 % The following is kludged to not output a line of dots in the index if 4488 % The following is kludged to not output a line of dots in the index if
3992 % there are no page numbers. The next person who breaks this will be 4489 % there are no page numbers. The next person who breaks this will be
3993 % cursed by a Unix daemon. 4490 % cursed by a Unix daemon.
3994 \def\tempa{{\rm }}% 4491 \setbox\boxA = \hbox{#1}%
3995 \def\tempb{#1}% 4492 \ifdim\wd\boxA = 0pt
3996 \edef\tempc{\tempa}%
3997 \edef\tempd{\tempb}%
3998 \ifx\tempc\tempd
3999 \ % 4493 \ %
4000 \else 4494 \else
4001 % 4495 %
@@ -4131,6 +4625,34 @@ where each line of input produces a line of output.}
4131% 4625%
4132% All done with double columns. 4626% All done with double columns.
4133\def\enddoublecolumns{% 4627\def\enddoublecolumns{%
4628 % The following penalty ensures that the page builder is exercised
4629 % _before_ we change the output routine. This is necessary in the
4630 % following situation:
4631 %
4632 % The last section of the index consists only of a single entry.
4633 % Before this section, \pagetotal is less than \pagegoal, so no
4634 % break occurs before the last section starts. However, the last
4635 % section, consisting of \initial and the single \entry, does not
4636 % fit on the page and has to be broken off. Without the following
4637 % penalty the page builder will not be exercised until \eject
4638 % below, and by that time we'll already have changed the output
4639 % routine to the \balancecolumns version, so the next-to-last
4640 % double-column page will be processed with \balancecolumns, which
4641 % is wrong: The two columns will go to the main vertical list, with
4642 % the broken-off section in the recent contributions. As soon as
4643 % the output routine finishes, TeX starts reconsidering the page
4644 % break. The two columns and the broken-off section both fit on the
4645 % page, because the two columns now take up only half of the page
4646 % goal. When TeX sees \eject from below which follows the final
4647 % section, it invokes the new output routine that we've set after
4648 % \balancecolumns below; \onepageout will try to fit the two columns
4649 % and the final section into the vbox of \pageheight (see
4650 % \pagebody), causing an overfull box.
4651 %
4652 % Note that glue won't work here, because glue does not exercise the
4653 % page builder, unlike penalties (see The TeXbook, pp. 280-281).
4654 \penalty0
4655 %
4134 \output = {% 4656 \output = {%
4135 % Split the last of the double-column material. Leave it on the 4657 % Split the last of the double-column material. Leave it on the
4136 % current page, no automatic page break. 4658 % current page, no automatic page break.
@@ -4240,11 +4762,15 @@ where each line of input produces a line of output.}
4240 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi 4762 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
4241 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} 4763 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
4242 4764
4243% Each @chapter defines this as the name of the chapter. 4765% Each @chapter defines these (using marks) as the number+name, number
4244% page headings and footings can use it. @section does likewise. 4766% and name of the chapter. Page headings and footings can use
4245% However, they are not reliable, because we don't use marks. 4767% these. @section does likewise.
4246\def\thischapter{} 4768\def\thischapter{}
4769\def\thischapternum{}
4770\def\thischaptername{}
4247\def\thissection{} 4771\def\thissection{}
4772\def\thissectionnum{}
4773\def\thissectionname{}
4248 4774
4249\newcount\absseclevel % used to calculate proper heading level 4775\newcount\absseclevel % used to calculate proper heading level
4250\newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count 4776\newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count
@@ -4545,7 +5071,20 @@ where each line of input produces a line of output.}
4545 5071
4546\def\chapbreak{\dobreak \chapheadingskip {-4000}} 5072\def\chapbreak{\dobreak \chapheadingskip {-4000}}
4547\def\chappager{\par\vfill\supereject} 5073\def\chappager{\par\vfill\supereject}
4548\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi} 5074% Because \domark is called before \chapoddpage, the filler page will
5075% get the headings for the next chapter, which is wrong. But we don't
5076% care -- we just disable all headings on the filler page.
5077\def\chapoddpage{%
5078 \chappager
5079 \ifodd\pageno \else
5080 \begingroup
5081 \evenheadline={\hfil}\evenfootline={\hfil}%
5082 \oddheadline={\hfil}\oddfootline={\hfil}%
5083 \hbox to 0pt{}%
5084 \chappager
5085 \endgroup
5086 \fi
5087}
4549 5088
4550\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname} 5089\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
4551 5090
@@ -4579,45 +5118,72 @@ where each line of input produces a line of output.}
4579\def\Yappendixkeyword{Yappendix} 5118\def\Yappendixkeyword{Yappendix}
4580% 5119%
4581\def\chapmacro#1#2#3{% 5120\def\chapmacro#1#2#3{%
5121 % Insert the first mark before the heading break (see notes for \domark).
5122 \let\prevchapterdefs=\lastchapterdefs
5123 \let\prevsectiondefs=\lastsectiondefs
5124 \gdef\lastsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}%
5125 \gdef\thissection{}}%
5126 %
5127 \def\temptype{#2}%
5128 \ifx\temptype\Ynothingkeyword
5129 \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
5130 \gdef\thischapter{\thischaptername}}%
5131 \else\ifx\temptype\Yomitfromtockeyword
5132 \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
5133 \gdef\thischapter{}}%
5134 \else\ifx\temptype\Yappendixkeyword
5135 \toks0={#1}%
5136 \xdef\lastchapterdefs{%
5137 \gdef\noexpand\thischaptername{\the\toks0}%
5138 \gdef\noexpand\thischapternum{\appendixletter}%
5139 \gdef\noexpand\thischapter{\putwordAppendix{} \noexpand\thischapternum:
5140 \noexpand\thischaptername}%
5141 }%
5142 \else
5143 \toks0={#1}%
5144 \xdef\lastchapterdefs{%
5145 \gdef\noexpand\thischaptername{\the\toks0}%
5146 \gdef\noexpand\thischapternum{\the\chapno}%
5147 \gdef\noexpand\thischapter{\putwordChapter{} \noexpand\thischapternum:
5148 \noexpand\thischaptername}%
5149 }%
5150 \fi\fi\fi
5151 %
5152 % Output the mark. Pass it through \safewhatsit, to take care of
5153 % the preceding space.
5154 \safewhatsit\domark
5155 %
5156 % Insert the chapter heading break.
4582 \pchapsepmacro 5157 \pchapsepmacro
5158 %
5159 % Now the second mark, after the heading break. No break points
5160 % between here and the heading.
5161 \let\prevchapterdefs=\lastchapterdefs
5162 \let\prevsectiondefs=\lastsectiondefs
5163 \domark
5164 %
4583 {% 5165 {%
4584 \chapfonts \rm 5166 \chapfonts \rm
4585 % 5167 %
4586 % Have to define \thissection before calling \donoderef, because the 5168 % Have to define \lastsection before calling \donoderef, because the
4587 % xref code eventually uses it. On the other hand, it has to be called 5169 % xref code eventually uses it. On the other hand, it has to be called
4588 % after \pchapsepmacro, or the headline will change too soon. 5170 % after \pchapsepmacro, or the headline will change too soon.
4589 \gdef\thissection{#1}% 5171 \gdef\lastsection{#1}%
4590 \gdef\thischaptername{#1}%
4591 % 5172 %
4592 % Only insert the separating space if we have a chapter/appendix 5173 % Only insert the separating space if we have a chapter/appendix
4593 % number, and don't print the unnumbered ``number''. 5174 % number, and don't print the unnumbered ``number''.
4594 \def\temptype{#2}%
4595 \ifx\temptype\Ynothingkeyword 5175 \ifx\temptype\Ynothingkeyword
4596 \setbox0 = \hbox{}% 5176 \setbox0 = \hbox{}%
4597 \def\toctype{unnchap}% 5177 \def\toctype{unnchap}%
4598 \gdef\thischapternum{}%
4599 \gdef\thischapter{#1}%
4600 \else\ifx\temptype\Yomitfromtockeyword 5178 \else\ifx\temptype\Yomitfromtockeyword
4601 \setbox0 = \hbox{}% contents like unnumbered, but no toc entry 5179 \setbox0 = \hbox{}% contents like unnumbered, but no toc entry
4602 \def\toctype{omit}% 5180 \def\toctype{omit}%
4603 \gdef\thischapternum{}%
4604 \gdef\thischapter{}%
4605 \else\ifx\temptype\Yappendixkeyword 5181 \else\ifx\temptype\Yappendixkeyword
4606 \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% 5182 \setbox0 = \hbox{\putwordAppendix{} #3\enspace}%
4607 \def\toctype{app}% 5183 \def\toctype{app}%
4608 \xdef\thischapternum{\appendixletter}%
4609 % We don't substitute the actual chapter name into \thischapter
4610 % because we don't want its macros evaluated now. And we don't
4611 % use \thissection because that changes with each section.
4612 %
4613 \xdef\thischapter{\putwordAppendix{} \appendixletter:
4614 \noexpand\thischaptername}%
4615 \else 5184 \else
4616 \setbox0 = \hbox{#3\enspace}% 5185 \setbox0 = \hbox{#3\enspace}%
4617 \def\toctype{numchap}% 5186 \def\toctype{numchap}%
4618 \xdef\thischapternum{\the\chapno}%
4619 \xdef\thischapter{\putwordChapter{} \the\chapno:
4620 \noexpand\thischaptername}%
4621 \fi\fi\fi 5187 \fi\fi\fi
4622 % 5188 %
4623 % Write the toc entry for this chapter. Must come before the 5189 % Write the toc entry for this chapter. Must come before the
@@ -4633,6 +5199,7 @@ where each line of input produces a line of output.}
4633 \donoderef{#2}% 5199 \donoderef{#2}%
4634 % 5200 %
4635 % Typeset the actual heading. 5201 % Typeset the actual heading.
5202 \nobreak % Avoid page breaks at the interline glue.
4636 \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright 5203 \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
4637 \hangindent=\wd0 \centerparametersmaybe 5204 \hangindent=\wd0 \centerparametersmaybe
4638 \unhbox0 #1\par}% 5205 \unhbox0 #1\par}%
@@ -4695,36 +5262,78 @@ where each line of input produces a line of output.}
4695% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the 5262% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the
4696% section number. 5263% section number.
4697% 5264%
5265\def\seckeyword{sec}
5266%
4698\def\sectionheading#1#2#3#4{% 5267\def\sectionheading#1#2#3#4{%
4699 {% 5268 {%
4700 % Switch to the right set of fonts. 5269 % Switch to the right set of fonts.
4701 \csname #2fonts\endcsname \rm 5270 \csname #2fonts\endcsname \rm
4702 % 5271 %
5272 \def\sectionlevel{#2}%
5273 \def\temptype{#3}%
5274 %
5275 % Insert first mark before the heading break (see notes for \domark).
5276 \let\prevsectiondefs=\lastsectiondefs
5277 \ifx\temptype\Ynothingkeyword
5278 \ifx\sectionlevel\seckeyword
5279 \gdef\lastsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}%
5280 \gdef\thissection{\thissectionname}}%
5281 \fi
5282 \else\ifx\temptype\Yomitfromtockeyword
5283 % Don't redefine \thissection.
5284 \else\ifx\temptype\Yappendixkeyword
5285 \ifx\sectionlevel\seckeyword
5286 \toks0={#1}%
5287 \xdef\lastsectiondefs{%
5288 \gdef\noexpand\thissectionname{\the\toks0}%
5289 \gdef\noexpand\thissectionnum{#4}%
5290 \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum:
5291 \noexpand\thissectionname}%
5292 }%
5293 \fi
5294 \else
5295 \ifx\sectionlevel\seckeyword
5296 \toks0={#1}%
5297 \xdef\lastsectiondefs{%
5298 \gdef\noexpand\thissectionname{\the\toks0}%
5299 \gdef\noexpand\thissectionnum{#4}%
5300 \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum:
5301 \noexpand\thissectionname}%
5302 }%
5303 \fi
5304 \fi\fi\fi
5305 %
5306 % Output the mark. Pass it through \safewhatsit, to take care of
5307 % the preceding space.
5308 \safewhatsit\domark
5309 %
4703 % Insert space above the heading. 5310 % Insert space above the heading.
4704 \csname #2headingbreak\endcsname 5311 \csname #2headingbreak\endcsname
4705 % 5312 %
4706 % Only insert the space after the number if we have a section number. 5313 % Now the second mark, after the heading break. No break points
4707 \def\sectionlevel{#2}% 5314 % between here and the heading.
4708 \def\temptype{#3}% 5315 \let\prevsectiondefs=\lastsectiondefs
5316 \domark
4709 % 5317 %
5318 % Only insert the space after the number if we have a section number.
4710 \ifx\temptype\Ynothingkeyword 5319 \ifx\temptype\Ynothingkeyword
4711 \setbox0 = \hbox{}% 5320 \setbox0 = \hbox{}%
4712 \def\toctype{unn}% 5321 \def\toctype{unn}%
4713 \gdef\thissection{#1}% 5322 \gdef\lastsection{#1}%
4714 \else\ifx\temptype\Yomitfromtockeyword 5323 \else\ifx\temptype\Yomitfromtockeyword
4715 % for @headings -- no section number, don't include in toc, 5324 % for @headings -- no section number, don't include in toc,
4716 % and don't redefine \thissection. 5325 % and don't redefine \lastsection.
4717 \setbox0 = \hbox{}% 5326 \setbox0 = \hbox{}%
4718 \def\toctype{omit}% 5327 \def\toctype{omit}%
4719 \let\sectionlevel=\empty 5328 \let\sectionlevel=\empty
4720 \else\ifx\temptype\Yappendixkeyword 5329 \else\ifx\temptype\Yappendixkeyword
4721 \setbox0 = \hbox{#4\enspace}% 5330 \setbox0 = \hbox{#4\enspace}%
4722 \def\toctype{app}% 5331 \def\toctype{app}%
4723 \gdef\thissection{#1}% 5332 \gdef\lastsection{#1}%
4724 \else 5333 \else
4725 \setbox0 = \hbox{#4\enspace}% 5334 \setbox0 = \hbox{#4\enspace}%
4726 \def\toctype{num}% 5335 \def\toctype{num}%
4727 \gdef\thissection{#1}% 5336 \gdef\lastsection{#1}%
4728 \fi\fi\fi 5337 \fi\fi\fi
4729 % 5338 %
4730 % Write the toc entry (before \donoderef). See comments in \chapmacro. 5339 % Write the toc entry (before \donoderef). See comments in \chapmacro.
@@ -4839,7 +5448,7 @@ where each line of input produces a line of output.}
4839\def\readtocfile{% 5448\def\readtocfile{%
4840 \setupdatafile 5449 \setupdatafile
4841 \activecatcodes 5450 \activecatcodes
4842 \input \jobname.toc 5451 \input \tocreadfilename
4843} 5452}
4844 5453
4845\newskip\contentsrightmargin \contentsrightmargin=1in 5454\newskip\contentsrightmargin \contentsrightmargin=1in
@@ -4858,7 +5467,6 @@ where each line of input produces a line of output.}
4858 % 5467 %
4859 % Don't need to put `Contents' or `Short Contents' in the headline. 5468 % Don't need to put `Contents' or `Short Contents' in the headline.
4860 % It is abundantly clear what they are. 5469 % It is abundantly clear what they are.
4861 \def\thischapter{}%
4862 \chapmacro{#1}{Yomitfromtoc}{}% 5470 \chapmacro{#1}{Yomitfromtoc}{}%
4863 % 5471 %
4864 \savepageno = \pageno 5472 \savepageno = \pageno
@@ -4870,11 +5478,16 @@ where each line of input produces a line of output.}
4870 \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi 5478 \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
4871} 5479}
4872 5480
5481% redefined for the two-volume lispref. We always output on
5482% \jobname.toc even if this is redefined.
5483%
5484\def\tocreadfilename{\jobname.toc}
4873 5485
4874% Normal (long) toc. 5486% Normal (long) toc.
5487%
4875\def\contents{% 5488\def\contents{%
4876 \startcontents{\putwordTOC}% 5489 \startcontents{\putwordTOC}%
4877 \openin 1 \jobname.toc 5490 \openin 1 \tocreadfilename\space
4878 \ifeof 1 \else 5491 \ifeof 1 \else
4879 \readtocfile 5492 \readtocfile
4880 \fi 5493 \fi
@@ -4912,7 +5525,7 @@ where each line of input produces a line of output.}
4912 \let\numsubsubsecentry = \numsecentry 5525 \let\numsubsubsecentry = \numsecentry
4913 \let\appsubsubsecentry = \numsecentry 5526 \let\appsubsubsecentry = \numsecentry
4914 \let\unnsubsubsecentry = \numsecentry 5527 \let\unnsubsubsecentry = \numsecentry
4915 \openin 1 \jobname.toc 5528 \openin 1 \tocreadfilename\space
4916 \ifeof 1 \else 5529 \ifeof 1 \else
4917 \readtocfile 5530 \readtocfile
4918 \fi 5531 \fi
@@ -5247,12 +5860,18 @@ where each line of input produces a line of output.}
5247\let\SETdispenvsize\relax 5860\let\SETdispenvsize\relax
5248\def\setnormaldispenv{% 5861\def\setnormaldispenv{%
5249 \ifx\SETdispenvsize\smallword 5862 \ifx\SETdispenvsize\smallword
5863 % end paragraph for sake of leading, in case document has no blank
5864 % line. This is redundant with what happens in \aboveenvbreak, but
5865 % we need to do it before changing the fonts, and it's inconvenient
5866 % to change the fonts afterward.
5867 \ifnum \lastpenalty=10000 \else \endgraf \fi
5250 \smallexamplefonts \rm 5868 \smallexamplefonts \rm
5251 \fi 5869 \fi
5252} 5870}
5253\def\setsmalldispenv{% 5871\def\setsmalldispenv{%
5254 \ifx\SETdispenvsize\nosmallword 5872 \ifx\SETdispenvsize\nosmallword
5255 \else 5873 \else
5874 \ifnum \lastpenalty=10000 \else \endgraf \fi
5256 \smallexamplefonts \rm 5875 \smallexamplefonts \rm
5257 \fi 5876 \fi
5258} 5877}
@@ -5419,11 +6038,11 @@ where each line of input produces a line of output.}
5419% regular 0x27. 6038% regular 0x27.
5420% 6039%
5421\def\codequoteright{% 6040\def\codequoteright{%
5422 \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax 6041 \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
5423 '% 6042 \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
5424 \else 6043 '%
5425 \char'15 6044 \else \char'15 \fi
5426 \fi 6045 \else \char'15 \fi
5427} 6046}
5428% 6047%
5429% and a similar option for the left quote char vs. a grave accent. 6048% and a similar option for the left quote char vs. a grave accent.
@@ -5431,11 +6050,11 @@ where each line of input produces a line of output.}
5431% the code environments to do likewise. 6050% the code environments to do likewise.
5432% 6051%
5433\def\codequoteleft{% 6052\def\codequoteleft{%
5434 \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax 6053 \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
5435 `% 6054 \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
5436 \else 6055 `%
5437 \char'22 6056 \else \char'22 \fi
5438 \fi 6057 \else \char'22 \fi
5439} 6058}
5440% 6059%
5441\begingroup 6060\begingroup
@@ -5553,27 +6172,35 @@ where each line of input produces a line of output.}
5553 \endgroup 6172 \endgroup
5554} 6173}
5555 6174
6175
5556\message{defuns,} 6176\message{defuns,}
5557% @defun etc. 6177% @defun etc.
5558 6178
5559\newskip\defbodyindent \defbodyindent=.4in 6179\newskip\defbodyindent \defbodyindent=.4in
5560\newskip\defargsindent \defargsindent=50pt 6180\newskip\defargsindent \defargsindent=50pt
5561\newskip\deflastargmargin \deflastargmargin=18pt 6181\newskip\deflastargmargin \deflastargmargin=18pt
6182\newcount\defunpenalty
5562 6183
5563% Start the processing of @deffn: 6184% Start the processing of @deffn:
5564\def\startdefun{% 6185\def\startdefun{%
5565 \ifnum\lastpenalty<10000 6186 \ifnum\lastpenalty<10000
5566 \medbreak 6187 \medbreak
6188 \defunpenalty=10003 % Will keep this @deffn together with the
6189 % following @def command, see below.
5567 \else 6190 \else
5568 % If there are two @def commands in a row, we'll have a \nobreak, 6191 % If there are two @def commands in a row, we'll have a \nobreak,
5569 % which is there to keep the function description together with its 6192 % which is there to keep the function description together with its
5570 % header. But if there's nothing but headers, we need to allow a 6193 % header. But if there's nothing but headers, we need to allow a
5571 % break somewhere. Check specifically for penalty 10002, inserted 6194 % break somewhere. Check specifically for penalty 10002, inserted
5572 % by \defargscommonending, instead of 10000, since the sectioning 6195 % by \printdefunline, instead of 10000, since the sectioning
5573 % commands also insert a nobreak penalty, and we don't want to allow 6196 % commands also insert a nobreak penalty, and we don't want to allow
5574 % a break between a section heading and a defun. 6197 % a break between a section heading and a defun.
5575 % 6198 %
5576 \ifnum\lastpenalty=10002 \penalty2000 \fi 6199 % As a minor refinement, we avoid "club" headers by signalling
6200 % with penalty of 10003 after the very first @deffn in the
6201 % sequence (see above), and penalty of 10002 after any following
6202 % @def command.
6203 \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \fi
5577 % 6204 %
5578 % Similarly, after a section heading, do not allow a break. 6205 % Similarly, after a section heading, do not allow a break.
5579 % But do insert the glue. 6206 % But do insert the glue.
@@ -5591,7 +6218,7 @@ where each line of input produces a line of output.}
5591 % 6218 %
5592 % As above, allow line break if we have multiple x headers in a row. 6219 % As above, allow line break if we have multiple x headers in a row.
5593 % It's not a great place, though. 6220 % It's not a great place, though.
5594 \ifnum\lastpenalty=10002 \penalty3000 \fi 6221 \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi
5595 % 6222 %
5596 % And now, it's time to reuse the body of the original defun: 6223 % And now, it's time to reuse the body of the original defun:
5597 \expandafter\gobbledefun#1% 6224 \expandafter\gobbledefun#1%
@@ -5609,7 +6236,7 @@ where each line of input produces a line of output.}
5609 \advance\rightskip by 0pt plus 1fil 6236 \advance\rightskip by 0pt plus 1fil
5610 \endgraf 6237 \endgraf
5611 \nobreak\vskip -\parskip 6238 \nobreak\vskip -\parskip
5612 \penalty 10002 % signal to \startdefun and \dodefunx 6239 \penalty\defunpenalty % signal to \startdefun and \dodefunx
5613 % Some of the @defun-type tags do not enable magic parentheses, 6240 % Some of the @defun-type tags do not enable magic parentheses,
5614 % rendering the following check redundant. But we don't optimize. 6241 % rendering the following check redundant. But we don't optimize.
5615 \checkparencounts 6242 \checkparencounts
@@ -5878,12 +6505,14 @@ where each line of input produces a line of output.}
5878 \ifnum\parencount=0 \else \badparencount \fi 6505 \ifnum\parencount=0 \else \badparencount \fi
5879 \ifnum\brackcount=0 \else \badbrackcount \fi 6506 \ifnum\brackcount=0 \else \badbrackcount \fi
5880} 6507}
6508% these should not use \errmessage; the glibc manual, at least, actually
6509% has such constructs (when documenting function pointers).
5881\def\badparencount{% 6510\def\badparencount{%
5882 \errmessage{Unbalanced parentheses in @def}% 6511 \message{Warning: unbalanced parentheses in @def...}%
5883 \global\parencount=0 6512 \global\parencount=0
5884} 6513}
5885\def\badbrackcount{% 6514\def\badbrackcount{%
5886 \errmessage{Unbalanced square braces in @def}% 6515 \message{Warning: unbalanced square brackets in @def...}%
5887 \global\brackcount=0 6516 \global\brackcount=0
5888} 6517}
5889 6518
@@ -5978,6 +6607,10 @@ where each line of input produces a line of output.}
5978% all characters are catcode 10, 11 or 12, except \ which is active 6607% all characters are catcode 10, 11 or 12, except \ which is active
5979% (as in normal texinfo). It is necessary to change the definition of \. 6608% (as in normal texinfo). It is necessary to change the definition of \.
5980 6609
6610% Non-ASCII encodings make 8-bit characters active, so un-activate
6611% them to avoid their expansion. Must do this non-globally, to
6612% confine the change to the current group.
6613
5981% It's necessary to have hard CRs when the macro is executed. This is 6614% It's necessary to have hard CRs when the macro is executed. This is
5982% done by making ^^M (\endlinechar) catcode 12 when reading the macro 6615% done by making ^^M (\endlinechar) catcode 12 when reading the macro
5983% body, and then making it the \newlinechar in \scanmacro. 6616% body, and then making it the \newlinechar in \scanmacro.
@@ -5992,6 +6625,7 @@ where each line of input produces a line of output.}
5992 \catcode`\_=\other 6625 \catcode`\_=\other
5993 \catcode`\|=\other 6626 \catcode`\|=\other
5994 \catcode`\~=\other 6627 \catcode`\~=\other
6628 \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi
5995} 6629}
5996 6630
5997\def\scanargctxt{% 6631\def\scanargctxt{%
@@ -6209,7 +6843,6 @@ where each line of input produces a line of output.}
6209\message{cross references,} 6843\message{cross references,}
6210 6844
6211\newwrite\auxfile 6845\newwrite\auxfile
6212
6213\newif\ifhavexrefs % True if xref values are known. 6846\newif\ifhavexrefs % True if xref values are known.
6214\newif\ifwarnedxrefs % True if we warned once that they aren't known. 6847\newif\ifwarnedxrefs % True if we warned once that they aren't known.
6215 6848
@@ -6254,7 +6887,7 @@ where each line of input produces a line of output.}
6254 6887
6255% \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an 6888% \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an
6256% anchor), which consists of three parts: 6889% anchor), which consists of three parts:
6257% 1) NAME-title - the current sectioning name taken from \thissection, 6890% 1) NAME-title - the current sectioning name taken from \lastsection,
6258% or the anchor name. 6891% or the anchor name.
6259% 2) NAME-snt - section number and type, passed as the SNT arg, or 6892% 2) NAME-snt - section number and type, passed as the SNT arg, or
6260% empty for anchors. 6893% empty for anchors.
@@ -6273,10 +6906,10 @@ where each line of input produces a line of output.}
6273 \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef 6906 \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
6274 ##1}{##2}}% these are parameters of \writexrdef 6907 ##1}{##2}}% these are parameters of \writexrdef
6275 }% 6908 }%
6276 \toks0 = \expandafter{\thissection}% 6909 \toks0 = \expandafter{\lastsection}%
6277 \immediate \writexrdef{title}{\the\toks0 }% 6910 \immediate \writexrdef{title}{\the\toks0 }%
6278 \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. 6911 \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
6279 \writexrdef{pg}{\folio}% will be written later, during \shipout 6912 \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, during \shipout
6280 }% 6913 }%
6281 \fi 6914 \fi
6282} 6915}
@@ -6322,7 +6955,8 @@ where each line of input produces a line of output.}
6322 \ifpdf 6955 \ifpdf
6323 \leavevmode 6956 \leavevmode
6324 \getfilename{#4}% 6957 \getfilename{#4}%
6325 {\turnoffactive 6958 {\indexnofonts
6959 \turnoffactive
6326 % See comments at \activebackslashdouble. 6960 % See comments at \activebackslashdouble.
6327 {\activebackslashdouble \xdef\pdfxrefdest{#1}% 6961 {\activebackslashdouble \xdef\pdfxrefdest{#1}%
6328 \backslashparens\pdfxrefdest}% 6962 \backslashparens\pdfxrefdest}%
@@ -6335,7 +6969,7 @@ where each line of input produces a line of output.}
6335 goto name{\pdfmkpgn{\pdfxrefdest}}% 6969 goto name{\pdfmkpgn{\pdfxrefdest}}%
6336 \fi 6970 \fi
6337 }% 6971 }%
6338 \linkcolor 6972 \setcolor{\linkcolor}%
6339 \fi 6973 \fi
6340 % 6974 %
6341 % Float references are printed completely differently: "Figure 1.2" 6975 % Float references are printed completely differently: "Figure 1.2"
@@ -6373,7 +7007,7 @@ where each line of input produces a line of output.}
6373 % is a loss. Therefore, we give the text of the node name again, so it 7007 % is a loss. Therefore, we give the text of the node name again, so it
6374 % is as if TeX is seeing it for the first time. 7008 % is as if TeX is seeing it for the first time.
6375 \ifdim \wd1 > 0pt 7009 \ifdim \wd1 > 0pt
6376 \putwordsection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}% 7010 \putwordSection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
6377 \else 7011 \else
6378 % _ (for example) has to be the character _ for the purposes of the 7012 % _ (for example) has to be the character _ for the purposes of the
6379 % control sequence corresponding to the node, but it has to expand 7013 % control sequence corresponding to the node, but it has to expand
@@ -6469,10 +7103,18 @@ where each line of input produces a line of output.}
6469% collisions). But if this is a float type, we have more work to do. 7103% collisions). But if this is a float type, we have more work to do.
6470% 7104%
6471\def\xrdef#1#2{% 7105\def\xrdef#1#2{%
6472 \expandafter\gdef\csname XR#1\endcsname{#2}% remember this xref value. 7106 {% The node name might contain 8-bit characters, which in our current
7107 % implementation are changed to commands like @'e. Don't let these
7108 % mess up the control sequence name.
7109 \indexnofonts
7110 \turnoffactive
7111 \xdef\safexrefname{#1}%
7112 }%
7113 %
7114 \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% remember this xref
6473 % 7115 %
6474 % Was that xref control sequence that we just defined for a float? 7116 % Was that xref control sequence that we just defined for a float?
6475 \expandafter\iffloat\csname XR#1\endcsname 7117 \expandafter\iffloat\csname XR\safexrefname\endcsname
6476 % it was a float, and we have the (safe) float type in \iffloattype. 7118 % it was a float, and we have the (safe) float type in \iffloattype.
6477 \expandafter\let\expandafter\floatlist 7119 \expandafter\let\expandafter\floatlist
6478 \csname floatlist\iffloattype\endcsname 7120 \csname floatlist\iffloattype\endcsname
@@ -6487,7 +7129,8 @@ where each line of input produces a line of output.}
6487 % 7129 %
6488 % Remember this xref in the control sequence \floatlistFLOATTYPE, 7130 % Remember this xref in the control sequence \floatlistFLOATTYPE,
6489 % for later use in \listoffloats. 7131 % for later use in \listoffloats.
6490 \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0{#1}}% 7132 \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0
7133 {\safexrefname}}%
6491 \fi 7134 \fi
6492} 7135}
6493 7136
@@ -6591,6 +7234,7 @@ where each line of input produces a line of output.}
6591 \input\jobname.#1 7234 \input\jobname.#1
6592\endgroup} 7235\endgroup}
6593 7236
7237
6594\message{insertions,} 7238\message{insertions,}
6595% including footnotes. 7239% including footnotes.
6596 7240
@@ -6863,13 +7507,13 @@ where each line of input produces a line of output.}
6863 \global\advance\floatno by 1 7507 \global\advance\floatno by 1
6864 % 7508 %
6865 {% 7509 {%
6866 % This magic value for \thissection is output by \setref as the 7510 % This magic value for \lastsection is output by \setref as the
6867 % XREFLABEL-title value. \xrefX uses it to distinguish float 7511 % XREFLABEL-title value. \xrefX uses it to distinguish float
6868 % labels (which have a completely different output format) from 7512 % labels (which have a completely different output format) from
6869 % node and anchor labels. And \xrdef uses it to construct the 7513 % node and anchor labels. And \xrdef uses it to construct the
6870 % lists of floats. 7514 % lists of floats.
6871 % 7515 %
6872 \edef\thissection{\floatmagic=\safefloattype}% 7516 \edef\lastsection{\floatmagic=\safefloattype}%
6873 \setref{\floatlabel}{Yfloat}% 7517 \setref{\floatlabel}{Yfloat}%
6874 }% 7518 }%
6875 \fi 7519 \fi
@@ -7004,7 +7648,7 @@ where each line of input produces a line of output.}
7004 7648
7005% #1 is the control sequence we are passed; we expand into a conditional 7649% #1 is the control sequence we are passed; we expand into a conditional
7006% which is true if #1 represents a float ref. That is, the magic 7650% which is true if #1 represents a float ref. That is, the magic
7007% \thissection value which we \setref above. 7651% \lastsection value which we \setref above.
7008% 7652%
7009\def\iffloat#1{\expandafter\doiffloat#1==\finish} 7653\def\iffloat#1{\expandafter\doiffloat#1==\finish}
7010% 7654%
@@ -7065,39 +7709,871 @@ where each line of input produces a line of output.}
7065 \writeentry 7709 \writeentry
7066}} 7710}}
7067 7711
7712
7068\message{localization,} 7713\message{localization,}
7069% and i18n.
7070 7714
7071% @documentlanguage is usually given very early, just after 7715% @documentlanguage is usually given very early, just after
7072% @setfilename. If done too late, it may not override everything 7716% @setfilename. If done too late, it may not override everything
7073% properly. Single argument is the language abbreviation. 7717% properly. Single argument is the language (de) or locale (de_DE)
7074% It would be nice if we could set up a hyphenation file here. 7718% abbreviation. It would be nice if we could set up a hyphenation file.
7075% 7719%
7076\parseargdef\documentlanguage{% 7720{
7721 \catcode`\_ = \active
7722 \globaldefs=1
7723\parseargdef\documentlanguage{\begingroup
7724 \let_=\normalunderscore % normal _ character for filenames
7077 \tex % read txi-??.tex file in plain TeX. 7725 \tex % read txi-??.tex file in plain TeX.
7078 % Read the file if it exists. 7726 % Read the file by the name they passed if it exists.
7079 \openin 1 txi-#1.tex 7727 \openin 1 txi-#1.tex
7080 \ifeof 1 7728 \ifeof 1
7081 \errhelp = \nolanghelp 7729 \documentlanguagetrywithoutunderscore{#1_\finish}%
7082 \errmessage{Cannot read language file txi-#1.tex}%
7083 \else 7730 \else
7084 \input txi-#1.tex 7731 \input txi-#1.tex
7085 \fi 7732 \fi
7086 \closein 1 7733 \closein 1
7087 \endgroup 7734 \endgroup
7735\endgroup}
7736}
7737%
7738% If they passed de_DE, and txi-de_DE.tex doesn't exist,
7739% try txi-de.tex.
7740%
7741\def\documentlanguagetrywithoutunderscore#1_#2\finish{%
7742 \openin 1 txi-#1.tex
7743 \ifeof 1
7744 \errhelp = \nolanghelp
7745 \errmessage{Cannot read language file txi-#1.tex}%
7746 \else
7747 \input txi-#1.tex
7748 \fi
7749 \closein 1
7088} 7750}
7751%
7089\newhelp\nolanghelp{The given language definition file cannot be found or 7752\newhelp\nolanghelp{The given language definition file cannot be found or
7090is empty. Maybe you need to install it? In the current directory 7753is empty. Maybe you need to install it? In the current directory
7091should work if nowhere else does.} 7754should work if nowhere else does.}
7092 7755
7756% Set the catcode of characters 128 through 255 to the specified number.
7757%
7758\def\setnonasciicharscatcode#1{%
7759 \count255=128
7760 \loop\ifnum\count255<256
7761 \global\catcode\count255=#1\relax
7762 \advance\count255 by 1
7763 \repeat
7764}
7093 7765
7094% @documentencoding should change something in TeX eventually, most 7766\def\setnonasciicharscatcodenonglobal#1{%
7095% likely, but for now just recognize it. 7767 \count255=128
7096\let\documentencoding = \comment 7768 \loop\ifnum\count255<256
7769 \catcode\count255=#1\relax
7770 \advance\count255 by 1
7771 \repeat
7772}
7097 7773
7774% @documentencoding sets the definition of non-ASCII characters
7775% according to the specified encoding.
7776%
7777\parseargdef\documentencoding{%
7778 % Encoding being declared for the document.
7779 \def\declaredencoding{\csname #1.enc\endcsname}%
7780 %
7781 % Supported encodings: names converted to tokens in order to be able
7782 % to compare them with \ifx.
7783 \def\ascii{\csname US-ASCII.enc\endcsname}%
7784 \def\latnine{\csname ISO-8859-15.enc\endcsname}%
7785 \def\latone{\csname ISO-8859-1.enc\endcsname}%
7786 \def\lattwo{\csname ISO-8859-2.enc\endcsname}%
7787 \def\utfeight{\csname UTF-8.enc\endcsname}%
7788 %
7789 \ifx \declaredencoding \ascii
7790 \asciichardefs
7791 %
7792 \else \ifx \declaredencoding \lattwo
7793 \setnonasciicharscatcode\active
7794 \lattwochardefs
7795 %
7796 \else \ifx \declaredencoding \latone
7797 \setnonasciicharscatcode\active
7798 \latonechardefs
7799 %
7800 \else \ifx \declaredencoding \latnine
7801 \setnonasciicharscatcode\active
7802 \latninechardefs
7803 %
7804 \else \ifx \declaredencoding \utfeight
7805 \setnonasciicharscatcode\active
7806 \utfeightchardefs
7807 %
7808 \else
7809 \message{Unknown document encoding #1, ignoring.}%
7810 %
7811 \fi % utfeight
7812 \fi % latnine
7813 \fi % latone
7814 \fi % lattwo
7815 \fi % ascii
7816}
7817
7818% A message to be logged when using a character that isn't available
7819% the default font encoding (OT1).
7820%
7821\def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}}
7822
7823% Take account of \c (plain) vs. \, (Texinfo) difference.
7824\def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi}
7825
7826% First, make active non-ASCII characters in order for them to be
7827% correctly categorized when TeX reads the replacement text of
7828% macros containing the character definitions.
7829\setnonasciicharscatcode\active
7830%
7831% Latin1 (ISO-8859-1) character definitions.
7832\def\latonechardefs{%
7833 \gdef^^a0{~}
7834 \gdef^^a1{\exclamdown}
7835 \gdef^^a2{\missingcharmsg{CENT SIGN}}
7836 \gdef^^a3{{\pounds}}
7837 \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
7838 \gdef^^a5{\missingcharmsg{YEN SIGN}}
7839 \gdef^^a6{\missingcharmsg{BROKEN BAR}}
7840 \gdef^^a7{\S}
7841 \gdef^^a8{\"{}}
7842 \gdef^^a9{\copyright}
7843 \gdef^^aa{\ordf}
7844 \gdef^^ab{\missingcharmsg{LEFT-POINTING DOUBLE ANGLE QUOTATION MARK}}
7845 \gdef^^ac{$\lnot$}
7846 \gdef^^ad{\-}
7847 \gdef^^ae{\registeredsymbol}
7848 \gdef^^af{\={}}
7849 %
7850 \gdef^^b0{\textdegree}
7851 \gdef^^b1{$\pm$}
7852 \gdef^^b2{$^2$}
7853 \gdef^^b3{$^3$}
7854 \gdef^^b4{\'{}}
7855 \gdef^^b5{$\mu$}
7856 \gdef^^b6{\P}
7857 %
7858 \gdef^^b7{$^.$}
7859 \gdef^^b8{\cedilla\ }
7860 \gdef^^b9{$^1$}
7861 \gdef^^ba{\ordm}
7862 %
7863 \gdef^^bb{\missingcharmsg{RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK}}
7864 \gdef^^bc{$1\over4$}
7865 \gdef^^bd{$1\over2$}
7866 \gdef^^be{$3\over4$}
7867 \gdef^^bf{\questiondown}
7868 %
7869 \gdef^^c0{\`A}
7870 \gdef^^c1{\'A}
7871 \gdef^^c2{\^A}
7872 \gdef^^c3{\~A}
7873 \gdef^^c4{\"A}
7874 \gdef^^c5{\ringaccent A}
7875 \gdef^^c6{\AE}
7876 \gdef^^c7{\cedilla C}
7877 \gdef^^c8{\`E}
7878 \gdef^^c9{\'E}
7879 \gdef^^ca{\^E}
7880 \gdef^^cb{\"E}
7881 \gdef^^cc{\`I}
7882 \gdef^^cd{\'I}
7883 \gdef^^ce{\^I}
7884 \gdef^^cf{\"I}
7885 %
7886 \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER ETH}}
7887 \gdef^^d1{\~N}
7888 \gdef^^d2{\`O}
7889 \gdef^^d3{\'O}
7890 \gdef^^d4{\^O}
7891 \gdef^^d5{\~O}
7892 \gdef^^d6{\"O}
7893 \gdef^^d7{$\times$}
7894 \gdef^^d8{\O}
7895 \gdef^^d9{\`U}
7896 \gdef^^da{\'U}
7897 \gdef^^db{\^U}
7898 \gdef^^dc{\"U}
7899 \gdef^^dd{\'Y}
7900 \gdef^^de{\missingcharmsg{LATIN CAPITAL LETTER THORN}}
7901 \gdef^^df{\ss}
7902 %
7903 \gdef^^e0{\`a}
7904 \gdef^^e1{\'a}
7905 \gdef^^e2{\^a}
7906 \gdef^^e3{\~a}
7907 \gdef^^e4{\"a}
7908 \gdef^^e5{\ringaccent a}
7909 \gdef^^e6{\ae}
7910 \gdef^^e7{\cedilla c}
7911 \gdef^^e8{\`e}
7912 \gdef^^e9{\'e}
7913 \gdef^^ea{\^e}
7914 \gdef^^eb{\"e}
7915 \gdef^^ec{\`{\dotless i}}
7916 \gdef^^ed{\'{\dotless i}}
7917 \gdef^^ee{\^{\dotless i}}
7918 \gdef^^ef{\"{\dotless i}}
7919 %
7920 \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER ETH}}
7921 \gdef^^f1{\~n}
7922 \gdef^^f2{\`o}
7923 \gdef^^f3{\'o}
7924 \gdef^^f4{\^o}
7925 \gdef^^f5{\~o}
7926 \gdef^^f6{\"o}
7927 \gdef^^f7{$\div$}
7928 \gdef^^f8{\o}
7929 \gdef^^f9{\`u}
7930 \gdef^^fa{\'u}
7931 \gdef^^fb{\^u}
7932 \gdef^^fc{\"u}
7933 \gdef^^fd{\'y}
7934 \gdef^^fe{\missingcharmsg{LATIN SMALL LETTER THORN}}
7935 \gdef^^ff{\"y}
7936}
7937
7938% Latin9 (ISO-8859-15) encoding character definitions.
7939\def\latninechardefs{%
7940 % Encoding is almost identical to Latin1.
7941 \latonechardefs
7942 %
7943 \gdef^^a4{\euro}
7944 \gdef^^a6{\v S}
7945 \gdef^^a8{\v s}
7946 \gdef^^b4{\v Z}
7947 \gdef^^b8{\v z}
7948 \gdef^^bc{\OE}
7949 \gdef^^bd{\oe}
7950 \gdef^^be{\"Y}
7951}
7952
7953% Latin2 (ISO-8859-2) character definitions.
7954\def\lattwochardefs{%
7955 \gdef^^a0{~}
7956 \gdef^^a1{\missingcharmsg{LATIN CAPITAL LETTER A WITH OGONEK}}
7957 \gdef^^a2{\u{}}
7958 \gdef^^a3{\L}
7959 \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
7960 \gdef^^a5{\v L}
7961 \gdef^^a6{\'S}
7962 \gdef^^a7{\S}
7963 \gdef^^a8{\"{}}
7964 \gdef^^a9{\v S}
7965 \gdef^^aa{\cedilla S}
7966 \gdef^^ab{\v T}
7967 \gdef^^ac{\'Z}
7968 \gdef^^ad{\-}
7969 \gdef^^ae{\v Z}
7970 \gdef^^af{\dotaccent Z}
7971 %
7972 \gdef^^b0{\textdegree}
7973 \gdef^^b1{\missingcharmsg{LATIN SMALL LETTER A WITH OGONEK}}
7974 \gdef^^b2{\missingcharmsg{OGONEK}}
7975 \gdef^^b3{\l}
7976 \gdef^^b4{\'{}}
7977 \gdef^^b5{\v l}
7978 \gdef^^b6{\'s}
7979 \gdef^^b7{\v{}}
7980 \gdef^^b8{\cedilla\ }
7981 \gdef^^b9{\v s}
7982 \gdef^^ba{\cedilla s}
7983 \gdef^^bb{\v t}
7984 \gdef^^bc{\'z}
7985 \gdef^^bd{\H{}}
7986 \gdef^^be{\v z}
7987 \gdef^^bf{\dotaccent z}
7988 %
7989 \gdef^^c0{\'R}
7990 \gdef^^c1{\'A}
7991 \gdef^^c2{\^A}
7992 \gdef^^c3{\u A}
7993 \gdef^^c4{\"A}
7994 \gdef^^c5{\'L}
7995 \gdef^^c6{\'C}
7996 \gdef^^c7{\cedilla C}
7997 \gdef^^c8{\v C}
7998 \gdef^^c9{\'E}
7999 \gdef^^ca{\missingcharmsg{LATIN CAPITAL LETTER E WITH OGONEK}}
8000 \gdef^^cb{\"E}
8001 \gdef^^cc{\v E}
8002 \gdef^^cd{\'I}
8003 \gdef^^ce{\^I}
8004 \gdef^^cf{\v D}
8005 %
8006 \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER D WITH STROKE}}
8007 \gdef^^d1{\'N}
8008 \gdef^^d2{\v N}
8009 \gdef^^d3{\'O}
8010 \gdef^^d4{\^O}
8011 \gdef^^d5{\H O}
8012 \gdef^^d6{\"O}
8013 \gdef^^d7{$\times$}
8014 \gdef^^d8{\v R}
8015 \gdef^^d9{\ringaccent U}
8016 \gdef^^da{\'U}
8017 \gdef^^db{\H U}
8018 \gdef^^dc{\"U}
8019 \gdef^^dd{\'Y}
8020 \gdef^^de{\cedilla T}
8021 \gdef^^df{\ss}
8022 %
8023 \gdef^^e0{\'r}
8024 \gdef^^e1{\'a}
8025 \gdef^^e2{\^a}
8026 \gdef^^e3{\u a}
8027 \gdef^^e4{\"a}
8028 \gdef^^e5{\'l}
8029 \gdef^^e6{\'c}
8030 \gdef^^e7{\cedilla c}
8031 \gdef^^e8{\v c}
8032 \gdef^^e9{\'e}
8033 \gdef^^ea{\missingcharmsg{LATIN SMALL LETTER E WITH OGONEK}}
8034 \gdef^^eb{\"e}
8035 \gdef^^ec{\v e}
8036 \gdef^^ed{\'\i}
8037 \gdef^^ee{\^\i}
8038 \gdef^^ef{\v d}
8039 %
8040 \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER D WITH STROKE}}
8041 \gdef^^f1{\'n}
8042 \gdef^^f2{\v n}
8043 \gdef^^f3{\'o}
8044 \gdef^^f4{\^o}
8045 \gdef^^f5{\H o}
8046 \gdef^^f6{\"o}
8047 \gdef^^f7{$\div$}
8048 \gdef^^f8{\v r}
8049 \gdef^^f9{\ringaccent u}
8050 \gdef^^fa{\'u}
8051 \gdef^^fb{\H u}
8052 \gdef^^fc{\"u}
8053 \gdef^^fd{\'y}
8054 \gdef^^fe{\cedilla t}
8055 \gdef^^ff{\dotaccent{}}
8056}
8057
8058% UTF-8 character definitions.
8059%
8060% This code to support UTF-8 is based on LaTeX's utf8.def, with some
8061% changes for Texinfo conventions. It is included here under the GPL by
8062% permission from Frank Mittelbach and the LaTeX team.
8063%
8064\newcount\countUTFx
8065\newcount\countUTFy
8066\newcount\countUTFz
7098 8067
7099% Page size parameters. 8068\gdef\UTFviiiTwoOctets#1#2{\expandafter
8069 \UTFviiiDefined\csname u8:#1\string #2\endcsname}
8070%
8071\gdef\UTFviiiThreeOctets#1#2#3{\expandafter
8072 \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname}
7100% 8073%
8074\gdef\UTFviiiFourOctets#1#2#3#4{\expandafter
8075 \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname}
8076
8077\gdef\UTFviiiDefined#1{%
8078 \ifx #1\relax
8079 \message{\linenumber Unicode char \string #1 not defined for Texinfo}%
8080 \else
8081 \expandafter #1%
8082 \fi
8083}
8084
8085\begingroup
8086 \catcode`\~13
8087 \catcode`\"12
8088
8089 \def\UTFviiiLoop{%
8090 \global\catcode\countUTFx\active
8091 \uccode`\~\countUTFx
8092 \uppercase\expandafter{\UTFviiiTmp}%
8093 \advance\countUTFx by 1
8094 \ifnum\countUTFx < \countUTFy
8095 \expandafter\UTFviiiLoop
8096 \fi}
8097
8098 \countUTFx = "C2
8099 \countUTFy = "E0
8100 \def\UTFviiiTmp{%
8101 \xdef~{\noexpand\UTFviiiTwoOctets\string~}}
8102 \UTFviiiLoop
8103
8104 \countUTFx = "E0
8105 \countUTFy = "F0
8106 \def\UTFviiiTmp{%
8107 \xdef~{\noexpand\UTFviiiThreeOctets\string~}}
8108 \UTFviiiLoop
8109
8110 \countUTFx = "F0
8111 \countUTFy = "F4
8112 \def\UTFviiiTmp{%
8113 \xdef~{\noexpand\UTFviiiFourOctets\string~}}
8114 \UTFviiiLoop
8115\endgroup
8116
8117\begingroup
8118 \catcode`\"=12
8119 \catcode`\<=12
8120 \catcode`\.=12
8121 \catcode`\,=12
8122 \catcode`\;=12
8123 \catcode`\!=12
8124 \catcode`\~=13
8125
8126 \gdef\DeclareUnicodeCharacter#1#2{%
8127 \countUTFz = "#1\relax
8128 \wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
8129 \begingroup
8130 \parseXMLCharref
8131 \def\UTFviiiTwoOctets##1##2{%
8132 \csname u8:##1\string ##2\endcsname}%
8133 \def\UTFviiiThreeOctets##1##2##3{%
8134 \csname u8:##1\string ##2\string ##3\endcsname}%
8135 \def\UTFviiiFourOctets##1##2##3##4{%
8136 \csname u8:##1\string ##2\string ##3\string ##4\endcsname}%
8137 \expandafter\expandafter\expandafter\expandafter
8138 \expandafter\expandafter\expandafter
8139 \gdef\UTFviiiTmp{#2}%
8140 \endgroup}
8141
8142 \gdef\parseXMLCharref{%
8143 \ifnum\countUTFz < "A0\relax
8144 \errhelp = \EMsimple
8145 \errmessage{Cannot define Unicode char value < 00A0}%
8146 \else\ifnum\countUTFz < "800\relax
8147 \parseUTFviiiA,%
8148 \parseUTFviiiB C\UTFviiiTwoOctets.,%
8149 \else\ifnum\countUTFz < "10000\relax
8150 \parseUTFviiiA;%
8151 \parseUTFviiiA,%
8152 \parseUTFviiiB E\UTFviiiThreeOctets.{,;}%
8153 \else
8154 \parseUTFviiiA;%
8155 \parseUTFviiiA,%
8156 \parseUTFviiiA!%
8157 \parseUTFviiiB F\UTFviiiFourOctets.{!,;}%
8158 \fi\fi\fi
8159 }
8160
8161 \gdef\parseUTFviiiA#1{%
8162 \countUTFx = \countUTFz
8163 \divide\countUTFz by 64
8164 \countUTFy = \countUTFz
8165 \multiply\countUTFz by 64
8166 \advance\countUTFx by -\countUTFz
8167 \advance\countUTFx by 128
8168 \uccode `#1\countUTFx
8169 \countUTFz = \countUTFy}
8170
8171 \gdef\parseUTFviiiB#1#2#3#4{%
8172 \advance\countUTFz by "#10\relax
8173 \uccode `#3\countUTFz
8174 \uppercase{\gdef\UTFviiiTmp{#2#3#4}}}
8175\endgroup
8176
8177\def\utfeightchardefs{%
8178 \DeclareUnicodeCharacter{00A0}{\tie}
8179 \DeclareUnicodeCharacter{00A1}{\exclamdown}
8180 \DeclareUnicodeCharacter{00A3}{\pounds}
8181 \DeclareUnicodeCharacter{00A8}{\"{ }}
8182 \DeclareUnicodeCharacter{00A9}{\copyright}
8183 \DeclareUnicodeCharacter{00AA}{\ordf}
8184 \DeclareUnicodeCharacter{00AB}{\guillemetleft}
8185 \DeclareUnicodeCharacter{00AD}{\-}
8186 \DeclareUnicodeCharacter{00AE}{\registeredsymbol}
8187 \DeclareUnicodeCharacter{00AF}{\={ }}
8188
8189 \DeclareUnicodeCharacter{00B0}{\ringaccent{ }}
8190 \DeclareUnicodeCharacter{00B4}{\'{ }}
8191 \DeclareUnicodeCharacter{00B8}{\cedilla{ }}
8192 \DeclareUnicodeCharacter{00BA}{\ordm}
8193 \DeclareUnicodeCharacter{00BB}{\guillemetright}
8194 \DeclareUnicodeCharacter{00BF}{\questiondown}
8195
8196 \DeclareUnicodeCharacter{00C0}{\`A}
8197 \DeclareUnicodeCharacter{00C1}{\'A}
8198 \DeclareUnicodeCharacter{00C2}{\^A}
8199 \DeclareUnicodeCharacter{00C3}{\~A}
8200 \DeclareUnicodeCharacter{00C4}{\"A}
8201 \DeclareUnicodeCharacter{00C5}{\AA}
8202 \DeclareUnicodeCharacter{00C6}{\AE}
8203 \DeclareUnicodeCharacter{00C7}{\cedilla{C}}
8204 \DeclareUnicodeCharacter{00C8}{\`E}
8205 \DeclareUnicodeCharacter{00C9}{\'E}
8206 \DeclareUnicodeCharacter{00CA}{\^E}
8207 \DeclareUnicodeCharacter{00CB}{\"E}
8208 \DeclareUnicodeCharacter{00CC}{\`I}
8209 \DeclareUnicodeCharacter{00CD}{\'I}
8210 \DeclareUnicodeCharacter{00CE}{\^I}
8211 \DeclareUnicodeCharacter{00CF}{\"I}
8212
8213 \DeclareUnicodeCharacter{00D1}{\~N}
8214 \DeclareUnicodeCharacter{00D2}{\`O}
8215 \DeclareUnicodeCharacter{00D3}{\'O}
8216 \DeclareUnicodeCharacter{00D4}{\^O}
8217 \DeclareUnicodeCharacter{00D5}{\~O}
8218 \DeclareUnicodeCharacter{00D6}{\"O}
8219 \DeclareUnicodeCharacter{00D8}{\O}
8220 \DeclareUnicodeCharacter{00D9}{\`U}
8221 \DeclareUnicodeCharacter{00DA}{\'U}
8222 \DeclareUnicodeCharacter{00DB}{\^U}
8223 \DeclareUnicodeCharacter{00DC}{\"U}
8224 \DeclareUnicodeCharacter{00DD}{\'Y}
8225 \DeclareUnicodeCharacter{00DF}{\ss}
8226
8227 \DeclareUnicodeCharacter{00E0}{\`a}
8228 \DeclareUnicodeCharacter{00E1}{\'a}
8229 \DeclareUnicodeCharacter{00E2}{\^a}
8230 \DeclareUnicodeCharacter{00E3}{\~a}
8231 \DeclareUnicodeCharacter{00E4}{\"a}
8232 \DeclareUnicodeCharacter{00E5}{\aa}
8233 \DeclareUnicodeCharacter{00E6}{\ae}
8234 \DeclareUnicodeCharacter{00E7}{\cedilla{c}}
8235 \DeclareUnicodeCharacter{00E8}{\`e}
8236 \DeclareUnicodeCharacter{00E9}{\'e}
8237 \DeclareUnicodeCharacter{00EA}{\^e}
8238 \DeclareUnicodeCharacter{00EB}{\"e}
8239 \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}}
8240 \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}}
8241 \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}
8242 \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}
8243
8244 \DeclareUnicodeCharacter{00F1}{\~n}
8245 \DeclareUnicodeCharacter{00F2}{\`o}
8246 \DeclareUnicodeCharacter{00F3}{\'o}
8247 \DeclareUnicodeCharacter{00F4}{\^o}
8248 \DeclareUnicodeCharacter{00F5}{\~o}
8249 \DeclareUnicodeCharacter{00F6}{\"o}
8250 \DeclareUnicodeCharacter{00F8}{\o}
8251 \DeclareUnicodeCharacter{00F9}{\`u}
8252 \DeclareUnicodeCharacter{00FA}{\'u}
8253 \DeclareUnicodeCharacter{00FB}{\^u}
8254 \DeclareUnicodeCharacter{00FC}{\"u}
8255 \DeclareUnicodeCharacter{00FD}{\'y}
8256 \DeclareUnicodeCharacter{00FF}{\"y}
8257
8258 \DeclareUnicodeCharacter{0100}{\=A}
8259 \DeclareUnicodeCharacter{0101}{\=a}
8260 \DeclareUnicodeCharacter{0102}{\u{A}}
8261 \DeclareUnicodeCharacter{0103}{\u{a}}
8262 \DeclareUnicodeCharacter{0106}{\'C}
8263 \DeclareUnicodeCharacter{0107}{\'c}
8264 \DeclareUnicodeCharacter{0108}{\^C}
8265 \DeclareUnicodeCharacter{0109}{\^c}
8266 \DeclareUnicodeCharacter{010A}{\dotaccent{C}}
8267 \DeclareUnicodeCharacter{010B}{\dotaccent{c}}
8268 \DeclareUnicodeCharacter{010C}{\v{C}}
8269 \DeclareUnicodeCharacter{010D}{\v{c}}
8270 \DeclareUnicodeCharacter{010E}{\v{D}}
8271
8272 \DeclareUnicodeCharacter{0112}{\=E}
8273 \DeclareUnicodeCharacter{0113}{\=e}
8274 \DeclareUnicodeCharacter{0114}{\u{E}}
8275 \DeclareUnicodeCharacter{0115}{\u{e}}
8276 \DeclareUnicodeCharacter{0116}{\dotaccent{E}}
8277 \DeclareUnicodeCharacter{0117}{\dotaccent{e}}
8278 \DeclareUnicodeCharacter{011A}{\v{E}}
8279 \DeclareUnicodeCharacter{011B}{\v{e}}
8280 \DeclareUnicodeCharacter{011C}{\^G}
8281 \DeclareUnicodeCharacter{011D}{\^g}
8282 \DeclareUnicodeCharacter{011E}{\u{G}}
8283 \DeclareUnicodeCharacter{011F}{\u{g}}
8284
8285 \DeclareUnicodeCharacter{0120}{\dotaccent{G}}
8286 \DeclareUnicodeCharacter{0121}{\dotaccent{g}}
8287 \DeclareUnicodeCharacter{0124}{\^H}
8288 \DeclareUnicodeCharacter{0125}{\^h}
8289 \DeclareUnicodeCharacter{0128}{\~I}
8290 \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}
8291 \DeclareUnicodeCharacter{012A}{\=I}
8292 \DeclareUnicodeCharacter{012B}{\={\dotless{i}}}
8293 \DeclareUnicodeCharacter{012C}{\u{I}}
8294 \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}
8295
8296 \DeclareUnicodeCharacter{0130}{\dotaccent{I}}
8297 \DeclareUnicodeCharacter{0131}{\dotless{i}}
8298 \DeclareUnicodeCharacter{0132}{IJ}
8299 \DeclareUnicodeCharacter{0133}{ij}
8300 \DeclareUnicodeCharacter{0134}{\^J}
8301 \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}
8302 \DeclareUnicodeCharacter{0139}{\'L}
8303 \DeclareUnicodeCharacter{013A}{\'l}
8304
8305 \DeclareUnicodeCharacter{0141}{\L}
8306 \DeclareUnicodeCharacter{0142}{\l}
8307 \DeclareUnicodeCharacter{0143}{\'N}
8308 \DeclareUnicodeCharacter{0144}{\'n}
8309 \DeclareUnicodeCharacter{0147}{\v{N}}
8310 \DeclareUnicodeCharacter{0148}{\v{n}}
8311 \DeclareUnicodeCharacter{014C}{\=O}
8312 \DeclareUnicodeCharacter{014D}{\=o}
8313 \DeclareUnicodeCharacter{014E}{\u{O}}
8314 \DeclareUnicodeCharacter{014F}{\u{o}}
8315
8316 \DeclareUnicodeCharacter{0150}{\H{O}}
8317 \DeclareUnicodeCharacter{0151}{\H{o}}
8318 \DeclareUnicodeCharacter{0152}{\OE}
8319 \DeclareUnicodeCharacter{0153}{\oe}
8320 \DeclareUnicodeCharacter{0154}{\'R}
8321 \DeclareUnicodeCharacter{0155}{\'r}
8322 \DeclareUnicodeCharacter{0158}{\v{R}}
8323 \DeclareUnicodeCharacter{0159}{\v{r}}
8324 \DeclareUnicodeCharacter{015A}{\'S}
8325 \DeclareUnicodeCharacter{015B}{\'s}
8326 \DeclareUnicodeCharacter{015C}{\^S}
8327 \DeclareUnicodeCharacter{015D}{\^s}
8328 \DeclareUnicodeCharacter{015E}{\cedilla{S}}
8329 \DeclareUnicodeCharacter{015F}{\cedilla{s}}
8330
8331 \DeclareUnicodeCharacter{0160}{\v{S}}
8332 \DeclareUnicodeCharacter{0161}{\v{s}}
8333 \DeclareUnicodeCharacter{0162}{\cedilla{t}}
8334 \DeclareUnicodeCharacter{0163}{\cedilla{T}}
8335 \DeclareUnicodeCharacter{0164}{\v{T}}
8336
8337 \DeclareUnicodeCharacter{0168}{\~U}
8338 \DeclareUnicodeCharacter{0169}{\~u}
8339 \DeclareUnicodeCharacter{016A}{\=U}
8340 \DeclareUnicodeCharacter{016B}{\=u}
8341 \DeclareUnicodeCharacter{016C}{\u{U}}
8342 \DeclareUnicodeCharacter{016D}{\u{u}}
8343 \DeclareUnicodeCharacter{016E}{\ringaccent{U}}
8344 \DeclareUnicodeCharacter{016F}{\ringaccent{u}}
8345
8346 \DeclareUnicodeCharacter{0170}{\H{U}}
8347 \DeclareUnicodeCharacter{0171}{\H{u}}
8348 \DeclareUnicodeCharacter{0174}{\^W}
8349 \DeclareUnicodeCharacter{0175}{\^w}
8350 \DeclareUnicodeCharacter{0176}{\^Y}
8351 \DeclareUnicodeCharacter{0177}{\^y}
8352 \DeclareUnicodeCharacter{0178}{\"Y}
8353 \DeclareUnicodeCharacter{0179}{\'Z}
8354 \DeclareUnicodeCharacter{017A}{\'z}
8355 \DeclareUnicodeCharacter{017B}{\dotaccent{Z}}
8356 \DeclareUnicodeCharacter{017C}{\dotaccent{z}}
8357 \DeclareUnicodeCharacter{017D}{\v{Z}}
8358 \DeclareUnicodeCharacter{017E}{\v{z}}
8359
8360 \DeclareUnicodeCharacter{01C4}{D\v{Z}}
8361 \DeclareUnicodeCharacter{01C5}{D\v{z}}
8362 \DeclareUnicodeCharacter{01C6}{d\v{z}}
8363 \DeclareUnicodeCharacter{01C7}{LJ}
8364 \DeclareUnicodeCharacter{01C8}{Lj}
8365 \DeclareUnicodeCharacter{01C9}{lj}
8366 \DeclareUnicodeCharacter{01CA}{NJ}
8367 \DeclareUnicodeCharacter{01CB}{Nj}
8368 \DeclareUnicodeCharacter{01CC}{nj}
8369 \DeclareUnicodeCharacter{01CD}{\v{A}}
8370 \DeclareUnicodeCharacter{01CE}{\v{a}}
8371 \DeclareUnicodeCharacter{01CF}{\v{I}}
8372
8373 \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}}
8374 \DeclareUnicodeCharacter{01D1}{\v{O}}
8375 \DeclareUnicodeCharacter{01D2}{\v{o}}
8376 \DeclareUnicodeCharacter{01D3}{\v{U}}
8377 \DeclareUnicodeCharacter{01D4}{\v{u}}
8378
8379 \DeclareUnicodeCharacter{01E2}{\={\AE}}
8380 \DeclareUnicodeCharacter{01E3}{\={\ae}}
8381 \DeclareUnicodeCharacter{01E6}{\v{G}}
8382 \DeclareUnicodeCharacter{01E7}{\v{g}}
8383 \DeclareUnicodeCharacter{01E8}{\v{K}}
8384 \DeclareUnicodeCharacter{01E9}{\v{k}}
8385
8386 \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}}
8387 \DeclareUnicodeCharacter{01F1}{DZ}
8388 \DeclareUnicodeCharacter{01F2}{Dz}
8389 \DeclareUnicodeCharacter{01F3}{dz}
8390 \DeclareUnicodeCharacter{01F4}{\'G}
8391 \DeclareUnicodeCharacter{01F5}{\'g}
8392 \DeclareUnicodeCharacter{01F8}{\`N}
8393 \DeclareUnicodeCharacter{01F9}{\`n}
8394 \DeclareUnicodeCharacter{01FC}{\'{\AE}}
8395 \DeclareUnicodeCharacter{01FD}{\'{\ae}}
8396 \DeclareUnicodeCharacter{01FE}{\'{\O}}
8397 \DeclareUnicodeCharacter{01FF}{\'{\o}}
8398
8399 \DeclareUnicodeCharacter{021E}{\v{H}}
8400 \DeclareUnicodeCharacter{021F}{\v{h}}
8401
8402 \DeclareUnicodeCharacter{0226}{\dotaccent{A}}
8403 \DeclareUnicodeCharacter{0227}{\dotaccent{a}}
8404 \DeclareUnicodeCharacter{0228}{\cedilla{E}}
8405 \DeclareUnicodeCharacter{0229}{\cedilla{e}}
8406 \DeclareUnicodeCharacter{022E}{\dotaccent{O}}
8407 \DeclareUnicodeCharacter{022F}{\dotaccent{o}}
8408
8409 \DeclareUnicodeCharacter{0232}{\=Y}
8410 \DeclareUnicodeCharacter{0233}{\=y}
8411 \DeclareUnicodeCharacter{0237}{\dotless{j}}
8412
8413 \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}
8414 \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}
8415 \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}
8416 \DeclareUnicodeCharacter{1E05}{\udotaccent{b}}
8417 \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}}
8418 \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}}
8419 \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}}
8420 \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}}
8421 \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}}
8422 \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}}
8423 \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}}
8424 \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}}
8425
8426 \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}}
8427 \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}}
8428
8429 \DeclareUnicodeCharacter{1E20}{\=G}
8430 \DeclareUnicodeCharacter{1E21}{\=g}
8431 \DeclareUnicodeCharacter{1E22}{\dotaccent{H}}
8432 \DeclareUnicodeCharacter{1E23}{\dotaccent{h}}
8433 \DeclareUnicodeCharacter{1E24}{\udotaccent{H}}
8434 \DeclareUnicodeCharacter{1E25}{\udotaccent{h}}
8435 \DeclareUnicodeCharacter{1E26}{\"H}
8436 \DeclareUnicodeCharacter{1E27}{\"h}
8437
8438 \DeclareUnicodeCharacter{1E30}{\'K}
8439 \DeclareUnicodeCharacter{1E31}{\'k}
8440 \DeclareUnicodeCharacter{1E32}{\udotaccent{K}}
8441 \DeclareUnicodeCharacter{1E33}{\udotaccent{k}}
8442 \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}}
8443 \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}}
8444 \DeclareUnicodeCharacter{1E36}{\udotaccent{L}}
8445 \DeclareUnicodeCharacter{1E37}{\udotaccent{l}}
8446 \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}}
8447 \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}}
8448 \DeclareUnicodeCharacter{1E3E}{\'M}
8449 \DeclareUnicodeCharacter{1E3F}{\'m}
8450
8451 \DeclareUnicodeCharacter{1E40}{\dotaccent{M}}
8452 \DeclareUnicodeCharacter{1E41}{\dotaccent{m}}
8453 \DeclareUnicodeCharacter{1E42}{\udotaccent{M}}
8454 \DeclareUnicodeCharacter{1E43}{\udotaccent{m}}
8455 \DeclareUnicodeCharacter{1E44}{\dotaccent{N}}
8456 \DeclareUnicodeCharacter{1E45}{\dotaccent{n}}
8457 \DeclareUnicodeCharacter{1E46}{\udotaccent{N}}
8458 \DeclareUnicodeCharacter{1E47}{\udotaccent{n}}
8459 \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}}
8460 \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}}
8461
8462 \DeclareUnicodeCharacter{1E54}{\'P}
8463 \DeclareUnicodeCharacter{1E55}{\'p}
8464 \DeclareUnicodeCharacter{1E56}{\dotaccent{P}}
8465 \DeclareUnicodeCharacter{1E57}{\dotaccent{p}}
8466 \DeclareUnicodeCharacter{1E58}{\dotaccent{R}}
8467 \DeclareUnicodeCharacter{1E59}{\dotaccent{r}}
8468 \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}}
8469 \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}}
8470 \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}}
8471 \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}}
8472
8473 \DeclareUnicodeCharacter{1E60}{\dotaccent{S}}
8474 \DeclareUnicodeCharacter{1E61}{\dotaccent{s}}
8475 \DeclareUnicodeCharacter{1E62}{\udotaccent{S}}
8476 \DeclareUnicodeCharacter{1E63}{\udotaccent{s}}
8477 \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}}
8478 \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}}
8479 \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}}
8480 \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}}
8481 \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}}
8482 \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}}
8483
8484 \DeclareUnicodeCharacter{1E7C}{\~V}
8485 \DeclareUnicodeCharacter{1E7D}{\~v}
8486 \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}}
8487 \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}}
8488
8489 \DeclareUnicodeCharacter{1E80}{\`W}
8490 \DeclareUnicodeCharacter{1E81}{\`w}
8491 \DeclareUnicodeCharacter{1E82}{\'W}
8492 \DeclareUnicodeCharacter{1E83}{\'w}
8493 \DeclareUnicodeCharacter{1E84}{\"W}
8494 \DeclareUnicodeCharacter{1E85}{\"w}
8495 \DeclareUnicodeCharacter{1E86}{\dotaccent{W}}
8496 \DeclareUnicodeCharacter{1E87}{\dotaccent{w}}
8497 \DeclareUnicodeCharacter{1E88}{\udotaccent{W}}
8498 \DeclareUnicodeCharacter{1E89}{\udotaccent{w}}
8499 \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}}
8500 \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}}
8501 \DeclareUnicodeCharacter{1E8C}{\"X}
8502 \DeclareUnicodeCharacter{1E8D}{\"x}
8503 \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}}
8504 \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}}
8505
8506 \DeclareUnicodeCharacter{1E90}{\^Z}
8507 \DeclareUnicodeCharacter{1E91}{\^z}
8508 \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}}
8509 \DeclareUnicodeCharacter{1E93}{\udotaccent{z}}
8510 \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}}
8511 \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}}
8512 \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}}
8513 \DeclareUnicodeCharacter{1E97}{\"t}
8514 \DeclareUnicodeCharacter{1E98}{\ringaccent{w}}
8515 \DeclareUnicodeCharacter{1E99}{\ringaccent{y}}
8516
8517 \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}}
8518 \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}}
8519
8520 \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}}
8521 \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}}
8522 \DeclareUnicodeCharacter{1EBC}{\~E}
8523 \DeclareUnicodeCharacter{1EBD}{\~e}
8524
8525 \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}}
8526 \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}}
8527 \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}}
8528 \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}}
8529
8530 \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}}
8531 \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}}
8532
8533 \DeclareUnicodeCharacter{1EF2}{\`Y}
8534 \DeclareUnicodeCharacter{1EF3}{\`y}
8535 \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}}
8536
8537 \DeclareUnicodeCharacter{1EF8}{\~Y}
8538 \DeclareUnicodeCharacter{1EF9}{\~y}
8539
8540 \DeclareUnicodeCharacter{2013}{--}
8541 \DeclareUnicodeCharacter{2014}{---}
8542 \DeclareUnicodeCharacter{2018}{\quoteleft}
8543 \DeclareUnicodeCharacter{2019}{\quoteright}
8544 \DeclareUnicodeCharacter{201A}{\quotesinglbase}
8545 \DeclareUnicodeCharacter{201C}{\quotedblleft}
8546 \DeclareUnicodeCharacter{201D}{\quotedblright}
8547 \DeclareUnicodeCharacter{201E}{\quotedblbase}
8548 \DeclareUnicodeCharacter{2022}{\bullet}
8549 \DeclareUnicodeCharacter{2026}{\dots}
8550 \DeclareUnicodeCharacter{2039}{\guilsinglleft}
8551 \DeclareUnicodeCharacter{203A}{\guilsinglright}
8552 \DeclareUnicodeCharacter{20AC}{\euro}
8553
8554 \DeclareUnicodeCharacter{2192}{\expansion}
8555 \DeclareUnicodeCharacter{21D2}{\result}
8556
8557 \DeclareUnicodeCharacter{2212}{\minus}
8558 \DeclareUnicodeCharacter{2217}{\point}
8559 \DeclareUnicodeCharacter{2261}{\equiv}
8560}% end of \utfeightchardefs
8561
8562
8563% US-ASCII character definitions.
8564\def\asciichardefs{% nothing need be done
8565 \relax
8566}
8567
8568% Make non-ASCII characters printable again for compatibility with
8569% existing Texinfo documents that may use them, even without declaring a
8570% document encoding.
8571%
8572\setnonasciicharscatcode \other
8573
8574
8575\message{formatting,}
8576
7101\newdimen\defaultparindent \defaultparindent = 15pt 8577\newdimen\defaultparindent \defaultparindent = 15pt
7102 8578
7103\chapheadingskip = 15pt plus 4pt minus 2pt 8579\chapheadingskip = 15pt plus 4pt minus 2pt
@@ -7110,7 +8586,7 @@ should work if nowhere else does.}
7110% Don't be so finicky about underfull hboxes, either. 8586% Don't be so finicky about underfull hboxes, either.
7111\hbadness = 2000 8587\hbadness = 2000
7112 8588
7113% Following George Bush, just get rid of widows and orphans. 8589% Following George Bush, get rid of widows and orphans.
7114\widowpenalty=10000 8590\widowpenalty=10000
7115\clubpenalty=10000 8591\clubpenalty=10000
7116 8592
@@ -7157,6 +8633,10 @@ should work if nowhere else does.}
7157 \ifpdf 8633 \ifpdf
7158 \pdfpageheight #7\relax 8634 \pdfpageheight #7\relax
7159 \pdfpagewidth #8\relax 8635 \pdfpagewidth #8\relax
8636 % if we don't reset these, they will remain at "1 true in" of
8637 % whatever layout pdftex was dumped with.
8638 \pdfhorigin = 1 true in
8639 \pdfvorigin = 1 true in
7160 \fi 8640 \fi
7161 % 8641 %
7162 \setleading{\textleading} 8642 \setleading{\textleading}
@@ -7171,7 +8651,7 @@ should work if nowhere else does.}
7171 \textleading = 13.2pt 8651 \textleading = 13.2pt
7172 % 8652 %
7173 % If page is nothing but text, make it come out even. 8653 % If page is nothing but text, make it come out even.
7174 \internalpagesizes{46\baselineskip}{6in}% 8654 \internalpagesizes{607.2pt}{6in}% that's 46 lines
7175 {\voffset}{.25in}% 8655 {\voffset}{.25in}%
7176 {\bindingoffset}{36pt}% 8656 {\bindingoffset}{36pt}%
7177 {11in}{8.5in}% 8657 {11in}{8.5in}%
@@ -7183,7 +8663,7 @@ should work if nowhere else does.}
7183 \textleading = 12pt 8663 \textleading = 12pt
7184 % 8664 %
7185 \internalpagesizes{7.5in}{5in}% 8665 \internalpagesizes{7.5in}{5in}%
7186 {\voffset}{.25in}% 8666 {-.2in}{0in}%
7187 {\bindingoffset}{16pt}% 8667 {\bindingoffset}{16pt}%
7188 {9.25in}{7in}% 8668 {9.25in}{7in}%
7189 % 8669 %
@@ -7227,7 +8707,7 @@ should work if nowhere else does.}
7227 % \global\normaloffset = -6mm 8707 % \global\normaloffset = -6mm
7228 % \global\bindingoffset = 10mm 8708 % \global\bindingoffset = 10mm
7229 % @end tex 8709 % @end tex
7230 \internalpagesizes{51\baselineskip}{160mm} 8710 \internalpagesizes{673.2pt}{160mm}% that's 51 lines
7231 {\voffset}{\hoffset}% 8711 {\voffset}{\hoffset}%
7232 {\bindingoffset}{44pt}% 8712 {\bindingoffset}{44pt}%
7233 {297mm}{210mm}% 8713 {297mm}{210mm}%
@@ -7292,7 +8772,7 @@ should work if nowhere else does.}
7292 \parskip = 3pt plus 2pt minus 1pt 8772 \parskip = 3pt plus 2pt minus 1pt
7293 \setleading{\textleading}% 8773 \setleading{\textleading}%
7294 % 8774 %
7295 \dimen0 = #1 8775 \dimen0 = #1\relax
7296 \advance\dimen0 by \voffset 8776 \advance\dimen0 by \voffset
7297 % 8777 %
7298 \dimen2 = \hsize 8778 \dimen2 = \hsize