aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--COPYING6
-rw-r--r--ChangeLog4
-rw-r--r--INSTALL107
-rw-r--r--configure.ac5
-rw-r--r--doc/texinfo.tex899
5 files changed, 321 insertions, 700 deletions
diff --git a/COPYING b/COPYING
index 5ab7695a..9b3e553b 100644
--- a/COPYING
+++ b/COPYING
@@ -1,3 +1,9 @@
1Some of this code is DUAL-LICENSED. If you use MHD without HTTPS/SSL
2support, you are free to choose between the LGPL and the eCos License
3(http://ecos.sourceware.org/license-overview.html). If you compile
4MHD with HTTPS support, you must obey the terms of the GNU LGPL.
5
6
1 GNU LESSER GENERAL PUBLIC LICENSE 7 GNU LESSER GENERAL PUBLIC LICENSE
2 Version 2.1, February 1999 8 Version 2.1, February 1999
3 9
diff --git a/ChangeLog b/ChangeLog
index 8033e7fb..e03cf6e7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
1Sun Oct 11 14:57:29 CEST 2009
2 Adding eCos license as an additional license for the
3 non-HTTPS code of MHD. -CG
4
1Sun Oct 11 11:24:27 CEST 2009 5Sun Oct 11 11:24:27 CEST 2009
2 Adding support for Symbian. -MR 6 Adding support for Symbian. -MR
3 7
diff --git a/INSTALL b/INSTALL
index 2550dab7..d3c5b40a 100644
--- a/INSTALL
+++ b/INSTALL
@@ -2,15 +2,15 @@ Installation Instructions
2************************* 2*************************
3 3
4Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 4Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
52006, 2007, 2008, 2009 Free Software Foundation, Inc. 52006, 2007 Free Software Foundation, Inc.
6 6
7 This file is free documentation; the Free Software Foundation gives 7This file is free documentation; the Free Software Foundation gives
8unlimited permission to copy, distribute and modify it. 8unlimited permission to copy, distribute and modify it.
9 9
10Basic Installation 10Basic Installation
11================== 11==================
12 12
13 Briefly, the shell commands `./configure; make; make install' should 13Briefly, the shell commands `./configure; make; make install' should
14configure, build, and install this package. The following 14configure, build, and install this package. The following
15more-detailed instructions are generic; see the `README' file for 15more-detailed instructions are generic; see the `README' file for
16instructions specific to this package. 16instructions specific to this package.
@@ -73,9 +73,9 @@ The simplest way to compile this package is:
73Compilers and Options 73Compilers and Options
74===================== 74=====================
75 75
76 Some systems require unusual options for compilation or linking that 76Some systems require unusual options for compilation or linking that the
77the `configure' script does not know about. Run `./configure --help' 77`configure' script does not know about. Run `./configure --help' for
78for details on some of the pertinent environment variables. 78details on some of the pertinent environment variables.
79 79
80 You can give `configure' initial values for configuration parameters 80 You can give `configure' initial values for configuration parameters
81by setting variables in the command line or in the environment. Here 81by setting variables in the command line or in the environment. Here
@@ -88,7 +88,7 @@ is an example:
88Compiling For Multiple Architectures 88Compiling For Multiple Architectures
89==================================== 89====================================
90 90
91 You can compile the package for more than one kind of computer at the 91You can compile the package for more than one kind of computer at the
92same time, by placing the object files for each architecture in their 92same time, by placing the object files for each architecture in their
93own directory. To do this, you can use GNU `make'. `cd' to the 93own directory. To do this, you can use GNU `make'. `cd' to the
94directory where you want the object files and executables to go and run 94directory where you want the object files and executables to go and run
@@ -100,24 +100,10 @@ architecture at a time in the source code directory. After you have
100installed the package for one architecture, use `make distclean' before 100installed the package for one architecture, use `make distclean' before
101reconfiguring for another architecture. 101reconfiguring for another architecture.
102 102
103 On MacOS X 10.5 and later systems, you can create libraries and
104executables that work on multiple system types--known as "fat" or
105"universal" binaries--by specifying multiple `-arch' options to the
106compiler but only a single `-arch' option to the preprocessor. Like
107this:
108
109 ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
110 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
111 CPP="gcc -E" CXXCPP="g++ -E"
112
113 This is not guaranteed to produce working output in all cases, you
114may have to build one architecture at a time and combine the results
115using the `lipo' tool if you have problems.
116
117Installation Names 103Installation Names
118================== 104==================
119 105
120 By default, `make install' installs the package's commands under 106By default, `make install' installs the package's commands under
121`/usr/local/bin', include files under `/usr/local/include', etc. You 107`/usr/local/bin', include files under `/usr/local/include', etc. You
122can specify an installation prefix other than `/usr/local' by giving 108can specify an installation prefix other than `/usr/local' by giving
123`configure' the option `--prefix=PREFIX'. 109`configure' the option `--prefix=PREFIX'.
@@ -140,7 +126,7 @@ option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
140Optional Features 126Optional Features
141================= 127=================
142 128
143 Some packages pay attention to `--enable-FEATURE' options to 129Some packages pay attention to `--enable-FEATURE' options to
144`configure', where FEATURE indicates an optional part of the package. 130`configure', where FEATURE indicates an optional part of the package.
145They may also pay attention to `--with-PACKAGE' options, where PACKAGE 131They may also pay attention to `--with-PACKAGE' options, where PACKAGE
146is something like `gnu-as' or `x' (for the X Window System). The 132is something like `gnu-as' or `x' (for the X Window System). The
@@ -152,46 +138,14 @@ find the X include and library files automatically, but if it doesn't,
152you can use the `configure' options `--x-includes=DIR' and 138you can use the `configure' options `--x-includes=DIR' and
153`--x-libraries=DIR' to specify their locations. 139`--x-libraries=DIR' to specify their locations.
154 140
155Particular systems
156==================
157
158 On HP-UX, the default C compiler is not ANSI C compatible. If GNU
159CC is not installed, it is recommended to use the following options in
160order to use an ANSI C compiler:
161
162 ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
163
164and if that doesn't work, install pre-built binaries of GCC for HP-UX.
165
166 On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
167parse its `<wchar.h>' header file. The option `-nodtk' can be used as
168a workaround. If GNU CC is not installed, it is therefore recommended
169to try
170
171 ./configure CC="cc"
172
173and if that doesn't work, try
174
175 ./configure CC="cc -nodtk"
176
177 On Solaris, don't put `/usr/ucb' early in your `PATH'. This
178directory contains several dysfunctional programs; working variants of
179these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
180in your `PATH', put it _after_ `/usr/bin'.
181
182 On Haiku, software installed for all users goes in `/boot/common',
183not `/usr/local'. It is recommended to use the following options:
184
185 ./configure --prefix=/boot/common
186
187Specifying the System Type 141Specifying the System Type
188========================== 142==========================
189 143
190 There may be some features `configure' cannot figure out 144There may be some features `configure' cannot figure out automatically,
191automatically, but needs to determine by the type of machine the package 145but needs to determine by the type of machine the package will run on.
192will run on. Usually, assuming the package is built to be run on the 146Usually, assuming the package is built to be run on the _same_
193_same_ architectures, `configure' can figure that out, but if it prints 147architectures, `configure' can figure that out, but if it prints a
194a message saying it cannot guess the machine type, give it the 148message saying it cannot guess the machine type, give it the
195`--build=TYPE' option. TYPE can either be a short name for the system 149`--build=TYPE' option. TYPE can either be a short name for the system
196type, such as `sun4', or a canonical name which has the form: 150type, such as `sun4', or a canonical name which has the form:
197 151
@@ -199,8 +153,7 @@ type, such as `sun4', or a canonical name which has the form:
199 153
200where SYSTEM can have one of these forms: 154where SYSTEM can have one of these forms:
201 155
202 OS 156 OS KERNEL-OS
203 KERNEL-OS
204 157
205 See the file `config.sub' for the possible values of each field. If 158 See the file `config.sub' for the possible values of each field. If
206`config.sub' isn't included in this package, then this package doesn't 159`config.sub' isn't included in this package, then this package doesn't
@@ -218,9 +171,9 @@ eventually be run) with `--host=TYPE'.
218Sharing Defaults 171Sharing Defaults
219================ 172================
220 173
221 If you want to set default values for `configure' scripts to share, 174If you want to set default values for `configure' scripts to share, you
222you can create a site shell script called `config.site' that gives 175can create a site shell script called `config.site' that gives default
223default values for variables like `CC', `cache_file', and `prefix'. 176values for variables like `CC', `cache_file', and `prefix'.
224`configure' looks for `PREFIX/share/config.site' if it exists, then 177`configure' looks for `PREFIX/share/config.site' if it exists, then
225`PREFIX/etc/config.site' if it exists. Or, you can set the 178`PREFIX/etc/config.site' if it exists. Or, you can set the
226`CONFIG_SITE' environment variable to the location of the site script. 179`CONFIG_SITE' environment variable to the location of the site script.
@@ -229,7 +182,7 @@ A warning: not all `configure' scripts look for a site script.
229Defining Variables 182Defining Variables
230================== 183==================
231 184
232 Variables not defined in a site shell script can be set in the 185Variables not defined in a site shell script can be set in the
233environment passed to `configure'. However, some packages may run 186environment passed to `configure'. However, some packages may run
234configure again during the build, and the customized values of these 187configure again during the build, and the customized values of these
235variables may be lost. In order to avoid this problem, you should set 188variables may be lost. In order to avoid this problem, you should set
@@ -248,19 +201,11 @@ an Autoconf bug. Until the bug is fixed you can use this workaround:
248`configure' Invocation 201`configure' Invocation
249====================== 202======================
250 203
251 `configure' recognizes the following options to control how it 204`configure' recognizes the following options to control how it operates.
252operates.
253 205
254`--help' 206`--help'
255`-h' 207`-h'
256 Print a summary of all of the options to `configure', and exit. 208 Print a summary of the options to `configure', and exit.
257
258`--help=short'
259`--help=recursive'
260 Print a summary of the options unique to this package's
261 `configure', and exit. The `short' variant lists options used
262 only in the top level, while the `recursive' variant lists options
263 also present in any nested packages.
264 209
265`--version' 210`--version'
266`-V' 211`-V'
@@ -287,16 +232,6 @@ operates.
287 Look for the package's source code in directory DIR. Usually 232 Look for the package's source code in directory DIR. Usually
288 `configure' can determine that directory automatically. 233 `configure' can determine that directory automatically.
289 234
290`--prefix=DIR'
291 Use DIR as the installation prefix. *Note Installation Names::
292 for more details, including other options available for fine-tuning
293 the installation locations.
294
295`--no-create'
296`-n'
297 Run the configure checks, but stop before creating any output
298 files.
299
300`configure' also accepts some other, not widely useful, options. Run 235`configure' also accepts some other, not widely useful, options. Run
301`configure --help' for more details. 236`configure --help' for more details.
302 237
diff --git a/configure.ac b/configure.ac
index d5557fc8..dcb07367 100644
--- a/configure.ac
+++ b/configure.ac
@@ -367,7 +367,12 @@ if test "$enable_https" = "yes"
367then 367then
368 AC_MSG_NOTICE([HTTPS subsystem configuration: 368 AC_MSG_NOTICE([HTTPS subsystem configuration:
369 Client code dep.: ${MSG_CLIENT_SIDE} 369 Client code dep.: ${MSG_CLIENT_SIDE}
370 License : LGPL only
370 ]) 371 ])
372else
373 AC_MSG_NOTICE([
374 License : LGPL or eCos
375])
371fi 376fi
372 377
373 378
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index 0d3ba16f..d2b264dd 100644
--- a/doc/texinfo.tex
+++ b/doc/texinfo.tex
@@ -3,11 +3,11 @@
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{2009-05-16.16} 6\def\texinfoversion{2007-12-02.17}
7% 7%
8% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 8% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 2007,
9% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 9% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
10% 2007, 2008, 2009 Free Software Foundation, Inc. 10% 2007 Free Software Foundation, Inc.
11% 11%
12% This texinfo.tex file is free software: you can redistribute it and/or 12% This texinfo.tex file is free software: you can redistribute it and/or
13% modify it under the terms of the GNU General Public License as 13% modify it under the terms of the GNU General Public License as
@@ -97,10 +97,6 @@
97\let\ptexslash=\/ 97\let\ptexslash=\/
98\let\ptexstar=\* 98\let\ptexstar=\*
99\let\ptext=\t 99\let\ptext=\t
100\let\ptextop=\top
101{\catcode`\'=\active
102\global\let\ptexquoteright'}% Math-mode def from plain.tex.
103\let\ptexraggedright=\raggedright
104 100
105% If this character appears in an error message or help string, it 101% If this character appears in an error message or help string, it
106% starts a new line in the output. 102% starts a new line in the output.
@@ -358,7 +354,7 @@
358 % We don't want .vr (or whatever) entries like this: 354 % We don't want .vr (or whatever) entries like this:
359 % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}} 355 % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}}
360 % "\acronym" won't work when it's read back in; 356 % "\acronym" won't work when it's read back in;
361 % it needs to be 357 % it needs to be
362 % {\code {{\tt \backslashcurfont }acronym} 358 % {\code {{\tt \backslashcurfont }acronym}
363 \shipout\vbox{% 359 \shipout\vbox{%
364 % Do this early so pdf references go to the beginning of the page. 360 % Do this early so pdf references go to the beginning of the page.
@@ -464,7 +460,7 @@
464\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm} 460\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
465\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm} 461\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
466 462
467% Each occurrence of `\^^M' or `<space>\^^M' is replaced by a single space. 463% Each occurence of `\^^M' or `<space>\^^M' is replaced by a single space.
468% 464%
469% \argremovec might leave us with trailing space, e.g., 465% \argremovec might leave us with trailing space, e.g.,
470% @end itemize @c foo 466% @end itemize @c foo
@@ -489,7 +485,7 @@
489% to get _exactly_ the rest of the line, we had to prevent such situation. 485% to get _exactly_ the rest of the line, we had to prevent such situation.
490% We prepended an \empty token at the very beginning and we expand it now, 486% We prepended an \empty token at the very beginning and we expand it now,
491% just before passing the control to \argtorun. 487% just before passing the control to \argtorun.
492% (Similarly, we have to think about #3 of \argcheckspacesY above: it is 488% (Similarily, we have to think about #3 of \argcheckspacesY above: it is
493% either the null string, or it ends with \^^M---thus there is no danger 489% either the null string, or it ends with \^^M---thus there is no danger
494% that a pair of braces would be stripped. 490% that a pair of braces would be stripped.
495% 491%
@@ -546,12 +542,12 @@
546% used to check whether the current environment is the one expected. 542% used to check whether the current environment is the one expected.
547% 543%
548% Non-false conditionals (@iftex, @ifset) don't fit into this, so they 544% Non-false conditionals (@iftex, @ifset) don't fit into this, so they
549% are not treated as environments; they don't open a group. (The 545% are not treated as enviroments; they don't open a group. (The
550% implementation of @end takes care not to call \endgroup in this 546% implementation of @end takes care not to call \endgroup in this
551% special case.) 547% special case.)
552 548
553 549
554% At run-time, environments start with this: 550% At runtime, environments start with this:
555\def\startenvironment#1{\begingroup\def\thisenv{#1}} 551\def\startenvironment#1{\begingroup\def\thisenv{#1}}
556% initialize 552% initialize
557\let\thisenv\empty 553\let\thisenv\empty
@@ -569,7 +565,7 @@
569 \fi 565 \fi
570} 566}
571 567
572% Environment mismatch, #1 expected: 568% Evironment mismatch, #1 expected:
573\def\badenverr{% 569\def\badenverr{%
574 \errhelp = \EMsimple 570 \errhelp = \EMsimple
575 \errmessage{This command can appear only \inenvironment\temp, 571 \errmessage{This command can appear only \inenvironment\temp,
@@ -653,8 +649,8 @@
653\def\jmacro{j} 649\def\jmacro{j}
654\def\dotless#1{% 650\def\dotless#1{%
655 \def\temp{#1}% 651 \def\temp{#1}%
656 \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi 652 \ifx\temp\imacro \ptexi
657 \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi 653 \else\ifx\temp\jmacro \j
658 \else \errmessage{@dotless can be used only with i or j}% 654 \else \errmessage{@dotless can be used only with i or j}%
659 \fi\fi 655 \fi\fi
660} 656}
@@ -709,7 +705,7 @@
709\def\?{?\spacefactor=\endofsentencespacefactor\space} 705\def\?{?\spacefactor=\endofsentencespacefactor\space}
710 706
711% @frenchspacing on|off says whether to put extra space after punctuation. 707% @frenchspacing on|off says whether to put extra space after punctuation.
712% 708%
713\def\onword{on} 709\def\onword{on}
714\def\offword{off} 710\def\offword{off}
715% 711%
@@ -920,20 +916,15 @@ where each line of input produces a line of output.}
920 \temp 916 \temp
921} 917}
922 918
923% @include FILE -- \input text of FILE. 919% @include file insert text of that file as input.
924% 920%
925\def\include{\parseargusing\filenamecatcodes\includezzz} 921\def\include{\parseargusing\filenamecatcodes\includezzz}
926\def\includezzz#1{% 922\def\includezzz#1{%
927 \pushthisfilestack 923 \pushthisfilestack
928 \def\thisfile{#1}% 924 \def\thisfile{#1}%
929 {% 925 {%
930 \makevalueexpandable % we want to expand any @value in FILE. 926 \makevalueexpandable
931 \turnoffactive % and allow special characters in the expansion 927 \def\temp{\input #1 }%
932 \indexnofonts % Allow `@@' and other weird things in file names.
933 \edef\temp{\noexpand\input #1 }%
934 %
935 % This trickery is to read FILE outside of a group, in case it makes
936 % definitions, etc.
937 \expandafter 928 \expandafter
938 }\temp 929 }\temp
939 \popthisfilestack 930 \popthisfilestack
@@ -948,8 +939,6 @@ where each line of input produces a line of output.}
948 \catcode`>=\other 939 \catcode`>=\other
949 \catcode`+=\other 940 \catcode`+=\other
950 \catcode`-=\other 941 \catcode`-=\other
951 \catcode`\`=\other
952 \catcode`\'=\other
953} 942}
954 943
955\def\pushthisfilestack{% 944\def\pushthisfilestack{%
@@ -1125,16 +1114,6 @@ where each line of input produces a line of output.}
1125 \mathunderscore 1114 \mathunderscore
1126 \let\\ = \mathbackslash 1115 \let\\ = \mathbackslash
1127 \mathactive 1116 \mathactive
1128 % make the texinfo accent commands work in math mode
1129 \let\"=\ddot
1130 \let\'=\acute
1131 \let\==\bar
1132 \let\^=\hat
1133 \let\`=\grave
1134 \let\u=\breve
1135 \let\v=\check
1136 \let\~=\tilde
1137 \let\dotaccent=\dot
1138 $\finishmath 1117 $\finishmath
1139} 1118}
1140\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. 1119\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex.
@@ -1148,21 +1127,17 @@ where each line of input produces a line of output.}
1148 \catcode`< = \active 1127 \catcode`< = \active
1149 \catcode`> = \active 1128 \catcode`> = \active
1150 \catcode`+ = \active 1129 \catcode`+ = \active
1151 \catcode`' = \active
1152 \gdef\mathactive{% 1130 \gdef\mathactive{%
1153 \let^ = \ptexhat 1131 \let^ = \ptexhat
1154 \let< = \ptexless 1132 \let< = \ptexless
1155 \let> = \ptexgtr 1133 \let> = \ptexgtr
1156 \let+ = \ptexplus 1134 \let+ = \ptexplus
1157 \let' = \ptexquoteright
1158 } 1135 }
1159} 1136}
1160 1137
1161% Some math mode symbols. 1138% @bullet and @minus need the same treatment as @math, just above.
1162\def\bullet{$\ptexbullet$} 1139\def\bullet{$\ptexbullet$}
1163\def\geq{\ifmmode \ge\else $\ge$\fi} 1140\def\minus{$-$}
1164\def\leq{\ifmmode \le\else $\le$\fi}
1165\def\minus{\ifmmode -\else $-$\fi}
1166 1141
1167% @dots{} outputs an ellipsis using the current font. 1142% @dots{} outputs an ellipsis using the current font.
1168% We do .5em per period so that it has the same spacing in the cm 1143% We do .5em per period so that it has the same spacing in the cm
@@ -1285,7 +1260,7 @@ where each line of input produces a line of output.}
1285% that's what we do). 1260% that's what we do).
1286 1261
1287% double active backslashes. 1262% double active backslashes.
1288% 1263%
1289{\catcode`\@=0 \catcode`\\=\active 1264{\catcode`\@=0 \catcode`\\=\active
1290 @gdef@activebackslashdouble{% 1265 @gdef@activebackslashdouble{%
1291 @catcode`@\=@active 1266 @catcode`@\=@active
@@ -1297,11 +1272,11 @@ where each line of input produces a line of output.}
1297% us) handles it with this amazing macro to replace tokens, with minor 1272% us) handles it with this amazing macro to replace tokens, with minor
1298% changes for Texinfo. It is included here under the GPL by permission 1273% changes for Texinfo. It is included here under the GPL by permission
1299% from the author, Heiko Oberdiek. 1274% from the author, Heiko Oberdiek.
1300% 1275%
1301% #1 is the tokens to replace. 1276% #1 is the tokens to replace.
1302% #2 is the replacement. 1277% #2 is the replacement.
1303% #3 is the control sequence with the string. 1278% #3 is the control sequence with the string.
1304% 1279%
1305\def\HyPsdSubst#1#2#3{% 1280\def\HyPsdSubst#1#2#3{%
1306 \def\HyPsdReplace##1#1##2\END{% 1281 \def\HyPsdReplace##1#1##2\END{%
1307 ##1% 1282 ##1%
@@ -1336,10 +1311,7 @@ output) for that.)}
1336 \def\cmykDarkRed{0.28 1 1 0.35} 1311 \def\cmykDarkRed{0.28 1 1 0.35}
1337 \def\cmykBlack{0 0 0 1} 1312 \def\cmykBlack{0 0 0 1}
1338 % 1313 %
1339 % k sets the color for filling (usual text, etc.); 1314 \def\pdfsetcolor#1{\pdfliteral{#1 k}}
1340 % K sets the color for stroking (thin rules, e.g., normal _'s).
1341 \def\pdfsetcolor#1{\pdfliteral{#1 k #1 K}}
1342 %
1343 % Set color, and create a mark which defines \thiscolor accordingly, 1315 % Set color, and create a mark which defines \thiscolor accordingly,
1344 % so that \makeheadline knows which color to restore. 1316 % so that \makeheadline knows which color to restore.
1345 \def\setcolor#1{% 1317 \def\setcolor#1{%
@@ -1390,11 +1362,8 @@ output) for that.)}
1390 \openin 1 #1.jpeg \ifeof 1 1362 \openin 1 #1.jpeg \ifeof 1
1391 \openin 1 #1.JPG \ifeof 1 1363 \openin 1 #1.JPG \ifeof 1
1392 \openin 1 #1.pdf \ifeof 1 1364 \openin 1 #1.pdf \ifeof 1
1393 \openin 1 #1.PDF \ifeof 1 1365 \errhelp = \nopdfimagehelp
1394 \errhelp = \nopdfimagehelp 1366 \errmessage{Could not find image file #1 for pdf}%
1395 \errmessage{Could not find image file #1 for pdf}%
1396 \else \gdef\pdfimgext{PDF}%
1397 \fi
1398 \else \gdef\pdfimgext{pdf}% 1367 \else \gdef\pdfimgext{pdf}%
1399 \fi 1368 \fi
1400 \else \gdef\pdfimgext{JPG}% 1369 \else \gdef\pdfimgext{JPG}%
@@ -1408,7 +1377,7 @@ output) for that.)}
1408 \closein 1 1377 \closein 1
1409 \endgroup 1378 \endgroup
1410 % 1379 %
1411 % without \immediate, ancient pdftex seg faults when the same image is 1380 % without \immediate, pdftex seg faults when the same image is
1412 % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) 1381 % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.)
1413 \ifnum\pdftexversion < 14 1382 \ifnum\pdftexversion < 14
1414 \immediate\pdfimage 1383 \immediate\pdfimage
@@ -1573,15 +1542,11 @@ output) for that.)}
1573 % tried to figure out what each command should do in the context 1542 % tried to figure out what each command should do in the context
1574 % of @url. for now, just make @/ a no-op, that's the only one 1543 % of @url. for now, just make @/ a no-op, that's the only one
1575 % people have actually reported a problem with. 1544 % people have actually reported a problem with.
1576 % 1545 %
1577 \normalturnoffactive 1546 \normalturnoffactive
1578 \def\@{@}% 1547 \def\@{@}%
1579 \let\/=\empty 1548 \let\/=\empty
1580 \makevalueexpandable 1549 \makevalueexpandable
1581 % do we want to go so far as to use \indexnofonts instead of just
1582 % special-casing \var here?
1583 \def\var##1{##1}%
1584 %
1585 \leavevmode\setcolor{\urlcolor}% 1550 \leavevmode\setcolor{\urlcolor}%
1586 \startlink attr{/Border [0 0 0]}% 1551 \startlink attr{/Border [0 0 0]}%
1587 user{/Subtype /Link /A << /S /URI /URI (#1) >>}% 1552 user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
@@ -1612,7 +1577,6 @@ output) for that.)}
1612 \setcolor{\linkcolor}#1\endlink} 1577 \setcolor{\linkcolor}#1\endlink}
1613 \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} 1578 \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
1614\else 1579\else
1615 % non-pdf mode
1616 \let\pdfmkdest = \gobble 1580 \let\pdfmkdest = \gobble
1617 \let\pdfurl = \gobble 1581 \let\pdfurl = \gobble
1618 \let\endlink = \relax 1582 \let\endlink = \relax
@@ -1643,10 +1607,6 @@ output) for that.)}
1643\def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf} 1607\def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf}
1644\def\tt{\fam=\ttfam \setfontstyle{tt}} 1608\def\tt{\fam=\ttfam \setfontstyle{tt}}
1645 1609
1646% Unfortunately, we have to override this for titles and the like, since
1647% in those cases "rm" is bold. Sigh.
1648\def\rmisbold{\rm\def\curfontstyle{bf}}
1649
1650% Texinfo sort of supports the sans serif font style, which plain TeX does not. 1610% Texinfo sort of supports the sans serif font style, which plain TeX does not.
1651% So we set up a \sf. 1611% So we set up a \sf.
1652\newfam\sffam 1612\newfam\sffam
@@ -1981,7 +1941,7 @@ end
1981 1941
1982% Definitions for a main text size of 11pt. This is the default in 1942% Definitions for a main text size of 11pt. This is the default in
1983% Texinfo. 1943% Texinfo.
1984% 1944%
1985\def\definetextfontsizexi{% 1945\def\definetextfontsizexi{%
1986% Text fonts (11.2pt, magstep1). 1946% Text fonts (11.2pt, magstep1).
1987\def\textnominalsize{11pt} 1947\def\textnominalsize{11pt}
@@ -2044,6 +2004,8 @@ end
2044\setfont\titlesc\scbshape{10}{\magstep4}{OT1} 2004\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
2045\font\titlei=cmmi12 scaled \magstep3 2005\font\titlei=cmmi12 scaled \magstep3
2046\font\titlesy=cmsy10 scaled \magstep4 2006\font\titlesy=cmsy10 scaled \magstep4
2007\def\authorrm{\secrm}
2008\def\authortt{\sectt}
2047\def\titleecsize{2074} 2009\def\titleecsize{2074}
2048 2010
2049% Chapter (and unnumbered) fonts (17.28pt). 2011% Chapter (and unnumbered) fonts (17.28pt).
@@ -2112,7 +2074,7 @@ end
2112% section, chapter, etc., sizes following suit. This is for the GNU 2074% section, chapter, etc., sizes following suit. This is for the GNU
2113% Press printing of the Emacs 22 manual. Maybe other manuals in the 2075% Press printing of the Emacs 22 manual. Maybe other manuals in the
2114% future. Used with @smallbook, which sets the leading to 12pt. 2076% future. Used with @smallbook, which sets the leading to 12pt.
2115% 2077%
2116\def\definetextfontsizex{% 2078\def\definetextfontsizex{%
2117% Text fonts (10pt). 2079% Text fonts (10pt).
2118\def\textnominalsize{10pt} 2080\def\textnominalsize{10pt}
@@ -2175,6 +2137,8 @@ end
2175\setfont\titlesc\scbshape{10}{\magstep4}{OT1} 2137\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
2176\font\titlei=cmmi12 scaled \magstep3 2138\font\titlei=cmmi12 scaled \magstep3
2177\font\titlesy=cmsy10 scaled \magstep4 2139\font\titlesy=cmsy10 scaled \magstep4
2140\def\authorrm{\secrm}
2141\def\authortt{\sectt}
2178\def\titleecsize{2074} 2142\def\titleecsize{2074}
2179 2143
2180% Chapter fonts (14.4pt). 2144% Chapter fonts (14.4pt).
@@ -2201,7 +2165,7 @@ end
2201\setfont\secsf\sfbshape{12}{1000}{OT1} 2165\setfont\secsf\sfbshape{12}{1000}{OT1}
2202\let\secbf\secrm 2166\let\secbf\secrm
2203\setfont\secsc\scbshape{10}{\magstep1}{OT1} 2167\setfont\secsc\scbshape{10}{\magstep1}{OT1}
2204\font\seci=cmmi12 2168\font\seci=cmmi12
2205\font\secsy=cmsy10 scaled \magstep1 2169\font\secsy=cmsy10 scaled \magstep1
2206\def\sececsize{1200} 2170\def\sececsize{1200}
2207 2171
@@ -2245,7 +2209,7 @@ end
2245% We provide the user-level command 2209% We provide the user-level command
2246% @fonttextsize 10 2210% @fonttextsize 10
2247% (or 11) to redefine the text font size. pt is assumed. 2211% (or 11) to redefine the text font size. pt is assumed.
2248% 2212%
2249\def\xword{10} 2213\def\xword{10}
2250\def\xiword{11} 2214\def\xiword{11}
2251% 2215%
@@ -2255,7 +2219,7 @@ end
2255 % 2219 %
2256 % Set \globaldefs so that documents can use this inside @tex, since 2220 % Set \globaldefs so that documents can use this inside @tex, since
2257 % makeinfo 4.8 does not support it, but we need it nonetheless. 2221 % makeinfo 4.8 does not support it, but we need it nonetheless.
2258 % 2222 %
2259 \begingroup \globaldefs=1 2223 \begingroup \globaldefs=1
2260 \ifx\textsizearg\xword \definetextfontsizex 2224 \ifx\textsizearg\xword \definetextfontsizex
2261 \else \ifx\textsizearg\xiword \definetextfontsizexi 2225 \else \ifx\textsizearg\xiword \definetextfontsizexi
@@ -2306,7 +2270,7 @@ end
2306 \def\curfontsize{title}% 2270 \def\curfontsize{title}%
2307 \def\lsize{chap}\def\lllsize{subsec}% 2271 \def\lsize{chap}\def\lllsize{subsec}%
2308 \resetmathfonts \setleading{25pt}} 2272 \resetmathfonts \setleading{25pt}}
2309\def\titlefont#1{{\titlefonts\rmisbold #1}} 2273\def\titlefont#1{{\titlefonts\rm #1}}
2310\def\chapfonts{% 2274\def\chapfonts{%
2311 \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl 2275 \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
2312 \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc 2276 \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
@@ -2357,16 +2321,6 @@ end
2357 \def\lsize{smaller}\def\lllsize{smaller}% 2321 \def\lsize{smaller}\def\lllsize{smaller}%
2358 \resetmathfonts \setleading{9.5pt}} 2322 \resetmathfonts \setleading{9.5pt}}
2359 2323
2360% Fonts for short table of contents.
2361\setfont\shortcontrm\rmshape{12}{1000}{OT1}
2362\setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12
2363\setfont\shortcontsl\slshape{12}{1000}{OT1}
2364\setfont\shortconttt\ttshape{12}{1000}{OT1TT}
2365
2366% Define these just so they can be easily changed for other fonts.
2367\def\angleleft{$\langle$}
2368\def\angleright{$\rangle$}
2369
2370% Set the fonts to use with the @small... environments. 2324% Set the fonts to use with the @small... environments.
2371\let\smallexamplefonts = \smallfonts 2325\let\smallexamplefonts = \smallfonts
2372 2326
@@ -2380,128 +2334,28 @@ end
2380% 2334%
2381% By the way, for comparison, here's what fits with @example (10pt): 2335% By the way, for comparison, here's what fits with @example (10pt):
2382% 8.5x11=71 smallbook=60 a4=75 a5=58 2336% 8.5x11=71 smallbook=60 a4=75 a5=58
2337%
2338% I wish the USA used A4 paper.
2383% --karl, 24jan03. 2339% --karl, 24jan03.
2384 2340
2341
2385% Set up the default fonts, so we can use them for creating boxes. 2342% Set up the default fonts, so we can use them for creating boxes.
2386% 2343%
2387\definetextfontsizexi 2344\definetextfontsizexi
2388 2345
2389 2346% Define these so they can be easily changed for other fonts.
2390\message{markup,} 2347\def\angleleft{$\langle$}
2391 2348\def\angleright{$\rangle$}
2392% Check if we are currently using a typewriter font. Since all the
2393% Computer Modern typewriter fonts have zero interword stretch (and
2394% shrink), and it is reasonable to expect all typewriter fonts to have
2395% this property, we can check that font parameter.
2396%
2397\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
2398
2399% Markup style infrastructure. \defmarkupstylesetup\INITMACRO will
2400% define and register \INITMACRO to be called on markup style changes.
2401% \INITMACRO can check \currentmarkupstyle for the innermost
2402% style and the set of \ifmarkupSTYLE switches for all styles
2403% currently in effect.
2404\newif\ifmarkupvar
2405\newif\ifmarkupsamp
2406\newif\ifmarkupkey
2407%\newif\ifmarkupfile % @file == @samp.
2408%\newif\ifmarkupoption % @option == @samp.
2409\newif\ifmarkupcode
2410\newif\ifmarkupkbd
2411%\newif\ifmarkupenv % @env == @code.
2412%\newif\ifmarkupcommand % @command == @code.
2413\newif\ifmarkuptex % @tex (and part of @math, for now).
2414\newif\ifmarkupexample
2415\newif\ifmarkupverb
2416\newif\ifmarkupverbatim
2417
2418\let\currentmarkupstyle\empty
2419
2420\def\setupmarkupstyle#1{%
2421 \csname markup#1true\endcsname
2422 \def\currentmarkupstyle{#1}%
2423 \markupstylesetup
2424}
2425
2426\let\markupstylesetup\empty
2427
2428\def\defmarkupstylesetup#1{%
2429 \expandafter\def\expandafter\markupstylesetup
2430 \expandafter{\markupstylesetup #1}%
2431 \def#1%
2432}
2433
2434% Markup style setup for left and right quotes.
2435\defmarkupstylesetup\markupsetuplq{%
2436 \expandafter\let\expandafter \temp \csname markupsetuplq\currentmarkupstyle\endcsname
2437 \ifx\temp\relax \markupsetuplqdefault \else \temp \fi
2438}
2439
2440\defmarkupstylesetup\markupsetuprq{%
2441 \expandafter\let\expandafter \temp \csname markupsetuprq\currentmarkupstyle\endcsname
2442 \ifx\temp\relax \markupsetuprqdefault \else \temp \fi
2443}
2444
2445{
2446\catcode`\'=\active
2447\catcode`\`=\active
2448
2449\gdef\markupsetuplqdefault{\let`\lq}
2450\gdef\markupsetuprqdefault{\let'\rq}
2451
2452\gdef\markupsetcodequoteleft{\let`\codequoteleft}
2453\gdef\markupsetcodequoteright{\let'\codequoteright}
2454
2455\gdef\markupsetnoligaturesquoteleft{\let`\noligaturesquoteleft}
2456}
2457
2458\let\markupsetuplqcode \markupsetcodequoteleft
2459\let\markupsetuprqcode \markupsetcodequoteright
2460\let\markupsetuplqexample \markupsetcodequoteleft
2461\let\markupsetuprqexample \markupsetcodequoteright
2462\let\markupsetuplqverb \markupsetcodequoteleft
2463\let\markupsetuprqverb \markupsetcodequoteright
2464\let\markupsetuplqverbatim \markupsetcodequoteleft
2465\let\markupsetuprqverbatim \markupsetcodequoteright
2466
2467\let\markupsetuplqsamp \markupsetnoligaturesquoteleft
2468\let\markupsetuplqkbd \markupsetnoligaturesquoteleft
2469
2470% Allow an option to not replace quotes with a regular directed right
2471% quote/apostrophe (char 0x27), but instead use the undirected quote
2472% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it
2473% the default, but it works for pasting with more pdf viewers (at least
2474% evince), the lilypond developers report. xpdf does work with the
2475% regular 0x27.
2476%
2477\def\codequoteright{%
2478 \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
2479 \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
2480 '%
2481 \else \char'15 \fi
2482 \else \char'15 \fi
2483}
2484%
2485% and a similar option for the left quote char vs. a grave accent.
2486% Modern fonts display ASCII 0x60 as a grave accent, so some people like
2487% the code environments to do likewise.
2488%
2489\def\codequoteleft{%
2490 \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
2491 \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
2492 % [Knuth] pp. 380,381,391
2493 % \relax disables Spanish ligatures ?` and !` of \tt font.
2494 \relax`%
2495 \else \char'22 \fi
2496 \else \char'22 \fi
2497}
2498
2499% [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font.
2500\def\noligaturesquoteleft{\relax\lq}
2501 2349
2502% Count depth in font-changes, for error checks 2350% Count depth in font-changes, for error checks
2503\newcount\fontdepth \fontdepth=0 2351\newcount\fontdepth \fontdepth=0
2504 2352
2353% Fonts for short table of contents.
2354\setfont\shortcontrm\rmshape{12}{1000}{OT1}
2355\setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12
2356\setfont\shortcontsl\slshape{12}{1000}{OT1}
2357\setfont\shortconttt\ttshape{12}{1000}{OT1TT}
2358
2505%% Add scribe-like font environments, plus @l for inline lisp (usually sans 2359%% Add scribe-like font environments, plus @l for inline lisp (usually sans
2506%% serif) and @ii for TeX italic 2360%% serif) and @ii for TeX italic
2507 2361
@@ -2516,22 +2370,17 @@ end
2516% @var is set to this for defun arguments. 2370% @var is set to this for defun arguments.
2517\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx} 2371\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx}
2518 2372
2519% @cite is like \smartslanted except unconditionally use \sl. We never want 2373% like \smartslanted except unconditionally use \sl. We never want
2520% ttsl for book titles, do we? 2374% ttsl for book titles, do we?
2521\def\cite#1{{\sl #1}\futurelet\next\smartitalicx} 2375\def\cite#1{{\sl #1}\futurelet\next\smartitalicx}
2522 2376
2523\let\i=\smartitalic 2377\let\i=\smartitalic
2524\let\slanted=\smartslanted 2378\let\slanted=\smartslanted
2525\def\var#1{{\setupmarkupstyle{var}\smartslanted{#1}}} 2379\let\var=\smartslanted
2526\let\dfn=\smartslanted 2380\let\dfn=\smartslanted
2527\let\emph=\smartitalic 2381\let\emph=\smartitalic
2528 2382
2529% Explicit font changes: @r, @sc, undocumented @ii. 2383% @b, explicit bold.
2530\def\r#1{{\rm #1}} % roman font
2531\def\sc#1{{\smallcaps#1}} % smallcaps font
2532\def\ii#1{{\it #1}} % italic font
2533
2534% @b, explicit bold. Also @strong.
2535\def\b#1{{\bf #1}} 2384\def\b#1{{\bf #1}}
2536\let\strong=\b 2385\let\strong=\b
2537 2386
@@ -2563,35 +2412,22 @@ end
2563\catcode`@=\other 2412\catcode`@=\other
2564\def\endofsentencespacefactor{3000}% default 2413\def\endofsentencespacefactor{3000}% default
2565 2414
2566% @t, explicit typewriter.
2567\def\t#1{% 2415\def\t#1{%
2568 {\tt \rawbackslash \plainfrenchspacing #1}% 2416 {\tt \rawbackslash \plainfrenchspacing #1}%
2569 \null 2417 \null
2570} 2418}
2571 2419\def\samp#1{`\tclose{#1}'\null}
2572% @samp. 2420\setfont\keyrm\rmshape{8}{1000}{OT1}
2573\def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}} 2421\font\keysy=cmsy9
2574 2422\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
2575% definition of @key that produces a lozenge. Doesn't adjust to text size. 2423 \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
2576%\setfont\keyrm\rmshape{8}{1000}{OT1} 2424 \vbox{\hrule\kern-0.4pt
2577%\font\keysy=cmsy9 2425 \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
2578%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% 2426 \kern-0.4pt\hrule}%
2579% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% 2427 \kern-.06em\raise0.4pt\hbox{\angleright}}}}
2580% \vbox{\hrule\kern-0.4pt 2428\def\key #1{{\nohyphenation \uppercase{#1}}\null}
2581% \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% 2429% The old definition, with no lozenge:
2582% \kern-0.4pt\hrule}% 2430%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
2583% \kern-.06em\raise0.4pt\hbox{\angleright}}}}
2584
2585% definition of @key with no lozenge. If the current font is already
2586% monospace, don't change it; that way, we respect @kbdinputstyle. But
2587% if it isn't monospace, then use \tt.
2588%
2589\def\key#1{{\setupmarkupstyle{key}%
2590 \nohyphenation
2591 \ifmonospace\else\tt\fi
2592 #1}\null}
2593
2594% ctrl is no longer a Texinfo command.
2595\def\ctrl #1{{\tt \rawbackslash \hat}#1} 2431\def\ctrl #1{{\tt \rawbackslash \hat}#1}
2596 2432
2597% @file, @option are the same as @samp. 2433% @file, @option are the same as @samp.
@@ -2633,11 +2469,11 @@ end
2633{ 2469{
2634 \catcode`\-=\active \catcode`\_=\active 2470 \catcode`\-=\active \catcode`\_=\active
2635 \catcode`\'=\active \catcode`\`=\active 2471 \catcode`\'=\active \catcode`\`=\active
2636 \global\let'=\rq \global\let`=\lq % default definitions
2637 % 2472 %
2638 \global\def\code{\begingroup 2473 \global\def\code{\begingroup
2639 \setupmarkupstyle{code}% 2474 \catcode\rquoteChar=\active \catcode\lquoteChar=\active
2640 % The following should really be moved into \setupmarkupstyle handlers. 2475 \let'\codequoteright \let`\codequoteleft
2476 %
2641 \catcode\dashChar=\active \catcode\underChar=\active 2477 \catcode\dashChar=\active \catcode\underChar=\active
2642 \ifallowcodebreaks 2478 \ifallowcodebreaks
2643 \let-\codedash 2479 \let-\codedash
@@ -2669,7 +2505,7 @@ end
2669% each of the four underscores in __typeof__. This is undesirable in 2505% each of the four underscores in __typeof__. This is undesirable in
2670% some manuals, especially if they don't have long identifiers in 2506% some manuals, especially if they don't have long identifiers in
2671% general. @allowcodebreaks provides a way to control this. 2507% general. @allowcodebreaks provides a way to control this.
2672% 2508%
2673\newif\ifallowcodebreaks \allowcodebreakstrue 2509\newif\ifallowcodebreaks \allowcodebreakstrue
2674 2510
2675\def\keywordtrue{true} 2511\def\keywordtrue{true}
@@ -2689,7 +2525,6 @@ end
2689 2525
2690% @kbd is like @code, except that if the argument is just one @key command, 2526% @kbd is like @code, except that if the argument is just one @key command,
2691% then @kbd has no effect. 2527% then @kbd has no effect.
2692\def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}}
2693 2528
2694% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), 2529% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
2695% `example' (@kbd uses ttsl only inside of @example and friends), 2530% `example' (@kbd uses ttsl only inside of @example and friends),
@@ -2711,27 +2546,20 @@ end
2711\def\wordexample{example} 2546\def\wordexample{example}
2712\def\wordcode{code} 2547\def\wordcode{code}
2713 2548
2714% Default is `distinct'. 2549% Default is `distinct.'
2715\kbdinputstyle distinct 2550\kbdinputstyle distinct
2716 2551
2717\def\xkey{\key} 2552\def\xkey{\key}
2718\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}% 2553\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
2719\ifx\one\xkey\ifx\threex\three \key{#2}% 2554\ifx\one\xkey\ifx\threex\three \key{#2}%
2720\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi 2555\else{\tclose{\kbdfont\look}}\fi
2721\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi} 2556\else{\tclose{\kbdfont\look}}\fi}
2722 2557
2723% For @indicateurl, @env, @command quotes seem unnecessary, so use \code. 2558% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
2724\let\indicateurl=\code 2559\let\indicateurl=\code
2725\let\env=\code 2560\let\env=\code
2726\let\command=\code 2561\let\command=\code
2727 2562
2728% @clicksequence{File @click{} Open ...}
2729\def\clicksequence#1{\begingroup #1\endgroup}
2730
2731% @clickstyle @arrow (by default)
2732\parseargdef\clickstyle{\def\click{#1}}
2733\def\click{\arrow}
2734
2735% @uref (abbreviation for `urlref') takes an optional (comma-separated) 2563% @uref (abbreviation for `urlref') takes an optional (comma-separated)
2736% second argument specifying the text to display and an optional third 2564% second argument specifying the text to display and an optional third
2737% arg as text to display instead of (rather than in addition to) the url 2565% arg as text to display instead of (rather than in addition to) the url
@@ -2781,20 +2609,34 @@ end
2781 \let\email=\uref 2609 \let\email=\uref
2782\fi 2610\fi
2783 2611
2612% Check if we are currently using a typewriter font. Since all the
2613% Computer Modern typewriter fonts have zero interword stretch (and
2614% shrink), and it is reasonable to expect all typewriter fonts to have
2615% this property, we can check that font parameter.
2616%
2617\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
2618
2784% Typeset a dimension, e.g., `in' or `pt'. The only reason for the 2619% Typeset a dimension, e.g., `in' or `pt'. The only reason for the
2785% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. 2620% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt.
2786% 2621%
2787\def\dmn#1{\thinspace #1} 2622\def\dmn#1{\thinspace #1}
2788 2623
2624\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
2625
2789% @l was never documented to mean ``switch to the Lisp font'', 2626% @l was never documented to mean ``switch to the Lisp font'',
2790% and it is not used as such in any manual I can find. We need it for 2627% and it is not used as such in any manual I can find. We need it for
2791% Polish suppressed-l. --karl, 22sep96. 2628% Polish suppressed-l. --karl, 22sep96.
2792%\def\l#1{{\li #1}\null} 2629%\def\l#1{{\li #1}\null}
2793 2630
2631% Explicit font changes: @r, @sc, undocumented @ii.
2632\def\r#1{{\rm #1}} % roman font
2633\def\sc#1{{\smallcaps#1}} % smallcaps font
2634\def\ii#1{{\it #1}} % italic font
2635
2794% @acronym for "FBI", "NATO", and the like. 2636% @acronym for "FBI", "NATO", and the like.
2795% We print this one point size smaller, since it's intended for 2637% We print this one point size smaller, since it's intended for
2796% all-uppercase. 2638% all-uppercase.
2797% 2639%
2798\def\acronym#1{\doacronym #1,,\finish} 2640\def\acronym#1{\doacronym #1,,\finish}
2799\def\doacronym#1,#2,#3\finish{% 2641\def\doacronym#1,#2,#3\finish{%
2800 {\selectfonts\lsize #1}% 2642 {\selectfonts\lsize #1}%
@@ -2806,7 +2648,7 @@ end
2806 2648
2807% @abbr for "Comput. J." and the like. 2649% @abbr for "Comput. J." and the like.
2808% No font change, but don't do end-of-sentence spacing. 2650% No font change, but don't do end-of-sentence spacing.
2809% 2651%
2810\def\abbr#1{\doabbr #1,,\finish} 2652\def\abbr#1{\doabbr #1,,\finish}
2811\def\doabbr#1,#2,#3\finish{% 2653\def\doabbr#1,#2,#3\finish{%
2812 {\plainfrenchspacing #1}% 2654 {\plainfrenchspacing #1}%
@@ -2816,44 +2658,6 @@ end
2816 \fi 2658 \fi
2817} 2659}
2818 2660
2819
2820\message{glyphs,}
2821
2822% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
2823%
2824% Since these characters are used in examples, they should be an even number of
2825% \tt widths. Each \tt character is 1en, so two makes it 1em.
2826%
2827\def\point{$\star$}
2828\def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}}
2829\def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
2830\def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}}
2831\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
2832\def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}}
2833
2834% The @error{} command.
2835% Adapted from the TeXbook's \boxit.
2836%
2837\newbox\errorbox
2838%
2839{\tentt \global\dimen0 = 3em}% Width of the box.
2840\dimen2 = .55pt % Thickness of rules
2841% The text. (`r' is open on the right, `e' somewhat less so on the left.)
2842\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt}
2843%
2844\setbox\errorbox=\hbox to \dimen0{\hfil
2845 \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
2846 \advance\hsize by -2\dimen2 % Rules.
2847 \vbox{%
2848 \hrule height\dimen2
2849 \hbox{\vrule width\dimen2 \kern3pt % Space to left of text.
2850 \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
2851 \kern3pt\vrule width\dimen2}% Space to right.
2852 \hrule height\dimen2}
2853 \hfil}
2854%
2855\def\error{\leavevmode\lower.7ex\copy\errorbox}
2856
2857% @pounds{} is a sterling sign, which Knuth put in the CM italic font. 2661% @pounds{} is a sterling sign, which Knuth put in the CM italic font.
2858% 2662%
2859\def\pounds{{\it\$}} 2663\def\pounds{{\it\$}}
@@ -2863,59 +2667,52 @@ end
2863% Theiling, which support regular, slanted, bold and bold slanted (and 2667% Theiling, which support regular, slanted, bold and bold slanted (and
2864% "outlined" (blackboard board, sort of) versions, which we don't need). 2668% "outlined" (blackboard board, sort of) versions, which we don't need).
2865% It is available from http://www.ctan.org/tex-archive/fonts/eurosym. 2669% It is available from http://www.ctan.org/tex-archive/fonts/eurosym.
2866% 2670%
2867% Although only regular is the truly official Euro symbol, we ignore 2671% Although only regular is the truly official Euro symbol, we ignore
2868% that. The Euro is designed to be slightly taller than the regular 2672% that. The Euro is designed to be slightly taller than the regular
2869% font height. 2673% font height.
2870% 2674%
2871% feymr - regular 2675% feymr - regular
2872% feymo - slanted 2676% feymo - slanted
2873% feybr - bold 2677% feybr - bold
2874% feybo - bold slanted 2678% feybo - bold slanted
2875% 2679%
2876% There is no good (free) typewriter version, to my knowledge. 2680% There is no good (free) typewriter version, to my knowledge.
2877% A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide. 2681% A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide.
2878% Hmm. 2682% Hmm.
2879% 2683%
2880% Also doesn't work in math. Do we need to do math with euro symbols? 2684% Also doesn't work in math. Do we need to do math with euro symbols?
2881% Hope not. 2685% Hope not.
2882% 2686%
2883% 2687%
2884\def\euro{{\eurofont e}} 2688\def\euro{{\eurofont e}}
2885\def\eurofont{% 2689\def\eurofont{%
2886 % We set the font at each command, rather than predefining it in 2690 % We set the font at each command, rather than predefining it in
2887 % \textfonts and the other font-switching commands, so that 2691 % \textfonts and the other font-switching commands, so that
2888 % installations which never need the symbol don't have to have the 2692 % installations which never need the symbol don't have to have the
2889 % font installed. 2693 % font installed.
2890 % 2694 %
2891 % There is only one designed size (nominal 10pt), so we always scale 2695 % There is only one designed size (nominal 10pt), so we always scale
2892 % that to the current nominal size. 2696 % that to the current nominal size.
2893 % 2697 %
2894 % By the way, simply using "at 1em" works for cmr10 and the like, but 2698 % By the way, simply using "at 1em" works for cmr10 and the like, but
2895 % does not work for cmbx10 and other extended/shrunken fonts. 2699 % does not work for cmbx10 and other extended/shrunken fonts.
2896 % 2700 %
2897 \def\eurosize{\csname\curfontsize nominalsize\endcsname}% 2701 \def\eurosize{\csname\curfontsize nominalsize\endcsname}%
2898 % 2702 %
2899 \ifx\curfontstyle\bfstylename 2703 \ifx\curfontstyle\bfstylename
2900 % bold: 2704 % bold:
2901 \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize 2705 \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize
2902 \else 2706 \else
2903 % regular: 2707 % regular:
2904 \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize 2708 \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize
2905 \fi 2709 \fi
2906 \thiseurofont 2710 \thiseurofont
2907} 2711}
2908 2712
2909% Glyphs from the EC fonts. We don't use \let for the aliases, because 2713% Hacks for glyphs from the EC fonts similar to \euro. We don't
2910% sometimes we redefine the original macro, and the alias should reflect 2714% use \let for the aliases, because sometimes we redefine the original
2911% the redefinition. 2715% macro, and the alias should reflect the redefinition.
2912%
2913% Use LaTeX names for the Icelandic letters.
2914\def\DH{{\ecfont \char"D0}} % Eth
2915\def\dh{{\ecfont \char"F0}} % eth
2916\def\TH{{\ecfont \char"DE}} % Thorn
2917\def\th{{\ecfont \char"FE}} % thorn
2918%
2919\def\guillemetleft{{\ecfont \char"13}} 2716\def\guillemetleft{{\ecfont \char"13}}
2920\def\guillemotleft{\guillemetleft} 2717\def\guillemotleft{\guillemetleft}
2921\def\guillemetright{{\ecfont \char"14}} 2718\def\guillemetright{{\ecfont \char"14}}
@@ -2925,36 +2722,8 @@ end
2925\def\quotedblbase{{\ecfont \char"12}} 2722\def\quotedblbase{{\ecfont \char"12}}
2926\def\quotesinglbase{{\ecfont \char"0D}} 2723\def\quotesinglbase{{\ecfont \char"0D}}
2927% 2724%
2928% This positioning is not perfect (see the ogonek LaTeX package), but
2929% we have the precomposed glyphs for the most common cases. We put the
2930% tests to use those glyphs in the single \ogonek macro so we have fewer
2931% dummy definitions to worry about for index entries, etc.
2932%
2933% ogonek is also used with other letters in Lithuanian (IOU), but using
2934% the precomposed glyphs for those is not so easy since they aren't in
2935% the same EC font.
2936\def\ogonek#1{{%
2937 \def\temp{#1}%
2938 \ifx\temp\macrocharA\Aogonek
2939 \else\ifx\temp\macrochara\aogonek
2940 \else\ifx\temp\macrocharE\Eogonek
2941 \else\ifx\temp\macrochare\eogonek
2942 \else
2943 \ecfont \setbox0=\hbox{#1}%
2944 \ifdim\ht0=1ex\accent"0C #1%
2945 \else\ooalign{\unhbox0\crcr\hidewidth\char"0C \hidewidth}%
2946 \fi
2947 \fi\fi\fi\fi
2948 }%
2949}
2950\def\Aogonek{{\ecfont \char"81}}\def\macrocharA{A}
2951\def\aogonek{{\ecfont \char"A1}}\def\macrochara{a}
2952\def\Eogonek{{\ecfont \char"86}}\def\macrocharE{E}
2953\def\eogonek{{\ecfont \char"A6}}\def\macrochare{e}
2954%
2955% Use the ec* fonts (cm-super in outline format) for non-CM glyphs.
2956\def\ecfont{% 2725\def\ecfont{%
2957 % We can't distinguish serif/sans and italic/slanted, but this 2726 % We can't distinguish serif/sanserif and italic/slanted, but this
2958 % is used for crude hacks anyway (like adding French and German 2727 % is used for crude hacks anyway (like adding French and German
2959 % quotes to documents typeset with CM, where we lose kerning), so 2728 % quotes to documents typeset with CM, where we lose kerning), so
2960 % hopefully nobody will notice/care. 2729 % hopefully nobody will notice/care.
@@ -2987,7 +2756,7 @@ end
2987% Laurent Siebenmann reports \Orb undefined with: 2756% Laurent Siebenmann reports \Orb undefined with:
2988% Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 2757% Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38
2989% so we'll define it if necessary. 2758% so we'll define it if necessary.
2990% 2759%
2991\ifx\Orb\undefined 2760\ifx\Orb\undefined
2992\def\Orb{\mathhexbox20D} 2761\def\Orb{\mathhexbox20D}
2993\fi 2762\fi
@@ -3082,9 +2851,12 @@ end
3082\let\subtitlerm=\tenrm 2851\let\subtitlerm=\tenrm
3083\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines} 2852\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}
3084 2853
2854\def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines
2855 \let\tt=\authortt}
2856
3085\parseargdef\title{% 2857\parseargdef\title{%
3086 \checkenv\titlepage 2858 \checkenv\titlepage
3087 \leftline{\titlefonts\rmisbold #1} 2859 \leftline{\titlefonts\rm #1}
3088 % print a rule at the page bottom also. 2860 % print a rule at the page bottom also.
3089 \finishedtitlepagefalse 2861 \finishedtitlepagefalse
3090 \vskip4pt \hrule height 4pt width \hsize \vskip4pt 2862 \vskip4pt \hrule height 4pt width \hsize \vskip4pt
@@ -3105,7 +2877,7 @@ end
3105 \else 2877 \else
3106 \checkenv\titlepage 2878 \checkenv\titlepage
3107 \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi 2879 \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi
3108 {\secfonts\rmisbold \leftline{#1}}% 2880 {\authorfont \leftline{#1}}%
3109 \fi 2881 \fi
3110} 2882}
3111 2883
@@ -3333,7 +3105,7 @@ end
3333 % cause the example and the item to crash together. So we use this 3105 % cause the example and the item to crash together. So we use this
3334 % bizarre value of 10001 as a signal to \aboveenvbreak to insert 3106 % bizarre value of 10001 as a signal to \aboveenvbreak to insert
3335 % \parskip glue after all. Section titles are handled this way also. 3107 % \parskip glue after all. Section titles are handled this way also.
3336 % 3108 %
3337 \penalty 10001 3109 \penalty 10001
3338 \endgroup 3110 \endgroup
3339 \itemxneedsnegativevskipfalse 3111 \itemxneedsnegativevskipfalse
@@ -3427,18 +3199,9 @@ end
3427 \parindent=0pt 3199 \parindent=0pt
3428 \parskip=\smallskipamount 3200 \parskip=\smallskipamount
3429 \ifdim\parskip=0pt \parskip=2pt \fi 3201 \ifdim\parskip=0pt \parskip=2pt \fi
3430 %
3431 % Try typesetting the item mark that if the document erroneously says
3432 % something like @itemize @samp (intending @table), there's an error
3433 % right away at the @itemize. It's not the best error message in the
3434 % world, but it's better than leaving it to the @item. This means if
3435 % the user wants an empty mark, they have to say @w{} not just @w.
3436 \def\itemcontents{#1}% 3202 \def\itemcontents{#1}%
3437 \setbox0 = \hbox{\itemcontents}%
3438 %
3439 % @itemize with no arg is equivalent to @itemize @bullet. 3203 % @itemize with no arg is equivalent to @itemize @bullet.
3440 \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi 3204 \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi
3441 %
3442 \let\item=\itemizeitem 3205 \let\item=\itemizeitem
3443} 3206}
3444 3207
@@ -3459,7 +3222,6 @@ end
3459 \ifnum\lastpenalty<10000 \parskip=0in \fi 3222 \ifnum\lastpenalty<10000 \parskip=0in \fi
3460 \noindent 3223 \noindent
3461 \hbox to 0pt{\hss \itemcontents \kern\itemmargin}% 3224 \hbox to 0pt{\hss \itemcontents \kern\itemmargin}%
3462 %
3463 \vadjust{\penalty 1200}}% not good to break after first line of item. 3225 \vadjust{\penalty 1200}}% not good to break after first line of item.
3464 \flushcr 3226 \flushcr
3465} 3227}
@@ -3681,19 +3443,12 @@ end
3681% 3443%
3682% @headitem starts a heading row, which we typeset in bold. 3444% @headitem starts a heading row, which we typeset in bold.
3683% Assignments have to be global since we are inside the implicit group 3445% Assignments have to be global since we are inside the implicit group
3684% of an alignment entry. \everycr resets \everytab so we don't have to 3446% of an alignment entry. Note that \everycr resets \everytab.
3685% undo it ourselves. 3447\def\headitem{\checkenv\multitable \crcr \global\everytab={\bf}\the\everytab}%
3686\def\headitemfont{\b}% for people to use in the template row; not changeable
3687\def\headitem{%
3688 \checkenv\multitable
3689 \crcr
3690 \global\everytab={\bf}% can't use \headitemfont since the parsing differs
3691 \the\everytab % for the first item
3692}%
3693% 3448%
3694% A \tab used to include \hskip1sp. But then the space in a template 3449% A \tab used to include \hskip1sp. But then the space in a template
3695% line is not enough. That is bad. So let's go back to just `&' until 3450% line is not enough. That is bad. So let's go back to just `&' until
3696% we again encounter the problem the 1sp was intended to solve. 3451% we encounter the problem it was intended to solve again.
3697% --karl, nathan@acm.org, 20apr99. 3452% --karl, nathan@acm.org, 20apr99.
3698\def\tab{\checkenv\multitable &\the\everytab}% 3453\def\tab{\checkenv\multitable &\the\everytab}%
3699 3454
@@ -4092,11 +3847,11 @@ end
4092\def\dosynindex#1#2#3{% 3847\def\dosynindex#1#2#3{%
4093 % Only do \closeout if we haven't already done it, else we'll end up 3848 % Only do \closeout if we haven't already done it, else we'll end up
4094 % closing the target index. 3849 % closing the target index.
4095 \expandafter \ifx\csname donesynindex#2\endcsname \relax 3850 \expandafter \ifx\csname donesynindex#2\endcsname \undefined
4096 % The \closeout helps reduce unnecessary open files; the limit on the 3851 % The \closeout helps reduce unnecessary open files; the limit on the
4097 % Acorn RISC OS is a mere 16 files. 3852 % Acorn RISC OS is a mere 16 files.
4098 \expandafter\closeout\csname#2indfile\endcsname 3853 \expandafter\closeout\csname#2indfile\endcsname
4099 \expandafter\let\csname donesynindex#2\endcsname = 1 3854 \expandafter\let\csname\donesynindex#2\endcsname = 1
4100 \fi 3855 \fi
4101 % redefine \fooindfile: 3856 % redefine \fooindfile:
4102 \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname 3857 \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname
@@ -4146,7 +3901,7 @@ end
4146 % processing continues to some further point. On the other hand, it 3901 % processing continues to some further point. On the other hand, it
4147 % seems \endinput does not hurt in the printed index arg, since that 3902 % seems \endinput does not hurt in the printed index arg, since that
4148 % is still getting written without apparent harm. 3903 % is still getting written without apparent harm.
4149 % 3904 %
4150 % Sample source (mac-idx3.tex, reported by Graham Percival to 3905 % Sample source (mac-idx3.tex, reported by Graham Percival to
4151 % help-texinfo, 22may06): 3906 % help-texinfo, 22may06):
4152 % @macro funindex {WORD} 3907 % @macro funindex {WORD}
@@ -4154,12 +3909,12 @@ end
4154 % @end macro 3909 % @end macro
4155 % ... 3910 % ...
4156 % @funindex commtest 3911 % @funindex commtest
4157 % 3912 %
4158 % The above is not enough to reproduce the bug, but it gives the flavor. 3913 % The above is not enough to reproduce the bug, but it gives the flavor.
4159 % 3914 %
4160 % Sample whatsit resulting: 3915 % Sample whatsit resulting:
4161 % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}} 3916 % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}}
4162 % 3917 %
4163 % So: 3918 % So:
4164 \let\endinput = \empty 3919 \let\endinput = \empty
4165 % 3920 %
@@ -4211,23 +3966,19 @@ end
4211 % Non-English letters. 3966 % Non-English letters.
4212 \definedummyword\AA 3967 \definedummyword\AA
4213 \definedummyword\AE 3968 \definedummyword\AE
4214 \definedummyword\DH
4215 \definedummyword\L 3969 \definedummyword\L
4216 \definedummyword\O
4217 \definedummyword\OE 3970 \definedummyword\OE
4218 \definedummyword\TH 3971 \definedummyword\O
4219 \definedummyword\aa 3972 \definedummyword\aa
4220 \definedummyword\ae 3973 \definedummyword\ae
4221 \definedummyword\dh
4222 \definedummyword\exclamdown
4223 \definedummyword\l 3974 \definedummyword\l
4224 \definedummyword\o
4225 \definedummyword\oe 3975 \definedummyword\oe
3976 \definedummyword\o
3977 \definedummyword\ss
3978 \definedummyword\exclamdown
3979 \definedummyword\questiondown
4226 \definedummyword\ordf 3980 \definedummyword\ordf
4227 \definedummyword\ordm 3981 \definedummyword\ordm
4228 \definedummyword\questiondown
4229 \definedummyword\ss
4230 \definedummyword\th
4231 % 3982 %
4232 % Although these internal commands shouldn't show up, sometimes they do. 3983 % Although these internal commands shouldn't show up, sometimes they do.
4233 \definedummyword\bf 3984 \definedummyword\bf
@@ -4258,7 +4009,6 @@ end
4258 \definedummyword\guilsinglright 4009 \definedummyword\guilsinglright
4259 \definedummyword\expansion 4010 \definedummyword\expansion
4260 \definedummyword\minus 4011 \definedummyword\minus
4261 \definedummyword\ogonek
4262 \definedummyword\pounds 4012 \definedummyword\pounds
4263 \definedummyword\point 4013 \definedummyword\point
4264 \definedummyword\print 4014 \definedummyword\print
@@ -4302,7 +4052,6 @@ end
4302 \definedummyword\v 4052 \definedummyword\v
4303 \definedummyword\H 4053 \definedummyword\H
4304 \definedummyword\dotaccent 4054 \definedummyword\dotaccent
4305 \definedummyword\ogonek
4306 \definedummyword\ringaccent 4055 \definedummyword\ringaccent
4307 \definedummyword\tieaccent 4056 \definedummyword\tieaccent
4308 \definedummyword\ubaraccent 4057 \definedummyword\ubaraccent
@@ -4370,23 +4119,19 @@ end
4370 % Non-English letters. 4119 % Non-English letters.
4371 \def\AA{AA}% 4120 \def\AA{AA}%
4372 \def\AE{AE}% 4121 \def\AE{AE}%
4373 \def\DH{DZZ}%
4374 \def\L{L}% 4122 \def\L{L}%
4375 \def\OE{OE}% 4123 \def\OE{OE}%
4376 \def\O{O}% 4124 \def\O{O}%
4377 \def\TH{ZZZ}%
4378 \def\aa{aa}% 4125 \def\aa{aa}%
4379 \def\ae{ae}% 4126 \def\ae{ae}%
4380 \def\dh{dzz}%
4381 \def\exclamdown{!}%
4382 \def\l{l}% 4127 \def\l{l}%
4383 \def\oe{oe}% 4128 \def\oe{oe}%
4384 \def\ordf{a}%
4385 \def\ordm{o}%
4386 \def\o{o}% 4129 \def\o{o}%
4387 \def\questiondown{?}%
4388 \def\ss{ss}% 4130 \def\ss{ss}%
4389 \def\th{zzz}% 4131 \def\exclamdown{!}%
4132 \def\questiondown{?}%
4133 \def\ordf{a}%
4134 \def\ordm{o}%
4390 % 4135 %
4391 \def\LaTeX{LaTeX}% 4136 \def\LaTeX{LaTeX}%
4392 \def\TeX{TeX}% 4137 \def\TeX{TeX}%
@@ -4396,19 +4141,20 @@ end
4396 \def\bullet{bullet}% 4141 \def\bullet{bullet}%
4397 \def\comma{,}% 4142 \def\comma{,}%
4398 \def\copyright{copyright}% 4143 \def\copyright{copyright}%
4144 \def\registeredsymbol{R}%
4399 \def\dots{...}% 4145 \def\dots{...}%
4400 \def\enddots{...}% 4146 \def\enddots{...}%
4401 \def\equiv{==}% 4147 \def\equiv{==}%
4402 \def\error{error}% 4148 \def\error{error}%
4403 \def\euro{euro}% 4149 \def\euro{euro}%
4404 \def\expansion{==>}%
4405 \def\guillemetleft{<<}% 4150 \def\guillemetleft{<<}%
4406 \def\guillemetright{>>}% 4151 \def\guillemetright{>>}%
4407 \def\guilsinglleft{<}% 4152 \def\guilsinglleft{<}%
4408 \def\guilsinglright{>}% 4153 \def\guilsinglright{>}%
4154 \def\expansion{==>}%
4409 \def\minus{-}% 4155 \def\minus{-}%
4410 \def\point{.}%
4411 \def\pounds{pounds}% 4156 \def\pounds{pounds}%
4157 \def\point{.}%
4412 \def\print{-|}% 4158 \def\print{-|}%
4413 \def\quotedblbase{"}% 4159 \def\quotedblbase{"}%
4414 \def\quotedblleft{"}% 4160 \def\quotedblleft{"}%
@@ -4416,20 +4162,19 @@ end
4416 \def\quoteleft{`}% 4162 \def\quoteleft{`}%
4417 \def\quoteright{'}% 4163 \def\quoteright{'}%
4418 \def\quotesinglbase{,}% 4164 \def\quotesinglbase{,}%
4419 \def\registeredsymbol{R}%
4420 \def\result{=>}% 4165 \def\result{=>}%
4421 \def\textdegree{o}% 4166 \def\textdegree{degrees}%
4422 % 4167 %
4423 % We need to get rid of all macros, leaving only the arguments (if present). 4168 % We need to get rid of all macros, leaving only the arguments (if present).
4424 % Of course this is not nearly correct, but it is the best we can do for now. 4169 % Of course this is not nearly correct, but it is the best we can do for now.
4425 % makeinfo does not expand macros in the argument to @deffn, which ends up 4170 % makeinfo does not expand macros in the argument to @deffn, which ends up
4426 % writing an index entry, and texindex isn't prepared for an index sort entry 4171 % writing an index entry, and texindex isn't prepared for an index sort entry
4427 % that starts with \. 4172 % that starts with \.
4428 % 4173 %
4429 % Since macro invocations are followed by braces, we can just redefine them 4174 % Since macro invocations are followed by braces, we can just redefine them
4430 % to take a single TeX argument. The case of a macro invocation that 4175 % to take a single TeX argument. The case of a macro invocation that
4431 % goes to end-of-line is not handled. 4176 % goes to end-of-line is not handled.
4432 % 4177 %
4433 \macrolist 4178 \macrolist
4434} 4179}
4435 4180
@@ -4557,7 +4302,7 @@ end
4557 % to re-insert the same penalty (values >10000 are used for various 4302 % to re-insert the same penalty (values >10000 are used for various
4558 % signals); since we just inserted a non-discardable item, any 4303 % signals); since we just inserted a non-discardable item, any
4559 % following glue (such as a \parskip) would be a breakpoint. For example: 4304 % following glue (such as a \parskip) would be a breakpoint. For example:
4560 % 4305 %
4561 % @deffn deffn-whatever 4306 % @deffn deffn-whatever
4562 % @vindex index-whatever 4307 % @vindex index-whatever
4563 % Description. 4308 % Description.
@@ -4687,7 +4432,7 @@ end
4687% 4432%
4688% A straightforward implementation would start like this: 4433% A straightforward implementation would start like this:
4689% \def\entry#1#2{... 4434% \def\entry#1#2{...
4690% But this freezes the catcodes in the argument, and can cause problems to 4435% But this frozes the catcodes in the argument, and can cause problems to
4691% @code, which sets - active. This problem was fixed by a kludge--- 4436% @code, which sets - active. This problem was fixed by a kludge---
4692% ``-'' was active throughout whole index, but this isn't really right. 4437% ``-'' was active throughout whole index, but this isn't really right.
4693% 4438%
@@ -5138,9 +4883,7 @@ end
5138 \gdef\chaplevelprefix{\the\chapno.}% 4883 \gdef\chaplevelprefix{\the\chapno.}%
5139 \resetallfloatnos 4884 \resetallfloatnos
5140 % 4885 %
5141 % \putwordChapter can contain complex things in translations. 4886 \message{\putwordChapter\space \the\chapno}%
5142 \toks0=\expandafter{\putwordChapter}%
5143 \message{\the\toks0 \space \the\chapno}%
5144 % 4887 %
5145 % Write the actual heading. 4888 % Write the actual heading.
5146 \chapmacro{#1}{Ynumbered}{\the\chapno}% 4889 \chapmacro{#1}{Ynumbered}{\the\chapno}%
@@ -5151,17 +4894,15 @@ end
5151 \global\let\subsubsection = \numberedsubsubsec 4894 \global\let\subsubsection = \numberedsubsubsec
5152} 4895}
5153 4896
5154\outer\parseargdef\appendix{\apphead0{#1}} % normally calls appendixzzz 4897\outer\parseargdef\appendix{\apphead0{#1}} % normally apphead0 calls appendixzzz
5155%
5156\def\appendixzzz#1{% 4898\def\appendixzzz#1{%
5157 \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 4899 \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
5158 \global\advance\appendixno by 1 4900 \global\advance\appendixno by 1
5159 \gdef\chaplevelprefix{\appendixletter.}% 4901 \gdef\chaplevelprefix{\appendixletter.}%
5160 \resetallfloatnos 4902 \resetallfloatnos
5161 % 4903 %
5162 % \putwordAppendix can contain complex things in translations. 4904 \def\appendixnum{\putwordAppendix\space \appendixletter}%
5163 \toks0=\expandafter{\putwordAppendix}% 4905 \message{\appendixnum}%
5164 \message{\the\toks0 \space \appendixletter}%
5165 % 4906 %
5166 \chapmacro{#1}{Yappendix}{\appendixletter}% 4907 \chapmacro{#1}{Yappendix}{\appendixletter}%
5167 % 4908 %
@@ -5293,6 +5034,7 @@ end
5293% 3) Likewise, headings look best if no \parindent is used, and 5034% 3) Likewise, headings look best if no \parindent is used, and
5294% if justification is not attempted. Hence \raggedright. 5035% if justification is not attempted. Hence \raggedright.
5295 5036
5037
5296\def\majorheading{% 5038\def\majorheading{%
5297 {\advance\chapheadingskip by 10pt \chapbreak }% 5039 {\advance\chapheadingskip by 10pt \chapbreak }%
5298 \parsearg\chapheadingzzz 5040 \parsearg\chapheadingzzz
@@ -5301,8 +5043,8 @@ end
5301\def\chapheading{\chapbreak \parsearg\chapheadingzzz} 5043\def\chapheading{\chapbreak \parsearg\chapheadingzzz}
5302\def\chapheadingzzz#1{% 5044\def\chapheadingzzz#1{%
5303 {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 5045 {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
5304 \parindent=0pt\ptexraggedright 5046 \parindent=0pt\raggedright
5305 \rmisbold #1\hfill}}% 5047 \rm #1\hfill}}%
5306 \bigskip \par\penalty 200\relax 5048 \bigskip \par\penalty 200\relax
5307 \suppressfirstparagraphindent 5049 \suppressfirstparagraphindent
5308} 5050}
@@ -5394,10 +5136,7 @@ end
5394 \xdef\lastchapterdefs{% 5136 \xdef\lastchapterdefs{%
5395 \gdef\noexpand\thischaptername{\the\toks0}% 5137 \gdef\noexpand\thischaptername{\the\toks0}%
5396 \gdef\noexpand\thischapternum{\appendixletter}% 5138 \gdef\noexpand\thischapternum{\appendixletter}%
5397 % \noexpand\putwordAppendix avoids expanding indigestible 5139 \gdef\noexpand\thischapter{\putwordAppendix{} \noexpand\thischapternum:
5398 % commands in some of the translations.
5399 \gdef\noexpand\thischapter{\noexpand\putwordAppendix{}
5400 \noexpand\thischapternum:
5401 \noexpand\thischaptername}% 5140 \noexpand\thischaptername}%
5402 }% 5141 }%
5403 \else 5142 \else
@@ -5405,10 +5144,7 @@ end
5405 \xdef\lastchapterdefs{% 5144 \xdef\lastchapterdefs{%
5406 \gdef\noexpand\thischaptername{\the\toks0}% 5145 \gdef\noexpand\thischaptername{\the\toks0}%
5407 \gdef\noexpand\thischapternum{\the\chapno}% 5146 \gdef\noexpand\thischapternum{\the\chapno}%
5408 % \noexpand\putwordChapter avoids expanding indigestible 5147 \gdef\noexpand\thischapter{\putwordChapter{} \noexpand\thischapternum:
5409 % commands in some of the translations.
5410 \gdef\noexpand\thischapter{\noexpand\putwordChapter{}
5411 \noexpand\thischapternum:
5412 \noexpand\thischaptername}% 5148 \noexpand\thischaptername}%
5413 }% 5149 }%
5414 \fi\fi\fi 5150 \fi\fi\fi
@@ -5427,7 +5163,7 @@ end
5427 \domark 5163 \domark
5428 % 5164 %
5429 {% 5165 {%
5430 \chapfonts \rmisbold 5166 \chapfonts \rm
5431 % 5167 %
5432 % Have to define \lastsection before calling \donoderef, because the 5168 % Have to define \lastsection before calling \donoderef, because the
5433 % xref code eventually uses it. On the other hand, it has to be called 5169 % xref code eventually uses it. On the other hand, it has to be called
@@ -5464,7 +5200,7 @@ end
5464 % 5200 %
5465 % Typeset the actual heading. 5201 % Typeset the actual heading.
5466 \nobreak % Avoid page breaks at the interline glue. 5202 \nobreak % Avoid page breaks at the interline glue.
5467 \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright 5203 \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
5468 \hangindent=\wd0 \centerparametersmaybe 5204 \hangindent=\wd0 \centerparametersmaybe
5469 \unhbox0 #1\par}% 5205 \unhbox0 #1\par}%
5470 }% 5206 }%
@@ -5488,8 +5224,8 @@ end
5488% 5224%
5489\def\unnchfopen #1{% 5225\def\unnchfopen #1{%
5490\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 5226\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
5491 \parindent=0pt\ptexraggedright 5227 \parindent=0pt\raggedright
5492 \rmisbold #1\hfill}}\bigskip \par\nobreak 5228 \rm #1\hfill}}\bigskip \par\nobreak
5493} 5229}
5494\def\chfopen #1#2{\chapoddpage {\chapfonts 5230\def\chfopen #1#2{\chapoddpage {\chapfonts
5495\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% 5231\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
@@ -5498,7 +5234,7 @@ end
5498\def\centerchfopen #1{% 5234\def\centerchfopen #1{%
5499\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 5235\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
5500 \parindent=0pt 5236 \parindent=0pt
5501 \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak 5237 \hfill {\rm #1}\hfill}}\bigskip \par\nobreak
5502} 5238}
5503\def\CHAPFopen{% 5239\def\CHAPFopen{%
5504 \global\let\chapmacro=\chfopen 5240 \global\let\chapmacro=\chfopen
@@ -5531,7 +5267,7 @@ end
5531\def\sectionheading#1#2#3#4{% 5267\def\sectionheading#1#2#3#4{%
5532 {% 5268 {%
5533 % Switch to the right set of fonts. 5269 % Switch to the right set of fonts.
5534 \csname #2fonts\endcsname \rmisbold 5270 \csname #2fonts\endcsname \rm
5535 % 5271 %
5536 \def\sectionlevel{#2}% 5272 \def\sectionlevel{#2}%
5537 \def\temptype{#3}% 5273 \def\temptype{#3}%
@@ -5551,10 +5287,7 @@ end
5551 \xdef\lastsectiondefs{% 5287 \xdef\lastsectiondefs{%
5552 \gdef\noexpand\thissectionname{\the\toks0}% 5288 \gdef\noexpand\thissectionname{\the\toks0}%
5553 \gdef\noexpand\thissectionnum{#4}% 5289 \gdef\noexpand\thissectionnum{#4}%
5554 % \noexpand\putwordSection avoids expanding indigestible 5290 \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum:
5555 % commands in some of the translations.
5556 \gdef\noexpand\thissection{\noexpand\putwordSection{}
5557 \noexpand\thissectionnum:
5558 \noexpand\thissectionname}% 5291 \noexpand\thissectionname}%
5559 }% 5292 }%
5560 \fi 5293 \fi
@@ -5564,20 +5297,12 @@ end
5564 \xdef\lastsectiondefs{% 5297 \xdef\lastsectiondefs{%
5565 \gdef\noexpand\thissectionname{\the\toks0}% 5298 \gdef\noexpand\thissectionname{\the\toks0}%
5566 \gdef\noexpand\thissectionnum{#4}% 5299 \gdef\noexpand\thissectionnum{#4}%
5567 % \noexpand\putwordSection avoids expanding indigestible 5300 \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum:
5568 % commands in some of the translations.
5569 \gdef\noexpand\thissection{\noexpand\putwordSection{}
5570 \noexpand\thissectionnum:
5571 \noexpand\thissectionname}% 5301 \noexpand\thissectionname}%
5572 }% 5302 }%
5573 \fi 5303 \fi
5574 \fi\fi\fi 5304 \fi\fi\fi
5575 % 5305 %
5576 % Go into vertical mode. Usually we'll already be there, but we
5577 % don't want the following whatsit to end up in a preceding paragraph
5578 % if the document didn't happen to have a blank line.
5579 \par
5580 %
5581 % Output the mark. Pass it through \safewhatsit, to take care of 5306 % Output the mark. Pass it through \safewhatsit, to take care of
5582 % the preceding space. 5307 % the preceding space.
5583 \safewhatsit\domark 5308 \safewhatsit\domark
@@ -5627,7 +5352,7 @@ end
5627 \nobreak 5352 \nobreak
5628 % 5353 %
5629 % Output the actual section heading. 5354 % Output the actual section heading.
5630 \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright 5355 \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
5631 \hangindent=\wd0 % zero if no section number 5356 \hangindent=\wd0 % zero if no section number
5632 \unhbox0 #1}% 5357 \unhbox0 #1}%
5633 }% 5358 }%
@@ -5643,11 +5368,11 @@ end
5643 % glue accumulate. (Not a breakpoint because it's preceded by a 5368 % glue accumulate. (Not a breakpoint because it's preceded by a
5644 % discardable item.) 5369 % discardable item.)
5645 \vskip-\parskip 5370 \vskip-\parskip
5646 % 5371 %
5647 % This is purely so the last item on the list is a known \penalty > 5372 % This is purely so the last item on the list is a known \penalty >
5648 % 10000. This is so \startdefun can avoid allowing breakpoints after 5373 % 10000. This is so \startdefun can avoid allowing breakpoints after
5649 % section headings. Otherwise, it would insert a valid breakpoint between: 5374 % section headings. Otherwise, it would insert a valid breakpoint between:
5650 % 5375 %
5651 % @section sec-whatever 5376 % @section sec-whatever
5652 % @deffn def-whatever 5377 % @deffn def-whatever
5653 \penalty 10001 5378 \penalty 10001
@@ -5705,7 +5430,7 @@ end
5705% These characters do not print properly in the Computer Modern roman 5430% These characters do not print properly in the Computer Modern roman
5706% fonts, so we must take special care. This is more or less redundant 5431% fonts, so we must take special care. This is more or less redundant
5707% with the Texinfo input format setup at the end of this file. 5432% with the Texinfo input format setup at the end of this file.
5708% 5433%
5709\def\activecatcodes{% 5434\def\activecatcodes{%
5710 \catcode`\"=\active 5435 \catcode`\"=\active
5711 \catcode`\$=\active 5436 \catcode`\$=\active
@@ -5755,7 +5480,7 @@ end
5755 5480
5756% redefined for the two-volume lispref. We always output on 5481% redefined for the two-volume lispref. We always output on
5757% \jobname.toc even if this is redefined. 5482% \jobname.toc even if this is redefined.
5758% 5483%
5759\def\tocreadfilename{\jobname.toc} 5484\def\tocreadfilename{\jobname.toc}
5760 5485
5761% Normal (long) toc. 5486% Normal (long) toc.
@@ -5925,12 +5650,45 @@ end
5925\message{environments,} 5650\message{environments,}
5926% @foo ... @end foo. 5651% @foo ... @end foo.
5927 5652
5653% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
5654%
5655% Since these characters are used in examples, it should be an even number of
5656% \tt widths. Each \tt character is 1en, so two makes it 1em.
5657%
5658\def\point{$\star$}
5659\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
5660\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
5661\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
5662\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
5663
5664% The @error{} command.
5665% Adapted from the TeXbook's \boxit.
5666%
5667\newbox\errorbox
5668%
5669{\tentt \global\dimen0 = 3em}% Width of the box.
5670\dimen2 = .55pt % Thickness of rules
5671% The text. (`r' is open on the right, `e' somewhat less so on the left.)
5672\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt}
5673%
5674\setbox\errorbox=\hbox to \dimen0{\hfil
5675 \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
5676 \advance\hsize by -2\dimen2 % Rules.
5677 \vbox{%
5678 \hrule height\dimen2
5679 \hbox{\vrule width\dimen2 \kern3pt % Space to left of text.
5680 \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
5681 \kern3pt\vrule width\dimen2}% Space to right.
5682 \hrule height\dimen2}
5683 \hfil}
5684%
5685\def\error{\leavevmode\lower.7ex\copy\errorbox}
5686
5928% @tex ... @end tex escapes into raw Tex temporarily. 5687% @tex ... @end tex escapes into raw Tex temporarily.
5929% One exception: @ is still an escape character, so that @end tex works. 5688% One exception: @ is still an escape character, so that @end tex works.
5930% But \@ or @@ will get a plain tex @ character. 5689% But \@ or @@ will get a plain tex @ character.
5931 5690
5932\envdef\tex{% 5691\envdef\tex{%
5933 \setupmarkupstyle{tex}%
5934 \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 5692 \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
5935 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 5693 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
5936 \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie 5694 \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
@@ -5940,8 +5698,6 @@ end
5940 \catcode `\|=\other 5698 \catcode `\|=\other
5941 \catcode `\<=\other 5699 \catcode `\<=\other
5942 \catcode `\>=\other 5700 \catcode `\>=\other
5943 \catcode`\`=\other
5944 \catcode`\'=\other
5945 \escapechar=`\\ 5701 \escapechar=`\\
5946 % 5702 %
5947 \let\b=\ptexb 5703 \let\b=\ptexb
@@ -5961,7 +5717,6 @@ end
5961 \let\/=\ptexslash 5717 \let\/=\ptexslash
5962 \let\*=\ptexstar 5718 \let\*=\ptexstar
5963 \let\t=\ptext 5719 \let\t=\ptext
5964 \expandafter \let\csname top\endcsname=\ptextop % outer
5965 \let\frenchspacing=\plainfrenchspacing 5720 \let\frenchspacing=\plainfrenchspacing
5966 % 5721 %
5967 \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% 5722 \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
@@ -6077,7 +5832,6 @@ end
6077 5832
6078% This macro is called at the beginning of all the @example variants, 5833% This macro is called at the beginning of all the @example variants,
6079% inside a group. 5834% inside a group.
6080\newdimen\nonfillparindent
6081\def\nonfillstart{% 5835\def\nonfillstart{%
6082 \aboveenvbreak 5836 \aboveenvbreak
6083 \hfuzz = 12pt % Don't be fussy 5837 \hfuzz = 12pt % Don't be fussy
@@ -6085,12 +5839,7 @@ end
6085 \let\par = \lisppar % don't ignore blank lines 5839 \let\par = \lisppar % don't ignore blank lines
6086 \obeylines % each line of input is a line of output 5840 \obeylines % each line of input is a line of output
6087 \parskip = 0pt 5841 \parskip = 0pt
6088 % Turn off paragraph indentation but redefine \indent to emulate
6089 % the normal \indent.
6090 \nonfillparindent=\parindent
6091 \parindent = 0pt 5842 \parindent = 0pt
6092 \let\indent\nonfillindent
6093 %
6094 \emergencystretch = 0pt % don't try to avoid overfull boxes 5843 \emergencystretch = 0pt % don't try to avoid overfull boxes
6095 \ifx\nonarrowing\relax 5844 \ifx\nonarrowing\relax
6096 \advance \leftskip by \lispnarrowing 5845 \advance \leftskip by \lispnarrowing
@@ -6101,24 +5850,6 @@ end
6101 \let\exdent=\nofillexdent 5850 \let\exdent=\nofillexdent
6102} 5851}
6103 5852
6104\begingroup
6105\obeyspaces
6106% We want to swallow spaces (but not other tokens) after the fake
6107% @indent in our nonfill-environments, where spaces are normally
6108% active and set to @tie, resulting in them not being ignored after
6109% @indent.
6110\gdef\nonfillindent{\futurelet\temp\nonfillindentcheck}%
6111\gdef\nonfillindentcheck{%
6112\ifx\temp %
6113\expandafter\nonfillindentgobble%
6114\else%
6115\leavevmode\nonfillindentbox%
6116\fi%
6117}%
6118\endgroup
6119\def\nonfillindentgobble#1{\nonfillindent}
6120\def\nonfillindentbox{\hbox to \nonfillparindent{\hss}}
6121
6122% If you want all examples etc. small: @set dispenvsize small. 5853% If you want all examples etc. small: @set dispenvsize small.
6123% If you want even small examples the full size: @set dispenvsize nosmall. 5854% If you want even small examples the full size: @set dispenvsize nosmall.
6124% This affects the following displayed environments: 5855% This affects the following displayed environments:
@@ -6167,7 +5898,7 @@ end
6167% 5898%
6168\maketwodispenvs {lisp}{example}{% 5899\maketwodispenvs {lisp}{example}{%
6169 \nonfillstart 5900 \nonfillstart
6170 \tt\setupmarkupstyle{example}% 5901 \tt\quoteexpand
6171 \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. 5902 \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
6172 \gobble % eat return 5903 \gobble % eat return
6173} 5904}
@@ -6205,36 +5936,12 @@ end
6205\let\Eflushright = \afterenvbreak 5936\let\Eflushright = \afterenvbreak
6206 5937
6207 5938
6208% @raggedright does more-or-less normal line breaking but no right
6209% justification. From plain.tex.
6210\envdef\raggedright{%
6211 \rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax
6212}
6213\let\Eraggedright\par
6214
6215\envdef\raggedleft{%
6216 \parindent=0pt \leftskip0pt plus2em
6217 \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt
6218 \hbadness=10000 % Last line will usually be underfull, so turn off
6219 % badness reporting.
6220}
6221\let\Eraggedleft\par
6222
6223\envdef\raggedcenter{%
6224 \parindent=0pt \rightskip0pt plus1em \leftskip0pt plus1em
6225 \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt
6226 \hbadness=10000 % Last line will usually be underfull, so turn off
6227 % badness reporting.
6228}
6229\let\Eraggedcenter\par
6230
6231
6232% @quotation does normal linebreaking (hence we can't use \nonfillstart) 5939% @quotation does normal linebreaking (hence we can't use \nonfillstart)
6233% and narrows the margins. We keep \parskip nonzero in general, since 5940% and narrows the margins. We keep \parskip nonzero in general, since
6234% we're doing normal filling. So, when using \aboveenvbreak and 5941% we're doing normal filling. So, when using \aboveenvbreak and
6235% \afterenvbreak, temporarily make \parskip 0. 5942% \afterenvbreak, temporarily make \parskip 0.
6236% 5943%
6237\def\quotationstart{% 5944\envdef\quotation{%
6238 {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip 5945 {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
6239 \parindent=0pt 5946 \parindent=0pt
6240 % 5947 %
@@ -6249,17 +5956,6 @@ end
6249 \parsearg\quotationlabel 5956 \parsearg\quotationlabel
6250} 5957}
6251 5958
6252\envdef\quotation{%
6253 \setnormaldispenv
6254 \quotationstart
6255}
6256
6257\envdef\smallquotation{%
6258 \setsmalldispenv
6259 \quotationstart
6260}
6261\let\Esmallquotation = \Equotation
6262
6263% We have retained a nonzero parskip for the environment, since we're 5959% We have retained a nonzero parskip for the environment, since we're
6264% doing normal filling. 5960% doing normal filling.
6265% 5961%
@@ -6295,16 +5991,18 @@ end
6295 \do\ \do\\\do\{\do\}\do\$\do\&% 5991 \do\ \do\\\do\{\do\}\do\$\do\&%
6296 \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~% 5992 \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~%
6297 \do\<\do\>\do\|\do\@\do+\do\"% 5993 \do\<\do\>\do\|\do\@\do+\do\"%
6298 % Don't do the quotes -- if we do, @set txicodequoteundirected and
6299 % @set txicodequotebacktick will not have effect on @verb and
6300 % @verbatim, and ?` and !` ligatures won't get disabled.
6301 %\do\`\do\'%
6302} 5994}
6303% 5995%
6304% [Knuth] p. 380 5996% [Knuth] p. 380
6305\def\uncatcodespecials{% 5997\def\uncatcodespecials{%
6306 \def\do##1{\catcode`##1=\other}\dospecials} 5998 \def\do##1{\catcode`##1=\other}\dospecials}
6307% 5999%
6000% [Knuth] pp. 380,381,391
6001% Disable Spanish ligatures ?` and !` of \tt font
6002\begingroup
6003 \catcode`\`=\active\gdef`{\relax\lq}
6004\endgroup
6005%
6308% Setup for the @verb command. 6006% Setup for the @verb command.
6309% 6007%
6310% Eight spaces for a tab 6008% Eight spaces for a tab
@@ -6316,7 +6014,7 @@ end
6316\def\setupverb{% 6014\def\setupverb{%
6317 \tt % easiest (and conventionally used) font for verbatim 6015 \tt % easiest (and conventionally used) font for verbatim
6318 \def\par{\leavevmode\endgraf}% 6016 \def\par{\leavevmode\endgraf}%
6319 \setupmarkupstyle{verb}% 6017 \catcode`\`=\active
6320 \tabeightspaces 6018 \tabeightspaces
6321 % Respect line breaks, 6019 % Respect line breaks,
6322 % print special symbols as themselves, and 6020 % print special symbols as themselves, and
@@ -6331,6 +6029,33 @@ end
6331\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount 6029\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
6332% 6030%
6333\def\starttabbox{\setbox0=\hbox\bgroup} 6031\def\starttabbox{\setbox0=\hbox\bgroup}
6032
6033% Allow an option to not replace quotes with a regular directed right
6034% quote/apostrophe (char 0x27), but instead use the undirected quote
6035% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it
6036% the default, but it works for pasting with more pdf viewers (at least
6037% evince), the lilypond developers report. xpdf does work with the
6038% regular 0x27.
6039%
6040\def\codequoteright{%
6041 \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
6042 \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
6043 '%
6044 \else \char'15 \fi
6045 \else \char'15 \fi
6046}
6047%
6048% and a similar option for the left quote char vs. a grave accent.
6049% Modern fonts display ASCII 0x60 as a grave accent, so some people like
6050% the code environments to do likewise.
6051%
6052\def\codequoteleft{%
6053 \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
6054 \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
6055 `%
6056 \else \char'22 \fi
6057 \else \char'22 \fi
6058}
6334% 6059%
6335\begingroup 6060\begingroup
6336 \catcode`\^^I=\active 6061 \catcode`\^^I=\active
@@ -6344,6 +6069,13 @@ end
6344 \wd0=\dimen0 \box0 \starttabbox 6069 \wd0=\dimen0 \box0 \starttabbox
6345 }% 6070 }%
6346 } 6071 }
6072 \catcode`\'=\active
6073 \gdef\rquoteexpand{\catcode\rquoteChar=\active \def'{\codequoteright}}%
6074 %
6075 \catcode`\`=\active
6076 \gdef\lquoteexpand{\catcode\lquoteChar=\active \def`{\codequoteleft}}%
6077 %
6078 \gdef\quoteexpand{\rquoteexpand \lquoteexpand}%
6347\endgroup 6079\endgroup
6348 6080
6349% start the verbatim environment. 6081% start the verbatim environment.
@@ -6353,8 +6085,9 @@ end
6353 % Easiest (and conventionally used) font for verbatim 6085 % Easiest (and conventionally used) font for verbatim
6354 \tt 6086 \tt
6355 \def\par{\leavevmode\egroup\box0\endgraf}% 6087 \def\par{\leavevmode\egroup\box0\endgraf}%
6088 \catcode`\`=\active
6356 \tabexpand 6089 \tabexpand
6357 \setupmarkupstyle{verbatim}% 6090 \quoteexpand
6358 % Respect line breaks, 6091 % Respect line breaks,
6359 % print special symbols as themselves, and 6092 % print special symbols as themselves, and
6360 % make each space count 6093 % make each space count
@@ -6414,7 +6147,6 @@ end
6414 {% 6147 {%
6415 \makevalueexpandable 6148 \makevalueexpandable
6416 \setupverbatim 6149 \setupverbatim
6417 \indexnofonts % Allow `@@' and other weird things in file names.
6418 \input #1 6150 \input #1
6419 \afterenvbreak 6151 \afterenvbreak
6420 }% 6152 }%
@@ -6514,7 +6246,7 @@ end
6514\def\Edefun{\endgraf\medbreak} 6246\def\Edefun{\endgraf\medbreak}
6515 6247
6516% \makedefun{deffn} creates \deffn, \deffnx and \Edeffn; 6248% \makedefun{deffn} creates \deffn, \deffnx and \Edeffn;
6517% the only thing remaining is to define \deffnheader. 6249% the only thing remainnig is to define \deffnheader.
6518% 6250%
6519\def\makedefun#1{% 6251\def\makedefun#1{%
6520 \expandafter\let\csname E#1\endcsname = \Edefun 6252 \expandafter\let\csname E#1\endcsname = \Edefun
@@ -6693,7 +6425,7 @@ end
6693 % 6425 %
6694 % On the other hand, if an argument has two dashes (for instance), we 6426 % On the other hand, if an argument has two dashes (for instance), we
6695 % want a way to get ttsl. Let's try @var for that. 6427 % want a way to get ttsl. Let's try @var for that.
6696 \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}% 6428 \let\var=\ttslanted
6697 #1% 6429 #1%
6698 \sl\hyphenchar\font=45 6430 \sl\hyphenchar\font=45
6699} 6431}
@@ -6847,7 +6579,7 @@ end
6847% This does \let #1 = #2, with \csnames; that is, 6579% This does \let #1 = #2, with \csnames; that is,
6848% \let \csname#1\endcsname = \csname#2\endcsname 6580% \let \csname#1\endcsname = \csname#2\endcsname
6849% (except of course we have to play expansion games). 6581% (except of course we have to play expansion games).
6850% 6582%
6851\def\cslet#1#2{% 6583\def\cslet#1#2{%
6852 \expandafter\let 6584 \expandafter\let
6853 \csname#1\expandafter\endcsname 6585 \csname#1\expandafter\endcsname
@@ -7221,22 +6953,20 @@ end
7221 % 6953 %
7222 % Make link in pdf output. 6954 % Make link in pdf output.
7223 \ifpdf 6955 \ifpdf
6956 \leavevmode
6957 \getfilename{#4}%
7224 {\indexnofonts 6958 {\indexnofonts
7225 \turnoffactive 6959 \turnoffactive
7226 % This expands tokens, so do it after making catcode changes, so _
7227 % etc. don't get their TeX definitions.
7228 \getfilename{#4}%
7229 %
7230 % See comments at \activebackslashdouble. 6960 % See comments at \activebackslashdouble.
7231 {\activebackslashdouble \xdef\pdfxrefdest{#1}% 6961 {\activebackslashdouble \xdef\pdfxrefdest{#1}%
7232 \backslashparens\pdfxrefdest}% 6962 \backslashparens\pdfxrefdest}%
7233 % 6963 %
7234 \leavevmode
7235 \startlink attr{/Border [0 0 0]}%
7236 \ifnum\filenamelength>0 6964 \ifnum\filenamelength>0
7237 goto file{\the\filename.pdf} name{\pdfxrefdest}% 6965 \startlink attr{/Border [0 0 0]}%
6966 goto file{\the\filename.pdf} name{\pdfxrefdest}%
7238 \else 6967 \else
7239 goto name{\pdfmkpgn{\pdfxrefdest}}% 6968 \startlink attr{/Border [0 0 0]}%
6969 goto name{\pdfmkpgn{\pdfxrefdest}}%
7240 \fi 6970 \fi
7241 }% 6971 }%
7242 \setcolor{\linkcolor}% 6972 \setcolor{\linkcolor}%
@@ -7587,7 +7317,7 @@ end
7587% In case a @footnote appears in a vbox, save the footnote text and create 7317% In case a @footnote appears in a vbox, save the footnote text and create
7588% the real \insert just after the vbox finished. Otherwise, the insertion 7318% the real \insert just after the vbox finished. Otherwise, the insertion
7589% would be lost. 7319% would be lost.
7590% Similarly, if a @footnote appears inside an alignment, save the footnote 7320% Similarily, if a @footnote appears inside an alignment, save the footnote
7591% text to a box and make the \insert when a row of the table is finished. 7321% text to a box and make the \insert when a row of the table is finished.
7592% And the same can be done for other insert classes. --kasal, 16nov03. 7322% And the same can be done for other insert classes. --kasal, 16nov03.
7593 7323
@@ -7691,19 +7421,15 @@ end
7691 % If the image is by itself, center it. 7421 % If the image is by itself, center it.
7692 \ifvmode 7422 \ifvmode
7693 \imagevmodetrue 7423 \imagevmodetrue
7694 \nobreak\medskip 7424 \nobreak\bigskip
7695 % Usually we'll have text after the image which will insert 7425 % Usually we'll have text after the image which will insert
7696 % \parskip glue, so insert it here too to equalize the space 7426 % \parskip glue, so insert it here too to equalize the space
7697 % above and below. 7427 % above and below.
7698 \nobreak\vskip\parskip 7428 \nobreak\vskip\parskip
7699 \nobreak 7429 \nobreak
7430 \line\bgroup
7700 \fi 7431 \fi
7701 % 7432 %
7702 % Leave vertical mode so that indentation from an enclosing
7703 % environment such as @quotation is respected. On the other hand, if
7704 % it's at the top level, we don't want the normal paragraph indentation.
7705 \noindent
7706 %
7707 % Output the image. 7433 % Output the image.
7708 \ifpdf 7434 \ifpdf
7709 \dopdfimage{#1}{#2}{#3}% 7435 \dopdfimage{#1}{#2}{#3}%
@@ -7714,7 +7440,7 @@ end
7714 \epsfbox{#1.eps}% 7440 \epsfbox{#1.eps}%
7715 \fi 7441 \fi
7716 % 7442 %
7717 \ifimagevmode \medskip \fi % space after the standalone image 7443 \ifimagevmode \egroup \bigbreak \fi % space after the image
7718\endgroup} 7444\endgroup}
7719 7445
7720 7446
@@ -7986,9 +7712,10 @@ end
7986 7712
7987\message{localization,} 7713\message{localization,}
7988 7714
7989% For single-language documents, @documentlanguage is usually given very 7715% @documentlanguage is usually given very early, just after
7990% early, just after @documentencoding. Single argument is the language 7716% @setfilename. If done too late, it may not override everything
7991% (de) or locale (de_DE) abbreviation. 7717% properly. Single argument is the language (de) or locale (de_DE)
7718% abbreviation. It would be nice if we could set up a hyphenation file.
7992% 7719%
7993{ 7720{
7994 \catcode`\_ = \active 7721 \catcode`\_ = \active
@@ -8001,60 +7728,31 @@ end
8001 \ifeof 1 7728 \ifeof 1
8002 \documentlanguagetrywithoutunderscore{#1_\finish}% 7729 \documentlanguagetrywithoutunderscore{#1_\finish}%
8003 \else 7730 \else
8004 \globaldefs = 1 % everything in the txi-LL files needs to persist
8005 \input txi-#1.tex 7731 \input txi-#1.tex
8006 \fi 7732 \fi
8007 \closein 1 7733 \closein 1
8008 \endgroup % end raw TeX 7734 \endgroup
8009\endgroup} 7735\endgroup}
7736}
8010% 7737%
8011% If they passed de_DE, and txi-de_DE.tex doesn't exist, 7738% If they passed de_DE, and txi-de_DE.tex doesn't exist,
8012% try txi-de.tex. 7739% try txi-de.tex.
8013% 7740%
8014\gdef\documentlanguagetrywithoutunderscore#1_#2\finish{% 7741\def\documentlanguagetrywithoutunderscore#1_#2\finish{%
8015 \openin 1 txi-#1.tex 7742 \openin 1 txi-#1.tex
8016 \ifeof 1 7743 \ifeof 1
8017 \errhelp = \nolanghelp 7744 \errhelp = \nolanghelp
8018 \errmessage{Cannot read language file txi-#1.tex}% 7745 \errmessage{Cannot read language file txi-#1.tex}%
8019 \else 7746 \else
8020 \globaldefs = 1 % everything in the txi-LL files needs to persist
8021 \input txi-#1.tex 7747 \input txi-#1.tex
8022 \fi 7748 \fi
8023 \closein 1 7749 \closein 1
8024} 7750}
8025}% end of special _ catcode
8026% 7751%
8027\newhelp\nolanghelp{The given language definition file cannot be found or 7752\newhelp\nolanghelp{The given language definition file cannot be found or
8028is empty. Maybe you need to install it? Putting it in the current 7753is empty. Maybe you need to install it? In the current directory
8029directory should work if nowhere else does.} 7754should work if nowhere else does.}
8030 7755
8031% This macro is called from txi-??.tex files; the first argument is the
8032% \language name to set (without the "\lang@" prefix), the second and
8033% third args are \{left,right}hyphenmin.
8034%
8035% The language names to pass are determined when the format is built.
8036% See the etex.log file created at that time, e.g.,
8037% /usr/local/texlive/2008/texmf-var/web2c/pdftex/etex.log.
8038%
8039% With TeX Live 2008, etex now includes hyphenation patterns for all
8040% available languages. This means we can support hyphenation in
8041% Texinfo, at least to some extent. (This still doesn't solve the
8042% accented characters problem.)
8043%
8044\catcode`@=11
8045\def\txisetlanguage#1#2#3{%
8046 % do not set the language if the name is undefined in the current TeX.
8047 \expandafter\ifx\csname lang@#1\endcsname \relax
8048 \message{no patterns for #1}%
8049 \else
8050 \global\language = \csname lang@#1\endcsname
8051 \fi
8052 % but there is no harm in adjusting the hyphenmin values regardless.
8053 \global\lefthyphenmin = #2\relax
8054 \global\righthyphenmin = #3\relax
8055}
8056
8057% Helpers for encodings.
8058% Set the catcode of characters 128 through 255 to the specified number. 7756% Set the catcode of characters 128 through 255 to the specified number.
8059% 7757%
8060\def\setnonasciicharscatcode#1{% 7758\def\setnonasciicharscatcode#1{%
@@ -8095,7 +7793,7 @@ directory should work if nowhere else does.}
8095 \setnonasciicharscatcode\active 7793 \setnonasciicharscatcode\active
8096 \lattwochardefs 7794 \lattwochardefs
8097 % 7795 %
8098 \else \ifx \declaredencoding \latone 7796 \else \ifx \declaredencoding \latone
8099 \setnonasciicharscatcode\active 7797 \setnonasciicharscatcode\active
8100 \latonechardefs 7798 \latonechardefs
8101 % 7799 %
@@ -8107,7 +7805,7 @@ directory should work if nowhere else does.}
8107 \setnonasciicharscatcode\active 7805 \setnonasciicharscatcode\active
8108 \utfeightchardefs 7806 \utfeightchardefs
8109 % 7807 %
8110 \else 7808 \else
8111 \message{Unknown document encoding #1, ignoring.}% 7809 \message{Unknown document encoding #1, ignoring.}%
8112 % 7810 %
8113 \fi % utfeight 7811 \fi % utfeight
@@ -8119,7 +7817,7 @@ directory should work if nowhere else does.}
8119 7817
8120% A message to be logged when using a character that isn't available 7818% A message to be logged when using a character that isn't available
8121% the default font encoding (OT1). 7819% the default font encoding (OT1).
8122% 7820%
8123\def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}} 7821\def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}}
8124 7822
8125% Take account of \c (plain) vs. \, (Texinfo) difference. 7823% Take account of \c (plain) vs. \, (Texinfo) difference.
@@ -8132,21 +7830,21 @@ directory should work if nowhere else does.}
8132% 7830%
8133% Latin1 (ISO-8859-1) character definitions. 7831% Latin1 (ISO-8859-1) character definitions.
8134\def\latonechardefs{% 7832\def\latonechardefs{%
8135 \gdef^^a0{~} 7833 \gdef^^a0{~}
8136 \gdef^^a1{\exclamdown} 7834 \gdef^^a1{\exclamdown}
8137 \gdef^^a2{\missingcharmsg{CENT SIGN}} 7835 \gdef^^a2{\missingcharmsg{CENT SIGN}}
8138 \gdef^^a3{{\pounds}} 7836 \gdef^^a3{{\pounds}}
8139 \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} 7837 \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
8140 \gdef^^a5{\missingcharmsg{YEN SIGN}} 7838 \gdef^^a5{\missingcharmsg{YEN SIGN}}
8141 \gdef^^a6{\missingcharmsg{BROKEN BAR}} 7839 \gdef^^a6{\missingcharmsg{BROKEN BAR}}
8142 \gdef^^a7{\S} 7840 \gdef^^a7{\S}
8143 \gdef^^a8{\"{}} 7841 \gdef^^a8{\"{}}
8144 \gdef^^a9{\copyright} 7842 \gdef^^a9{\copyright}
8145 \gdef^^aa{\ordf} 7843 \gdef^^aa{\ordf}
8146 \gdef^^ab{\guillemetleft} 7844 \gdef^^ab{\missingcharmsg{LEFT-POINTING DOUBLE ANGLE QUOTATION MARK}}
8147 \gdef^^ac{$\lnot$} 7845 \gdef^^ac{$\lnot$}
8148 \gdef^^ad{\-} 7846 \gdef^^ad{\-}
8149 \gdef^^ae{\registeredsymbol} 7847 \gdef^^ae{\registeredsymbol}
8150 \gdef^^af{\={}} 7848 \gdef^^af{\={}}
8151 % 7849 %
8152 \gdef^^b0{\textdegree} 7850 \gdef^^b0{\textdegree}
@@ -8162,7 +7860,7 @@ directory should work if nowhere else does.}
8162 \gdef^^b9{$^1$} 7860 \gdef^^b9{$^1$}
8163 \gdef^^ba{\ordm} 7861 \gdef^^ba{\ordm}
8164 % 7862 %
8165 \gdef^^bb{\guilletright} 7863 \gdef^^bb{\missingcharmsg{RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK}}
8166 \gdef^^bc{$1\over4$} 7864 \gdef^^bc{$1\over4$}
8167 \gdef^^bd{$1\over2$} 7865 \gdef^^bd{$1\over2$}
8168 \gdef^^be{$3\over4$} 7866 \gdef^^be{$3\over4$}
@@ -8173,7 +7871,7 @@ directory should work if nowhere else does.}
8173 \gdef^^c2{\^A} 7871 \gdef^^c2{\^A}
8174 \gdef^^c3{\~A} 7872 \gdef^^c3{\~A}
8175 \gdef^^c4{\"A} 7873 \gdef^^c4{\"A}
8176 \gdef^^c5{\ringaccent A} 7874 \gdef^^c5{\ringaccent A}
8177 \gdef^^c6{\AE} 7875 \gdef^^c6{\AE}
8178 \gdef^^c7{\cedilla C} 7876 \gdef^^c7{\cedilla C}
8179 \gdef^^c8{\`E} 7877 \gdef^^c8{\`E}
@@ -8185,7 +7883,7 @@ directory should work if nowhere else does.}
8185 \gdef^^ce{\^I} 7883 \gdef^^ce{\^I}
8186 \gdef^^cf{\"I} 7884 \gdef^^cf{\"I}
8187 % 7885 %
8188 \gdef^^d0{\DH} 7886 \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER ETH}}
8189 \gdef^^d1{\~N} 7887 \gdef^^d1{\~N}
8190 \gdef^^d2{\`O} 7888 \gdef^^d2{\`O}
8191 \gdef^^d3{\'O} 7889 \gdef^^d3{\'O}
@@ -8199,7 +7897,7 @@ directory should work if nowhere else does.}
8199 \gdef^^db{\^U} 7897 \gdef^^db{\^U}
8200 \gdef^^dc{\"U} 7898 \gdef^^dc{\"U}
8201 \gdef^^dd{\'Y} 7899 \gdef^^dd{\'Y}
8202 \gdef^^de{\TH} 7900 \gdef^^de{\missingcharmsg{LATIN CAPITAL LETTER THORN}}
8203 \gdef^^df{\ss} 7901 \gdef^^df{\ss}
8204 % 7902 %
8205 \gdef^^e0{\`a} 7903 \gdef^^e0{\`a}
@@ -8219,7 +7917,7 @@ directory should work if nowhere else does.}
8219 \gdef^^ee{\^{\dotless i}} 7917 \gdef^^ee{\^{\dotless i}}
8220 \gdef^^ef{\"{\dotless i}} 7918 \gdef^^ef{\"{\dotless i}}
8221 % 7919 %
8222 \gdef^^f0{\dh} 7920 \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER ETH}}
8223 \gdef^^f1{\~n} 7921 \gdef^^f1{\~n}
8224 \gdef^^f2{\`o} 7922 \gdef^^f2{\`o}
8225 \gdef^^f3{\'o} 7923 \gdef^^f3{\'o}
@@ -8233,7 +7931,7 @@ directory should work if nowhere else does.}
8233 \gdef^^fb{\^u} 7931 \gdef^^fb{\^u}
8234 \gdef^^fc{\"u} 7932 \gdef^^fc{\"u}
8235 \gdef^^fd{\'y} 7933 \gdef^^fd{\'y}
8236 \gdef^^fe{\th} 7934 \gdef^^fe{\missingcharmsg{LATIN SMALL LETTER THORN}}
8237 \gdef^^ff{\"y} 7935 \gdef^^ff{\"y}
8238} 7936}
8239 7937
@@ -8255,7 +7953,7 @@ directory should work if nowhere else does.}
8255% Latin2 (ISO-8859-2) character definitions. 7953% Latin2 (ISO-8859-2) character definitions.
8256\def\lattwochardefs{% 7954\def\lattwochardefs{%
8257 \gdef^^a0{~} 7955 \gdef^^a0{~}
8258 \gdef^^a1{\ogonek{A}} 7956 \gdef^^a1{\missingcharmsg{LATIN CAPITAL LETTER A WITH OGONEK}}
8259 \gdef^^a2{\u{}} 7957 \gdef^^a2{\u{}}
8260 \gdef^^a3{\L} 7958 \gdef^^a3{\L}
8261 \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} 7959 \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
@@ -8272,8 +7970,8 @@ directory should work if nowhere else does.}
8272 \gdef^^af{\dotaccent Z} 7970 \gdef^^af{\dotaccent Z}
8273 % 7971 %
8274 \gdef^^b0{\textdegree} 7972 \gdef^^b0{\textdegree}
8275 \gdef^^b1{\ogonek{a}} 7973 \gdef^^b1{\missingcharmsg{LATIN SMALL LETTER A WITH OGONEK}}
8276 \gdef^^b2{\ogonek{ }} 7974 \gdef^^b2{\missingcharmsg{OGONEK}}
8277 \gdef^^b3{\l} 7975 \gdef^^b3{\l}
8278 \gdef^^b4{\'{}} 7976 \gdef^^b4{\'{}}
8279 \gdef^^b5{\v l} 7977 \gdef^^b5{\v l}
@@ -8298,14 +7996,14 @@ directory should work if nowhere else does.}
8298 \gdef^^c7{\cedilla C} 7996 \gdef^^c7{\cedilla C}
8299 \gdef^^c8{\v C} 7997 \gdef^^c8{\v C}
8300 \gdef^^c9{\'E} 7998 \gdef^^c9{\'E}
8301 \gdef^^ca{\ogonek{E}} 7999 \gdef^^ca{\missingcharmsg{LATIN CAPITAL LETTER E WITH OGONEK}}
8302 \gdef^^cb{\"E} 8000 \gdef^^cb{\"E}
8303 \gdef^^cc{\v E} 8001 \gdef^^cc{\v E}
8304 \gdef^^cd{\'I} 8002 \gdef^^cd{\'I}
8305 \gdef^^ce{\^I} 8003 \gdef^^ce{\^I}
8306 \gdef^^cf{\v D} 8004 \gdef^^cf{\v D}
8307 % 8005 %
8308 \gdef^^d0{\DH} 8006 \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER D WITH STROKE}}
8309 \gdef^^d1{\'N} 8007 \gdef^^d1{\'N}
8310 \gdef^^d2{\v N} 8008 \gdef^^d2{\v N}
8311 \gdef^^d3{\'O} 8009 \gdef^^d3{\'O}
@@ -8314,7 +8012,7 @@ directory should work if nowhere else does.}
8314 \gdef^^d6{\"O} 8012 \gdef^^d6{\"O}
8315 \gdef^^d7{$\times$} 8013 \gdef^^d7{$\times$}
8316 \gdef^^d8{\v R} 8014 \gdef^^d8{\v R}
8317 \gdef^^d9{\ringaccent U} 8015 \gdef^^d9{\ringaccent U}
8318 \gdef^^da{\'U} 8016 \gdef^^da{\'U}
8319 \gdef^^db{\H U} 8017 \gdef^^db{\H U}
8320 \gdef^^dc{\"U} 8018 \gdef^^dc{\"U}
@@ -8332,14 +8030,14 @@ directory should work if nowhere else does.}
8332 \gdef^^e7{\cedilla c} 8030 \gdef^^e7{\cedilla c}
8333 \gdef^^e8{\v c} 8031 \gdef^^e8{\v c}
8334 \gdef^^e9{\'e} 8032 \gdef^^e9{\'e}
8335 \gdef^^ea{\ogonek{e}} 8033 \gdef^^ea{\missingcharmsg{LATIN SMALL LETTER E WITH OGONEK}}
8336 \gdef^^eb{\"e} 8034 \gdef^^eb{\"e}
8337 \gdef^^ec{\v e} 8035 \gdef^^ec{\v e}
8338 \gdef^^ed{\'\i} 8036 \gdef^^ed{\'\i}
8339 \gdef^^ee{\^\i} 8037 \gdef^^ee{\^\i}
8340 \gdef^^ef{\v d} 8038 \gdef^^ef{\v d}
8341 % 8039 %
8342 \gdef^^f0{\dh} 8040 \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER D WITH STROKE}}
8343 \gdef^^f1{\'n} 8041 \gdef^^f1{\'n}
8344 \gdef^^f2{\v n} 8042 \gdef^^f2{\v n}
8345 \gdef^^f3{\'o} 8043 \gdef^^f3{\'o}
@@ -8358,11 +8056,11 @@ directory should work if nowhere else does.}
8358} 8056}
8359 8057
8360% UTF-8 character definitions. 8058% UTF-8 character definitions.
8361% 8059%
8362% This code to support UTF-8 is based on LaTeX's utf8.def, with some 8060% This code to support UTF-8 is based on LaTeX's utf8.def, with some
8363% changes for Texinfo conventions. It is included here under the GPL by 8061% changes for Texinfo conventions. It is included here under the GPL by
8364% permission from Frank Mittelbach and the LaTeX team. 8062% permission from Frank Mittelbach and the LaTeX team.
8365% 8063%
8366\newcount\countUTFx 8064\newcount\countUTFx
8367\newcount\countUTFy 8065\newcount\countUTFy
8368\newcount\countUTFz 8066\newcount\countUTFz
@@ -8512,7 +8210,6 @@ directory should work if nowhere else does.}
8512 \DeclareUnicodeCharacter{00CE}{\^I} 8210 \DeclareUnicodeCharacter{00CE}{\^I}
8513 \DeclareUnicodeCharacter{00CF}{\"I} 8211 \DeclareUnicodeCharacter{00CF}{\"I}
8514 8212
8515 \DeclareUnicodeCharacter{00D0}{\DH}
8516 \DeclareUnicodeCharacter{00D1}{\~N} 8213 \DeclareUnicodeCharacter{00D1}{\~N}
8517 \DeclareUnicodeCharacter{00D2}{\`O} 8214 \DeclareUnicodeCharacter{00D2}{\`O}
8518 \DeclareUnicodeCharacter{00D3}{\'O} 8215 \DeclareUnicodeCharacter{00D3}{\'O}
@@ -8525,7 +8222,6 @@ directory should work if nowhere else does.}
8525 \DeclareUnicodeCharacter{00DB}{\^U} 8222 \DeclareUnicodeCharacter{00DB}{\^U}
8526 \DeclareUnicodeCharacter{00DC}{\"U} 8223 \DeclareUnicodeCharacter{00DC}{\"U}
8527 \DeclareUnicodeCharacter{00DD}{\'Y} 8224 \DeclareUnicodeCharacter{00DD}{\'Y}
8528 \DeclareUnicodeCharacter{00DE}{\TH}
8529 \DeclareUnicodeCharacter{00DF}{\ss} 8225 \DeclareUnicodeCharacter{00DF}{\ss}
8530 8226
8531 \DeclareUnicodeCharacter{00E0}{\`a} 8227 \DeclareUnicodeCharacter{00E0}{\`a}
@@ -8545,7 +8241,6 @@ directory should work if nowhere else does.}
8545 \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}} 8241 \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}
8546 \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}} 8242 \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}
8547 8243
8548 \DeclareUnicodeCharacter{00F0}{\dh}
8549 \DeclareUnicodeCharacter{00F1}{\~n} 8244 \DeclareUnicodeCharacter{00F1}{\~n}
8550 \DeclareUnicodeCharacter{00F2}{\`o} 8245 \DeclareUnicodeCharacter{00F2}{\`o}
8551 \DeclareUnicodeCharacter{00F3}{\'o} 8246 \DeclareUnicodeCharacter{00F3}{\'o}
@@ -8558,21 +8253,16 @@ directory should work if nowhere else does.}
8558 \DeclareUnicodeCharacter{00FB}{\^u} 8253 \DeclareUnicodeCharacter{00FB}{\^u}
8559 \DeclareUnicodeCharacter{00FC}{\"u} 8254 \DeclareUnicodeCharacter{00FC}{\"u}
8560 \DeclareUnicodeCharacter{00FD}{\'y} 8255 \DeclareUnicodeCharacter{00FD}{\'y}
8561 \DeclareUnicodeCharacter{00FE}{\th}
8562 \DeclareUnicodeCharacter{00FF}{\"y} 8256 \DeclareUnicodeCharacter{00FF}{\"y}
8563 8257
8564 \DeclareUnicodeCharacter{0100}{\=A} 8258 \DeclareUnicodeCharacter{0100}{\=A}
8565 \DeclareUnicodeCharacter{0101}{\=a} 8259 \DeclareUnicodeCharacter{0101}{\=a}
8566 \DeclareUnicodeCharacter{0102}{\u{A}} 8260 \DeclareUnicodeCharacter{0102}{\u{A}}
8567 \DeclareUnicodeCharacter{0103}{\u{a}} 8261 \DeclareUnicodeCharacter{0103}{\u{a}}
8568 \DeclareUnicodeCharacter{0104}{\ogonek{A}}
8569 \DeclareUnicodeCharacter{0105}{\ogonek{a}}
8570 \DeclareUnicodeCharacter{0106}{\'C} 8262 \DeclareUnicodeCharacter{0106}{\'C}
8571 \DeclareUnicodeCharacter{0107}{\'c} 8263 \DeclareUnicodeCharacter{0107}{\'c}
8572 \DeclareUnicodeCharacter{0108}{\^C} 8264 \DeclareUnicodeCharacter{0108}{\^C}
8573 \DeclareUnicodeCharacter{0109}{\^c} 8265 \DeclareUnicodeCharacter{0109}{\^c}
8574 \DeclareUnicodeCharacter{0118}{\ogonek{E}}
8575 \DeclareUnicodeCharacter{0119}{\ogonek{e}}
8576 \DeclareUnicodeCharacter{010A}{\dotaccent{C}} 8266 \DeclareUnicodeCharacter{010A}{\dotaccent{C}}
8577 \DeclareUnicodeCharacter{010B}{\dotaccent{c}} 8267 \DeclareUnicodeCharacter{010B}{\dotaccent{c}}
8578 \DeclareUnicodeCharacter{010C}{\v{C}} 8268 \DeclareUnicodeCharacter{010C}{\v{C}}
@@ -8720,8 +8410,6 @@ directory should work if nowhere else does.}
8720 \DeclareUnicodeCharacter{0233}{\=y} 8410 \DeclareUnicodeCharacter{0233}{\=y}
8721 \DeclareUnicodeCharacter{0237}{\dotless{j}} 8411 \DeclareUnicodeCharacter{0237}{\dotless{j}}
8722 8412
8723 \DeclareUnicodeCharacter{02DB}{\ogonek{ }}
8724
8725 \DeclareUnicodeCharacter{1E02}{\dotaccent{B}} 8413 \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}
8726 \DeclareUnicodeCharacter{1E03}{\dotaccent{b}} 8414 \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}
8727 \DeclareUnicodeCharacter{1E04}{\udotaccent{B}} 8415 \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}
@@ -9103,9 +8791,6 @@ directory should work if nowhere else does.}
9103 8791
9104\message{and turning on texinfo input format.} 8792\message{and turning on texinfo input format.}
9105 8793
9106% DEL is a comment character, in case @c does not suffice.
9107\catcode`\^^? = 14
9108
9109% Define macros to output various characters with catcode for normal text. 8794% Define macros to output various characters with catcode for normal text.
9110\catcode`\"=\other 8795\catcode`\"=\other
9111\catcode`\~=\other 8796\catcode`\~=\other
@@ -9215,7 +8900,7 @@ directory should work if nowhere else does.}
9215 8900
9216% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of 8901% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
9217% the literal character `\'. 8902% the literal character `\'.
9218% 8903%
9219@def@normalturnoffactive{% 8904@def@normalturnoffactive{%
9220 @let\=@normalbackslash 8905 @let\=@normalbackslash
9221 @let"=@normaldoublequote 8906 @let"=@normaldoublequote
@@ -9227,8 +8912,6 @@ directory should work if nowhere else does.}
9227 @let>=@normalgreater 8912 @let>=@normalgreater
9228 @let+=@normalplus 8913 @let+=@normalplus
9229 @let$=@normaldollar %$ font-lock fix 8914 @let$=@normaldollar %$ font-lock fix
9230 @markupsetuplqdefault
9231 @markupsetuprqdefault
9232 @unsepspaces 8915 @unsepspaces
9233} 8916}
9234 8917
@@ -9263,21 +8946,9 @@ directory should work if nowhere else does.}
9263@catcode`@# = @other 8946@catcode`@# = @other
9264@catcode`@% = @other 8947@catcode`@% = @other
9265 8948
9266@c Finally, make ` and ' active, so that txicodequoteundirected and
9267@c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we
9268@c don't make ` and ' active, @code will not get them as active chars.
9269@c Do this last of all since we use ` in the previous @catcode assignments.
9270@catcode`@'=@active
9271@catcode`@`=@active
9272@markupsetuplqdefault
9273@markupsetuprqdefault
9274
9275@c Gnulib now utterly and painfully insists on no trailing whitespace.
9276@c So we have to nuke it.
9277 8949
9278@c Local variables: 8950@c Local variables:
9279@c eval: (add-hook 'write-file-hooks 'time-stamp) 8951@c eval: (add-hook 'write-file-hooks 'time-stamp)
9280@c eval: (add-hook 'write-file-hooks 'nuke-trailing-whitespace)
9281@c page-delimiter: "^\\\\message" 8952@c page-delimiter: "^\\\\message"
9282@c time-stamp-start: "def\\\\texinfoversion{" 8953@c time-stamp-start: "def\\\\texinfoversion{"
9283@c time-stamp-format: "%:y-%02m-%02d.%02H" 8954@c time-stamp-format: "%:y-%02m-%02d.%02H"