~peter-pearse/ubuntu/natty/guile-1.8/prop001

« back to all changes in this revision

Viewing changes to build-aux/texinfo.tex

  • Committer: Bazaar Package Importer
  • Author(s): Steve Langasek
  • Date: 2009-06-04 19:01:38 UTC
  • mfrom: (8.1.1 sid)
  • Revision ID: james.westby@ubuntu.com-20090604190138-1ao3t6sj31cqvcfe
Tags: 1.8.6+1-1ubuntu1
* Merge from Debian unstable, remaining changes:
  - Build with -Wno-error.
  - Build with thread support. Some guile-using programs like autogen need it.
  - Add debian/guile-1.8-libs.shlibs: Thread support breaks ABI, bump the soname.
* Dropped changes:
  - libltdl3-dev -> libltdl7-dev: current libltdl-dev Provides: both.
  - debian/patches/libtool-ftbfs.diff: integrated upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
% Load plain if necessary, i.e., if running under initex.
4
4
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
5
5
%
6
 
\def\texinfoversion{2006-10-04.17}
7
 
%
8
 
% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
9
 
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
10
 
% Software Foundation, Inc.
11
 
%
12
 
% This texinfo.tex file is free software; you can redistribute it and/or
 
6
\def\texinfoversion{2007-12-02.17}
 
7
%
 
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,
 
10
% 2007 Free Software Foundation, Inc.
 
11
%
 
12
% This texinfo.tex file is free software: you can redistribute it and/or
13
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
15
 
% your option) any later version.
 
14
% published by the Free Software Foundation, either version 3 of the
 
15
% License, or (at your option) any later version.
16
16
%
17
17
% This texinfo.tex file is distributed in the hope that it will be
18
18
% useful, but WITHOUT ANY WARRANTY; without even the implied warranty
20
20
% General Public License for more details.
21
21
%
22
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
24
 
% to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
25
 
% Boston, MA 02110-1301, USA.
 
23
% along with this program.  If not, see <http://www.gnu.org/licenses/>.
26
24
%
27
25
% As a special exception, when this file is read by TeX when processing
28
26
% a Texinfo source document, you may use the result without
67
65
\everyjob{\message{[Texinfo version \texinfoversion]}%
68
66
  \catcode`+=\active \catcode`\_=\active}
69
67
 
70
 
\message{Basics,}
 
68
 
71
69
\chardef\other=12
72
70
 
73
71
% We never want plain's \outer definition of \+ in Texinfo.
279
277
\newdimen\cornerthick \cornerthick=.3pt
280
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
324
% Main output routine.
283
325
\chardef\PAGE = 255
284
326
\output = {\onepageout{\pagecontents\PAGE}}
296
338
  %
297
339
  % Do this outside of the \shipout so @code etc. will be expanded in
298
340
  % the headline as they should be, not taken literally (outputting ''code).
 
341
  \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
299
342
  \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
 
343
  \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
300
344
  \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
301
345
  %
302
346
  {%
375
419
% marginal hacks, juha@viisa.uucp (Juha Takala)
376
420
\ifvoid\margin\else % marginal info is present
377
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
423
\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
380
424
\ifr@ggedbottom \kern-\dimen@ \vfil \fi}
381
425
}
1225
1269
 
1226
1270
% To handle parens, we must adopt a different approach, since parens are
1227
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
1229
 
% tinkered with it a little for texinfo, but it's definitely from there.
 
1272
% us) handles it with this amazing macro to replace tokens, with minor
 
1273
% changes for Texinfo.  It is included here under the GPL by permission
 
1274
% from the author, Heiko Oberdiek.
1230
1275
1231
1276
% #1 is the tokens to replace.
1232
1277
% #2 is the replacement.
1255
1300
  \HyPsdSubst{)}{\realbackslash)}{#1}%
1256
1301
}
1257
1302
 
 
1303
\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images
 
1304
with PDF output, and none of those formats could be found.  (.eps cannot
 
1305
be supported due to the design of the PDF format; use regular TeX (DVI
 
1306
output) for that.)}
 
1307
 
1258
1308
\ifpdf
1259
 
  \input pdfcolor
1260
 
  \pdfcatalog{/PageMode /UseOutlines}%
 
1309
  %
 
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
1351
  % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
1262
1352
  \def\dopdfimage#1#2#3{%
1263
1353
    \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
1264
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
1380
    % without \immediate, pdftex seg faults when the same image is
1266
1381
    % included twice.  (Version 3.14159-pre-1.0-unofficial-20010704.)
1267
1382
    \ifnum\pdftexversion < 14
1272
1387
      \ifdim \wd0 >0pt width \imagewidth \fi
1273
1388
      \ifdim \wd2 >0pt height \imageheight \fi
1274
1389
      \ifnum\pdftexversion<13
1275
 
         #1.pdf%
 
1390
         #1.\pdfimgext
1276
1391
       \else
1277
 
         {#1.pdf}%
 
1392
         {#1.\pdfimgext}%
1278
1393
       \fi
1279
1394
    \ifnum\pdftexversion < 14 \else
1280
1395
      \pdfrefximage \pdflastximage
1281
1396
    \fi}
 
1397
  %
1282
1398
  \def\pdfmkdest#1{{%
1283
1399
    % We have to set dummies so commands such as @code, and characters
1284
1400
    % such as \, aren't expanded when present in a section title.
1285
 
    \atdummies
 
1401
    \indexnofonts
 
1402
    \turnoffactive
1286
1403
    \activebackslashdouble
 
1404
    \makevalueexpandable
1287
1405
    \def\pdfdestname{#1}%
1288
1406
    \backslashparens\pdfdestname
1289
 
    \pdfdest name{\pdfdestname} xyz%
1290
 
  }}%
 
1407
    \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
 
1408
  }}
1291
1409
  %
1292
1410
  % used to mark target names; must be expandable.
1293
 
  \def\pdfmkpgn#1{#1}%
1294
 
  %
1295
 
  \let\linkcolor = \Blue  % was Cyan, but that seems light?
1296
 
  \def\endlink{\Black\pdfendlink}
 
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}
 
1418
  %
1297
1419
  % Adding outlines to PDF; macros for calculating structure of outlines
1298
1420
  % come from Petr Olsak
1299
1421
  \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0%
1395
1517
      \indexnofonts
1396
1518
      \setupdatafile
1397
1519
      \catcode`\\=\active \otherbackslash
1398
 
      \input \jobname.toc
 
1520
      \input \tocreadfilename
1399
1521
    \endgroup
1400
1522
  }
1401
1523
  %
1425
1547
      \def\@{@}%
1426
1548
      \let\/=\empty
1427
1549
      \makevalueexpandable
1428
 
      \leavevmode\Red
 
1550
      \leavevmode\setcolor{\urlcolor}%
1429
1551
      \startlink attr{/Border [0 0 0]}%
1430
1552
        user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
1431
1553
    \endgroup}
1452
1574
    {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
1453
1575
  \def\pdflink#1{%
1454
1576
    \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}}
1455
 
    \linkcolor #1\endlink}
 
1577
    \setcolor{\linkcolor}#1\endlink}
1456
1578
  \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
1457
1579
\else
1458
1580
  \let\pdfmkdest = \gobble
1459
1581
  \let\pdfurl = \gobble
1460
1582
  \let\endlink = \relax
1461
 
  \let\linkcolor = \relax
 
1583
  \let\setcolor = \gobble
 
1584
  \let\pdfsetcolor = \gobble
1462
1585
  \let\pdfmakeoutlines = \relax
1463
1586
\fi  % \ifx\pdfoutput
1464
1587
 
1505
1628
\def\strutheightpercent{.70833}
1506
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
1634
\def\setleading#1{%
1509
 
  \normalbaselineskip = #1\relax
 
1635
  \dimen0 = #1\relax
 
1636
  \normalbaselineskip = \baselinefactor\dimen0
1510
1637
  \normallineskip = \lineskipfactor\normalbaselineskip
1511
1638
  \normalbaselines
1512
1639
  \setbox\strutbox =\hbox{%
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
 
1666
12 dict begin
 
1667
begincmap
 
1668
/CIDSystemInfo
 
1669
<< /Registry (TeX)
 
1670
/Ordering (OT1)
 
1671
/Supplement 0
 
1672
>> def
 
1673
/CMapName /TeX-OT1-0 def
 
1674
/CMapType 2 def
 
1675
1 begincodespacerange
 
1676
<00> <7F>
 
1677
endcodespacerange
 
1678
8 beginbfrange
 
1679
<00> <01> <0393>
 
1680
<09> <0A> <03A8>
 
1681
<23> <26> <0023>
 
1682
<28> <3B> <0028>
 
1683
<3F> <5B> <003F>
 
1684
<5D> <5E> <005D>
 
1685
<61> <7A> <0061>
 
1686
<7B> <7C> <2013>
 
1687
endbfrange
 
1688
40 beginbfchar
 
1689
<02> <0398>
 
1690
<03> <039B>
 
1691
<04> <039E>
 
1692
<05> <03A0>
 
1693
<06> <03A3>
 
1694
<07> <03D2>
 
1695
<08> <03A6>
 
1696
<0B> <00660066>
 
1697
<0C> <00660069>
 
1698
<0D> <0066006C>
 
1699
<0E> <006600660069>
 
1700
<0F> <00660066006C>
 
1701
<10> <0131>
 
1702
<11> <0237>
 
1703
<12> <0060>
 
1704
<13> <00B4>
 
1705
<14> <02C7>
 
1706
<15> <02D8>
 
1707
<16> <00AF>
 
1708
<17> <02DA>
 
1709
<18> <00B8>
 
1710
<19> <00DF>
 
1711
<1A> <00E6>
 
1712
<1B> <0153>
 
1713
<1C> <00F8>
 
1714
<1D> <00C6>
 
1715
<1E> <0152>
 
1716
<1F> <00D8>
 
1717
<21> <0021>
 
1718
<22> <201D>
 
1719
<27> <2019>
 
1720
<3C> <00A1>
 
1721
<3D> <003D>
 
1722
<3E> <00BF>
 
1723
<5C> <201C>
 
1724
<5F> <02D9>
 
1725
<60> <2018>
 
1726
<7D> <02DD>
 
1727
<7E> <007E>
 
1728
<7F> <00A8>
 
1729
endbfchar
 
1730
endcmap
 
1731
CMapName currentdict /CMap defineresource pop
 
1732
end
 
1733
end
 
1734
%%EndResource
 
1735
%%EOF
 
1736
    }\endgroup
 
1737
  \expandafter\edef\csname cmapOT1\endcsname#1{%
 
1738
    \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
 
1739
  }%
 
1740
%
 
1741
% \cmapOT1IT
 
1742
  \begingroup
 
1743
    \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
 
1744
    \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
 
1745
%%DocumentNeededResources: ProcSet (CIDInit)
 
1746
%%IncludeResource: ProcSet (CIDInit)
 
1747
%%BeginResource: CMap (TeX-OT1IT-0)
 
1748
%%Title: (TeX-OT1IT-0 TeX OT1IT 0)
 
1749
%%Version: 1.000
 
1750
%%EndComments
 
1751
/CIDInit /ProcSet findresource begin
 
1752
12 dict begin
 
1753
begincmap
 
1754
/CIDSystemInfo
 
1755
<< /Registry (TeX)
 
1756
/Ordering (OT1IT)
 
1757
/Supplement 0
 
1758
>> def
 
1759
/CMapName /TeX-OT1IT-0 def
 
1760
/CMapType 2 def
 
1761
1 begincodespacerange
 
1762
<00> <7F>
 
1763
endcodespacerange
 
1764
8 beginbfrange
 
1765
<00> <01> <0393>
 
1766
<09> <0A> <03A8>
 
1767
<25> <26> <0025>
 
1768
<28> <3B> <0028>
 
1769
<3F> <5B> <003F>
 
1770
<5D> <5E> <005D>
 
1771
<61> <7A> <0061>
 
1772
<7B> <7C> <2013>
 
1773
endbfrange
 
1774
42 beginbfchar
 
1775
<02> <0398>
 
1776
<03> <039B>
 
1777
<04> <039E>
 
1778
<05> <03A0>
 
1779
<06> <03A3>
 
1780
<07> <03D2>
 
1781
<08> <03A6>
 
1782
<0B> <00660066>
 
1783
<0C> <00660069>
 
1784
<0D> <0066006C>
 
1785
<0E> <006600660069>
 
1786
<0F> <00660066006C>
 
1787
<10> <0131>
 
1788
<11> <0237>
 
1789
<12> <0060>
 
1790
<13> <00B4>
 
1791
<14> <02C7>
 
1792
<15> <02D8>
 
1793
<16> <00AF>
 
1794
<17> <02DA>
 
1795
<18> <00B8>
 
1796
<19> <00DF>
 
1797
<1A> <00E6>
 
1798
<1B> <0153>
 
1799
<1C> <00F8>
 
1800
<1D> <00C6>
 
1801
<1E> <0152>
 
1802
<1F> <00D8>
 
1803
<21> <0021>
 
1804
<22> <201D>
 
1805
<23> <0023>
 
1806
<24> <00A3>
 
1807
<27> <2019>
 
1808
<3C> <00A1>
 
1809
<3D> <003D>
 
1810
<3E> <00BF>
 
1811
<5C> <201C>
 
1812
<5F> <02D9>
 
1813
<60> <2018>
 
1814
<7D> <02DD>
 
1815
<7E> <007E>
 
1816
<7F> <00A8>
 
1817
endbfchar
 
1818
endcmap
 
1819
CMapName currentdict /CMap defineresource pop
 
1820
end
 
1821
end
 
1822
%%EndResource
 
1823
%%EOF
 
1824
    }\endgroup
 
1825
  \expandafter\edef\csname cmapOT1IT\endcsname#1{%
 
1826
    \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
 
1827
  }%
 
1828
%
 
1829
% \cmapOT1TT
 
1830
  \begingroup
 
1831
    \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
 
1832
    \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
 
1833
%%DocumentNeededResources: ProcSet (CIDInit)
 
1834
%%IncludeResource: ProcSet (CIDInit)
 
1835
%%BeginResource: CMap (TeX-OT1TT-0)
 
1836
%%Title: (TeX-OT1TT-0 TeX OT1TT 0)
 
1837
%%Version: 1.000
 
1838
%%EndComments
 
1839
/CIDInit /ProcSet findresource begin
 
1840
12 dict begin
 
1841
begincmap
 
1842
/CIDSystemInfo
 
1843
<< /Registry (TeX)
 
1844
/Ordering (OT1TT)
 
1845
/Supplement 0
 
1846
>> def
 
1847
/CMapName /TeX-OT1TT-0 def
 
1848
/CMapType 2 def
 
1849
1 begincodespacerange
 
1850
<00> <7F>
 
1851
endcodespacerange
 
1852
5 beginbfrange
 
1853
<00> <01> <0393>
 
1854
<09> <0A> <03A8>
 
1855
<21> <26> <0021>
 
1856
<28> <5F> <0028>
 
1857
<61> <7E> <0061>
 
1858
endbfrange
 
1859
32 beginbfchar
 
1860
<02> <0398>
 
1861
<03> <039B>
 
1862
<04> <039E>
 
1863
<05> <03A0>
 
1864
<06> <03A3>
 
1865
<07> <03D2>
 
1866
<08> <03A6>
 
1867
<0B> <2191>
 
1868
<0C> <2193>
 
1869
<0D> <0027>
 
1870
<0E> <00A1>
 
1871
<0F> <00BF>
 
1872
<10> <0131>
 
1873
<11> <0237>
 
1874
<12> <0060>
 
1875
<13> <00B4>
 
1876
<14> <02C7>
 
1877
<15> <02D8>
 
1878
<16> <00AF>
 
1879
<17> <02DA>
 
1880
<18> <00B8>
 
1881
<19> <00DF>
 
1882
<1A> <00E6>
 
1883
<1B> <0153>
 
1884
<1C> <00F8>
 
1885
<1D> <00C6>
 
1886
<1E> <0152>
 
1887
<1F> <00D8>
 
1888
<20> <2423>
 
1889
<27> <2019>
 
1890
<60> <2018>
 
1891
<7F> <00A8>
 
1892
endbfchar
 
1893
endcmap
 
1894
CMapName currentdict /CMap defineresource pop
 
1895
end
 
1896
end
 
1897
%%EndResource
 
1898
%%EOF
 
1899
    }\endgroup
 
1900
  \expandafter\edef\csname cmapOT1TT\endcsname#1{%
 
1901
    \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
 
1902
  }%
 
1903
\fi\fi
 
1904
 
1518
1905
 
1519
1906
% Set the font macro #1 to the font named #2, adding on the
1520
1907
% specified font prefix (normally `cm').
1521
 
% #3 is the font's design size, #4 is a scale factor
1522
 
\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
1523
 
 
 
1908
% #3 is the font's design size, #4 is a scale factor, #5 is the CMap
 
1909
% encoding (currently only OT1, OT1IT and OT1TT are allowed, pass
 
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
1919
% Use cm as the default font prefix.
1526
1920
% To specify the font prefix, you must define \fontprefix
1548
1942
% Definitions for a main text size of 11pt.  This is the default in
1549
1943
% Texinfo.
1550
1944
1551
 
\def\definetextfontsizexi{
 
1945
\def\definetextfontsizexi{%
1552
1946
% Text fonts (11.2pt, magstep1).
1553
1947
\def\textnominalsize{11pt}
1554
1948
\edef\mainmagstep{\magstephalf}
1555
 
\setfont\textrm\rmshape{10}{\mainmagstep}
1556
 
\setfont\texttt\ttshape{10}{\mainmagstep}
1557
 
\setfont\textbf\bfshape{10}{\mainmagstep}
1558
 
\setfont\textit\itshape{10}{\mainmagstep}
1559
 
\setfont\textsl\slshape{10}{\mainmagstep}
1560
 
\setfont\textsf\sfshape{10}{\mainmagstep}
1561
 
\setfont\textsc\scshape{10}{\mainmagstep}
1562
 
\setfont\textttsl\ttslshape{10}{\mainmagstep}
 
1949
\setfont\textrm\rmshape{10}{\mainmagstep}{OT1}
 
1950
\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT}
 
1951
\setfont\textbf\bfshape{10}{\mainmagstep}{OT1}
 
1952
\setfont\textit\itshape{10}{\mainmagstep}{OT1IT}
 
1953
\setfont\textsl\slshape{10}{\mainmagstep}{OT1}
 
1954
\setfont\textsf\sfshape{10}{\mainmagstep}{OT1}
 
1955
\setfont\textsc\scshape{10}{\mainmagstep}{OT1}
 
1956
\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT}
1563
1957
\font\texti=cmmi10 scaled \mainmagstep
1564
1958
\font\textsy=cmsy10 scaled \mainmagstep
 
1959
\def\textecsize{1095}
1565
1960
 
1566
1961
% A few fonts for @defun names and args.
1567
 
\setfont\defbf\bfshape{10}{\magstep1}
1568
 
\setfont\deftt\ttshape{10}{\magstep1}
1569
 
\setfont\defttsl\ttslshape{10}{\magstep1}
 
1962
\setfont\defbf\bfshape{10}{\magstep1}{OT1}
 
1963
\setfont\deftt\ttshape{10}{\magstep1}{OT1TT}
 
1964
\setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT}
1570
1965
\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
1571
1966
 
1572
1967
% Fonts for indices, footnotes, small examples (9pt).
1573
1968
\def\smallnominalsize{9pt}
1574
 
\setfont\smallrm\rmshape{9}{1000}
1575
 
\setfont\smalltt\ttshape{9}{1000}
1576
 
\setfont\smallbf\bfshape{10}{900}
1577
 
\setfont\smallit\itshape{9}{1000}
1578
 
\setfont\smallsl\slshape{9}{1000}
1579
 
\setfont\smallsf\sfshape{9}{1000}
1580
 
\setfont\smallsc\scshape{10}{900}
1581
 
\setfont\smallttsl\ttslshape{10}{900}
 
1969
\setfont\smallrm\rmshape{9}{1000}{OT1}
 
1970
\setfont\smalltt\ttshape{9}{1000}{OT1TT}
 
1971
\setfont\smallbf\bfshape{10}{900}{OT1}
 
1972
\setfont\smallit\itshape{9}{1000}{OT1IT}
 
1973
\setfont\smallsl\slshape{9}{1000}{OT1}
 
1974
\setfont\smallsf\sfshape{9}{1000}{OT1}
 
1975
\setfont\smallsc\scshape{10}{900}{OT1}
 
1976
\setfont\smallttsl\ttslshape{10}{900}{OT1TT}
1582
1977
\font\smalli=cmmi9
1583
1978
\font\smallsy=cmsy9
 
1979
\def\smallecsize{0900}
1584
1980
 
1585
1981
% Fonts for small examples (8pt).
1586
1982
\def\smallernominalsize{8pt}
1587
 
\setfont\smallerrm\rmshape{8}{1000}
1588
 
\setfont\smallertt\ttshape{8}{1000}
1589
 
\setfont\smallerbf\bfshape{10}{800}
1590
 
\setfont\smallerit\itshape{8}{1000}
1591
 
\setfont\smallersl\slshape{8}{1000}
1592
 
\setfont\smallersf\sfshape{8}{1000}
1593
 
\setfont\smallersc\scshape{10}{800}
1594
 
\setfont\smallerttsl\ttslshape{10}{800}
 
1983
\setfont\smallerrm\rmshape{8}{1000}{OT1}
 
1984
\setfont\smallertt\ttshape{8}{1000}{OT1TT}
 
1985
\setfont\smallerbf\bfshape{10}{800}{OT1}
 
1986
\setfont\smallerit\itshape{8}{1000}{OT1IT}
 
1987
\setfont\smallersl\slshape{8}{1000}{OT1}
 
1988
\setfont\smallersf\sfshape{8}{1000}{OT1}
 
1989
\setfont\smallersc\scshape{10}{800}{OT1}
 
1990
\setfont\smallerttsl\ttslshape{10}{800}{OT1TT}
1595
1991
\font\smalleri=cmmi8
1596
1992
\font\smallersy=cmsy8
 
1993
\def\smallerecsize{0800}
1597
1994
 
1598
1995
% Fonts for title page (20.4pt):
1599
1996
\def\titlenominalsize{20pt}
1600
 
\setfont\titlerm\rmbshape{12}{\magstep3}
1601
 
\setfont\titleit\itbshape{10}{\magstep4}
1602
 
\setfont\titlesl\slbshape{10}{\magstep4}
1603
 
\setfont\titlett\ttbshape{12}{\magstep3}
1604
 
\setfont\titlettsl\ttslshape{10}{\magstep4}
1605
 
\setfont\titlesf\sfbshape{17}{\magstep1}
 
1997
\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
 
1998
\setfont\titleit\itbshape{10}{\magstep4}{OT1IT}
 
1999
\setfont\titlesl\slbshape{10}{\magstep4}{OT1}
 
2000
\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT}
 
2001
\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT}
 
2002
\setfont\titlesf\sfbshape{17}{\magstep1}{OT1}
1606
2003
\let\titlebf=\titlerm
1607
 
\setfont\titlesc\scbshape{10}{\magstep4}
 
2004
\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
1608
2005
\font\titlei=cmmi12 scaled \magstep3
1609
2006
\font\titlesy=cmsy10 scaled \magstep4
1610
2007
\def\authorrm{\secrm}
1611
2008
\def\authortt{\sectt}
 
2009
\def\titleecsize{2074}
1612
2010
 
1613
2011
% Chapter (and unnumbered) fonts (17.28pt).
1614
2012
\def\chapnominalsize{17pt}
1615
 
\setfont\chaprm\rmbshape{12}{\magstep2}
1616
 
\setfont\chapit\itbshape{10}{\magstep3}
1617
 
\setfont\chapsl\slbshape{10}{\magstep3}
1618
 
\setfont\chaptt\ttbshape{12}{\magstep2}
1619
 
\setfont\chapttsl\ttslshape{10}{\magstep3}
1620
 
\setfont\chapsf\sfbshape{17}{1000}
 
2013
\setfont\chaprm\rmbshape{12}{\magstep2}{OT1}
 
2014
\setfont\chapit\itbshape{10}{\magstep3}{OT1IT}
 
2015
\setfont\chapsl\slbshape{10}{\magstep3}{OT1}
 
2016
\setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT}
 
2017
\setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT}
 
2018
\setfont\chapsf\sfbshape{17}{1000}{OT1}
1621
2019
\let\chapbf=\chaprm
1622
 
\setfont\chapsc\scbshape{10}{\magstep3}
 
2020
\setfont\chapsc\scbshape{10}{\magstep3}{OT1}
1623
2021
\font\chapi=cmmi12 scaled \magstep2
1624
2022
\font\chapsy=cmsy10 scaled \magstep3
 
2023
\def\chapecsize{1728}
1625
2024
 
1626
2025
% Section fonts (14.4pt).
1627
2026
\def\secnominalsize{14pt}
1628
 
\setfont\secrm\rmbshape{12}{\magstep1}
1629
 
\setfont\secit\itbshape{10}{\magstep2}
1630
 
\setfont\secsl\slbshape{10}{\magstep2}
1631
 
\setfont\sectt\ttbshape{12}{\magstep1}
1632
 
\setfont\secttsl\ttslshape{10}{\magstep2}
1633
 
\setfont\secsf\sfbshape{12}{\magstep1}
 
2027
\setfont\secrm\rmbshape{12}{\magstep1}{OT1}
 
2028
\setfont\secit\itbshape{10}{\magstep2}{OT1IT}
 
2029
\setfont\secsl\slbshape{10}{\magstep2}{OT1}
 
2030
\setfont\sectt\ttbshape{12}{\magstep1}{OT1TT}
 
2031
\setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT}
 
2032
\setfont\secsf\sfbshape{12}{\magstep1}{OT1}
1634
2033
\let\secbf\secrm
1635
 
\setfont\secsc\scbshape{10}{\magstep2}
 
2034
\setfont\secsc\scbshape{10}{\magstep2}{OT1}
1636
2035
\font\seci=cmmi12 scaled \magstep1
1637
2036
\font\secsy=cmsy10 scaled \magstep2
 
2037
\def\sececsize{1440}
1638
2038
 
1639
2039
% Subsection fonts (13.15pt).
1640
2040
\def\ssecnominalsize{13pt}
1641
 
\setfont\ssecrm\rmbshape{12}{\magstephalf}
1642
 
\setfont\ssecit\itbshape{10}{1315}
1643
 
\setfont\ssecsl\slbshape{10}{1315}
1644
 
\setfont\ssectt\ttbshape{12}{\magstephalf}
1645
 
\setfont\ssecttsl\ttslshape{10}{1315}
1646
 
\setfont\ssecsf\sfbshape{12}{\magstephalf}
 
2041
\setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1}
 
2042
\setfont\ssecit\itbshape{10}{1315}{OT1IT}
 
2043
\setfont\ssecsl\slbshape{10}{1315}{OT1}
 
2044
\setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT}
 
2045
\setfont\ssecttsl\ttslshape{10}{1315}{OT1TT}
 
2046
\setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1}
1647
2047
\let\ssecbf\ssecrm
1648
 
\setfont\ssecsc\scbshape{10}{1315}
 
2048
\setfont\ssecsc\scbshape{10}{1315}{OT1}
1649
2049
\font\sseci=cmmi12 scaled \magstephalf
1650
2050
\font\ssecsy=cmsy10 scaled 1315
 
2051
\def\ssececsize{1200}
1651
2052
 
1652
2053
% Reduced fonts for @acro in text (10pt).
1653
2054
\def\reducednominalsize{10pt}
1654
 
\setfont\reducedrm\rmshape{10}{1000}
1655
 
\setfont\reducedtt\ttshape{10}{1000}
1656
 
\setfont\reducedbf\bfshape{10}{1000}
1657
 
\setfont\reducedit\itshape{10}{1000}
1658
 
\setfont\reducedsl\slshape{10}{1000}
1659
 
\setfont\reducedsf\sfshape{10}{1000}
1660
 
\setfont\reducedsc\scshape{10}{1000}
1661
 
\setfont\reducedttsl\ttslshape{10}{1000}
 
2055
\setfont\reducedrm\rmshape{10}{1000}{OT1}
 
2056
\setfont\reducedtt\ttshape{10}{1000}{OT1TT}
 
2057
\setfont\reducedbf\bfshape{10}{1000}{OT1}
 
2058
\setfont\reducedit\itshape{10}{1000}{OT1IT}
 
2059
\setfont\reducedsl\slshape{10}{1000}{OT1}
 
2060
\setfont\reducedsf\sfshape{10}{1000}{OT1}
 
2061
\setfont\reducedsc\scshape{10}{1000}{OT1}
 
2062
\setfont\reducedttsl\ttslshape{10}{1000}{OT1TT}
1662
2063
\font\reducedi=cmmi10
1663
2064
\font\reducedsy=cmsy10
 
2065
\def\reducedecsize{1000}
1664
2066
 
1665
2067
% reset the current fonts
1666
2068
\textfonts
1677
2079
% Text fonts (10pt).
1678
2080
\def\textnominalsize{10pt}
1679
2081
\edef\mainmagstep{1000}
1680
 
\setfont\textrm\rmshape{10}{\mainmagstep}
1681
 
\setfont\texttt\ttshape{10}{\mainmagstep}
1682
 
\setfont\textbf\bfshape{10}{\mainmagstep}
1683
 
\setfont\textit\itshape{10}{\mainmagstep}
1684
 
\setfont\textsl\slshape{10}{\mainmagstep}
1685
 
\setfont\textsf\sfshape{10}{\mainmagstep}
1686
 
\setfont\textsc\scshape{10}{\mainmagstep}
1687
 
\setfont\textttsl\ttslshape{10}{\mainmagstep}
 
2082
\setfont\textrm\rmshape{10}{\mainmagstep}{OT1}
 
2083
\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT}
 
2084
\setfont\textbf\bfshape{10}{\mainmagstep}{OT1}
 
2085
\setfont\textit\itshape{10}{\mainmagstep}{OT1IT}
 
2086
\setfont\textsl\slshape{10}{\mainmagstep}{OT1}
 
2087
\setfont\textsf\sfshape{10}{\mainmagstep}{OT1}
 
2088
\setfont\textsc\scshape{10}{\mainmagstep}{OT1}
 
2089
\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT}
1688
2090
\font\texti=cmmi10 scaled \mainmagstep
1689
2091
\font\textsy=cmsy10 scaled \mainmagstep
 
2092
\def\textecsize{1000}
1690
2093
 
1691
2094
% A few fonts for @defun names and args.
1692
 
\setfont\defbf\bfshape{10}{\magstephalf}
1693
 
\setfont\deftt\ttshape{10}{\magstephalf}
1694
 
\setfont\defttsl\ttslshape{10}{\magstephalf}
 
2095
\setfont\defbf\bfshape{10}{\magstephalf}{OT1}
 
2096
\setfont\deftt\ttshape{10}{\magstephalf}{OT1TT}
 
2097
\setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT}
1695
2098
\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
1696
2099
 
1697
2100
% Fonts for indices, footnotes, small examples (9pt).
1698
2101
\def\smallnominalsize{9pt}
1699
 
\setfont\smallrm\rmshape{9}{1000}
1700
 
\setfont\smalltt\ttshape{9}{1000}
1701
 
\setfont\smallbf\bfshape{10}{900}
1702
 
\setfont\smallit\itshape{9}{1000}
1703
 
\setfont\smallsl\slshape{9}{1000}
1704
 
\setfont\smallsf\sfshape{9}{1000}
1705
 
\setfont\smallsc\scshape{10}{900}
1706
 
\setfont\smallttsl\ttslshape{10}{900}
 
2102
\setfont\smallrm\rmshape{9}{1000}{OT1}
 
2103
\setfont\smalltt\ttshape{9}{1000}{OT1TT}
 
2104
\setfont\smallbf\bfshape{10}{900}{OT1}
 
2105
\setfont\smallit\itshape{9}{1000}{OT1IT}
 
2106
\setfont\smallsl\slshape{9}{1000}{OT1}
 
2107
\setfont\smallsf\sfshape{9}{1000}{OT1}
 
2108
\setfont\smallsc\scshape{10}{900}{OT1}
 
2109
\setfont\smallttsl\ttslshape{10}{900}{OT1TT}
1707
2110
\font\smalli=cmmi9
1708
2111
\font\smallsy=cmsy9
 
2112
\def\smallecsize{0900}
1709
2113
 
1710
2114
% Fonts for small examples (8pt).
1711
2115
\def\smallernominalsize{8pt}
1712
 
\setfont\smallerrm\rmshape{8}{1000}
1713
 
\setfont\smallertt\ttshape{8}{1000}
1714
 
\setfont\smallerbf\bfshape{10}{800}
1715
 
\setfont\smallerit\itshape{8}{1000}
1716
 
\setfont\smallersl\slshape{8}{1000}
1717
 
\setfont\smallersf\sfshape{8}{1000}
1718
 
\setfont\smallersc\scshape{10}{800}
1719
 
\setfont\smallerttsl\ttslshape{10}{800}
 
2116
\setfont\smallerrm\rmshape{8}{1000}{OT1}
 
2117
\setfont\smallertt\ttshape{8}{1000}{OT1TT}
 
2118
\setfont\smallerbf\bfshape{10}{800}{OT1}
 
2119
\setfont\smallerit\itshape{8}{1000}{OT1IT}
 
2120
\setfont\smallersl\slshape{8}{1000}{OT1}
 
2121
\setfont\smallersf\sfshape{8}{1000}{OT1}
 
2122
\setfont\smallersc\scshape{10}{800}{OT1}
 
2123
\setfont\smallerttsl\ttslshape{10}{800}{OT1TT}
1720
2124
\font\smalleri=cmmi8
1721
2125
\font\smallersy=cmsy8
 
2126
\def\smallerecsize{0800}
1722
2127
 
1723
2128
% Fonts for title page (20.4pt):
1724
2129
\def\titlenominalsize{20pt}
1725
 
\setfont\titlerm\rmbshape{12}{\magstep3}
1726
 
\setfont\titleit\itbshape{10}{\magstep4}
1727
 
\setfont\titlesl\slbshape{10}{\magstep4}
1728
 
\setfont\titlett\ttbshape{12}{\magstep3}
1729
 
\setfont\titlettsl\ttslshape{10}{\magstep4}
1730
 
\setfont\titlesf\sfbshape{17}{\magstep1}
 
2130
\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
 
2131
\setfont\titleit\itbshape{10}{\magstep4}{OT1IT}
 
2132
\setfont\titlesl\slbshape{10}{\magstep4}{OT1}
 
2133
\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT}
 
2134
\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT}
 
2135
\setfont\titlesf\sfbshape{17}{\magstep1}{OT1}
1731
2136
\let\titlebf=\titlerm
1732
 
\setfont\titlesc\scbshape{10}{\magstep4}
 
2137
\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
1733
2138
\font\titlei=cmmi12 scaled \magstep3
1734
2139
\font\titlesy=cmsy10 scaled \magstep4
1735
2140
\def\authorrm{\secrm}
1736
2141
\def\authortt{\sectt}
 
2142
\def\titleecsize{2074}
1737
2143
 
1738
2144
% Chapter fonts (14.4pt).
1739
2145
\def\chapnominalsize{14pt}
1740
 
\setfont\chaprm\rmbshape{12}{\magstep1}
1741
 
\setfont\chapit\itbshape{10}{\magstep2}
1742
 
\setfont\chapsl\slbshape{10}{\magstep2}
1743
 
\setfont\chaptt\ttbshape{12}{\magstep1}
1744
 
\setfont\chapttsl\ttslshape{10}{\magstep2}
1745
 
\setfont\chapsf\sfbshape{12}{\magstep1}
 
2146
\setfont\chaprm\rmbshape{12}{\magstep1}{OT1}
 
2147
\setfont\chapit\itbshape{10}{\magstep2}{OT1IT}
 
2148
\setfont\chapsl\slbshape{10}{\magstep2}{OT1}
 
2149
\setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT}
 
2150
\setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT}
 
2151
\setfont\chapsf\sfbshape{12}{\magstep1}{OT1}
1746
2152
\let\chapbf\chaprm
1747
 
\setfont\chapsc\scbshape{10}{\magstep2}
 
2153
\setfont\chapsc\scbshape{10}{\magstep2}{OT1}
1748
2154
\font\chapi=cmmi12 scaled \magstep1
1749
2155
\font\chapsy=cmsy10 scaled \magstep2
 
2156
\def\chapecsize{1440}
1750
2157
 
1751
2158
% Section fonts (12pt).
1752
2159
\def\secnominalsize{12pt}
1753
 
\setfont\secrm\rmbshape{12}{1000}
1754
 
\setfont\secit\itbshape{10}{\magstep1}
1755
 
\setfont\secsl\slbshape{10}{\magstep1}
1756
 
\setfont\sectt\ttbshape{12}{1000}
1757
 
\setfont\secttsl\ttslshape{10}{\magstep1}
1758
 
\setfont\secsf\sfbshape{12}{1000}
 
2160
\setfont\secrm\rmbshape{12}{1000}{OT1}
 
2161
\setfont\secit\itbshape{10}{\magstep1}{OT1IT}
 
2162
\setfont\secsl\slbshape{10}{\magstep1}{OT1}
 
2163
\setfont\sectt\ttbshape{12}{1000}{OT1TT}
 
2164
\setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT}
 
2165
\setfont\secsf\sfbshape{12}{1000}{OT1}
1759
2166
\let\secbf\secrm
1760
 
\setfont\secsc\scbshape{10}{\magstep1}
 
2167
\setfont\secsc\scbshape{10}{\magstep1}{OT1}
1761
2168
\font\seci=cmmi12 
1762
2169
\font\secsy=cmsy10 scaled \magstep1
 
2170
\def\sececsize{1200}
1763
2171
 
1764
2172
% Subsection fonts (10pt).
1765
2173
\def\ssecnominalsize{10pt}
1766
 
\setfont\ssecrm\rmbshape{10}{1000}
1767
 
\setfont\ssecit\itbshape{10}{1000}
1768
 
\setfont\ssecsl\slbshape{10}{1000}
1769
 
\setfont\ssectt\ttbshape{10}{1000}
1770
 
\setfont\ssecttsl\ttslshape{10}{1000}
1771
 
\setfont\ssecsf\sfbshape{10}{1000}
 
2174
\setfont\ssecrm\rmbshape{10}{1000}{OT1}
 
2175
\setfont\ssecit\itbshape{10}{1000}{OT1IT}
 
2176
\setfont\ssecsl\slbshape{10}{1000}{OT1}
 
2177
\setfont\ssectt\ttbshape{10}{1000}{OT1TT}
 
2178
\setfont\ssecttsl\ttslshape{10}{1000}{OT1TT}
 
2179
\setfont\ssecsf\sfbshape{10}{1000}{OT1}
1772
2180
\let\ssecbf\ssecrm
1773
 
\setfont\ssecsc\scbshape{10}{1000}
 
2181
\setfont\ssecsc\scbshape{10}{1000}{OT1}
1774
2182
\font\sseci=cmmi10
1775
2183
\font\ssecsy=cmsy10
 
2184
\def\ssececsize{1000}
1776
2185
 
1777
2186
% Reduced fonts for @acro in text (9pt).
1778
2187
\def\reducednominalsize{9pt}
1779
 
\setfont\reducedrm\rmshape{9}{1000}
1780
 
\setfont\reducedtt\ttshape{9}{1000}
1781
 
\setfont\reducedbf\bfshape{10}{900}
1782
 
\setfont\reducedit\itshape{9}{1000}
1783
 
\setfont\reducedsl\slshape{9}{1000}
1784
 
\setfont\reducedsf\sfshape{9}{1000}
1785
 
\setfont\reducedsc\scshape{10}{900}
1786
 
\setfont\reducedttsl\ttslshape{10}{900}
 
2188
\setfont\reducedrm\rmshape{9}{1000}{OT1}
 
2189
\setfont\reducedtt\ttshape{9}{1000}{OT1TT}
 
2190
\setfont\reducedbf\bfshape{10}{900}{OT1}
 
2191
\setfont\reducedit\itshape{9}{1000}{OT1IT}
 
2192
\setfont\reducedsl\slshape{9}{1000}{OT1}
 
2193
\setfont\reducedsf\sfshape{9}{1000}{OT1}
 
2194
\setfont\reducedsc\scshape{10}{900}{OT1}
 
2195
\setfont\reducedttsl\ttslshape{10}{900}{OT1TT}
1787
2196
\font\reducedi=cmmi9
1788
2197
\font\reducedsy=cmsy9
 
2198
\def\reducedecsize{0900}
1789
2199
 
1790
2200
% reduce space between paragraphs
1791
2201
\divide\parskip by 2
1941
2351
\newcount\fontdepth \fontdepth=0
1942
2352
 
1943
2353
% Fonts for short table of contents.
1944
 
\setfont\shortcontrm\rmshape{12}{1000}
1945
 
\setfont\shortcontbf\bfshape{10}{\magstep1}  % no cmb12
1946
 
\setfont\shortcontsl\slshape{12}{1000}
1947
 
\setfont\shortconttt\ttshape{12}{1000}
 
2354
\setfont\shortcontrm\rmshape{12}{1000}{OT1}
 
2355
\setfont\shortcontbf\bfshape{10}{\magstep1}{OT1}  % no cmb12
 
2356
\setfont\shortcontsl\slshape{12}{1000}{OT1}
 
2357
\setfont\shortconttt\ttshape{12}{1000}{OT1TT}
1948
2358
 
1949
2359
%% Add scribe-like font environments, plus @l for inline lisp (usually sans
1950
2360
%% serif) and @ii for TeX italic
2007
2417
  \null
2008
2418
}
2009
2419
\def\samp#1{`\tclose{#1}'\null}
2010
 
\setfont\keyrm\rmshape{8}{1000}
 
2420
\setfont\keyrm\rmshape{8}{1000}{OT1}
2011
2421
\font\keysy=cmsy9
2012
2422
\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
2013
2423
  \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
2015
2425
     \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
2016
2426
    \kern-0.4pt\hrule}%
2017
2427
  \kern-.06em\raise0.4pt\hbox{\angleright}}}}
 
2428
\def\key #1{{\nohyphenation \uppercase{#1}}\null}
2018
2429
% The old definition, with no lozenge:
2019
2430
%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
2020
2431
\def\ctrl #1{{\tt \rawbackslash \hat}#1}
2299
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
2742
% @registeredsymbol - R in a circle.  The font for the R should really
2303
2743
% be smaller yet, but lllsize is the best we can do for now.
2304
2744
% Adapted from the plain.tex definition of \copyright.
2321
2761
\def\Orb{\mathhexbox20D}
2322
2762
\fi
2323
2763
 
 
2764
% Quotes.
 
2765
\chardef\quotedblleft="5C
 
2766
\chardef\quotedblright=`\"
 
2767
\chardef\quoteleft=`\`
 
2768
\chardef\quoteright=`\'
 
2769
 
2324
2770
 
2325
2771
\message{page headings,}
2326
2772
 
2490
2936
 
2491
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
2967
% @headings double      turns headings on for double-sided printing.
2495
2968
% @headings single      turns headings on for single-sided printing.
3530
4003
  \definedummyword\equiv
3531
4004
  \definedummyword\error
3532
4005
  \definedummyword\euro
 
4006
  \definedummyword\guillemetleft
 
4007
  \definedummyword\guillemetright
 
4008
  \definedummyword\guilsinglleft
 
4009
  \definedummyword\guilsinglright
3533
4010
  \definedummyword\expansion
3534
4011
  \definedummyword\minus
3535
4012
  \definedummyword\pounds
3536
4013
  \definedummyword\point
3537
4014
  \definedummyword\print
 
4015
  \definedummyword\quotedblbase
 
4016
  \definedummyword\quotedblleft
 
4017
  \definedummyword\quotedblright
 
4018
  \definedummyword\quoteleft
 
4019
  \definedummyword\quoteright
 
4020
  \definedummyword\quotesinglbase
3538
4021
  \definedummyword\result
3539
4022
  \definedummyword\textdegree
3540
4023
  %
3664
4147
  \def\equiv{==}%
3665
4148
  \def\error{error}%
3666
4149
  \def\euro{euro}%
 
4150
  \def\guillemetleft{<<}%
 
4151
  \def\guillemetright{>>}%
 
4152
  \def\guilsinglleft{<}%
 
4153
  \def\guilsinglright{>}%
3667
4154
  \def\expansion{==>}%
3668
4155
  \def\minus{-}%
3669
4156
  \def\pounds{pounds}%
3670
4157
  \def\point{.}%
3671
4158
  \def\print{-|}%
 
4159
  \def\quotedblbase{"}%
 
4160
  \def\quotedblleft{"}%
 
4161
  \def\quotedblright{"}%
 
4162
  \def\quoteleft{`}%
 
4163
  \def\quoteright{'}%
 
4164
  \def\quotesinglbase{,}%
3672
4165
  \def\result{=>}%
3673
4166
  \def\textdegree{degrees}%
3674
4167
  %
3710
4203
    %
3711
4204
    \edef\writeto{\csname#1indfile\endcsname}%
3712
4205
    %
3713
 
    \ifvmode
3714
 
      \dosubindsanitize
3715
 
    \else
3716
 
      \dosubindwrite
3717
 
    \fi
 
4206
    \safewhatsit\dosubindwrite
3718
4207
  }%
3719
4208
  \fi
3720
4209
}
3751
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
4245
% If a skip is the last thing on the list now, preserve it
3757
4246
% by backing up by \lastskip, doing the \write, then inserting
3758
4247
% the skip again.  Otherwise, the whatsit generated by the
3759
 
% \write will make \lastskip zero.  The result is that sequences
3760
 
% like this:
 
4248
% \write or \pdfdest will make \lastskip zero.  The result is that
 
4249
% sequences like this:
3761
4250
% @end defun
3762
4251
% @tindex whatever
3763
4252
% @defun ...
3781
4270
%
3782
4271
\edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname}
3783
4272
%
 
4273
\newskip\whatsitskip
 
4274
\newcount\whatsitpenalty
 
4275
%
3784
4276
% ..., ready, GO:
3785
4277
%
3786
 
\def\dosubindsanitize{%
 
4278
\def\safewhatsit#1{%
 
4279
\ifhmode
 
4280
  #1%
 
4281
\else
3787
4282
  % \lastskip and \lastpenalty cannot both be nonzero simultaneously.
3788
 
  \skip0 = \lastskip
 
4283
  \whatsitskip = \lastskip
3789
4284
  \edef\lastskipmacro{\the\lastskip}%
3790
 
  \count255 = \lastpenalty
 
4285
  \whatsitpenalty = \lastpenalty
3791
4286
  %
3792
4287
  % If \lastskip is nonzero, that means the last item was a
3793
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
4290
  % non-discardable item, therefore it is not a potential
3796
4291
  % breakpoint, therefore no \nobreak needed.
3797
4292
  \ifx\lastskipmacro\zeroskipmacro
3798
4293
  \else
3799
 
    \vskip-\skip0
 
4294
    \vskip-\whatsitskip
3800
4295
  \fi
3801
4296
  %
3802
 
  \dosubindwrite
 
4297
  #1%
3803
4298
  %
3804
4299
  \ifx\lastskipmacro\zeroskipmacro
3805
4300
    % If \lastskip was zero, perhaps the last item was a penalty, and
3813
4308
    %   Description.
3814
4309
    % would allow a break between the index-whatever whatsit
3815
4310
    % and the "Description." paragraph.
3816
 
    \ifnum\count255>9999 \penalty\count255 \fi
 
4311
    \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi
3817
4312
  \else
3818
4313
    % On the other hand, if we had a nonzero \lastskip,
3819
4314
    % this make-up glue would be preceded by a non-discardable item
3820
4315
    % (the whatsit from the \write), so we must insert a \nobreak.
3821
 
    \nobreak\vskip\skip0
 
4316
    \nobreak\vskip\whatsitskip
3822
4317
  \fi
 
4318
\fi
3823
4319
}
3824
4320
 
3825
4321
% The index entry written in the file actually looks like
3862
4358
  %
3863
4359
  \smallfonts \rm
3864
4360
  \tolerance = 9500
 
4361
  \plainfrenchspacing
3865
4362
  \everypar = {}% don't want the \kern\-parindent from indentation suppression.
3866
4363
  %
3867
4364
  % See if the index file exists and is nonempty.
3991
4488
    % The following is kludged to not output a line of dots in the index if
3992
4489
    % there are no page numbers.  The next person who breaks this will be
3993
4490
    % cursed by a Unix daemon.
3994
 
    \def\tempa{{\rm }}%
3995
 
    \def\tempb{#1}%
3996
 
    \edef\tempc{\tempa}%
3997
 
    \edef\tempd{\tempb}%
3998
 
    \ifx\tempc\tempd
 
4491
    \setbox\boxA = \hbox{#1}%
 
4492
    \ifdim\wd\boxA = 0pt
3999
4493
      \ %
4000
4494
    \else
4001
4495
      %
4131
4625
%
4132
4626
% All done with double columns.
4133
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
4656
  \output = {%
4135
4657
    % Split the last of the double-column material.  Leave it on the
4136
4658
    % current page, no automatic page break.
4240
4762
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
4241
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.
4244
 
% page headings and footings can use it.  @section does likewise.
4245
 
% However, they are not reliable, because we don't use marks.
 
4765
% Each @chapter defines these (using marks) as the number+name, number
 
4766
% and name of the chapter.  Page headings and footings can use
 
4767
% these.  @section does likewise.
4246
4768
\def\thischapter{}
 
4769
\def\thischapternum{}
 
4770
\def\thischaptername{}
4247
4771
\def\thissection{}
 
4772
\def\thissectionnum{}
 
4773
\def\thissectionname{}
4248
4774
 
4249
4775
\newcount\absseclevel % used to calculate proper heading level
4250
4776
\newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count
4545
5071
 
4546
5072
\def\chapbreak{\dobreak \chapheadingskip {-4000}}
4547
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
5089
\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
4551
5090
 
4579
5118
\def\Yappendixkeyword{Yappendix}
4580
5119
%
4581
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
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
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
5169
    % xref code eventually uses it.  On the other hand, it has to be called
4588
5170
    % after \pchapsepmacro, or the headline will change too soon.
4589
 
    \gdef\thissection{#1}%
4590
 
    \gdef\thischaptername{#1}%
 
5171
    \gdef\lastsection{#1}%
4591
5172
    %
4592
5173
    % Only insert the separating space if we have a chapter/appendix
4593
5174
    % number, and don't print the unnumbered ``number''.
4594
 
    \def\temptype{#2}%
4595
5175
    \ifx\temptype\Ynothingkeyword
4596
5176
      \setbox0 = \hbox{}%
4597
5177
      \def\toctype{unnchap}%
4598
 
      \gdef\thischapternum{}%
4599
 
      \gdef\thischapter{#1}%
4600
5178
    \else\ifx\temptype\Yomitfromtockeyword
4601
5179
      \setbox0 = \hbox{}% contents like unnumbered, but no toc entry
4602
5180
      \def\toctype{omit}%
4603
 
      \gdef\thischapternum{}%
4604
 
      \gdef\thischapter{}%
4605
5181
    \else\ifx\temptype\Yappendixkeyword
4606
5182
      \setbox0 = \hbox{\putwordAppendix{} #3\enspace}%
4607
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
5184
    \else
4616
5185
      \setbox0 = \hbox{#3\enspace}%
4617
5186
      \def\toctype{numchap}%
4618
 
      \xdef\thischapternum{\the\chapno}%
4619
 
      \xdef\thischapter{\putwordChapter{} \the\chapno:
4620
 
                        \noexpand\thischaptername}%
4621
5187
    \fi\fi\fi
4622
5188
    %
4623
5189
    % Write the toc entry for this chapter.  Must come before the
4633
5199
    \donoderef{#2}%
4634
5200
    %
4635
5201
    % Typeset the actual heading.
 
5202
    \nobreak % Avoid page breaks at the interline glue.
4636
5203
    \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
4637
5204
          \hangindent=\wd0 \centerparametersmaybe
4638
5205
          \unhbox0 #1\par}%
4695
5262
% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the
4696
5263
% section number.
4697
5264
%
 
5265
\def\seckeyword{sec}
 
5266
%
4698
5267
\def\sectionheading#1#2#3#4{%
4699
5268
  {%
4700
5269
    % Switch to the right set of fonts.
4701
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
5310
    % Insert space above the heading.
4704
5311
    \csname #2headingbreak\endcsname
4705
5312
    %
 
5313
    % Now the second mark, after the heading break.  No break points
 
5314
    % between here and the heading.
 
5315
    \let\prevsectiondefs=\lastsectiondefs
 
5316
    \domark
 
5317
    %
4706
5318
    % Only insert the space after the number if we have a section number.
4707
 
    \def\sectionlevel{#2}%
4708
 
    \def\temptype{#3}%
4709
 
    %
4710
5319
    \ifx\temptype\Ynothingkeyword
4711
5320
      \setbox0 = \hbox{}%
4712
5321
      \def\toctype{unn}%
4713
 
      \gdef\thissection{#1}%
 
5322
      \gdef\lastsection{#1}%
4714
5323
    \else\ifx\temptype\Yomitfromtockeyword
4715
5324
      % for @headings -- no section number, don't include in toc,
4716
 
      % and don't redefine \thissection.
 
5325
      % and don't redefine \lastsection.
4717
5326
      \setbox0 = \hbox{}%
4718
5327
      \def\toctype{omit}%
4719
5328
      \let\sectionlevel=\empty
4720
5329
    \else\ifx\temptype\Yappendixkeyword
4721
5330
      \setbox0 = \hbox{#4\enspace}%
4722
5331
      \def\toctype{app}%
4723
 
      \gdef\thissection{#1}%
 
5332
      \gdef\lastsection{#1}%
4724
5333
    \else
4725
5334
      \setbox0 = \hbox{#4\enspace}%
4726
5335
      \def\toctype{num}%
4727
 
      \gdef\thissection{#1}%
 
5336
      \gdef\lastsection{#1}%
4728
5337
    \fi\fi\fi
4729
5338
    %
4730
5339
    % Write the toc entry (before \donoderef).  See comments in \chapmacro.
4839
5448
\def\readtocfile{%
4840
5449
  \setupdatafile
4841
5450
  \activecatcodes
4842
 
  \input \jobname.toc
 
5451
  \input \tocreadfilename
4843
5452
}
4844
5453
 
4845
5454
\newskip\contentsrightmargin \contentsrightmargin=1in
4858
5467
  %
4859
5468
  % Don't need to put `Contents' or `Short Contents' in the headline.
4860
5469
  % It is abundantly clear what they are.
4861
 
  \def\thischapter{}%
4862
5470
  \chapmacro{#1}{Yomitfromtoc}{}%
4863
5471
  %
4864
5472
  \savepageno = \pageno
4870
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
5486
% Normal (long) toc.
 
5487
%
4875
5488
\def\contents{%
4876
5489
  \startcontents{\putwordTOC}%
4877
 
    \openin 1 \jobname.toc
 
5490
    \openin 1 \tocreadfilename\space
4878
5491
    \ifeof 1 \else
4879
5492
      \readtocfile
4880
5493
    \fi
4912
5525
    \let\numsubsubsecentry = \numsecentry
4913
5526
    \let\appsubsubsecentry = \numsecentry
4914
5527
    \let\unnsubsubsecentry = \numsecentry
4915
 
    \openin 1 \jobname.toc
 
5528
    \openin 1 \tocreadfilename\space
4916
5529
    \ifeof 1 \else
4917
5530
      \readtocfile
4918
5531
    \fi
5247
5860
\let\SETdispenvsize\relax
5248
5861
\def\setnormaldispenv{%
5249
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
5868
    \smallexamplefonts \rm
5251
5869
  \fi
5252
5870
}
5253
5871
\def\setsmalldispenv{%
5254
5872
  \ifx\SETdispenvsize\nosmallword
5255
5873
  \else
 
5874
    \ifnum \lastpenalty=10000 \else \endgraf \fi
5256
5875
    \smallexamplefonts \rm
5257
5876
  \fi
5258
5877
}
5419
6038
% regular 0x27.  
5420
6039
5421
6040
\def\codequoteright{%
5422
 
  \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
5423
 
    '%
5424
 
  \else
5425
 
    \char'15
5426
 
  \fi
 
6041
  \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
 
6042
    \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
 
6043
      '%
 
6044
    \else \char'15 \fi
 
6045
  \else \char'15 \fi
5427
6046
}
5428
6047
%
5429
6048
% and a similar option for the left quote char vs. a grave accent.
5431
6050
% the code environments to do likewise.
5432
6051
5433
6052
\def\codequoteleft{%
5434
 
  \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
5435
 
    `%
5436
 
  \else
5437
 
    \char'22
5438
 
  \fi
 
6053
  \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
 
6054
    \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
 
6055
      `%
 
6056
    \else \char'22 \fi
 
6057
  \else \char'22 \fi
5439
6058
}
5440
6059
%
5441
6060
\begingroup
5553
6172
  \endgroup
5554
6173
}
5555
6174
 
 
6175
 
5556
6176
\message{defuns,}
5557
6177
% @defun etc.
5558
6178
 
5559
6179
\newskip\defbodyindent \defbodyindent=.4in
5560
6180
\newskip\defargsindent \defargsindent=50pt
5561
6181
\newskip\deflastargmargin \deflastargmargin=18pt
 
6182
\newcount\defunpenalty
5562
6183
 
5563
6184
% Start the processing of @deffn:
5564
6185
\def\startdefun{%
5565
6186
  \ifnum\lastpenalty<10000
5566
6187
    \medbreak
 
6188
    \defunpenalty=10003 % Will keep this @deffn together with the
 
6189
                        % following @def command, see below.
5567
6190
  \else
5568
6191
    % If there are two @def commands in a row, we'll have a \nobreak,
5569
6192
    % which is there to keep the function description together with its
5570
6193
    % header.  But if there's nothing but headers, we need to allow a
5571
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
6196
    % commands also insert a nobreak penalty, and we don't want to allow
5574
6197
    % a break between a section heading and a defun.
5575
 
    % 
5576
 
    \ifnum\lastpenalty=10002 \penalty2000 \fi
 
6198
    %
 
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
6205
    % Similarly, after a section heading, do not allow a break.
5579
6206
    % But do insert the glue.
5591
6218
  %
5592
6219
  % As above, allow line break if we have multiple x headers in a row.
5593
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
6223
  % And now, it's time to reuse the body of the original defun:
5597
6224
  \expandafter\gobbledefun#1%
5609
6236
    \advance\rightskip by 0pt plus 1fil
5610
6237
    \endgraf
5611
6238
    \nobreak\vskip -\parskip
5612
 
    \penalty 10002  % signal to \startdefun and \dodefunx
 
6239
    \penalty\defunpenalty  % signal to \startdefun and \dodefunx
5613
6240
    % Some of the @defun-type tags do not enable magic parentheses,
5614
6241
    % rendering the following check redundant.  But we don't optimize.
5615
6242
    \checkparencounts
5878
6505
  \ifnum\parencount=0 \else \badparencount \fi
5879
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
6510
\def\badparencount{%
5882
 
  \errmessage{Unbalanced parentheses in @def}%
 
6511
  \message{Warning: unbalanced parentheses in @def...}%
5883
6512
  \global\parencount=0
5884
6513
}
5885
6514
\def\badbrackcount{%
5886
 
  \errmessage{Unbalanced square braces in @def}%
 
6515
  \message{Warning: unbalanced square brackets in @def...}%
5887
6516
  \global\brackcount=0
5888
6517
}
5889
6518
 
5978
6607
% all characters are catcode 10, 11 or 12, except \ which is active
5979
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
6614
% It's necessary to have hard CRs when the macro is executed. This is
5982
6615
% done by  making ^^M (\endlinechar) catcode 12 when reading the macro
5983
6616
% body, and then making it the \newlinechar in \scanmacro.
5992
6625
  \catcode`\_=\other
5993
6626
  \catcode`\|=\other
5994
6627
  \catcode`\~=\other
 
6628
  \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi
5995
6629
}
5996
6630
 
5997
6631
\def\scanargctxt{%
6209
6843
\message{cross references,}
6210
6844
 
6211
6845
\newwrite\auxfile
6212
 
 
6213
6846
\newif\ifhavexrefs    % True if xref values are known.
6214
6847
\newif\ifwarnedxrefs  % True if we warned once that they aren't known.
6215
6848
 
6254
6887
 
6255
6888
% \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an
6256
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
6891
%                 or the anchor name.
6259
6892
% 2) NAME-snt   - section number and type, passed as the SNT arg, or
6260
6893
%                 empty for anchors.
6273
6906
        \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
6274
6907
          ##1}{##2}}% these are parameters of \writexrdef
6275
6908
      }%
6276
 
      \toks0 = \expandafter{\thissection}%
 
6909
      \toks0 = \expandafter{\lastsection}%
6277
6910
      \immediate \writexrdef{title}{\the\toks0 }%
6278
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
6914
  \fi
6282
6915
}
6322
6955
  \ifpdf
6323
6956
    \leavevmode
6324
6957
    \getfilename{#4}%
6325
 
    {\turnoffactive
 
6958
    {\indexnofonts
 
6959
     \turnoffactive
6326
6960
     % See comments at \activebackslashdouble.
6327
6961
     {\activebackslashdouble \xdef\pdfxrefdest{#1}%
6328
6962
      \backslashparens\pdfxrefdest}%
6335
6969
         goto name{\pdfmkpgn{\pdfxrefdest}}%
6336
6970
     \fi
6337
6971
    }%
6338
 
    \linkcolor
 
6972
    \setcolor{\linkcolor}%
6339
6973
  \fi
6340
6974
  %
6341
6975
  % Float references are printed completely differently: "Figure 1.2"
6373
7007
    % is a loss.  Therefore, we give the text of the node name again, so it
6374
7008
    % is as if TeX is seeing it for the first time.
6375
7009
    \ifdim \wd1 > 0pt
6376
 
      \putwordsection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
 
7010
      \putwordSection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
6377
7011
    \else
6378
7012
      % _ (for example) has to be the character _ for the purposes of the
6379
7013
      % control sequence corresponding to the node, but it has to expand
6469
7103
% collisions).  But if this is a float type, we have more work to do.
6470
7104
%
6471
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
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
7118
    % it was a float, and we have the (safe) float type in \iffloattype.
6477
7119
    \expandafter\let\expandafter\floatlist
6478
7120
      \csname floatlist\iffloattype\endcsname
6487
7129
    %
6488
7130
    % Remember this xref in the control sequence \floatlistFLOATTYPE,
6489
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
7134
  \fi
6492
7135
}
6493
7136
 
6591
7234
  \input\jobname.#1
6592
7235
\endgroup}
6593
7236
 
 
7237
 
6594
7238
\message{insertions,}
6595
7239
% including footnotes.
6596
7240
 
6863
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
7511
        % XREFLABEL-title value.  \xrefX uses it to distinguish float
6868
7512
        % labels (which have a completely different output format) from
6869
7513
        % node and anchor labels.  And \xrdef uses it to construct the
6870
7514
        % lists of floats.
6871
7515
        %
6872
 
        \edef\thissection{\floatmagic=\safefloattype}%
 
7516
        \edef\lastsection{\floatmagic=\safefloattype}%
6873
7517
        \setref{\floatlabel}{Yfloat}%
6874
7518
      }%
6875
7519
    \fi
7004
7648
 
7005
7649
% #1 is the control sequence we are passed; we expand into a conditional
7006
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
7653
\def\iffloat#1{\expandafter\doiffloat#1==\finish}
7010
7654
%
7065
7709
  \writeentry
7066
7710
}}
7067
7711
 
 
7712
 
7068
7713
\message{localization,}
7069
 
% and i18n.
7070
7714
 
7071
7715
% @documentlanguage is usually given very early, just after
7072
7716
% @setfilename.  If done too late, it may not override everything
7073
 
% properly.  Single argument is the language abbreviation.
7074
 
% It would be nice if we could set up a hyphenation file here.
 
7717
% properly.  Single argument is the language (de) or locale (de_DE)
 
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
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
7727
    \openin 1 txi-#1.tex
7080
7728
    \ifeof 1
7081
 
      \errhelp = \nolanghelp
7082
 
      \errmessage{Cannot read language file txi-#1.tex}%
 
7729
      \documentlanguagetrywithoutunderscore{#1_\finish}%
7083
7730
    \else
7084
7731
      \input txi-#1.tex
7085
7732
    \fi
7086
7733
    \closein 1
7087
7734
  \endgroup
7088
 
}
 
7735
\endgroup}
 
7736
}
 
7737
%
 
7738
% If they passed de_DE, and txi-de_DE.tex doesn't exist,
 
7739
% try txi-de.tex.
 
7740
 
7741
\def\documentlanguagetrywithoutunderscore#1_#2\finish{%
 
7742
  \openin 1 txi-#1.tex
 
7743
  \ifeof 1
 
7744
    \errhelp = \nolanghelp
 
7745
    \errmessage{Cannot read language file txi-#1.tex}%
 
7746
  \else
 
7747
    \input txi-#1.tex
 
7748
  \fi
 
7749
  \closein 1
 
7750
}
 
7751
%
7089
7752
\newhelp\nolanghelp{The given language definition file cannot be found or
7090
7753
is empty.  Maybe you need to install it?  In the current directory
7091
7754
should work if nowhere else does.}
7092
7755
 
7093
 
 
7094
 
% @documentencoding should change something in TeX eventually, most
7095
 
% likely, but for now just recognize it.
7096
 
\let\documentencoding = \comment
7097
 
 
7098
 
 
7099
 
% Page size parameters.
7100
 
%
 
7756
% Set the catcode of characters 128 through 255 to the specified number.
 
7757
%
 
7758
\def\setnonasciicharscatcode#1{%
 
7759
   \count255=128
 
7760
   \loop\ifnum\count255<256
 
7761
      \global\catcode\count255=#1\relax
 
7762
      \advance\count255 by 1
 
7763
   \repeat
 
7764
}
 
7765
 
 
7766
\def\setnonasciicharscatcodenonglobal#1{%
 
7767
   \count255=128
 
7768
   \loop\ifnum\count255<256
 
7769
      \catcode\count255=#1\relax
 
7770
      \advance\count255 by 1
 
7771
   \repeat
 
7772
}
 
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
 
8067
 
 
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}
 
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
8577
\newdimen\defaultparindent \defaultparindent = 15pt
7102
8578
 
7103
8579
\chapheadingskip = 15pt plus 4pt minus 2pt
7110
8586
% Don't be so finicky about underfull hboxes, either.
7111
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
8590
\widowpenalty=10000
7115
8591
\clubpenalty=10000
7116
8592
 
7157
8633
  \ifpdf
7158
8634
    \pdfpageheight #7\relax
7159
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
8640
  \fi
7161
8641
  %
7162
8642
  \setleading{\textleading}
7171
8651
  \textleading = 13.2pt
7172
8652
  %
7173
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
8655
                    {\voffset}{.25in}%
7176
8656
                    {\bindingoffset}{36pt}%
7177
8657
                    {11in}{8.5in}%
7183
8663
  \textleading = 12pt
7184
8664
  %
7185
8665
  \internalpagesizes{7.5in}{5in}%
7186
 
                    {\voffset}{.25in}%
 
8666
                    {-.2in}{0in}%
7187
8667
                    {\bindingoffset}{16pt}%
7188
8668
                    {9.25in}{7in}%
7189
8669
  %
7227
8707
  % \global\normaloffset = -6mm
7228
8708
  % \global\bindingoffset = 10mm
7229
8709
  % @end tex
7230
 
  \internalpagesizes{51\baselineskip}{160mm}
 
8710
  \internalpagesizes{673.2pt}{160mm}% that's 51 lines
7231
8711
                    {\voffset}{\hoffset}%
7232
8712
                    {\bindingoffset}{44pt}%
7233
8713
                    {297mm}{210mm}%
7292
8772
  \parskip = 3pt plus 2pt minus 1pt
7293
8773
  \setleading{\textleading}%
7294
8774
  %
7295
 
  \dimen0 = #1
 
8775
  \dimen0 = #1\relax
7296
8776
  \advance\dimen0 by \voffset
7297
8777
  %
7298
8778
  \dimen2 = \hsize