diff options
| author | Pavel Janík | 2002-09-06 10:04:28 +0000 |
|---|---|---|
| committer | Pavel Janík | 2002-09-06 10:04:28 +0000 |
| commit | 08b16a022f38ae1087bac357a8389b48e6f4dd9e (patch) | |
| tree | 27beb5f54b6693eb0b73693c157c0b87f1674557 | |
| parent | c3518b639e014a123f4666407c2e41c201e71f0d (diff) | |
| download | emacs-08b16a022f38ae1087bac357a8389b48e6f4dd9e.tar.gz emacs-08b16a022f38ae1087bac357a8389b48e6f4dd9e.zip | |
Updated to texinfo 4.2.
| -rw-r--r-- | man/ChangeLog | 8 | ||||
| -rw-r--r-- | man/texinfo.tex | 913 |
2 files changed, 514 insertions, 407 deletions
diff --git a/man/ChangeLog b/man/ChangeLog index b7257447857..1e0c8ef9b34 100644 --- a/man/ChangeLog +++ b/man/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2002-09-06 Pavel Jan,Bm(Bk <Pavel@Janik.cz> | ||
| 2 | |||
| 3 | * texinfo.tex: Updated to texinfo 4.2. | ||
| 4 | |||
| 1 | 2002-08-27 Carsten Dominik <dominik@sand.science.uva.nl> | 5 | 2002-08-27 Carsten Dominik <dominik@sand.science.uva.nl> |
| 2 | 6 | ||
| 3 | * reftex.texi: Update to RefTeX 4.19 | 7 | * reftex.texi: Update to RefTeX 4.19 |
| @@ -369,7 +373,7 @@ | |||
| 369 | * info.texi, info-stn.texi: New files implement texinfo version of | 373 | * info.texi, info-stn.texi: New files implement texinfo version of |
| 370 | `info' file. | 374 | `info' file. |
| 371 | 375 | ||
| 372 | * frames.texi (Creating Frames): Mention `C-x 5' instead of `C-x | 376 | * frames.texi (Creating Frames): Mention `C-x 5' instead of `C-x |
| 373 | 4' where appropriate. | 377 | 4' where appropriate. |
| 374 | 378 | ||
| 375 | 1993-10-20 Brian Fox (bfox@ai.mit.edu) | 379 | 1993-10-20 Brian Fox (bfox@ai.mit.edu) |
| @@ -477,7 +481,7 @@ | |||
| 477 | 481 | ||
| 478 | 1993-04-18 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu) | 482 | 1993-04-18 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu) |
| 479 | 483 | ||
| 480 | * text.texi: Updated unix TeX ordering information. | 484 | * text.texi: Updated unix TeX ordering information. |
| 481 | 485 | ||
| 482 | 1993-03-26 Eric S. Raymond (eric@geech.gnu.ai.mit.edu) | 486 | 1993-03-26 Eric S. Raymond (eric@geech.gnu.ai.mit.edu) |
| 483 | 487 | ||
diff --git a/man/texinfo.tex b/man/texinfo.tex index 0b5b9033f2e..b0a1cfc3e72 100644 --- a/man/texinfo.tex +++ b/man/texinfo.tex | |||
| @@ -3,10 +3,10 @@ | |||
| 3 | % Load plain if necessary, i.e., if running under initex. | 3 | % Load plain if necessary, i.e., if running under initex. |
| 4 | \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi | 4 | \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi |
| 5 | % | 5 | % |
| 6 | \def\texinfoversion{2001-03-28.08} | 6 | \def\texinfoversion{2002-06-04.06} |
| 7 | % | 7 | % |
| 8 | % Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, | 8 | % Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, |
| 9 | % 2000, 01 Free Software Foundation, Inc. | 9 | % 2000, 01, 02 Free Software Foundation, Inc. |
| 10 | % | 10 | % |
| 11 | % This texinfo.tex file is free software; you can redistribute it and/or | 11 | % This texinfo.tex file is free software; you can redistribute it and/or |
| 12 | % modify it under the terms of the GNU General Public License as | 12 | % modify it under the terms of the GNU General Public License as |
| @@ -30,14 +30,17 @@ | |||
| 30 | % Please try the latest version of texinfo.tex before submitting bug | 30 | % Please try the latest version of texinfo.tex before submitting bug |
| 31 | % reports; you can get the latest version from: | 31 | % reports; you can get the latest version from: |
| 32 | % ftp://ftp.gnu.org/gnu/texinfo.tex | 32 | % ftp://ftp.gnu.org/gnu/texinfo.tex |
| 33 | % (and all GNU mirrors, see http://www.gnu.org/order/ftp.html) | 33 | % (and all GNU mirrors, see http://www.gnu.org/order/ftp.html) |
| 34 | % ftp://texinfo.org/tex/texinfo.tex | 34 | % ftp://texinfo.org/texinfo/texinfo.tex |
| 35 | % ftp://us.ctan.org/macros/texinfo/texinfo.tex | 35 | % ftp://tug.org/tex/texinfo.tex |
| 36 | % (and all CTAN mirrors, finger ctan@us.ctan.org for a list). | 36 | % (and all CTAN mirrors, see http://www.ctan.org), |
| 37 | % /home/gd/gnu/doc/texinfo.tex on the GNU machines. | 37 | % and /home/gd/gnu/doc/texinfo.tex on the GNU machines. |
| 38 | % | ||
| 38 | % The texinfo.tex in any given Texinfo distribution could well be out | 39 | % The texinfo.tex in any given Texinfo distribution could well be out |
| 39 | % of date, so if that's what you're using, please check. | 40 | % of date, so if that's what you're using, please check. |
| 40 | % Texinfo has a small home page at http://texinfo.org/. | 41 | % |
| 42 | % Texinfo has a small home page at http://texinfo.org/ and also | ||
| 43 | % http://www.gnu.org/software/texinfo. | ||
| 41 | % | 44 | % |
| 42 | % Send bug reports to bug-texinfo@gnu.org. Please include including a | 45 | % Send bug reports to bug-texinfo@gnu.org. Please include including a |
| 43 | % complete document in each bug report with which we can reproduce the | 46 | % complete document in each bug report with which we can reproduce the |
| @@ -50,13 +53,13 @@ | |||
| 50 | % texindex foo.?? | 53 | % texindex foo.?? |
| 51 | % tex foo.texi | 54 | % tex foo.texi |
| 52 | % tex foo.texi | 55 | % tex foo.texi |
| 53 | % dvips foo.dvi -o # or whatever, to process the dvi file; this makes foo.ps. | 56 | % dvips foo.dvi -o # or whatever; this makes foo.ps. |
| 54 | % The extra runs of TeX get the cross-reference information correct. | 57 | % The extra TeX runs get the cross-reference information correct. |
| 55 | % Sometimes one run after texindex suffices, and sometimes you need more | 58 | % Sometimes one run after texindex suffices, and sometimes you need more |
| 56 | % than two; texi2dvi does it as many times as necessary. | 59 | % than two; texi2dvi does it as many times as necessary. |
| 57 | % | 60 | % |
| 58 | % It is possible to adapt texinfo.tex for other languages. You can get | 61 | % It is possible to adapt texinfo.tex for other languages. You can get |
| 59 | % the existing language-specific files from ftp://ftp.gnu.org/gnu/texinfo/. | 62 | % the existing language-specific files from the full Texinfo distribution. |
| 60 | 63 | ||
| 61 | \message{Loading texinfo [version \texinfoversion]:} | 64 | \message{Loading texinfo [version \texinfoversion]:} |
| 62 | 65 | ||
| @@ -170,6 +173,16 @@ | |||
| 170 | }% | 173 | }% |
| 171 | \fi | 174 | \fi |
| 172 | 175 | ||
| 176 | % add check for \lastpenalty to plain's definitions. If the last thing | ||
| 177 | % we did was a \nobreak, we don't want to insert more space. | ||
| 178 | % | ||
| 179 | \def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount | ||
| 180 | \removelastskip\penalty-50\smallskip\fi\fi} | ||
| 181 | \def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount | ||
| 182 | \removelastskip\penalty-100\medskip\fi\fi} | ||
| 183 | \def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount | ||
| 184 | \removelastskip\penalty-200\bigskip\fi\fi} | ||
| 185 | |||
| 173 | % For @cropmarks command. | 186 | % For @cropmarks command. |
| 174 | % Do @cropmarks to get crop marks. | 187 | % Do @cropmarks to get crop marks. |
| 175 | % | 188 | % |
| @@ -431,7 +444,7 @@ | |||
| 431 | % environments. --karl, 6may93 | 444 | % environments. --karl, 6may93 |
| 432 | %{\advance \baselineskip by -\singlespaceskip | 445 | %{\advance \baselineskip by -\singlespaceskip |
| 433 | %\kern \baselineskip}% | 446 | %\kern \baselineskip}% |
| 434 | \setleading \singlespaceskip | 447 | \setleading\singlespaceskip |
| 435 | } | 448 | } |
| 436 | 449 | ||
| 437 | %% Simple single-character @ commands | 450 | %% Simple single-character @ commands |
| @@ -823,18 +836,43 @@ where each line of input produces a line of output.} | |||
| 823 | % | 836 | % |
| 824 | \def\asis#1{#1} | 837 | \def\asis#1{#1} |
| 825 | 838 | ||
| 826 | % @math means output in math mode. | 839 | % @math outputs its argument in math mode. |
| 827 | % We don't use $'s directly in the definition of \math because control | 840 | % We don't use $'s directly in the definition of \math because we need |
| 828 | % sequences like \math are expanded when the toc file is written. Then, | 841 | % to set catcodes according to plain TeX first, to allow for subscripts, |
| 829 | % we read the toc file back, the $'s will be normal characters (as they | 842 | % superscripts, special math chars, etc. |
| 830 | % should be, according to the definition of Texinfo). So we must use a | 843 | % |
| 831 | % control sequence to switch into and out of math mode. | 844 | % @math does not do math typesetting in section titles, index |
| 845 | % entries, and other such contexts where the catcodes are set before | ||
| 846 | % @math gets a chance to work. This could perhaps be fixed, but for now | ||
| 847 | % at least we can have real math in the main text, where it's needed most. | ||
| 832 | % | 848 | % |
| 833 | % This isn't quite enough for @math to work properly in indices, but it | 849 | \let\implicitmath = $%$ font-lock fix |
| 834 | % seems unlikely it will ever be needed there. | ||
| 835 | % | 850 | % |
| 836 | \let\implicitmath = $ | 851 | % One complication: _ usually means subscripts, but it could also mean |
| 837 | \def\math#1{\implicitmath #1\implicitmath} | 852 | % an actual _ character, as in @math{@var{some_variable} + 1}. So make |
| 853 | % _ within @math be active (mathcode "8000), and distinguish by seeing | ||
| 854 | % if the current family is \slfam, which is what @var uses. | ||
| 855 | % | ||
| 856 | {\catcode95 = \active % 95 = _ | ||
| 857 | \gdef\mathunderscore{% | ||
| 858 | \catcode95=\active | ||
| 859 | \def_{\ifnum\fam=\slfam \_\else\sb\fi}% | ||
| 860 | }} | ||
| 861 | % | ||
| 862 | % Another complication: we want \\ (and @\) to output a \ character. | ||
| 863 | % FYI, plain.tex uses \\ as a temporary control sequence (why?), but | ||
| 864 | % this is not advertised and we don't care. Texinfo does not | ||
| 865 | % otherwise define @\. | ||
| 866 | % | ||
| 867 | % The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. | ||
| 868 | \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} | ||
| 869 | % | ||
| 870 | \def\math{% | ||
| 871 | \tex | ||
| 872 | \mathcode`\_="8000 \mathunderscore | ||
| 873 | \let\\ = \mathbackslash | ||
| 874 | \implicitmath\finishmath} | ||
| 875 | \def\finishmath#1{#1\implicitmath\Etex} | ||
| 838 | 876 | ||
| 839 | % @bullet and @minus need the same treatment as @math, just above. | 877 | % @bullet and @minus need the same treatment as @math, just above. |
| 840 | \def\bullet{\implicitmath\ptexbullet\implicitmath} | 878 | \def\bullet{\implicitmath\ptexbullet\implicitmath} |
| @@ -917,10 +955,12 @@ where each line of input produces a line of output.} | |||
| 917 | \def\dopdfimage#1#2#3{% | 955 | \def\dopdfimage#1#2#3{% |
| 918 | \def\imagewidth{#2}% | 956 | \def\imagewidth{#2}% |
| 919 | \def\imageheight{#3}% | 957 | \def\imageheight{#3}% |
| 958 | % without \immediate, pdftex seg faults when the same image is | ||
| 959 | % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) | ||
| 920 | \ifnum\pdftexversion < 14 | 960 | \ifnum\pdftexversion < 14 |
| 921 | \pdfimage | 961 | \immediate\pdfimage |
| 922 | \else | 962 | \else |
| 923 | \pdfximage | 963 | \immediate\pdfximage |
| 924 | \fi | 964 | \fi |
| 925 | \ifx\empty\imagewidth\else width \imagewidth \fi | 965 | \ifx\empty\imagewidth\else width \imagewidth \fi |
| 926 | \ifx\empty\imageheight\else height \imageheight \fi | 966 | \ifx\empty\imageheight\else height \imageheight \fi |
| @@ -932,8 +972,8 @@ where each line of input produces a line of output.} | |||
| 932 | \ifnum\pdftexversion < 14 \else | 972 | \ifnum\pdftexversion < 14 \else |
| 933 | \pdfrefximage \pdflastximage | 973 | \pdfrefximage \pdflastximage |
| 934 | \fi} | 974 | \fi} |
| 935 | \def\pdfmkdest#1{\pdfdest name{#1} xyz} | 975 | \def\pdfmkdest#1{{\normalturnoffactive \pdfdest name{#1} xyz}} |
| 936 | \def\pdfmkpgn#1{#1@} | 976 | \def\pdfmkpgn#1{#1} |
| 937 | \let\linkcolor = \Blue % was Cyan, but that seems light? | 977 | \let\linkcolor = \Blue % was Cyan, but that seems light? |
| 938 | \def\endlink{\Black\pdfendlink} | 978 | \def\endlink{\Black\pdfendlink} |
| 939 | % Adding outlines to PDF; macros for calculating structure of outlines | 979 | % Adding outlines to PDF; macros for calculating structure of outlines |
| @@ -945,7 +985,7 @@ where each line of input produces a line of output.} | |||
| 945 | \expandafter\xdef\csname#1\endcsname{\the\tempnum}} | 985 | \expandafter\xdef\csname#1\endcsname{\the\tempnum}} |
| 946 | \def\pdfmakeoutlines{{% | 986 | \def\pdfmakeoutlines{{% |
| 947 | \openin 1 \jobname.toc | 987 | \openin 1 \jobname.toc |
| 948 | \ifeof 1\else\bgroup | 988 | \ifeof 1\else\begingroup |
| 949 | \closein 1 | 989 | \closein 1 |
| 950 | \indexnofonts | 990 | \indexnofonts |
| 951 | \def\tt{} | 991 | \def\tt{} |
| @@ -955,32 +995,34 @@ where each line of input produces a line of output.} | |||
| 955 | \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace | 995 | \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace |
| 956 | % | 996 | % |
| 957 | \def\chapentry ##1##2##3{} | 997 | \def\chapentry ##1##2##3{} |
| 998 | \let\appendixentry = \chapentry | ||
| 958 | \def\unnumbchapentry ##1##2{} | 999 | \def\unnumbchapentry ##1##2{} |
| 959 | \def\secentry ##1##2##3##4{\advancenumber{chap##2}} | 1000 | \def\secentry ##1##2##3##4{\advancenumber{chap##2}} |
| 960 | \def\unnumbsecentry ##1##2{} | 1001 | \def\unnumbsecentry ##1##2##3{\advancenumber{chap##2}} |
| 961 | \def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}} | 1002 | \def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}} |
| 962 | \def\unnumbsubsecentry ##1##2{} | 1003 | \def\unnumbsubsecentry ##1##2##3##4{\advancenumber{sec##2.##3}} |
| 963 | \def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}} | 1004 | \def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}} |
| 964 | \def\unnumbsubsubsecentry ##1##2{} | 1005 | \def\unnumbsubsubsecentry ##1##2##3##4##5{\advancenumber{subsec##2.##3.##4}} |
| 965 | \input \jobname.toc | 1006 | \input \jobname.toc |
| 966 | \def\chapentry ##1##2##3{% | 1007 | \def\chapentry ##1##2##3{% |
| 967 | \pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}} | 1008 | \pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}} |
| 1009 | \let\appendixentry = \chapentry | ||
| 968 | \def\unnumbchapentry ##1##2{% | 1010 | \def\unnumbchapentry ##1##2{% |
| 969 | \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} | 1011 | \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} |
| 970 | \def\secentry ##1##2##3##4{% | 1012 | \def\secentry ##1##2##3##4{% |
| 971 | \pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}} | 1013 | \pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}} |
| 972 | \def\unnumbsecentry ##1##2{% | 1014 | \def\unnumbsecentry ##1##2##3{% |
| 973 | \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} | 1015 | \pdfoutline goto name{\pdfmkpgn{##3}}{##1}} |
| 974 | \def\subsecentry ##1##2##3##4##5{% | 1016 | \def\subsecentry ##1##2##3##4##5{% |
| 975 | \pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}} | 1017 | \pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}} |
| 976 | \def\unnumbsubsecentry ##1##2{% | 1018 | \def\unnumbsubsecentry ##1##2##3##4{% |
| 977 | \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} | 1019 | \pdfoutline goto name{\pdfmkpgn{##4}}{##1}} |
| 978 | \def\subsubsecentry ##1##2##3##4##5##6{% | 1020 | \def\subsubsecentry ##1##2##3##4##5##6{% |
| 979 | \pdfoutline goto name{\pdfmkpgn{##6}}{##1}} | 1021 | \pdfoutline goto name{\pdfmkpgn{##6}}{##1}} |
| 980 | \def\unnumbsubsubsecentry ##1##2{% | 1022 | \def\unnumbsubsubsecentry ##1##2##3##4##5{% |
| 981 | \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} | 1023 | \pdfoutline goto name{\pdfmkpgn{##5}}{##1}} |
| 982 | \input \jobname.toc | 1024 | \input \jobname.toc |
| 983 | \egroup\fi | 1025 | \endgroup\fi |
| 984 | }} | 1026 | }} |
| 985 | \def\makelinks #1,{% | 1027 | \def\makelinks #1,{% |
| 986 | \def\params{#1}\def\E{END}% | 1028 | \def\params{#1}\def\E{END}% |
| @@ -1030,6 +1072,7 @@ where each line of input produces a line of output.} | |||
| 1030 | \def\pdfurl#1{% | 1072 | \def\pdfurl#1{% |
| 1031 | \begingroup | 1073 | \begingroup |
| 1032 | \normalturnoffactive\def\@{@}% | 1074 | \normalturnoffactive\def\@{@}% |
| 1075 | \let\value=\expandablevalue | ||
| 1033 | \leavevmode\Red | 1076 | \leavevmode\Red |
| 1034 | \startlink attr{/Border [0 0 0]}% | 1077 | \startlink attr{/Border [0 0 0]}% |
| 1035 | user{/Subtype /Link /A << /S /URI /URI (#1) >>}% | 1078 | user{/Subtype /Link /A << /S /URI /URI (#1) >>}% |
| @@ -1057,9 +1100,8 @@ where each line of input produces a line of output.} | |||
| 1057 | \def\makelink{\addtokens{\toksB}% | 1100 | \def\makelink{\addtokens{\toksB}% |
| 1058 | {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} | 1101 | {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} |
| 1059 | \def\pdflink#1{% | 1102 | \def\pdflink#1{% |
| 1060 | \startlink attr{/Border [0 0 0]} goto name{\mkpgn{#1}} | 1103 | \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} |
| 1061 | \linkcolor #1\endlink} | 1104 | \linkcolor #1\endlink} |
| 1062 | \def\mkpgn#1{#1@} | ||
| 1063 | \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} | 1105 | \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} |
| 1064 | \fi % \ifx\pdfoutput | 1106 | \fi % \ifx\pdfoutput |
| 1065 | 1107 | ||
| @@ -1076,9 +1118,26 @@ where each line of input produces a line of output.} | |||
| 1076 | % We don't need math for this one. | 1118 | % We don't need math for this one. |
| 1077 | \def\ttsl{\tenttsl} | 1119 | \def\ttsl{\tenttsl} |
| 1078 | 1120 | ||
| 1079 | % Use Computer Modern fonts at \magstephalf (11pt). | 1121 | % Default leading. |
| 1080 | \newcount\mainmagstep | 1122 | \newdimen\textleading \textleading = 13.2pt |
| 1081 | \mainmagstep=\magstephalf | 1123 | |
| 1124 | % Set the baselineskip to #1, and the lineskip and strut size | ||
| 1125 | % correspondingly. There is no deep meaning behind these magic numbers | ||
| 1126 | % used as factors; they just match (closely enough) what Knuth defined. | ||
| 1127 | % | ||
| 1128 | \def\lineskipfactor{.08333} | ||
| 1129 | \def\strutheightpercent{.70833} | ||
| 1130 | \def\strutdepthpercent {.29167} | ||
| 1131 | % | ||
| 1132 | \def\setleading#1{% | ||
| 1133 | \normalbaselineskip = #1\relax | ||
| 1134 | \normallineskip = \lineskipfactor\normalbaselineskip | ||
| 1135 | \normalbaselines | ||
| 1136 | \setbox\strutbox =\hbox{% | ||
| 1137 | \vrule width0pt height\strutheightpercent\baselineskip | ||
| 1138 | depth \strutdepthpercent \baselineskip | ||
| 1139 | }% | ||
| 1140 | } | ||
| 1082 | 1141 | ||
| 1083 | % Set the font macro #1 to the font named #2, adding on the | 1142 | % Set the font macro #1 to the font named #2, adding on the |
| 1084 | % specified font prefix (normally `cm'). | 1143 | % specified font prefix (normally `cm'). |
| @@ -1108,13 +1167,16 @@ where each line of input produces a line of output.} | |||
| 1108 | \def\scshape{csc} | 1167 | \def\scshape{csc} |
| 1109 | \def\scbshape{csc} | 1168 | \def\scbshape{csc} |
| 1110 | 1169 | ||
| 1170 | \newcount\mainmagstep | ||
| 1111 | \ifx\bigger\relax | 1171 | \ifx\bigger\relax |
| 1112 | \let\mainmagstep=\magstep1 | 1172 | % not really supported. |
| 1113 | \setfont\textrm\rmshape{12}{1000} | 1173 | \let\mainmagstep=\magstep1 |
| 1114 | \setfont\texttt\ttshape{12}{1000} | 1174 | \setfont\textrm\rmshape{12}{1000} |
| 1175 | \setfont\texttt\ttshape{12}{1000} | ||
| 1115 | \else | 1176 | \else |
| 1116 | \setfont\textrm\rmshape{10}{\mainmagstep} | 1177 | \mainmagstep=\magstephalf |
| 1117 | \setfont\texttt\ttshape{10}{\mainmagstep} | 1178 | \setfont\textrm\rmshape{10}{\mainmagstep} |
| 1179 | \setfont\texttt\ttshape{10}{\mainmagstep} | ||
| 1118 | \fi | 1180 | \fi |
| 1119 | % Instead of cmb10, you many want to use cmbx10. | 1181 | % Instead of cmb10, you many want to use cmbx10. |
| 1120 | % cmbx10 is a prettier font on its own, but cmb10 | 1182 | % cmbx10 is a prettier font on its own, but cmb10 |
| @@ -1145,6 +1207,18 @@ where each line of input produces a line of output.} | |||
| 1145 | \font\smalli=cmmi9 | 1207 | \font\smalli=cmmi9 |
| 1146 | \font\smallsy=cmsy9 | 1208 | \font\smallsy=cmsy9 |
| 1147 | 1209 | ||
| 1210 | % Fonts for small examples (8pt). | ||
| 1211 | \setfont\smallerrm\rmshape{8}{1000} | ||
| 1212 | \setfont\smallertt\ttshape{8}{1000} | ||
| 1213 | \setfont\smallerbf\bfshape{10}{800} | ||
| 1214 | \setfont\smallerit\itshape{8}{1000} | ||
| 1215 | \setfont\smallersl\slshape{8}{1000} | ||
| 1216 | \setfont\smallersf\sfshape{8}{1000} | ||
| 1217 | \setfont\smallersc\scshape{10}{800} | ||
| 1218 | \setfont\smallerttsl\ttslshape{10}{800} | ||
| 1219 | \font\smalleri=cmmi8 | ||
| 1220 | \font\smallersy=cmsy8 | ||
| 1221 | |||
| 1148 | % Fonts for title page: | 1222 | % Fonts for title page: |
| 1149 | \setfont\titlerm\rmbshape{12}{\magstep3} | 1223 | \setfont\titlerm\rmbshape{12}{\magstep3} |
| 1150 | \setfont\titleit\itbshape{10}{\magstep4} | 1224 | \setfont\titleit\itbshape{10}{\magstep4} |
| @@ -1182,20 +1256,6 @@ where each line of input produces a line of output.} | |||
| 1182 | \font\seci=cmmi12 scaled \magstep1 | 1256 | \font\seci=cmmi12 scaled \magstep1 |
| 1183 | \font\secsy=cmsy10 scaled \magstep2 | 1257 | \font\secsy=cmsy10 scaled \magstep2 |
| 1184 | 1258 | ||
| 1185 | % \setfont\ssecrm\bxshape{10}{\magstep1} % This size an font looked bad. | ||
| 1186 | % \setfont\ssecit\itshape{10}{\magstep1} % The letters were too crowded. | ||
| 1187 | % \setfont\ssecsl\slshape{10}{\magstep1} | ||
| 1188 | % \setfont\ssectt\ttshape{10}{\magstep1} | ||
| 1189 | % \setfont\ssecsf\sfshape{10}{\magstep1} | ||
| 1190 | |||
| 1191 | %\setfont\ssecrm\bfshape{10}{1315} % Note the use of cmb rather than cmbx. | ||
| 1192 | %\setfont\ssecit\itshape{10}{1315} % Also, the size is a little larger than | ||
| 1193 | %\setfont\ssecsl\slshape{10}{1315} % being scaled magstep1. | ||
| 1194 | %\setfont\ssectt\ttshape{10}{1315} | ||
| 1195 | %\setfont\ssecsf\sfshape{10}{1315} | ||
| 1196 | |||
| 1197 | %\let\ssecbf=\ssecrm | ||
| 1198 | |||
| 1199 | % Subsection fonts (13.15pt). | 1259 | % Subsection fonts (13.15pt). |
| 1200 | \setfont\ssecrm\rmbshape{12}{\magstephalf} | 1260 | \setfont\ssecrm\rmbshape{12}{\magstephalf} |
| 1201 | \setfont\ssecit\itbshape{10}{1315} | 1261 | \setfont\ssecit\itbshape{10}{1315} |
| @@ -1212,17 +1272,16 @@ where each line of input produces a line of output.} | |||
| 1212 | 1272 | ||
| 1213 | % In order for the font changes to affect most math symbols and letters, | 1273 | % In order for the font changes to affect most math symbols and letters, |
| 1214 | % we have to define the \textfont of the standard families. Since | 1274 | % we have to define the \textfont of the standard families. Since |
| 1215 | % texinfo doesn't allow for producing subscripts and superscripts, we | 1275 | % texinfo doesn't allow for producing subscripts and superscripts except |
| 1216 | % don't bother to reset \scriptfont and \scriptscriptfont (which would | 1276 | % in the main text, we don't bother to reset \scriptfont and |
| 1217 | % also require loading a lot more fonts). | 1277 | % \scriptscriptfont (which would also require loading a lot more fonts). |
| 1218 | % | 1278 | % |
| 1219 | \def\resetmathfonts{% | 1279 | \def\resetmathfonts{% |
| 1220 | \textfont0 = \tenrm \textfont1 = \teni \textfont2 = \tensy | 1280 | \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy |
| 1221 | \textfont\itfam = \tenit \textfont\slfam = \tensl \textfont\bffam = \tenbf | 1281 | \textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf |
| 1222 | \textfont\ttfam = \tentt \textfont\sffam = \tensf | 1282 | \textfont\ttfam=\tentt \textfont\sffam=\tensf |
| 1223 | } | 1283 | } |
| 1224 | 1284 | ||
| 1225 | |||
| 1226 | % The font-changing commands redefine the meanings of \tenSTYLE, instead | 1285 | % The font-changing commands redefine the meanings of \tenSTYLE, instead |
| 1227 | % of just \STYLE. We do this so that font changes will continue to work | 1286 | % of just \STYLE. We do this so that font changes will continue to work |
| 1228 | % in math mode, where it is the current \fam that is relevant in most | 1287 | % in math mode, where it is the current \fam that is relevant in most |
| @@ -1233,7 +1292,7 @@ where each line of input produces a line of output.} | |||
| 1233 | \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl | 1292 | \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl |
| 1234 | \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc | 1293 | \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc |
| 1235 | \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl | 1294 | \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl |
| 1236 | \resetmathfonts} | 1295 | \resetmathfonts \setleading{\textleading}} |
| 1237 | \def\titlefonts{% | 1296 | \def\titlefonts{% |
| 1238 | \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl | 1297 | \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl |
| 1239 | \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc | 1298 | \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc |
| @@ -1262,7 +1321,14 @@ where each line of input produces a line of output.} | |||
| 1262 | \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc | 1321 | \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc |
| 1263 | \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy | 1322 | \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy |
| 1264 | \let\tenttsl=\smallttsl | 1323 | \let\tenttsl=\smallttsl |
| 1265 | \resetmathfonts \setleading{11pt}} | 1324 | \resetmathfonts \setleading{10.5pt}} |
| 1325 | \def\smallerfonts{% | ||
| 1326 | \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl | ||
| 1327 | \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc | ||
| 1328 | \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy | ||
| 1329 | \let\tenttsl=\smallerttsl | ||
| 1330 | \resetmathfonts \setleading{9.5pt}} | ||
| 1331 | \let\smallexamplefonts = \smallerfonts | ||
| 1266 | 1332 | ||
| 1267 | % Set up the default fonts, so we can use them for creating boxes. | 1333 | % Set up the default fonts, so we can use them for creating boxes. |
| 1268 | % | 1334 | % |
| @@ -1376,11 +1442,19 @@ where each line of input produces a line of output.} | |||
| 1376 | 1442 | ||
| 1377 | \def\realdash{-} | 1443 | \def\realdash{-} |
| 1378 | \def\codedash{-\discretionary{}{}{}} | 1444 | \def\codedash{-\discretionary{}{}{}} |
| 1379 | \def\codeunder{\ifusingtt{\normalunderscore\discretionary{}{}{}}{\_}} | 1445 | \def\codeunder{% |
| 1446 | % this is all so @math{@code{var_name}+1} can work. In math mode, _ | ||
| 1447 | % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.) | ||
| 1448 | % will therefore expand the active definition of _, which is us | ||
| 1449 | % (inside @code that is), therefore an endless loop. | ||
| 1450 | \ifusingtt{\ifmmode | ||
| 1451 | \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_. | ||
| 1452 | \else\normalunderscore \fi | ||
| 1453 | \discretionary{}{}{}}% | ||
| 1454 | {\_}% | ||
| 1455 | } | ||
| 1380 | \def\codex #1{\tclose{#1}\endgroup} | 1456 | \def\codex #1{\tclose{#1}\endgroup} |
| 1381 | 1457 | ||
| 1382 | %\let\exp=\tclose %Was temporary | ||
| 1383 | |||
| 1384 | % @kbd is like @code, except that if the argument is just one @key command, | 1458 | % @kbd is like @code, except that if the argument is just one @key command, |
| 1385 | % then @kbd has no effect. | 1459 | % then @kbd has no effect. |
| 1386 | 1460 | ||
| @@ -1565,6 +1639,10 @@ where each line of input produces a line of output.} | |||
| 1565 | \oldpage | 1639 | \oldpage |
| 1566 | \endgroup | 1640 | \endgroup |
| 1567 | % | 1641 | % |
| 1642 | % Need this before the \...aftertitlepage checks so that if they are | ||
| 1643 | % in effect the toc pages will come out with page numbers. | ||
| 1644 | \HEADINGSon | ||
| 1645 | % | ||
| 1568 | % If they want short, they certainly want long too. | 1646 | % If they want short, they certainly want long too. |
| 1569 | \ifsetshortcontentsaftertitlepage | 1647 | \ifsetshortcontentsaftertitlepage |
| 1570 | \shortcontents | 1648 | \shortcontents |
| @@ -1578,10 +1656,6 @@ where each line of input produces a line of output.} | |||
| 1578 | \global\let\contents = \relax | 1656 | \global\let\contents = \relax |
| 1579 | \global\let\shortcontents = \relax | 1657 | \global\let\shortcontents = \relax |
| 1580 | \fi | 1658 | \fi |
| 1581 | % | ||
| 1582 | \ifpdf \pdfmakepagedesttrue \fi | ||
| 1583 | % | ||
| 1584 | \HEADINGSon | ||
| 1585 | } | 1659 | } |
| 1586 | 1660 | ||
| 1587 | \def\finishtitlepage{% | 1661 | \def\finishtitlepage{% |
| @@ -2339,18 +2413,19 @@ width0pt\relax} \fi | |||
| 2339 | \let\item = \relax | 2413 | \let\item = \relax |
| 2340 | } | 2414 | } |
| 2341 | 2415 | ||
| 2342 | % Ignore @ignore ... @end ignore. | 2416 | % Ignore @ignore, @ifhtml, @ifinfo, @ifplaintext, @ifnottex, @html, @menu, |
| 2417 | % @direntry, and @documentdescription. | ||
| 2343 | % | 2418 | % |
| 2344 | \def\ignore{\doignore{ignore}} | 2419 | \def\ignore{\doignore{ignore}} |
| 2345 | |||
| 2346 | % Ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu, and @direntry text. | ||
| 2347 | % | ||
| 2348 | \def\ifinfo{\doignore{ifinfo}} | ||
| 2349 | \def\ifhtml{\doignore{ifhtml}} | 2420 | \def\ifhtml{\doignore{ifhtml}} |
| 2421 | \def\ifinfo{\doignore{ifinfo}} | ||
| 2422 | \def\ifplaintext{\doignore{ifplaintext}} | ||
| 2350 | \def\ifnottex{\doignore{ifnottex}} | 2423 | \def\ifnottex{\doignore{ifnottex}} |
| 2351 | \def\html{\doignore{html}} | 2424 | \def\html{\doignore{html}} |
| 2352 | \def\menu{\doignore{menu}} | 2425 | \def\menu{\doignore{menu}} |
| 2353 | \def\direntry{\doignore{direntry}} | 2426 | \def\direntry{\doignore{direntry}} |
| 2427 | \def\documentdescription{\doignore{documentdescription}} | ||
| 2428 | \def\documentdescriptionword{documentdescription} | ||
| 2354 | 2429 | ||
| 2355 | % @dircategory CATEGORY -- specify a category of the dir file | 2430 | % @dircategory CATEGORY -- specify a category of the dir file |
| 2356 | % which this file should belong to. Ignore this in TeX. | 2431 | % which this file should belong to. Ignore this in TeX. |
| @@ -2377,14 +2452,21 @@ width0pt\relax} \fi | |||
| 2377 | % We must not have @c interpreted as a control sequence. | 2452 | % We must not have @c interpreted as a control sequence. |
| 2378 | \catcode`\@ = 12 | 2453 | \catcode`\@ = 12 |
| 2379 | % | 2454 | % |
| 2380 | % Make the letter c a comment character so that the rest of the line | 2455 | \def\ignoreword{#1}% |
| 2381 | % will be ignored. This way, the document can have (for example) | 2456 | \ifx\ignoreword\documentdescriptionword |
| 2382 | % @c @end ifinfo | 2457 | % The c kludge breaks documentdescription, since |
| 2383 | % and the @end ifinfo will be properly ignored. | 2458 | % `documentdescription' contains a `c'. Means not everything will |
| 2384 | % (We've just changed @ to catcode 12.) | 2459 | % be ignored inside @documentdescription, but oh well... |
| 2385 | \catcode`\c = 14 | 2460 | \else |
| 2461 | % Make the letter c a comment character so that the rest of the line | ||
| 2462 | % will be ignored. This way, the document can have (for example) | ||
| 2463 | % @c @end ifinfo | ||
| 2464 | % and the @end ifinfo will be properly ignored. | ||
| 2465 | % (We've just changed @ to catcode 12.) | ||
| 2466 | \catcode`\c = 14 | ||
| 2467 | \fi | ||
| 2386 | % | 2468 | % |
| 2387 | % And now expand that command. | 2469 | % And now expand the command defined above. |
| 2388 | \doignoretext | 2470 | \doignoretext |
| 2389 | } | 2471 | } |
| 2390 | 2472 | ||
| @@ -2456,10 +2538,14 @@ width0pt\relax} \fi | |||
| 2456 | \let\tenrm=\nullfont \let\tenit=\nullfont \let\tensl=\nullfont | 2538 | \let\tenrm=\nullfont \let\tenit=\nullfont \let\tensl=\nullfont |
| 2457 | \let\tenbf=\nullfont \let\tentt=\nullfont \let\smallcaps=\nullfont | 2539 | \let\tenbf=\nullfont \let\tentt=\nullfont \let\smallcaps=\nullfont |
| 2458 | \let\tensf=\nullfont | 2540 | \let\tensf=\nullfont |
| 2459 | % Similarly for index fonts (mostly for their use in smallexample). | 2541 | % Similarly for index fonts. |
| 2460 | \let\smallrm=\nullfont \let\smallit=\nullfont \let\smallsl=\nullfont | 2542 | \let\smallrm=\nullfont \let\smallit=\nullfont \let\smallsl=\nullfont |
| 2461 | \let\smallbf=\nullfont \let\smalltt=\nullfont \let\smallsc=\nullfont | 2543 | \let\smallbf=\nullfont \let\smalltt=\nullfont \let\smallsc=\nullfont |
| 2462 | \let\smallsf=\nullfont | 2544 | \let\smallsf=\nullfont |
| 2545 | % Similarly for smallexample fonts. | ||
| 2546 | \let\smallerrm=\nullfont \let\smallerit=\nullfont \let\smallersl=\nullfont | ||
| 2547 | \let\smallerbf=\nullfont \let\smallertt=\nullfont \let\smallersc=\nullfont | ||
| 2548 | \let\smallersf=\nullfont | ||
| 2463 | % | 2549 | % |
| 2464 | % Don't complain when characters are missing from the fonts. | 2550 | % Don't complain when characters are missing from the fonts. |
| 2465 | \tracinglostchars = 0 | 2551 | \tracinglostchars = 0 |
| @@ -2571,19 +2657,21 @@ width0pt\relax} \fi | |||
| 2571 | \def\ifclearfail{\nestedignore{ifclear}} | 2657 | \def\ifclearfail{\nestedignore{ifclear}} |
| 2572 | \defineunmatchedend{ifclear} | 2658 | \defineunmatchedend{ifclear} |
| 2573 | 2659 | ||
| 2574 | % @iftex, @ifnothtml, @ifnotinfo always succeed; we read the text | 2660 | % @iftex, @ifnothtml, @ifnotinfo, @ifnotplaintext always succeed; we |
| 2575 | % following, through the first @end iftex (etc.). Make `@end iftex' | 2661 | % read the text following, through the first @end iftex (etc.). Make |
| 2576 | % (etc.) valid only after an @iftex. | 2662 | % `@end iftex' (etc.) valid only after an @iftex. |
| 2577 | % | 2663 | % |
| 2578 | \def\iftex{\conditionalsucceed{iftex}} | 2664 | \def\iftex{\conditionalsucceed{iftex}} |
| 2579 | \def\ifnothtml{\conditionalsucceed{ifnothtml}} | 2665 | \def\ifnothtml{\conditionalsucceed{ifnothtml}} |
| 2580 | \def\ifnotinfo{\conditionalsucceed{ifnotinfo}} | 2666 | \def\ifnotinfo{\conditionalsucceed{ifnotinfo}} |
| 2667 | \def\ifnotplaintext{\conditionalsucceed{ifnotplaintext}} | ||
| 2581 | \defineunmatchedend{iftex} | 2668 | \defineunmatchedend{iftex} |
| 2582 | \defineunmatchedend{ifnothtml} | 2669 | \defineunmatchedend{ifnothtml} |
| 2583 | \defineunmatchedend{ifnotinfo} | 2670 | \defineunmatchedend{ifnotinfo} |
| 2671 | \defineunmatchedend{ifnotplaintext} | ||
| 2584 | 2672 | ||
| 2585 | % We can't just want to start a group at @iftex (for example) and end it | 2673 | % We can't just want to start a group at @iftex (etc.) and end it at |
| 2586 | % at @end iftex, since then @set commands inside the conditional have no | 2674 | % @end iftex, since then @set commands inside the conditional have no |
| 2587 | % effect (they'd get reverted at the end of the group). So we must | 2675 | % effect (they'd get reverted at the end of the group). So we must |
| 2588 | % define \Eiftex to redefine itself to be its previous value. (We can't | 2676 | % define \Eiftex to redefine itself to be its previous value. (We can't |
| 2589 | % just define it to fail again with an ``unmatched end'' error, since | 2677 | % just define it to fail again with an ``unmatched end'' error, since |
| @@ -2696,9 +2784,23 @@ width0pt\relax} \fi | |||
| 2696 | \def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer} | 2784 | \def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer} |
| 2697 | \def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} | 2785 | \def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} |
| 2698 | 2786 | ||
| 2787 | % Take care of texinfo commands likely to appear in an index entry. | ||
| 2788 | % (Must be a way to avoid doing expansion at all, and thus not have to | ||
| 2789 | % laboriously list every single command here.) | ||
| 2790 | % | ||
| 2699 | \def\indexdummies{% | 2791 | \def\indexdummies{% |
| 2700 | \def\ { }% | 2792 | \def\ { }% |
| 2793 | \def\@{@}% change to @@ when we switch to @ as escape char in aux files. | ||
| 2794 | % Need these in case \tex is in effect and \{ is a \delimiter again. | ||
| 2795 | % But can't use \lbracecmd and \rbracecmd because texindex assumes | ||
| 2796 | % braces and backslashes are used only as delimiters. | ||
| 2797 | \let\{ = \mylbrace | ||
| 2798 | \let\} = \myrbrace | ||
| 2799 | \def\_{{\realbackslash _}}% | ||
| 2800 | \normalturnoffactive | ||
| 2801 | % | ||
| 2701 | % Take care of the plain tex accent commands. | 2802 | % Take care of the plain tex accent commands. |
| 2803 | \def\,##1{\realbackslash ,{##1}}% | ||
| 2702 | \def\"{\realbackslash "}% | 2804 | \def\"{\realbackslash "}% |
| 2703 | \def\`{\realbackslash `}% | 2805 | \def\`{\realbackslash `}% |
| 2704 | \def\'{\realbackslash '}% | 2806 | \def\'{\realbackslash '}% |
| @@ -2711,69 +2813,66 @@ width0pt\relax} \fi | |||
| 2711 | \def\u{\realbackslash u}% | 2813 | \def\u{\realbackslash u}% |
| 2712 | \def\v{\realbackslash v}% | 2814 | \def\v{\realbackslash v}% |
| 2713 | \def\H{\realbackslash H}% | 2815 | \def\H{\realbackslash H}% |
| 2816 | \def\dotless##1{\realbackslash dotless {##1}}% | ||
| 2714 | % Take care of the plain tex special European modified letters. | 2817 | % Take care of the plain tex special European modified letters. |
| 2715 | \def\oe{\realbackslash oe}% | ||
| 2716 | \def\ae{\realbackslash ae}% | ||
| 2717 | \def\aa{\realbackslash aa}% | ||
| 2718 | \def\OE{\realbackslash OE}% | ||
| 2719 | \def\AE{\realbackslash AE}% | ||
| 2720 | \def\AA{\realbackslash AA}% | 2818 | \def\AA{\realbackslash AA}% |
| 2721 | \def\o{\realbackslash o}% | 2819 | \def\AE{\realbackslash AE}% |
| 2820 | \def\L{\realbackslash L}% | ||
| 2821 | \def\OE{\realbackslash OE}% | ||
| 2722 | \def\O{\realbackslash O}% | 2822 | \def\O{\realbackslash O}% |
| 2823 | \def\aa{\realbackslash aa}% | ||
| 2824 | \def\ae{\realbackslash ae}% | ||
| 2723 | \def\l{\realbackslash l}% | 2825 | \def\l{\realbackslash l}% |
| 2724 | \def\L{\realbackslash L}% | 2826 | \def\oe{\realbackslash oe}% |
| 2827 | \def\o{\realbackslash o}% | ||
| 2725 | \def\ss{\realbackslash ss}% | 2828 | \def\ss{\realbackslash ss}% |
| 2726 | % Take care of texinfo commands likely to appear in an index entry. | 2829 | % |
| 2727 | % (Must be a way to avoid doing expansion at all, and thus not have to | 2830 | % Although these internals commands shouldn't show up, sometimes they do. |
| 2728 | % laboriously list every single command here.) | ||
| 2729 | \def\@{@}% will be @@ when we switch to @ as escape char. | ||
| 2730 | % Need these in case \tex is in effect and \{ is a \delimiter again. | ||
| 2731 | % But can't use \lbracecmd and \rbracecmd because texindex assumes | ||
| 2732 | % braces and backslashes are used only as delimiters. | ||
| 2733 | \let\{ = \mylbrace | ||
| 2734 | \let\} = \myrbrace | ||
| 2735 | \def\_{{\realbackslash _}}% | ||
| 2736 | \def\w{\realbackslash w }% | ||
| 2737 | \def\bf{\realbackslash bf }% | 2831 | \def\bf{\realbackslash bf }% |
| 2832 | \def\gtr{\realbackslash gtr}% | ||
| 2833 | \def\hat{\realbackslash hat}% | ||
| 2834 | \def\less{\realbackslash less}% | ||
| 2738 | %\def\rm{\realbackslash rm }% | 2835 | %\def\rm{\realbackslash rm }% |
| 2739 | \def\sl{\realbackslash sl }% | ||
| 2740 | \def\sf{\realbackslash sf}% | 2836 | \def\sf{\realbackslash sf}% |
| 2837 | \def\sl{\realbackslash sl }% | ||
| 2838 | \def\tclose##1{\realbackslash tclose {##1}}% | ||
| 2741 | \def\tt{\realbackslash tt}% | 2839 | \def\tt{\realbackslash tt}% |
| 2742 | \def\gtr{\realbackslash gtr}% | 2840 | % |
| 2743 | \def\less{\realbackslash less}% | 2841 | \def\b##1{\realbackslash b {##1}}% |
| 2744 | \def\hat{\realbackslash hat}% | 2842 | \def\i##1{\realbackslash i {##1}}% |
| 2843 | \def\sc##1{\realbackslash sc {##1}}% | ||
| 2844 | \def\t##1{\realbackslash t {##1}}% | ||
| 2845 | \def\r##1{\realbackslash r {##1}}% | ||
| 2846 | % | ||
| 2745 | \def\TeX{\realbackslash TeX}% | 2847 | \def\TeX{\realbackslash TeX}% |
| 2746 | \def\dots{\realbackslash dots }% | 2848 | \def\acronym##1{\realbackslash acronym {##1}}% |
| 2747 | \def\result{\realbackslash result}% | 2849 | \def\cite##1{\realbackslash cite {##1}}% |
| 2748 | \def\equiv{\realbackslash equiv}% | ||
| 2749 | \def\expansion{\realbackslash expansion}% | ||
| 2750 | \def\print{\realbackslash print}% | ||
| 2751 | \def\error{\realbackslash error}% | ||
| 2752 | \def\point{\realbackslash point}% | ||
| 2753 | \def\copyright{\realbackslash copyright}% | ||
| 2754 | \def\tclose##1{\realbackslash tclose {##1}}% | ||
| 2755 | \def\code##1{\realbackslash code {##1}}% | 2850 | \def\code##1{\realbackslash code {##1}}% |
| 2756 | \def\uref##1{\realbackslash uref {##1}}% | ||
| 2757 | \def\url##1{\realbackslash url {##1}}% | ||
| 2758 | \def\env##1{\realbackslash env {##1}}% | ||
| 2759 | \def\command##1{\realbackslash command {##1}}% | 2851 | \def\command##1{\realbackslash command {##1}}% |
| 2852 | \def\dfn##1{\realbackslash dfn {##1}}% | ||
| 2853 | \def\dots{\realbackslash dots }% | ||
| 2854 | \def\emph##1{\realbackslash emph {##1}}% | ||
| 2855 | \def\env##1{\realbackslash env {##1}}% | ||
| 2856 | \def\file##1{\realbackslash file {##1}}% | ||
| 2857 | \def\kbd##1{\realbackslash kbd {##1}}% | ||
| 2858 | \def\key##1{\realbackslash key {##1}}% | ||
| 2859 | \def\math##1{\realbackslash math {##1}}% | ||
| 2760 | \def\option##1{\realbackslash option {##1}}% | 2860 | \def\option##1{\realbackslash option {##1}}% |
| 2761 | \def\dotless##1{\realbackslash dotless {##1}}% | ||
| 2762 | \def\samp##1{\realbackslash samp {##1}}% | 2861 | \def\samp##1{\realbackslash samp {##1}}% |
| 2763 | \def\,##1{\realbackslash ,{##1}}% | 2862 | \def\strong##1{\realbackslash strong {##1}}% |
| 2764 | \def\t##1{\realbackslash t {##1}}% | 2863 | \def\uref##1{\realbackslash uref {##1}}% |
| 2765 | \def\r##1{\realbackslash r {##1}}% | 2864 | \def\url##1{\realbackslash url {##1}}% |
| 2766 | \def\i##1{\realbackslash i {##1}}% | ||
| 2767 | \def\b##1{\realbackslash b {##1}}% | ||
| 2768 | \def\sc##1{\realbackslash sc {##1}}% | ||
| 2769 | \def\cite##1{\realbackslash cite {##1}}% | ||
| 2770 | \def\key##1{\realbackslash key {##1}}% | ||
| 2771 | \def\file##1{\realbackslash file {##1}}% | ||
| 2772 | \def\var##1{\realbackslash var {##1}}% | 2865 | \def\var##1{\realbackslash var {##1}}% |
| 2773 | \def\kbd##1{\realbackslash kbd {##1}}% | 2866 | \def\w{\realbackslash w }% |
| 2774 | \def\dfn##1{\realbackslash dfn {##1}}% | 2867 | % |
| 2775 | \def\emph##1{\realbackslash emph {##1}}% | 2868 | % These math commands don't seem likely to be used in index entries. |
| 2776 | \def\acronym##1{\realbackslash acronym {##1}}% | 2869 | \def\copyright{\realbackslash copyright}% |
| 2870 | \def\equiv{\realbackslash equiv}% | ||
| 2871 | \def\error{\realbackslash error}% | ||
| 2872 | \def\expansion{\realbackslash expansion}% | ||
| 2873 | \def\point{\realbackslash point}% | ||
| 2874 | \def\print{\realbackslash print}% | ||
| 2875 | \def\result{\realbackslash result}% | ||
| 2777 | % | 2876 | % |
| 2778 | % Handle some cases of @value -- where the variable name does not | 2877 | % Handle some cases of @value -- where the variable name does not |
| 2779 | % contain - or _, and the value does not contain any | 2878 | % contain - or _, and the value does not contain any |
| @@ -2787,7 +2886,7 @@ width0pt\relax} \fi | |||
| 2787 | 2886 | ||
| 2788 | % If an index command is used in an @example environment, any spaces | 2887 | % If an index command is used in an @example environment, any spaces |
| 2789 | % therein should become regular spaces in the raw index file, not the | 2888 | % therein should become regular spaces in the raw index file, not the |
| 2790 | % expansion of \tie (\\leavevmode \penalty \@M \ ). | 2889 | % expansion of \tie (\leavevmode \penalty \@M \ ). |
| 2791 | {\obeyspaces | 2890 | {\obeyspaces |
| 2792 | \gdef\unsepspaces{\obeyspaces\let =\space}} | 2891 | \gdef\unsepspaces{\obeyspaces\let =\space}} |
| 2793 | 2892 | ||
| @@ -2798,7 +2897,10 @@ width0pt\relax} \fi | |||
| 2798 | \def\indexdummydots{...} | 2897 | \def\indexdummydots{...} |
| 2799 | 2898 | ||
| 2800 | \def\indexnofonts{% | 2899 | \def\indexnofonts{% |
| 2801 | % Just ignore accents. | 2900 | \def\@{@}% |
| 2901 | % how to handle braces? | ||
| 2902 | \def\_{\normalunderscore}% | ||
| 2903 | % | ||
| 2802 | \let\,=\indexdummyfont | 2904 | \let\,=\indexdummyfont |
| 2803 | \let\"=\indexdummyfont | 2905 | \let\"=\indexdummyfont |
| 2804 | \let\`=\indexdummyfont | 2906 | \let\`=\indexdummyfont |
| @@ -2814,45 +2916,49 @@ width0pt\relax} \fi | |||
| 2814 | \let\H=\indexdummyfont | 2916 | \let\H=\indexdummyfont |
| 2815 | \let\dotless=\indexdummyfont | 2917 | \let\dotless=\indexdummyfont |
| 2816 | % Take care of the plain tex special European modified letters. | 2918 | % Take care of the plain tex special European modified letters. |
| 2817 | \def\oe{oe}% | ||
| 2818 | \def\ae{ae}% | ||
| 2819 | \def\aa{aa}% | ||
| 2820 | \def\OE{OE}% | ||
| 2821 | \def\AE{AE}% | ||
| 2822 | \def\AA{AA}% | 2919 | \def\AA{AA}% |
| 2823 | \def\o{o}% | 2920 | \def\AE{AE}% |
| 2921 | \def\L{L}% | ||
| 2922 | \def\OE{OE}% | ||
| 2824 | \def\O{O}% | 2923 | \def\O{O}% |
| 2924 | \def\aa{aa}% | ||
| 2925 | \def\ae{ae}% | ||
| 2825 | \def\l{l}% | 2926 | \def\l{l}% |
| 2826 | \def\L{L}% | 2927 | \def\oe{oe}% |
| 2928 | \def\o{o}% | ||
| 2827 | \def\ss{ss}% | 2929 | \def\ss{ss}% |
| 2828 | \let\w=\indexdummyfont | 2930 | % |
| 2829 | \let\t=\indexdummyfont | 2931 | % Don't no-op \tt, since it isn't a user-level command |
| 2830 | \let\r=\indexdummyfont | 2932 | % and is used in the definitions of the active chars like <, >, |, etc. |
| 2831 | \let\i=\indexdummyfont | 2933 | % Likewise with the other plain tex font commands. |
| 2934 | %\let\tt=\indexdummyfont | ||
| 2935 | % | ||
| 2832 | \let\b=\indexdummyfont | 2936 | \let\b=\indexdummyfont |
| 2833 | \let\emph=\indexdummyfont | 2937 | \let\i=\indexdummyfont |
| 2834 | \let\strong=\indexdummyfont | 2938 | \let\r=\indexdummyfont |
| 2835 | \let\cite=\indexdummyfont | ||
| 2836 | \let\sc=\indexdummyfont | 2939 | \let\sc=\indexdummyfont |
| 2837 | %Don't no-op \tt, since it isn't a user-level command | 2940 | \let\t=\indexdummyfont |
| 2838 | % and is used in the definitions of the active chars like <, >, |... | 2941 | % |
| 2839 | %\let\tt=\indexdummyfont | 2942 | \let\TeX=\indexdummytex |
| 2840 | \let\tclose=\indexdummyfont | ||
| 2841 | \let\code=\indexdummyfont | ||
| 2842 | \let\url=\indexdummyfont | ||
| 2843 | \let\uref=\indexdummyfont | ||
| 2844 | \let\env=\indexdummyfont | ||
| 2845 | \let\acronym=\indexdummyfont | 2943 | \let\acronym=\indexdummyfont |
| 2944 | \let\cite=\indexdummyfont | ||
| 2945 | \let\code=\indexdummyfont | ||
| 2846 | \let\command=\indexdummyfont | 2946 | \let\command=\indexdummyfont |
| 2847 | \let\option=\indexdummyfont | 2947 | \let\dfn=\indexdummyfont |
| 2948 | \let\dots=\indexdummydots | ||
| 2949 | \let\emph=\indexdummyfont | ||
| 2950 | \let\env=\indexdummyfont | ||
| 2848 | \let\file=\indexdummyfont | 2951 | \let\file=\indexdummyfont |
| 2849 | \let\samp=\indexdummyfont | ||
| 2850 | \let\kbd=\indexdummyfont | 2952 | \let\kbd=\indexdummyfont |
| 2851 | \let\key=\indexdummyfont | 2953 | \let\key=\indexdummyfont |
| 2954 | \let\math=\indexdummyfont | ||
| 2955 | \let\option=\indexdummyfont | ||
| 2956 | \let\samp=\indexdummyfont | ||
| 2957 | \let\strong=\indexdummyfont | ||
| 2958 | \let\uref=\indexdummyfont | ||
| 2959 | \let\url=\indexdummyfont | ||
| 2852 | \let\var=\indexdummyfont | 2960 | \let\var=\indexdummyfont |
| 2853 | \let\TeX=\indexdummytex | 2961 | \let\w=\indexdummyfont |
| 2854 | \let\dots=\indexdummydots | ||
| 2855 | \def\@{@}% | ||
| 2856 | } | 2962 | } |
| 2857 | 2963 | ||
| 2858 | % To define \realbackslash, we must make \ not be an escape. | 2964 | % To define \realbackslash, we must make \ not be an escape. |
| @@ -3454,8 +3560,8 @@ width0pt\relax} \fi | |||
| 3454 | \gdef\thischaptername{#1}% | 3560 | \gdef\thischaptername{#1}% |
| 3455 | \xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}% | 3561 | \xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}% |
| 3456 | \toks0 = {#1}% | 3562 | \toks0 = {#1}% |
| 3457 | \edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}% | 3563 | \edef\temp{\noexpand\writetocentry{\realbackslash appendixentry{\the\toks0}% |
| 3458 | {\putwordAppendix{} \appendixletter}}}% | 3564 | {\appendixletter}}}% |
| 3459 | \temp | 3565 | \temp |
| 3460 | \appendixnoderef | 3566 | \appendixnoderef |
| 3461 | \global\let\section = \appendixsec | 3567 | \global\let\section = \appendixsec |
| @@ -3532,7 +3638,8 @@ width0pt\relax} \fi | |||
| 3532 | \def\unnumberedseczzz #1{% | 3638 | \def\unnumberedseczzz #1{% |
| 3533 | \plainsecheading {#1}\gdef\thissection{#1}% | 3639 | \plainsecheading {#1}\gdef\thissection{#1}% |
| 3534 | \toks0 = {#1}% | 3640 | \toks0 = {#1}% |
| 3535 | \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry{\the\toks0}}}% | 3641 | \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry% |
| 3642 | {\the\toks0}{\the\chapno}}}% | ||
| 3536 | \temp | 3643 | \temp |
| 3537 | \unnumbnoderef | 3644 | \unnumbnoderef |
| 3538 | \nobreak | 3645 | \nobreak |
| @@ -3571,7 +3678,7 @@ width0pt\relax} \fi | |||
| 3571 | \plainsubsecheading {#1}\gdef\thissection{#1}% | 3678 | \plainsubsecheading {#1}\gdef\thissection{#1}% |
| 3572 | \toks0 = {#1}% | 3679 | \toks0 = {#1}% |
| 3573 | \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry% | 3680 | \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry% |
| 3574 | {\the\toks0}}}% | 3681 | {\the\toks0}{\the\chapno}{\the\secno}}}% |
| 3575 | \temp | 3682 | \temp |
| 3576 | \unnumbnoderef | 3683 | \unnumbnoderef |
| 3577 | \nobreak | 3684 | \nobreak |
| @@ -3612,7 +3719,7 @@ width0pt\relax} \fi | |||
| 3612 | \plainsubsubsecheading {#1}\gdef\thissection{#1}% | 3719 | \plainsubsubsecheading {#1}\gdef\thissection{#1}% |
| 3613 | \toks0 = {#1}% | 3720 | \toks0 = {#1}% |
| 3614 | \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry% | 3721 | \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry% |
| 3615 | {\the\toks0}}}% | 3722 | {\the\toks0}{\the\chapno}{\the\secno}{\the\subsecno}}}% |
| 3616 | \temp | 3723 | \temp |
| 3617 | \unnumbnoderef | 3724 | \unnumbnoderef |
| 3618 | \nobreak | 3725 | \nobreak |
| @@ -3824,7 +3931,7 @@ width0pt\relax} \fi | |||
| 3824 | % argument, which will end up as the last argument to the \...entry macro. | 3931 | % argument, which will end up as the last argument to the \...entry macro. |
| 3825 | % | 3932 | % |
| 3826 | % We open the .toc file here instead of at @setfilename or any other | 3933 | % We open the .toc file here instead of at @setfilename or any other |
| 3827 | % given time so that @contents can be put in the document anywhere. | 3934 | % fixed time so that @contents can be put in the document anywhere. |
| 3828 | % | 3935 | % |
| 3829 | \newif\iftocfileopened | 3936 | \newif\iftocfileopened |
| 3830 | \def\writetocentry#1{% | 3937 | \def\writetocentry#1{% |
| @@ -3833,6 +3940,14 @@ width0pt\relax} \fi | |||
| 3833 | \global\tocfileopenedtrue | 3940 | \global\tocfileopenedtrue |
| 3834 | \fi | 3941 | \fi |
| 3835 | \iflinks \write\tocfile{#1{\folio}}\fi | 3942 | \iflinks \write\tocfile{#1{\folio}}\fi |
| 3943 | % | ||
| 3944 | % Tell \shipout to create a page destination if we're doing pdf, which | ||
| 3945 | % will be the target of the links in the table of contents. We can't | ||
| 3946 | % just do it on every page because the title pages are numbered 1 and | ||
| 3947 | % 2 (the page numbers aren't printed), and so are the first two pages | ||
| 3948 | % of the document. Thus, we'd have two destinations named `1', and | ||
| 3949 | % two named `2'. | ||
| 3950 | \ifpdf \pdfmakepagedesttrue \fi | ||
| 3836 | } | 3951 | } |
| 3837 | 3952 | ||
| 3838 | \newskip\contentsrightmargin \contentsrightmargin=1in | 3953 | \newskip\contentsrightmargin \contentsrightmargin=1in |
| @@ -3888,6 +4003,7 @@ width0pt\relax} \fi | |||
| 3888 | \startcontents{\putwordShortTOC}% | 4003 | \startcontents{\putwordShortTOC}% |
| 3889 | % | 4004 | % |
| 3890 | \let\chapentry = \shortchapentry | 4005 | \let\chapentry = \shortchapentry |
| 4006 | \let\appendixentry = \shortappendixentry | ||
| 3891 | \let\unnumbchapentry = \shortunnumberedentry | 4007 | \let\unnumbchapentry = \shortunnumberedentry |
| 3892 | % We want a true roman here for the page numbers. | 4008 | % We want a true roman here for the page numbers. |
| 3893 | \secfonts | 4009 | \secfonts |
| @@ -3896,11 +4012,11 @@ width0pt\relax} \fi | |||
| 3896 | \hyphenpenalty = 10000 | 4012 | \hyphenpenalty = 10000 |
| 3897 | \advance\baselineskip by 1pt % Open it up a little. | 4013 | \advance\baselineskip by 1pt % Open it up a little. |
| 3898 | \def\secentry ##1##2##3##4{} | 4014 | \def\secentry ##1##2##3##4{} |
| 3899 | \def\unnumbsecentry ##1##2{} | 4015 | \def\unnumbsecentry ##1##2##3{} |
| 3900 | \def\subsecentry ##1##2##3##4##5{} | 4016 | \def\subsecentry ##1##2##3##4##5{} |
| 3901 | \def\unnumbsubsecentry ##1##2{} | 4017 | \def\unnumbsubsecentry ##1##2##3##4{} |
| 3902 | \def\subsubsecentry ##1##2##3##4##5##6{} | 4018 | \def\subsubsecentry ##1##2##3##4##5##6{} |
| 3903 | \def\unnumbsubsubsecentry ##1##2{} | 4019 | \def\unnumbsubsubsecentry ##1##2##3##4##5{} |
| 3904 | \openin 1 \jobname.toc | 4020 | \openin 1 \jobname.toc |
| 3905 | \ifeof 1 \else | 4021 | \ifeof 1 \else |
| 3906 | \closein 1 | 4022 | \closein 1 |
| @@ -3923,16 +4039,23 @@ width0pt\relax} \fi | |||
| 3923 | % The last argument is the page number. | 4039 | % The last argument is the page number. |
| 3924 | % The arguments in between are the chapter number, section number, ... | 4040 | % The arguments in between are the chapter number, section number, ... |
| 3925 | 4041 | ||
| 3926 | % Chapter-level things, for both the long and short contents. | 4042 | % Chapters, in the main contents. |
| 3927 | \def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}} | 4043 | \def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}} |
| 3928 | 4044 | % | |
| 3929 | % See comments in \dochapentry re vbox and related settings | 4045 | % Chapters, in the short toc. |
| 4046 | % See comments in \dochapentry re vbox and related settings. | ||
| 3930 | \def\shortchapentry#1#2#3{% | 4047 | \def\shortchapentry#1#2#3{% |
| 3931 | \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#3\egroup}% | 4048 | \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#3\egroup}% |
| 3932 | } | 4049 | } |
| 3933 | 4050 | ||
| 4051 | % Appendices, in the main contents. | ||
| 4052 | \def\appendixentry#1#2#3{\dochapentry{\putwordAppendix{} #2\labelspace#1}{#3}} | ||
| 4053 | % | ||
| 4054 | % Appendices, in the short toc. | ||
| 4055 | \let\shortappendixentry = \shortchapentry | ||
| 4056 | |||
| 3934 | % Typeset the label for a chapter or appendix for the short contents. | 4057 | % Typeset the label for a chapter or appendix for the short contents. |
| 3935 | % The arg is, e.g. `Appendix A' for an appendix, or `3' for a chapter. | 4058 | % The arg is, e.g., `Appendix A' for an appendix, or `3' for a chapter. |
| 3936 | % We could simplify the code here by writing out an \appendixentry | 4059 | % We could simplify the code here by writing out an \appendixentry |
| 3937 | % command in the toc file for appendices, instead of using \chapentry | 4060 | % command in the toc file for appendices, instead of using \chapentry |
| 3938 | % for both, but it doesn't seem worth it. | 4061 | % for both, but it doesn't seem worth it. |
| @@ -3940,38 +4063,31 @@ width0pt\relax} \fi | |||
| 3940 | \newdimen\shortappendixwidth | 4063 | \newdimen\shortappendixwidth |
| 3941 | % | 4064 | % |
| 3942 | \def\shortchaplabel#1{% | 4065 | \def\shortchaplabel#1{% |
| 3943 | % Compute width of word "Appendix", may change with language. | 4066 | % This space should be enough, since a single number is .5em, and the |
| 3944 | \setbox0 = \hbox{\shortcontrm \putwordAppendix}% | ||
| 3945 | \shortappendixwidth = \wd0 | ||
| 3946 | % | ||
| 3947 | % We typeset #1 in a box of constant width, regardless of the text of | ||
| 3948 | % #1, so the chapter titles will come out aligned. | ||
| 3949 | \setbox0 = \hbox{#1}% | ||
| 3950 | \dimen0 = \ifdim\wd0 > \shortappendixwidth \shortappendixwidth \else 0pt \fi | ||
| 3951 | % | ||
| 3952 | % This space should be plenty, since a single number is .5em, and the | ||
| 3953 | % widest letter (M) is 1em, at least in the Computer Modern fonts. | 4067 | % widest letter (M) is 1em, at least in the Computer Modern fonts. |
| 4068 | % But use \hss just in case. | ||
| 3954 | % (This space doesn't include the extra space that gets added after | 4069 | % (This space doesn't include the extra space that gets added after |
| 3955 | % the label; that gets put in by \shortchapentry above.) | 4070 | % the label; that gets put in by \shortchapentry above.) |
| 3956 | \advance\dimen0 by 1.1em | 4071 | \dimen0 = 1em |
| 3957 | \hbox to \dimen0{#1\hfil}% | 4072 | \hbox to \dimen0{#1\hss}% |
| 3958 | } | 4073 | } |
| 3959 | 4074 | ||
| 4075 | % Unnumbered chapters. | ||
| 3960 | \def\unnumbchapentry#1#2{\dochapentry{#1}{#2}} | 4076 | \def\unnumbchapentry#1#2{\dochapentry{#1}{#2}} |
| 3961 | \def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno\bgroup#2\egroup}} | 4077 | \def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno\bgroup#2\egroup}} |
| 3962 | 4078 | ||
| 3963 | % Sections. | 4079 | % Sections. |
| 3964 | \def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}} | 4080 | \def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}} |
| 3965 | \def\unnumbsecentry#1#2{\dosecentry{#1}{#2}} | 4081 | \def\unnumbsecentry#1#2#3{\dosecentry{#1}{#3}} |
| 3966 | 4082 | ||
| 3967 | % Subsections. | 4083 | % Subsections. |
| 3968 | \def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}} | 4084 | \def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}} |
| 3969 | \def\unnumbsubsecentry#1#2{\dosubsecentry{#1}{#2}} | 4085 | \def\unnumbsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}} |
| 3970 | 4086 | ||
| 3971 | % And subsubsections. | 4087 | % And subsubsections. |
| 3972 | \def\subsubsecentry#1#2#3#4#5#6{% | 4088 | \def\subsubsecentry#1#2#3#4#5#6{% |
| 3973 | \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}} | 4089 | \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}} |
| 3974 | \def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}} | 4090 | \def\unnumbsubsubsecentry#1#2#3#4#5{\dosubsubsecentry{#1}{#5}} |
| 3975 | 4091 | ||
| 3976 | % This parameter controls the indentation of the various levels. | 4092 | % This parameter controls the indentation of the various levels. |
| 3977 | \newdimen\tocindent \tocindent = 3pc | 4093 | \newdimen\tocindent \tocindent = 3pc |
| @@ -4012,7 +4128,7 @@ width0pt\relax} \fi | |||
| 4012 | \def\tocentry#1#2{\begingroup | 4128 | \def\tocentry#1#2{\begingroup |
| 4013 | \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks | 4129 | \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks |
| 4014 | % Do not use \turnoffactive in these arguments. Since the toc is | 4130 | % Do not use \turnoffactive in these arguments. Since the toc is |
| 4015 | % typeset in cmr, so characters such as _ would come out wrong; we | 4131 | % typeset in cmr, characters such as _ would come out wrong; we |
| 4016 | % have to do the usual translation tricks. | 4132 | % have to do the usual translation tricks. |
| 4017 | \entry{#1}{#2}% | 4133 | \entry{#1}{#2}% |
| 4018 | \endgroup} | 4134 | \endgroup} |
| @@ -4032,36 +4148,27 @@ width0pt\relax} \fi | |||
| 4032 | \message{environments,} | 4148 | \message{environments,} |
| 4033 | % @foo ... @end foo. | 4149 | % @foo ... @end foo. |
| 4034 | 4150 | ||
| 4151 | % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. | ||
| 4152 | % | ||
| 4035 | % Since these characters are used in examples, it should be an even number of | 4153 | % Since these characters are used in examples, it should be an even number of |
| 4036 | % \tt widths. Each \tt character is 1en, so two makes it 1em. | 4154 | % \tt widths. Each \tt character is 1en, so two makes it 1em. |
| 4037 | % Furthermore, these definitions must come after we define our fonts. | 4155 | % |
| 4038 | \newbox\dblarrowbox \newbox\longdblarrowbox | ||
| 4039 | \newbox\pushcharbox \newbox\bullbox | ||
| 4040 | \newbox\equivbox \newbox\errorbox | ||
| 4041 | |||
| 4042 | %{\tentt | ||
| 4043 | %\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil} | ||
| 4044 | %\global\setbox\longdblarrowbox = \hbox to 1em{\hfil$\mapsto$\hfil} | ||
| 4045 | %\global\setbox\pushcharbox = \hbox to 1em{\hfil$\dashv$\hfil} | ||
| 4046 | %\global\setbox\equivbox = \hbox to 1em{\hfil$\ptexequiv$\hfil} | ||
| 4047 | % Adapted from the manmac format (p.420 of TeXbook) | ||
| 4048 | %\global\setbox\bullbox = \hbox to 1em{\kern.15em\vrule height .75ex width .85ex | ||
| 4049 | % depth .1ex\hfil} | ||
| 4050 | %} | ||
| 4051 | |||
| 4052 | % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. | ||
| 4053 | \def\point{$\star$} | 4156 | \def\point{$\star$} |
| 4054 | \def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} | 4157 | \def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} |
| 4055 | \def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}} | 4158 | \def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}} |
| 4056 | \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} | 4159 | \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} |
| 4057 | \def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}} | 4160 | \def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}} |
| 4058 | 4161 | ||
| 4162 | % The @error{} command. | ||
| 4059 | % Adapted from the TeXbook's \boxit. | 4163 | % Adapted from the TeXbook's \boxit. |
| 4164 | % | ||
| 4165 | \newbox\errorbox | ||
| 4166 | % | ||
| 4060 | {\tentt \global\dimen0 = 3em}% Width of the box. | 4167 | {\tentt \global\dimen0 = 3em}% Width of the box. |
| 4061 | \dimen2 = .55pt % Thickness of rules | 4168 | \dimen2 = .55pt % Thickness of rules |
| 4062 | % The text. (`r' is open on the right, `e' somewhat less so on the left.) | 4169 | % The text. (`r' is open on the right, `e' somewhat less so on the left.) |
| 4063 | \setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt} | 4170 | \setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt} |
| 4064 | 4171 | % | |
| 4065 | \global\setbox\errorbox=\hbox to \dimen0{\hfil | 4172 | \global\setbox\errorbox=\hbox to \dimen0{\hfil |
| 4066 | \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. | 4173 | \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. |
| 4067 | \advance\hsize by -2\dimen2 % Rules. | 4174 | \advance\hsize by -2\dimen2 % Rules. |
| @@ -4072,8 +4179,7 @@ width0pt\relax} \fi | |||
| 4072 | \kern3pt\vrule width\dimen2}% Space to right. | 4179 | \kern3pt\vrule width\dimen2}% Space to right. |
| 4073 | \hrule height\dimen2} | 4180 | \hrule height\dimen2} |
| 4074 | \hfil} | 4181 | \hfil} |
| 4075 | 4182 | % | |
| 4076 | % The @error{} command. | ||
| 4077 | \def\error{\leavevmode\lower.7ex\copy\errorbox} | 4183 | \def\error{\leavevmode\lower.7ex\copy\errorbox} |
| 4078 | 4184 | ||
| 4079 | % @tex ... @end tex escapes into raw Tex temporarily. | 4185 | % @tex ... @end tex escapes into raw Tex temporarily. |
| @@ -4113,9 +4219,9 @@ width0pt\relax} \fi | |||
| 4113 | \def\@{@}% | 4219 | \def\@{@}% |
| 4114 | \let\Etex=\endgroup} | 4220 | \let\Etex=\endgroup} |
| 4115 | 4221 | ||
| 4116 | % Define @lisp ... @endlisp. | 4222 | % Define @lisp ... @end lisp. |
| 4117 | % @lisp does a \begingroup so it can rebind things, | 4223 | % @lisp does a \begingroup so it can rebind things, |
| 4118 | % including the definition of @endlisp (which normally is erroneous). | 4224 | % including the definition of @end lisp (which normally is erroneous). |
| 4119 | 4225 | ||
| 4120 | % Amount to narrow the margins by for @lisp. | 4226 | % Amount to narrow the margins by for @lisp. |
| 4121 | \newskip\lispnarrowing \lispnarrowing=0.4in | 4227 | \newskip\lispnarrowing \lispnarrowing=0.4in |
| @@ -4146,9 +4252,17 @@ width0pt\relax} \fi | |||
| 4146 | % is reset to zero; thus the \afterenvbreak inserts no space -- but the | 4252 | % is reset to zero; thus the \afterenvbreak inserts no space -- but the |
| 4147 | % start of the next paragraph will insert \parskip | 4253 | % start of the next paragraph will insert \parskip |
| 4148 | % | 4254 | % |
| 4149 | \def\aboveenvbreak{{\advance\envskipamount by \parskip | 4255 | \def\aboveenvbreak{{% |
| 4150 | \endgraf \ifdim\lastskip<\envskipamount | 4256 | \ifnum\lastpenalty < 10000 |
| 4151 | \removelastskip \penalty-50 \vskip\envskipamount \fi}} | 4257 | \advance\envskipamount by \parskip |
| 4258 | \endgraf | ||
| 4259 | \ifdim\lastskip<\envskipamount | ||
| 4260 | \removelastskip | ||
| 4261 | \penalty-50 | ||
| 4262 | \vskip\envskipamount | ||
| 4263 | \fi | ||
| 4264 | \fi | ||
| 4265 | }} | ||
| 4152 | 4266 | ||
| 4153 | \let\afterenvbreak = \aboveenvbreak | 4267 | \let\afterenvbreak = \aboveenvbreak |
| 4154 | 4268 | ||
| @@ -4280,7 +4394,7 @@ width0pt\relax} \fi | |||
| 4280 | \def\smalllispx{\begingroup | 4394 | \def\smalllispx{\begingroup |
| 4281 | \def\Esmalllisp{\nonfillfinish\endgroup}% | 4395 | \def\Esmalllisp{\nonfillfinish\endgroup}% |
| 4282 | \def\Esmallexample{\nonfillfinish\endgroup}% | 4396 | \def\Esmallexample{\nonfillfinish\endgroup}% |
| 4283 | \smallfonts | 4397 | \smallexamplefonts |
| 4284 | \lisp | 4398 | \lisp |
| 4285 | } | 4399 | } |
| 4286 | 4400 | ||
| @@ -4291,12 +4405,12 @@ width0pt\relax} \fi | |||
| 4291 | \let\Edisplay = \nonfillfinish | 4405 | \let\Edisplay = \nonfillfinish |
| 4292 | \gobble | 4406 | \gobble |
| 4293 | } | 4407 | } |
| 4294 | 4408 | % | |
| 4295 | % @smalldisplay (when @smallbook): @display plus smaller fonts. | 4409 | % @smalldisplay (when @smallbook): @display plus smaller fonts. |
| 4296 | % | 4410 | % |
| 4297 | \def\smalldisplayx{\begingroup | 4411 | \def\smalldisplayx{\begingroup |
| 4298 | \def\Esmalldisplay{\nonfillfinish\endgroup}% | 4412 | \def\Esmalldisplay{\nonfillfinish\endgroup}% |
| 4299 | \smallfonts \rm | 4413 | \smallexamplefonts \rm |
| 4300 | \display | 4414 | \display |
| 4301 | } | 4415 | } |
| 4302 | 4416 | ||
| @@ -4308,12 +4422,12 @@ width0pt\relax} \fi | |||
| 4308 | \let\Eformat = \nonfillfinish | 4422 | \let\Eformat = \nonfillfinish |
| 4309 | \gobble | 4423 | \gobble |
| 4310 | } | 4424 | } |
| 4311 | 4425 | % | |
| 4312 | % @smallformat (when @smallbook): @format plus smaller fonts. | 4426 | % @smallformat (when @smallbook): @format plus smaller fonts. |
| 4313 | % | 4427 | % |
| 4314 | \def\smallformatx{\begingroup | 4428 | \def\smallformatx{\begingroup |
| 4315 | \def\Esmallformat{\nonfillfinish\endgroup}% | 4429 | \def\Esmallformat{\nonfillfinish\endgroup}% |
| 4316 | \smallfonts \rm | 4430 | \smallexamplefonts \rm |
| 4317 | \format | 4431 | \format |
| 4318 | } | 4432 | } |
| 4319 | 4433 | ||
| @@ -4505,6 +4619,21 @@ width0pt\relax} \fi | |||
| 4505 | \endgroup\nonfillfinish\endgroup | 4619 | \endgroup\nonfillfinish\endgroup |
| 4506 | } | 4620 | } |
| 4507 | 4621 | ||
| 4622 | % @copying ... @end copying. | ||
| 4623 | % Save the text away for @insertcopying later. | ||
| 4624 | % | ||
| 4625 | \newbox\copyingbox | ||
| 4626 | % | ||
| 4627 | \def\copying{\begingroup | ||
| 4628 | \parindent = 0pt % looks wrong on title page | ||
| 4629 | \def\Ecopying{\egroup\endgroup}% | ||
| 4630 | \global\setbox\copyingbox = \vbox\bgroup | ||
| 4631 | } | ||
| 4632 | |||
| 4633 | % @insertcopying. | ||
| 4634 | % | ||
| 4635 | \def\insertcopying{\unvcopy\copyingbox} | ||
| 4636 | |||
| 4508 | 4637 | ||
| 4509 | \message{defuns,} | 4638 | \message{defuns,} |
| 4510 | % @defun etc. | 4639 | % @defun etc. |
| @@ -4601,56 +4730,60 @@ width0pt\relax} \fi | |||
| 4601 | {\df #1}\enskip % Generate function name | 4730 | {\df #1}\enskip % Generate function name |
| 4602 | } | 4731 | } |
| 4603 | 4732 | ||
| 4604 | % Actually process the body of a definition | 4733 | % Common pieces to start any @def... |
| 4605 | % #1 should be the terminating control sequence, such as \Edefun. | ||
| 4606 | % #2 should be the "another name" control sequence, such as \defunx. | ||
| 4607 | % #3 should be the control sequence that actually processes the header, | ||
| 4608 | % such as \defunheader. | ||
| 4609 | |||
| 4610 | \def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody | ||
| 4611 | \medbreak % | ||
| 4612 | % Define the end token that this defining construct specifies | ||
| 4613 | % so that it will exit this group. | ||
| 4614 | \def#1{\endgraf\endgroup\medbreak}% | ||
| 4615 | \def#2{\begingroup\obeylines\activeparens\spacesplit#3}% | ||
| 4616 | \parindent=0in | ||
| 4617 | \advance\leftskip by \defbodyindent | ||
| 4618 | \exdentamount=\defbodyindent | ||
| 4619 | \begingroup % | ||
| 4620 | \catcode 61=\active % 61 is `=' | ||
| 4621 | \obeylines\activeparens\spacesplit#3} | ||
| 4622 | |||
| 4623 | % #1 is the \E... control sequence to end the definition (which we define). | 4734 | % #1 is the \E... control sequence to end the definition (which we define). |
| 4624 | % #2 is the \...x control sequence for consecutive fns (which we define). | 4735 | % #2 is the \...x control sequence (which our caller defines). |
| 4625 | % #3 is the control sequence to call to resume processing. | 4736 | % #3 is the control sequence to process the header, such as \defunheader. |
| 4737 | % | ||
| 4738 | \def\parsebodycommon#1#2#3{% | ||
| 4739 | \begingroup\inENV | ||
| 4740 | % If there are two @def commands in a row, we'll have a \nobreak, | ||
| 4741 | % which is there to keep the function description together with its | ||
| 4742 | % header. But if there's nothing but headers, we want to allow a | ||
| 4743 | % break after all. | ||
| 4744 | \ifnum\lastpenalty = 10000 \penalty0 \fi | ||
| 4745 | \medbreak | ||
| 4746 | % | ||
| 4747 | % Define the \E... end token that this defining construct specifies | ||
| 4748 | % so that it will exit this group. | ||
| 4749 | \def#1{\endgraf\endgroup\medbreak}% | ||
| 4750 | % | ||
| 4751 | \parindent=0in | ||
| 4752 | \advance\leftskip by \defbodyindent | ||
| 4753 | \exdentamount=\defbodyindent | ||
| 4754 | } | ||
| 4755 | |||
| 4756 | % Process body of @defun, @deffn, @defmac, etc. | ||
| 4757 | % | ||
| 4758 | \def\defparsebody#1#2#3{% | ||
| 4759 | \parsebodycommon{#1}{#2}{#3}% | ||
| 4760 | \def#2{\begingroup\obeylines\activeparens\spacesplit#3}% | ||
| 4761 | \catcode61=\active % 61 is `=' | ||
| 4762 | \begingroup\obeylines\activeparens | ||
| 4763 | \spacesplit#3% | ||
| 4764 | } | ||
| 4765 | |||
| 4766 | % #1, #2, #3 are the common arguments (see \defparsebody). | ||
| 4626 | % #4, delimited by the space, is the class name. | 4767 | % #4, delimited by the space, is the class name. |
| 4627 | % | 4768 | % |
| 4628 | \def\defmethparsebody#1#2#3#4 {\begingroup\inENV % | 4769 | \def\defmethparsebody#1#2#3#4 {% |
| 4629 | \medbreak % | 4770 | \parsebodycommon{#1}{#2}{#3}% |
| 4630 | % Define the end token that this defining construct specifies | 4771 | \def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}% |
| 4631 | % so that it will exit this group. | 4772 | \begingroup\obeylines\activeparens |
| 4632 | \def#1{\endgraf\endgroup\medbreak}% | 4773 | \spacesplit{#3{#4}}% |
| 4633 | \def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}% | 4774 | } |
| 4634 | \parindent=0in | ||
| 4635 | \advance\leftskip by \defbodyindent | ||
| 4636 | \exdentamount=\defbodyindent | ||
| 4637 | \begingroup\obeylines\activeparens\spacesplit{#3{#4}}} | ||
| 4638 | 4775 | ||
| 4639 | % Used for @deftypemethod and @deftypeivar. | 4776 | % Used for @deftypemethod and @deftypeivar. |
| 4640 | % #1 is the \E... control sequence to end the definition (which we define). | 4777 | % #1, #2, #3 are the common arguments (see \defparsebody). |
| 4641 | % #2 is the \...x control sequence for consecutive fns (which we define). | ||
| 4642 | % #3 is the control sequence to call to resume processing. | ||
| 4643 | % #4, delimited by a space, is the class name. | 4778 | % #4, delimited by a space, is the class name. |
| 4644 | % #5 is the method's return type. | 4779 | % #5 is the method's return type. |
| 4645 | % | 4780 | % |
| 4646 | \def\deftypemethparsebody#1#2#3#4 #5 {\begingroup\inENV | 4781 | \def\deftypemethparsebody#1#2#3#4 #5 {% |
| 4647 | \medbreak | 4782 | \parsebodycommon{#1}{#2}{#3}% |
| 4648 | \def#1{\endgraf\endgroup\medbreak}% | ||
| 4649 | \def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}% | 4783 | \def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}% |
| 4650 | \parindent=0in | 4784 | \begingroup\obeylines\activeparens |
| 4651 | \advance\leftskip by \defbodyindent | 4785 | \spacesplit{#3{#4}{#5}}% |
| 4652 | \exdentamount=\defbodyindent | 4786 | } |
| 4653 | \begingroup\obeylines\activeparens\spacesplit{#3{#4}{#5}}} | ||
| 4654 | 4787 | ||
| 4655 | % Used for @deftypeop. The change from \deftypemethparsebody is an | 4788 | % Used for @deftypeop. The change from \deftypemethparsebody is an |
| 4656 | % extra argument at the beginning which is the `category', instead of it | 4789 | % extra argument at the beginning which is the `category', instead of it |
| @@ -4659,64 +4792,49 @@ width0pt\relax} \fi | |||
| 4659 | % input at hand. Thus also need a control sequence (passed as #5) for | 4792 | % input at hand. Thus also need a control sequence (passed as #5) for |
| 4660 | % the \E... definition to assign the category name to. | 4793 | % the \E... definition to assign the category name to. |
| 4661 | % | 4794 | % |
| 4662 | \def\deftypeopparsebody#1#2#3#4#5 #6 {\begingroup\inENV | 4795 | \def\deftypeopparsebody#1#2#3#4#5 #6 {% |
| 4663 | \medbreak | 4796 | \parsebodycommon{#1}{#2}{#3}% |
| 4664 | \def#1{\endgraf\endgroup\medbreak}% | ||
| 4665 | \def#2##1 ##2 ##3 {% | 4797 | \def#2##1 ##2 ##3 {% |
| 4666 | \def#4{##1}% | 4798 | \def#4{##1}% |
| 4667 | \begingroup\obeylines\activeparens\spacesplit{#3{##2}{##3}}}% | 4799 | \begingroup\obeylines\activeparens\spacesplit{#3{##2}{##3}}}% |
| 4668 | \parindent=0in | 4800 | \begingroup\obeylines\activeparens |
| 4669 | \advance\leftskip by \defbodyindent | 4801 | \spacesplit{#3{#5}{#6}}% |
| 4670 | \exdentamount=\defbodyindent | 4802 | } |
| 4671 | \begingroup\obeylines\activeparens\spacesplit{#3{#5}{#6}}} | 4803 | |
| 4672 | 4804 | % For @defop. | |
| 4673 | \def\defopparsebody #1#2#3#4#5 {\begingroup\inENV % | 4805 | \def\defopparsebody #1#2#3#4#5 {% |
| 4674 | \medbreak % | 4806 | \parsebodycommon{#1}{#2}{#3}% |
| 4675 | % Define the end token that this defining construct specifies | 4807 | \def#2##1 ##2 {\def#4{##1}% |
| 4676 | % so that it will exit this group. | 4808 | \begingroup\obeylines\activeparens\spacesplit{#3{##2}}}% |
| 4677 | \def#1{\endgraf\endgroup\medbreak}% | 4809 | \begingroup\obeylines\activeparens |
| 4678 | \def#2##1 ##2 {\def#4{##1}% | 4810 | \spacesplit{#3{#5}}% |
| 4679 | \begingroup\obeylines\activeparens\spacesplit{#3{##2}}}% | 4811 | } |
| 4680 | \parindent=0in | ||
| 4681 | \advance\leftskip by \defbodyindent | ||
| 4682 | \exdentamount=\defbodyindent | ||
| 4683 | \begingroup\obeylines\activeparens\spacesplit{#3{#5}}} | ||
| 4684 | 4812 | ||
| 4685 | % These parsing functions are similar to the preceding ones | 4813 | % These parsing functions are similar to the preceding ones |
| 4686 | % except that they do not make parens into active characters. | 4814 | % except that they do not make parens into active characters. |
| 4687 | % These are used for "variables" since they have no arguments. | 4815 | % These are used for "variables" since they have no arguments. |
| 4688 | |||
| 4689 | \def\defvarparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody | ||
| 4690 | \medbreak % | ||
| 4691 | % Define the end token that this defining construct specifies | ||
| 4692 | % so that it will exit this group. | ||
| 4693 | \def#1{\endgraf\endgroup\medbreak}% | ||
| 4694 | \def#2{\begingroup\obeylines\spacesplit#3}% | ||
| 4695 | \parindent=0in | ||
| 4696 | \advance\leftskip by \defbodyindent | ||
| 4697 | \exdentamount=\defbodyindent | ||
| 4698 | \begingroup % | ||
| 4699 | \catcode 61=\active % | ||
| 4700 | \obeylines\spacesplit#3} | ||
| 4701 | |||
| 4702 | % This is used for \def{tp,vr}parsebody. It could probably be used for | ||
| 4703 | % some of the others, too, with some judicious conditionals. | ||
| 4704 | % | 4816 | % |
| 4705 | \def\parsebodycommon#1#2#3{% | 4817 | \def\defvarparsebody #1#2#3{% |
| 4706 | \begingroup\inENV % | 4818 | \parsebodycommon{#1}{#2}{#3}% |
| 4707 | \medbreak % | 4819 | \def#2{\begingroup\obeylines\spacesplit#3}% |
| 4708 | % Define the end token that this defining construct specifies | 4820 | \catcode61=\active % |
| 4709 | % so that it will exit this group. | 4821 | \begingroup\obeylines |
| 4710 | \def#1{\endgraf\endgroup\medbreak}% | 4822 | \spacesplit#3% |
| 4711 | \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}% | 4823 | } |
| 4712 | \parindent=0in | 4824 | |
| 4713 | \advance\leftskip by \defbodyindent | 4825 | % @defopvar. |
| 4714 | \exdentamount=\defbodyindent | 4826 | \def\defopvarparsebody #1#2#3#4#5 {% |
| 4827 | \parsebodycommon{#1}{#2}{#3}% | ||
| 4828 | \def#2##1 ##2 {\def#4{##1}% | ||
| 4829 | \begingroup\obeylines\spacesplit{#3{##2}}}% | ||
| 4715 | \begingroup\obeylines | 4830 | \begingroup\obeylines |
| 4831 | \spacesplit{#3{#5}}% | ||
| 4716 | } | 4832 | } |
| 4717 | 4833 | ||
| 4718 | \def\defvrparsebody#1#2#3#4 {% | 4834 | \def\defvrparsebody#1#2#3#4 {% |
| 4719 | \parsebodycommon{#1}{#2}{#3}% | 4835 | \parsebodycommon{#1}{#2}{#3}% |
| 4836 | \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}% | ||
| 4837 | \begingroup\obeylines | ||
| 4720 | \spacesplit{#3{#4}}% | 4838 | \spacesplit{#3{#4}}% |
| 4721 | } | 4839 | } |
| 4722 | 4840 | ||
| @@ -4731,6 +4849,8 @@ width0pt\relax} \fi | |||
| 4731 | % | 4849 | % |
| 4732 | \def\deftpparsebody #1#2#3#4 {% | 4850 | \def\deftpparsebody #1#2#3#4 {% |
| 4733 | \parsebodycommon{#1}{#2}{#3}% | 4851 | \parsebodycommon{#1}{#2}{#3}% |
| 4852 | \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}% | ||
| 4853 | \begingroup\obeylines | ||
| 4734 | \spacesplit{\parsetpheaderline{#3{#4}}}\empty | 4854 | \spacesplit{\parsetpheaderline{#3{#4}}}\empty |
| 4735 | } | 4855 | } |
| 4736 | 4856 | ||
| @@ -4747,33 +4867,19 @@ width0pt\relax} \fi | |||
| 4747 | #1{\removeemptybraces#2\relax}{#3}% | 4867 | #1{\removeemptybraces#2\relax}{#3}% |
| 4748 | }% | 4868 | }% |
| 4749 | 4869 | ||
| 4750 | \def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV % | ||
| 4751 | \medbreak % | ||
| 4752 | % Define the end token that this defining construct specifies | ||
| 4753 | % so that it will exit this group. | ||
| 4754 | \def#1{\endgraf\endgroup\medbreak}% | ||
| 4755 | \def#2##1 ##2 {\def#4{##1}% | ||
| 4756 | \begingroup\obeylines\spacesplit{#3{##2}}}% | ||
| 4757 | \parindent=0in | ||
| 4758 | \advance\leftskip by \defbodyindent | ||
| 4759 | \exdentamount=\defbodyindent | ||
| 4760 | \begingroup\obeylines\spacesplit{#3{#5}}} | ||
| 4761 | |||
| 4762 | % Split up #2 at the first space token. | 4870 | % Split up #2 at the first space token. |
| 4763 | % call #1 with two arguments: | 4871 | % call #1 with two arguments: |
| 4764 | % the first is all of #2 before the space token, | 4872 | % the first is all of #2 before the space token, |
| 4765 | % the second is all of #2 after that space token. | 4873 | % the second is all of #2 after that space token. |
| 4766 | % If #2 contains no space token, all of it is passed as the first arg | 4874 | % If #2 contains no space token, all of it is passed as the first arg |
| 4767 | % and the second is passed as empty. | 4875 | % and the second is passed as empty. |
| 4768 | 4876 | % | |
| 4769 | {\obeylines | 4877 | {\obeylines |
| 4770 | \gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}% | 4878 | \gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}% |
| 4771 | \long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{% | 4879 | \long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{% |
| 4772 | \ifx\relax #3% | 4880 | \ifx\relax #3% |
| 4773 | #1{#2}{}\else #1{#2}{#3#4}\fi}} | 4881 | #1{#2}{}\else #1{#2}{#3#4}\fi}} |
| 4774 | 4882 | ||
| 4775 | % So much for the things common to all kinds of definitions. | ||
| 4776 | |||
| 4777 | % Define @defun. | 4883 | % Define @defun. |
| 4778 | 4884 | ||
| 4779 | % First, define the processing that is wanted for arguments of \defun | 4885 | % First, define the processing that is wanted for arguments of \defun |
| @@ -4833,7 +4939,7 @@ width0pt\relax} \fi | |||
| 4833 | % #1 is the data type, #2 the name, #3 the args. | 4939 | % #1 is the data type, #2 the name, #3 the args. |
| 4834 | \def\deftypefunheaderx #1#2 #3\relax{% | 4940 | \def\deftypefunheaderx #1#2 #3\relax{% |
| 4835 | \doind {fn}{\code{#2}}% Make entry in function index | 4941 | \doind {fn}{\code{#2}}% Make entry in function index |
| 4836 | \begingroup\defname {\defheaderxcond#1\relax$$$#2}{\putwordDeftypefun}% | 4942 | \begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypefun}% |
| 4837 | \deftypefunargs {#3}\endgroup % | 4943 | \deftypefunargs {#3}\endgroup % |
| 4838 | \catcode 61=\other % Turn off change made in \defparsebody | 4944 | \catcode 61=\other % Turn off change made in \defparsebody |
| 4839 | } | 4945 | } |
| @@ -4842,9 +4948,9 @@ width0pt\relax} \fi | |||
| 4842 | 4948 | ||
| 4843 | \def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader} | 4949 | \def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader} |
| 4844 | 4950 | ||
| 4845 | % \defheaderxcond#1\relax$$$ | 4951 | % \defheaderxcond#1\relax$.$ |
| 4846 | % puts #1 in @code, followed by a space, but does nothing if #1 is null. | 4952 | % puts #1 in @code, followed by a space, but does nothing if #1 is null. |
| 4847 | \def\defheaderxcond#1#2$$${\ifx#1\relax\else\code{#1#2} \fi} | 4953 | \def\defheaderxcond#1#2$.${\ifx#1\relax\else\code{#1#2} \fi} |
| 4848 | 4954 | ||
| 4849 | % #1 is the classification. #2 is the data type. #3 is the name and args. | 4955 | % #1 is the classification. #2 is the data type. #3 is the name and args. |
| 4850 | \def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax} | 4956 | \def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax} |
| @@ -4854,7 +4960,7 @@ width0pt\relax} \fi | |||
| 4854 | \begingroup | 4960 | \begingroup |
| 4855 | \normalparens % notably, turn off `&' magic, which prevents | 4961 | \normalparens % notably, turn off `&' magic, which prevents |
| 4856 | % at least some C++ text from working | 4962 | % at least some C++ text from working |
| 4857 | \defname {\defheaderxcond#2\relax$$$#3}{#1}% | 4963 | \defname {\defheaderxcond#2\relax$.$#3}{#1}% |
| 4858 | \deftypefunargs {#4}\endgroup % | 4964 | \deftypefunargs {#4}\endgroup % |
| 4859 | \catcode 61=\other % Turn off change made in \defparsebody | 4965 | \catcode 61=\other % Turn off change made in \defparsebody |
| 4860 | } | 4966 | } |
| @@ -4900,7 +5006,7 @@ width0pt\relax} \fi | |||
| 4900 | \def\deftypeopheader#1#2#3#4{% | 5006 | \def\deftypeopheader#1#2#3#4{% |
| 4901 | \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index | 5007 | \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index |
| 4902 | \begingroup | 5008 | \begingroup |
| 4903 | \defname{\defheaderxcond#2\relax$$$#3} | 5009 | \defname{\defheaderxcond#2\relax$.$#3} |
| 4904 | {\deftypeopcategory\ \putwordon\ \code{#1}}% | 5010 | {\deftypeopcategory\ \putwordon\ \code{#1}}% |
| 4905 | \deftypefunargs{#4}% | 5011 | \deftypefunargs{#4}% |
| 4906 | \endgroup | 5012 | \endgroup |
| @@ -4915,7 +5021,7 @@ width0pt\relax} \fi | |||
| 4915 | \def\deftypemethodheader#1#2#3#4{% | 5021 | \def\deftypemethodheader#1#2#3#4{% |
| 4916 | \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index | 5022 | \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index |
| 4917 | \begingroup | 5023 | \begingroup |
| 4918 | \defname{\defheaderxcond#2\relax$$$#3}{\putwordMethodon\ \code{#1}}% | 5024 | \defname{\defheaderxcond#2\relax$.$#3}{\putwordMethodon\ \code{#1}}% |
| 4919 | \deftypefunargs{#4}% | 5025 | \deftypefunargs{#4}% |
| 4920 | \endgroup | 5026 | \endgroup |
| 4921 | } | 5027 | } |
| @@ -4929,7 +5035,7 @@ width0pt\relax} \fi | |||
| 4929 | \def\deftypeivarheader#1#2#3{% | 5035 | \def\deftypeivarheader#1#2#3{% |
| 4930 | \dosubind{vr}{\code{#3}}{\putwordof\ \code{#1}}% entry in variable index | 5036 | \dosubind{vr}{\code{#3}}{\putwordof\ \code{#1}}% entry in variable index |
| 4931 | \begingroup | 5037 | \begingroup |
| 4932 | \defname{\defheaderxcond#2\relax$$$#3} | 5038 | \defname{\defheaderxcond#2\relax$.$#3} |
| 4933 | {\putwordInstanceVariableof\ \code{#1}}% | 5039 | {\putwordInstanceVariableof\ \code{#1}}% |
| 4934 | \defvarargs{#3}% | 5040 | \defvarargs{#3}% |
| 4935 | \endgroup | 5041 | \endgroup |
| @@ -5012,7 +5118,7 @@ width0pt\relax} \fi | |||
| 5012 | % is actually part of the data type, which should not be put into the index. | 5118 | % is actually part of the data type, which should not be put into the index. |
| 5013 | \def\deftypevarheader #1#2{% | 5119 | \def\deftypevarheader #1#2{% |
| 5014 | \dovarind#2 \relax% Make entry in variables index | 5120 | \dovarind#2 \relax% Make entry in variables index |
| 5015 | \begingroup\defname {\defheaderxcond#1\relax$$$#2}{\putwordDeftypevar}% | 5121 | \begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypevar}% |
| 5016 | \interlinepenalty=10000 | 5122 | \interlinepenalty=10000 |
| 5017 | \endgraf\nobreak\vskip -\parskip\nobreak | 5123 | \endgraf\nobreak\vskip -\parskip\nobreak |
| 5018 | \endgroup} | 5124 | \endgroup} |
| @@ -5023,7 +5129,7 @@ width0pt\relax} \fi | |||
| 5023 | \def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader} | 5129 | \def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader} |
| 5024 | 5130 | ||
| 5025 | \def\deftypevrheader #1#2#3{\dovarind#3 \relax% | 5131 | \def\deftypevrheader #1#2#3{\dovarind#3 \relax% |
| 5026 | \begingroup\defname {\defheaderxcond#2\relax$$$#3}{#1} | 5132 | \begingroup\defname {\defheaderxcond#2\relax$.$#3}{#1} |
| 5027 | \interlinepenalty=10000 | 5133 | \interlinepenalty=10000 |
| 5028 | \endgraf\nobreak\vskip -\parskip\nobreak | 5134 | \endgraf\nobreak\vskip -\parskip\nobreak |
| 5029 | \endgroup} | 5135 | \endgroup} |
| @@ -5183,7 +5289,7 @@ width0pt\relax} \fi | |||
| 5183 | \message{Warning: redefining \the\macname}% | 5289 | \message{Warning: redefining \the\macname}% |
| 5184 | \else | 5290 | \else |
| 5185 | \expandafter\ifx\csname \the\macname\endcsname \relax | 5291 | \expandafter\ifx\csname \the\macname\endcsname \relax |
| 5186 | \else \errmessage{The name \the\macname\space is reserved}\fi | 5292 | \else \errmessage{Macro name \the\macname\space already defined}\fi |
| 5187 | \global\cslet{macsave.\the\macname}{\the\macname}% | 5293 | \global\cslet{macsave.\the\macname}{\the\macname}% |
| 5188 | \global\expandafter\let\csname ismacro.\the\macname\endcsname=1% | 5294 | \global\expandafter\let\csname ismacro.\the\macname\endcsname=1% |
| 5189 | % Add the macroname to \macrolist | 5295 | % Add the macroname to \macrolist |
| @@ -5464,13 +5570,15 @@ width0pt\relax} \fi | |||
| 5464 | \ifpdf | 5570 | \ifpdf |
| 5465 | \leavevmode | 5571 | \leavevmode |
| 5466 | \getfilename{#4}% | 5572 | \getfilename{#4}% |
| 5467 | \ifnum\filenamelength>0 | 5573 | {\normalturnoffactive |
| 5468 | \startlink attr{/Border [0 0 0]}% | 5574 | \ifnum\filenamelength>0 |
| 5469 | goto file{\the\filename.pdf} name{#1@}% | 5575 | \startlink attr{/Border [0 0 0]}% |
| 5470 | \else | 5576 | goto file{\the\filename.pdf} name{#1}% |
| 5471 | \startlink attr{/Border [0 0 0]}% | 5577 | \else |
| 5472 | goto name{#1@}% | 5578 | \startlink attr{/Border [0 0 0]}% |
| 5473 | \fi | 5579 | goto name{#1}% |
| 5580 | \fi | ||
| 5581 | }% | ||
| 5474 | \linkcolor | 5582 | \linkcolor |
| 5475 | \fi | 5583 | \fi |
| 5476 | % | 5584 | % |
| @@ -5732,8 +5840,15 @@ width0pt\relax} \fi | |||
| 5732 | % | 5840 | % |
| 5733 | \smallfonts \rm | 5841 | \smallfonts \rm |
| 5734 | % | 5842 | % |
| 5735 | % Hang the footnote text off the number. | 5843 | % Because we use hanging indentation in footnotes, a @noindent appears |
| 5736 | \hang | 5844 | % to exdent this text, so make it be a no-op. makeinfo does not use |
| 5845 | % hanging indentation so @noindent can still be needed within footnote | ||
| 5846 | % text after an @example or the like (not that this is good style). | ||
| 5847 | \let\noindent = \relax | ||
| 5848 | % | ||
| 5849 | % Hang the footnote text off the number. Use \everypar in case the | ||
| 5850 | % footnote extends for more than one paragraph. | ||
| 5851 | \everypar = {\hang}% | ||
| 5737 | \textindent{\thisfootno}% | 5852 | \textindent{\thisfootno}% |
| 5738 | % | 5853 | % |
| 5739 | % Don't crash into the line above the footnote text. Since this | 5854 | % Don't crash into the line above the footnote text. Since this |
| @@ -5750,24 +5865,6 @@ width0pt\relax} \fi | |||
| 5750 | 5865 | ||
| 5751 | }%end \catcode `\@=11 | 5866 | }%end \catcode `\@=11 |
| 5752 | 5867 | ||
| 5753 | % Set the baselineskip to #1, and the lineskip and strut size | ||
| 5754 | % correspondingly. There is no deep meaning behind these magic numbers | ||
| 5755 | % used as factors; they just match (closely enough) what Knuth defined. | ||
| 5756 | % | ||
| 5757 | \def\lineskipfactor{.08333} | ||
| 5758 | \def\strutheightpercent{.70833} | ||
| 5759 | \def\strutdepthpercent {.29167} | ||
| 5760 | % | ||
| 5761 | \def\setleading#1{% | ||
| 5762 | \normalbaselineskip = #1\relax | ||
| 5763 | \normallineskip = \lineskipfactor\normalbaselineskip | ||
| 5764 | \normalbaselines | ||
| 5765 | \setbox\strutbox =\hbox{% | ||
| 5766 | \vrule width0pt height\strutheightpercent\baselineskip | ||
| 5767 | depth \strutdepthpercent \baselineskip | ||
| 5768 | }% | ||
| 5769 | } | ||
| 5770 | |||
| 5771 | % @| inserts a changebar to the left of the current line. It should | 5868 | % @| inserts a changebar to the left of the current line. It should |
| 5772 | % surround any changed text. This approach does *not* work if the | 5869 | % surround any changed text. This approach does *not* work if the |
| 5773 | % change spans more than two lines of output. To handle that, we would | 5870 | % change spans more than two lines of output. To handle that, we would |
| @@ -5832,41 +5929,44 @@ width0pt\relax} \fi | |||
| 5832 | \global\warnednoepsftrue | 5929 | \global\warnednoepsftrue |
| 5833 | \fi | 5930 | \fi |
| 5834 | \else | 5931 | \else |
| 5835 | \imagexxx #1,,,\finish | 5932 | \imagexxx #1,,,,,\finish |
| 5836 | \fi | 5933 | \fi |
| 5837 | } | 5934 | } |
| 5838 | % | 5935 | % |
| 5839 | % Arguments to @image: | 5936 | % Arguments to @image: |
| 5840 | % #1 is (mandatory) image filename; we tack on .eps extension. | 5937 | % #1 is (mandatory) image filename; we tack on .eps extension. |
| 5841 | % #2 is (optional) width, #3 is (optional) height. | 5938 | % #2 is (optional) width, #3 is (optional) height. |
| 5842 | % #4 is just the usual extra ignored arg for parsing this stuff. | 5939 | % #4 is (ignored optional) html alt text. |
| 5843 | \def\imagexxx#1,#2,#3,#4\finish{% | 5940 | % #5 is (ignored optional) extension. |
| 5941 | % #6 is just the usual extra ignored arg for parsing this stuff. | ||
| 5942 | \newif\ifimagevmode | ||
| 5943 | \def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup | ||
| 5944 | \catcode`\^^M = 5 % in case we're inside an example | ||
| 5945 | \normalturnoffactive % allow _ et al. in names | ||
| 5946 | % If the image is by itself, center it. | ||
| 5947 | \ifvmode | ||
| 5948 | \imagevmodetrue | ||
| 5949 | \nobreak\bigskip | ||
| 5950 | % Usually we'll have text after the image which will insert | ||
| 5951 | % \parskip glue, so insert it here too to equalize the space | ||
| 5952 | % above and below. | ||
| 5953 | \nobreak\vskip\parskip | ||
| 5954 | \nobreak | ||
| 5955 | \line\bgroup\hss | ||
| 5956 | \fi | ||
| 5957 | % | ||
| 5958 | % Output the image. | ||
| 5844 | \ifpdf | 5959 | \ifpdf |
| 5845 | \centerline{\dopdfimage{#1}{#2}{#3}}% | 5960 | \dopdfimage{#1}{#2}{#3}% |
| 5846 | \else | 5961 | \else |
| 5847 | % \epsfbox itself resets \epsf?size at each figure. | 5962 | % \epsfbox itself resets \epsf?size at each figure. |
| 5848 | \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi | 5963 | \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi |
| 5849 | \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi | 5964 | \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi |
| 5850 | \begingroup | 5965 | \epsfbox{#1.eps}% |
| 5851 | \catcode`\^^M = 5 % in case we're inside an example | ||
| 5852 | \normalturnoffactive % allow _ et al. in names | ||
| 5853 | % If the image is by itself, center it. | ||
| 5854 | \ifvmode | ||
| 5855 | \nobreak\bigskip | ||
| 5856 | % Usually we'll have text after the image which will insert | ||
| 5857 | % \parskip glue, so insert it here too to equalize the space | ||
| 5858 | % above and below. | ||
| 5859 | \nobreak\vskip\parskip | ||
| 5860 | \nobreak | ||
| 5861 | \centerline{\epsfbox{#1.eps}}% | ||
| 5862 | \bigbreak | ||
| 5863 | \else | ||
| 5864 | % In the middle of a paragraph, no extra space. | ||
| 5865 | \epsfbox{#1.eps}% | ||
| 5866 | \fi | ||
| 5867 | \endgroup | ||
| 5868 | \fi | 5966 | \fi |
| 5869 | } | 5967 | % |
| 5968 | \ifimagevmode \hss \egroup \bigbreak \fi % space after the image | ||
| 5969 | \endgroup} | ||
| 5870 | 5970 | ||
| 5871 | 5971 | ||
| 5872 | \message{localization,} | 5972 | \message{localization,} |
| @@ -5935,8 +6035,9 @@ should work if nowhere else does.} | |||
| 5935 | } | 6035 | } |
| 5936 | 6036 | ||
| 5937 | % Parameters in order: 1) textheight; 2) textwidth; 3) voffset; | 6037 | % Parameters in order: 1) textheight; 2) textwidth; 3) voffset; |
| 5938 | % 4) hoffset; 5) binding offset; 6) topskip. Then whoever calls us can | 6038 | % 4) hoffset; 5) binding offset; 6) topskip. We also call |
| 5939 | % set \parskip and call \setleading for \baselineskip. | 6039 | % \setleading{\textleading}, so the caller should define \textleading. |
| 6040 | % The caller should also set \parskip. | ||
| 5940 | % | 6041 | % |
| 5941 | \def\internalpagesizes#1#2#3#4#5#6{% | 6042 | \def\internalpagesizes#1#2#3#4#5#6{% |
| 5942 | \voffset = #3\relax | 6043 | \voffset = #3\relax |
| @@ -5957,6 +6058,8 @@ should work if nowhere else does.} | |||
| 5957 | \normaloffset = #4\relax | 6058 | \normaloffset = #4\relax |
| 5958 | \bindingoffset = #5\relax | 6059 | \bindingoffset = #5\relax |
| 5959 | % | 6060 | % |
| 6061 | \setleading{\textleading} | ||
| 6062 | % | ||
| 5960 | \parindent = \defaultparindent | 6063 | \parindent = \defaultparindent |
| 5961 | \setemergencystretch | 6064 | \setemergencystretch |
| 5962 | } | 6065 | } |
| @@ -5973,7 +6076,7 @@ should work if nowhere else does.} | |||
| 5973 | % @letterpaper (the default). | 6076 | % @letterpaper (the default). |
| 5974 | \def\letterpaper{{\globaldefs = 1 | 6077 | \def\letterpaper{{\globaldefs = 1 |
| 5975 | \parskip = 3pt plus 2pt minus 1pt | 6078 | \parskip = 3pt plus 2pt minus 1pt |
| 5976 | \setleading{13.2pt}% | 6079 | \textleading = 13.2pt |
| 5977 | % | 6080 | % |
| 5978 | % If page is nothing but text, make it come out even. | 6081 | % If page is nothing but text, make it come out even. |
| 5979 | \internalpagesizes{46\baselineskip}{6in}{\voffset}{.25in}{\bindingoffset}{36pt}% | 6082 | \internalpagesizes{46\baselineskip}{6in}{\voffset}{.25in}{\bindingoffset}{36pt}% |
| @@ -5982,7 +6085,7 @@ should work if nowhere else does.} | |||
| 5982 | % Use @smallbook to reset parameters for 7x9.5 (or so) format. | 6085 | % Use @smallbook to reset parameters for 7x9.5 (or so) format. |
| 5983 | \def\smallbook{{\globaldefs = 1 | 6086 | \def\smallbook{{\globaldefs = 1 |
| 5984 | \parskip = 2pt plus 1pt | 6087 | \parskip = 2pt plus 1pt |
| 5985 | \setleading{12pt}% | 6088 | \textleading = 12pt |
| 5986 | % | 6089 | % |
| 5987 | \internalpagesizes{7.5in}{5.in}{\voffset}{.25in}{\bindingoffset}{16pt}% | 6090 | \internalpagesizes{7.5in}{5.in}{\voffset}{.25in}{\bindingoffset}{16pt}% |
| 5988 | % | 6091 | % |
| @@ -5997,8 +6100,8 @@ should work if nowhere else does.} | |||
| 5997 | 6100 | ||
| 5998 | % Use @afourpaper to print on European A4 paper. | 6101 | % Use @afourpaper to print on European A4 paper. |
| 5999 | \def\afourpaper{{\globaldefs = 1 | 6102 | \def\afourpaper{{\globaldefs = 1 |
| 6000 | \setleading{12pt}% | ||
| 6001 | \parskip = 3pt plus 2pt minus 1pt | 6103 | \parskip = 3pt plus 2pt minus 1pt |
| 6104 | \textleading = 12pt | ||
| 6002 | % | 6105 | % |
| 6003 | \internalpagesizes{53\baselineskip}{160mm}{\voffset}{4mm}{\bindingoffset}{44pt}% | 6106 | \internalpagesizes{53\baselineskip}{160mm}{\voffset}{4mm}{\bindingoffset}{44pt}% |
| 6004 | % | 6107 | % |
| @@ -6010,8 +6113,8 @@ should work if nowhere else does.} | |||
| 6010 | % From romildo@urano.iceb.ufop.br, 2 July 2000. | 6113 | % From romildo@urano.iceb.ufop.br, 2 July 2000. |
| 6011 | % He also recommends making @example and @lisp be small. | 6114 | % He also recommends making @example and @lisp be small. |
| 6012 | \def\afivepaper{{\globaldefs = 1 | 6115 | \def\afivepaper{{\globaldefs = 1 |
| 6013 | \setleading{12.5pt}% | ||
| 6014 | \parskip = 2pt plus 1pt minus 0.1pt | 6116 | \parskip = 2pt plus 1pt minus 0.1pt |
| 6117 | \textleading = 12.5pt | ||
| 6015 | % | 6118 | % |
| 6016 | \internalpagesizes{166mm}{120mm}{\voffset}{-8mm}{\bindingoffset}{8pt}% | 6119 | \internalpagesizes{166mm}{120mm}{\voffset}{-8mm}{\bindingoffset}{8pt}% |
| 6017 | % | 6120 | % |
| @@ -6029,11 +6132,13 @@ should work if nowhere else does.} | |||
| 6029 | % A specific text layout, 24x15cm overall, intended for A4 paper. Top margin | 6132 | % A specific text layout, 24x15cm overall, intended for A4 paper. Top margin |
| 6030 | % 29mm, hence bottom margin 28mm, nominal side margin 3cm. | 6133 | % 29mm, hence bottom margin 28mm, nominal side margin 3cm. |
| 6031 | \def\afourlatex{{\globaldefs = 1 | 6134 | \def\afourlatex{{\globaldefs = 1 |
| 6032 | \setleading{13.6pt}% | 6135 | \textleading = 13.6pt |
| 6033 | % | 6136 | % |
| 6034 | \afourpaper | 6137 | \afourpaper |
| 6035 | \internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}% | 6138 | \internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}% |
| 6036 | % | 6139 | % |
| 6140 | % Must explicitly reset to 0 because we call \afourpaper, apparently, | ||
| 6141 | % although this does not entirely make sense. | ||
| 6037 | \globaldefs = 0 | 6142 | \globaldefs = 0 |
| 6038 | }} | 6143 | }} |
| 6039 | 6144 | ||
| @@ -6041,8 +6146,6 @@ should work if nowhere else does.} | |||
| 6041 | \def\afourwide{% | 6146 | \def\afourwide{% |
| 6042 | \afourpaper | 6147 | \afourpaper |
| 6043 | \internalpagesizes{6.5in}{9.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}% | 6148 | \internalpagesizes{6.5in}{9.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}% |
| 6044 | % | ||
| 6045 | \globaldefs = 0 | ||
| 6046 | } | 6149 | } |
| 6047 | 6150 | ||
| 6048 | % @pagesizes TEXTHEIGHT[,TEXTWIDTH] | 6151 | % @pagesizes TEXTHEIGHT[,TEXTWIDTH] |
| @@ -6056,7 +6159,7 @@ should work if nowhere else does.} | |||
| 6056 | \globaldefs = 1 | 6159 | \globaldefs = 1 |
| 6057 | % | 6160 | % |
| 6058 | \parskip = 3pt plus 2pt minus 1pt | 6161 | \parskip = 3pt plus 2pt minus 1pt |
| 6059 | \setleading{13.2pt}% | 6162 | \setleading{\textleading}% |
| 6060 | % | 6163 | % |
| 6061 | \internalpagesizes{#1}{\hsize}{\voffset}{\normaloffset}{\bindingoffset}{44pt}% | 6164 | \internalpagesizes{#1}{\hsize}{\voffset}{\normaloffset}{\bindingoffset}{44pt}% |
| 6062 | }} | 6165 | }} |
| @@ -6086,7 +6189,7 @@ should work if nowhere else does.} | |||
| 6086 | \def\normalless{<} | 6189 | \def\normalless{<} |
| 6087 | \def\normalgreater{>} | 6190 | \def\normalgreater{>} |
| 6088 | \def\normalplus{+} | 6191 | \def\normalplus{+} |
| 6089 | \def\normaldollar{$} | 6192 | \def\normaldollar{$}%$ font-lock fix |
| 6090 | 6193 | ||
| 6091 | % This macro is used to make a character print one way in ttfont | 6194 | % This macro is used to make a character print one way in ttfont |
| 6092 | % where it can probably just be output, and another way in other fonts, | 6195 | % where it can probably just be output, and another way in other fonts, |
| @@ -6135,7 +6238,7 @@ should work if nowhere else does.} | |||
| 6135 | \catcode`\+=\active | 6238 | \catcode`\+=\active |
| 6136 | \def+{{\tt \char 43}} | 6239 | \def+{{\tt \char 43}} |
| 6137 | \catcode`\$=\active | 6240 | \catcode`\$=\active |
| 6138 | \def${\ifusingit{{\sl\$}}\normaldollar} | 6241 | \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix |
| 6139 | %\catcode 27=\active | 6242 | %\catcode 27=\active |
| 6140 | %\def^^[{$\diamondsuit$} | 6243 | %\def^^[{$\diamondsuit$} |
| 6141 | 6244 | ||
| @@ -6180,7 +6283,7 @@ should work if nowhere else does.} | |||
| 6180 | @let<=@normalless | 6283 | @let<=@normalless |
| 6181 | @let>=@normalgreater | 6284 | @let>=@normalgreater |
| 6182 | @let+=@normalplus | 6285 | @let+=@normalplus |
| 6183 | @let$=@normaldollar} | 6286 | @let$=@normaldollar}%$ font-lock fix |
| 6184 | 6287 | ||
| 6185 | @def@normalturnoffactive{@let"=@normaldoublequote | 6288 | @def@normalturnoffactive{@let"=@normaldoublequote |
| 6186 | @let\=@normalbackslash | 6289 | @let\=@normalbackslash |
| @@ -6191,7 +6294,7 @@ should work if nowhere else does.} | |||
| 6191 | @let<=@normalless | 6294 | @let<=@normalless |
| 6192 | @let>=@normalgreater | 6295 | @let>=@normalgreater |
| 6193 | @let+=@normalplus | 6296 | @let+=@normalplus |
| 6194 | @let$=@normaldollar} | 6297 | @let$=@normaldollar}%$ font-lock fix |
| 6195 | 6298 | ||
| 6196 | % Make _ and + \other characters, temporarily. | 6299 | % Make _ and + \other characters, temporarily. |
| 6197 | % This is canceled by @fixbackslash. | 6300 | % This is canceled by @fixbackslash. |