aboutsummaryrefslogtreecommitdiff
path: root/doc/texinfo.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/texinfo.tex')
-rw-r--r--doc/texinfo.tex418
1 files changed, 129 insertions, 289 deletions
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index 3c7051d..e48383d 100644
--- a/doc/texinfo.tex
+++ b/doc/texinfo.tex
@@ -3,9 +3,9 @@
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{2020-10-24.12} 6\def\texinfoversion{2021-04-25.21}
7% 7%
8% Copyright 1985, 1986, 1988, 1990-2020 Free Software Foundation, Inc. 8% Copyright 1985, 1986, 1988, 1990-2021 Free Software Foundation, Inc.
9% 9%
10% This texinfo.tex file is free software: you can redistribute it and/or 10% This texinfo.tex file is free software: you can redistribute it and/or
11% modify it under the terms of the GNU General Public License as 11% modify it under the terms of the GNU General Public License as
@@ -572,9 +572,8 @@
572 \fi 572 \fi
573} 573}
574 574
575% @end foo executes the definition of \Efoo. 575
576% But first, it executes a specialized version of \checkenv 576% @end foo calls \checkenv and executes the definition of \Efoo.
577%
578\parseargdef\end{% 577\parseargdef\end{%
579 \if 1\csname iscond.#1\endcsname 578 \if 1\csname iscond.#1\endcsname
580 \else 579 \else
@@ -1003,6 +1002,14 @@ where each line of input produces a line of output.}
1003 \global\everypar = {}% 1002 \global\everypar = {}%
1004} 1003}
1005 1004
1005% leave vertical mode without cancelling any first paragraph indent
1006\gdef\imageindent{%
1007 \toks0=\everypar
1008 \everypar={}%
1009 \ptexnoindent
1010 \global\everypar=\toks0
1011}
1012
1006 1013
1007% @refill is a no-op. 1014% @refill is a no-op.
1008\let\refill=\relax 1015\let\refill=\relax
@@ -1863,19 +1870,23 @@ output) for that.)}
1863 \closein 1 1870 \closein 1
1864 \endgroup 1871 \endgroup
1865 % 1872 %
1866 \def\xetexpdfext{pdf}% 1873 % Putting an \hbox around the image can prevent an over-long line
1867 \ifx\xeteximgext\xetexpdfext 1874 % after the image.
1868 \XeTeXpdffile "#1".\xeteximgext "" 1875 \hbox\bgroup
1869 \else 1876 \def\xetexpdfext{pdf}%
1870 \def\xetexpdfext{PDF}%
1871 \ifx\xeteximgext\xetexpdfext 1877 \ifx\xeteximgext\xetexpdfext
1872 \XeTeXpdffile "#1".\xeteximgext "" 1878 \XeTeXpdffile "#1".\xeteximgext ""
1873 \else 1879 \else
1874 \XeTeXpicfile "#1".\xeteximgext "" 1880 \def\xetexpdfext{PDF}%
1881 \ifx\xeteximgext\xetexpdfext
1882 \XeTeXpdffile "#1".\xeteximgext ""
1883 \else
1884 \XeTeXpicfile "#1".\xeteximgext ""
1885 \fi
1875 \fi 1886 \fi
1876 \fi 1887 \ifdim \wd0 >0pt width \xeteximagewidth \fi
1877 \ifdim \wd0 >0pt width \xeteximagewidth \fi 1888 \ifdim \wd2 >0pt height \xeteximageheight \fi \relax
1878 \ifdim \wd2 >0pt height \xeteximageheight \fi \relax 1889 \egroup
1879 } 1890 }
1880\fi 1891\fi
1881 1892
@@ -2673,8 +2684,6 @@ end
2673\definetextfontsizexi 2684\definetextfontsizexi
2674 2685
2675 2686
2676\message{markup,}
2677
2678% Check if we are currently using a typewriter font. Since all the 2687% Check if we are currently using a typewriter font. Since all the
2679% Computer Modern typewriter fonts have zero interword stretch (and 2688% Computer Modern typewriter fonts have zero interword stretch (and
2680% shrink), and it is reasonable to expect all typewriter fonts to have 2689% shrink), and it is reasonable to expect all typewriter fonts to have
@@ -2682,68 +2691,14 @@ end
2682% 2691%
2683\def\ifmonospace{\ifdim\fontdimen3\font=0pt } 2692\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
2684 2693
2685% Markup style infrastructure. \defmarkupstylesetup\INITMACRO will
2686% define and register \INITMACRO to be called on markup style changes.
2687% \INITMACRO can check \currentmarkupstyle for the innermost
2688% style.
2689
2690\let\currentmarkupstyle\empty
2691
2692\def\setupmarkupstyle#1{%
2693 \def\currentmarkupstyle{#1}%
2694 \markupstylesetup
2695}
2696
2697\let\markupstylesetup\empty
2698
2699\def\defmarkupstylesetup#1{%
2700 \expandafter\def\expandafter\markupstylesetup
2701 \expandafter{\markupstylesetup #1}%
2702 \def#1%
2703}
2704
2705% Markup style setup for left and right quotes.
2706\defmarkupstylesetup\markupsetuplq{%
2707 \expandafter\let\expandafter \temp
2708 \csname markupsetuplq\currentmarkupstyle\endcsname
2709 \ifx\temp\relax \markupsetuplqdefault \else \temp \fi
2710}
2711
2712\defmarkupstylesetup\markupsetuprq{%
2713 \expandafter\let\expandafter \temp
2714 \csname markupsetuprq\currentmarkupstyle\endcsname
2715 \ifx\temp\relax \markupsetuprqdefault \else \temp \fi
2716}
2717
2718{ 2694{
2719\catcode`\'=\active 2695\catcode`\'=\active
2720\catcode`\`=\active 2696\catcode`\`=\active
2721 2697
2722\gdef\markupsetuplqdefault{\let`\lq} 2698\gdef\setcodequotes{\let`\codequoteleft \let'\codequoteright}
2723\gdef\markupsetuprqdefault{\let'\rq} 2699\gdef\setregularquotes{\let`\lq \let'\rq}
2724
2725\gdef\markupsetcodequoteleft{\let`\codequoteleft}
2726\gdef\markupsetcodequoteright{\let'\codequoteright}
2727} 2700}
2728 2701
2729\let\markupsetuplqcode \markupsetcodequoteleft
2730\let\markupsetuprqcode \markupsetcodequoteright
2731%
2732\let\markupsetuplqexample \markupsetcodequoteleft
2733\let\markupsetuprqexample \markupsetcodequoteright
2734%
2735\let\markupsetuplqkbd \markupsetcodequoteleft
2736\let\markupsetuprqkbd \markupsetcodequoteright
2737%
2738\let\markupsetuplqsamp \markupsetcodequoteleft
2739\let\markupsetuprqsamp \markupsetcodequoteright
2740%
2741\let\markupsetuplqverb \markupsetcodequoteleft
2742\let\markupsetuprqverb \markupsetcodequoteright
2743%
2744\let\markupsetuplqverbatim \markupsetcodequoteleft
2745\let\markupsetuprqverbatim \markupsetcodequoteright
2746
2747% Allow an option to not use regular directed right quote/apostrophe 2702% Allow an option to not use regular directed right quote/apostrophe
2748% (char 0x27), but instead the undirected quote from cmtt (char 0x0d). 2703% (char 0x27), but instead the undirected quote from cmtt (char 0x0d).
2749% The undirected quote is ugly, so don't make it the default, but it 2704% The undirected quote is ugly, so don't make it the default, but it
@@ -2906,7 +2861,7 @@ end
2906} 2861}
2907 2862
2908% @samp. 2863% @samp.
2909\def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}} 2864\def\samp#1{{\setcodequotes\lq\tclose{#1}\rq\null}}
2910 2865
2911% @indicateurl is \samp, that is, with quotes. 2866% @indicateurl is \samp, that is, with quotes.
2912\let\indicateurl=\samp 2867\let\indicateurl=\samp
@@ -2949,8 +2904,7 @@ end
2949 \global\let'=\rq \global\let`=\lq % default definitions 2904 \global\let'=\rq \global\let`=\lq % default definitions
2950 % 2905 %
2951 \global\def\code{\begingroup 2906 \global\def\code{\begingroup
2952 \setupmarkupstyle{code}% 2907 \setcodequotes
2953 % The following should really be moved into \setupmarkupstyle handlers.
2954 \catcode\dashChar=\active \catcode\underChar=\active 2908 \catcode\dashChar=\active \catcode\underChar=\active
2955 \ifallowcodebreaks 2909 \ifallowcodebreaks
2956 \let-\codedash 2910 \let-\codedash
@@ -3104,7 +3058,7 @@ end
3104 \urefcatcodes 3058 \urefcatcodes
3105 % 3059 %
3106 \global\def\urefcode{\begingroup 3060 \global\def\urefcode{\begingroup
3107 \setupmarkupstyle{code}% 3061 \setcodequotes
3108 \urefcatcodes 3062 \urefcatcodes
3109 \let&\urefcodeamp 3063 \let&\urefcodeamp
3110 \let.\urefcodedot 3064 \let.\urefcodedot
@@ -3225,8 +3179,8 @@ end
3225\def\kbdsub#1#2#3\par{% 3179\def\kbdsub#1#2#3\par{%
3226 \def\one{#1}\def\three{#3}\def\threex{??}% 3180 \def\one{#1}\def\three{#3}\def\threex{??}%
3227 \ifx\one\xkey\ifx\threex\three \key{#2}% 3181 \ifx\one\xkey\ifx\threex\three \key{#2}%
3228 \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi 3182 \else{\tclose{\kbdfont\setcodequotes\look}}\fi
3229 \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi 3183 \else{\tclose{\kbdfont\setcodequotes\look}}\fi
3230} 3184}
3231 3185
3232% definition of @key that produces a lozenge. Doesn't adjust to text size. 3186% definition of @key that produces a lozenge. Doesn't adjust to text size.
@@ -3243,7 +3197,7 @@ end
3243% monospace, don't change it; that way, we respect @kbdinputstyle. But 3197% monospace, don't change it; that way, we respect @kbdinputstyle. But
3244% if it isn't monospace, then use \tt. 3198% if it isn't monospace, then use \tt.
3245% 3199%
3246\def\key#1{{\setupmarkupstyle{key}% 3200\def\key#1{{\setregularquotes
3247 \nohyphenation 3201 \nohyphenation
3248 \ifmonospace\else\tt\fi 3202 \ifmonospace\else\tt\fi
3249 #1}\null} 3203 #1}\null}
@@ -3373,16 +3327,20 @@ end
3373{\obeylines 3327{\obeylines
3374\globaldefs=1 3328\globaldefs=1
3375\envdef\displaymath{% 3329\envdef\displaymath{%
3376\tex 3330\tex%
3377\def\thisenv{\displaymath}% 3331\def\thisenv{\displaymath}%
3332\begingroup\let\end\displaymathend%
3378$$% 3333$$%
3379} 3334}
3380 3335
3381\def\Edisplaymath{$$ 3336\def\displaymathend{$$\endgroup\end}%
3337
3338\def\Edisplaymath{%
3382\def\thisenv{\tex}% 3339\def\thisenv{\tex}%
3383\end tex 3340\end tex
3384}} 3341}}
3385 3342
3343
3386% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. 3344% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
3387% Ignore unless FMTNAME == tex; then it is like @iftex and @tex, 3345% Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
3388% except specified as a normal braced arg, so no newlines to worry about. 3346% except specified as a normal braced arg, so no newlines to worry about.
@@ -4343,82 +4301,8 @@ $$%
4343 \doitemize{#1.}\flushcr 4301 \doitemize{#1.}\flushcr
4344} 4302}
4345 4303
4346% @alphaenumerate and @capsenumerate are abbreviations for giving an arg
4347% to @enumerate.
4348%
4349\def\alphaenumerate{\enumerate{a}}
4350\def\capsenumerate{\enumerate{A}}
4351\def\Ealphaenumerate{\Eenumerate}
4352\def\Ecapsenumerate{\Eenumerate}
4353
4354 4304
4355% @multitable macros 4305% @multitable macros
4356% Amy Hendrickson, 8/18/94, 3/6/96
4357%
4358% @multitable ... @end multitable will make as many columns as desired.
4359% Contents of each column will wrap at width given in preamble. Width
4360% can be specified either with sample text given in a template line,
4361% or in percent of \hsize, the current width of text on page.
4362
4363% Table can continue over pages but will only break between lines.
4364
4365% To make preamble:
4366%
4367% Either define widths of columns in terms of percent of \hsize:
4368% @multitable @columnfractions .25 .3 .45
4369% @item ...
4370%
4371% Numbers following @columnfractions are the percent of the total
4372% current hsize to be used for each column. You may use as many
4373% columns as desired.
4374
4375
4376% Or use a template:
4377% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
4378% @item ...
4379% using the widest term desired in each column.
4380
4381% Each new table line starts with @item, each subsequent new column
4382% starts with @tab. Empty columns may be produced by supplying @tab's
4383% with nothing between them for as many times as empty columns are needed,
4384% ie, @tab@tab@tab will produce two empty columns.
4385
4386% @item, @tab do not need to be on their own lines, but it will not hurt
4387% if they are.
4388
4389% Sample multitable:
4390
4391% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
4392% @item first col stuff @tab second col stuff @tab third col
4393% @item
4394% first col stuff
4395% @tab
4396% second col stuff
4397% @tab
4398% third col
4399% @item first col stuff @tab second col stuff
4400% @tab Many paragraphs of text may be used in any column.
4401%
4402% They will wrap at the width determined by the template.
4403% @item@tab@tab This will be in third column.
4404% @end multitable
4405
4406% Default dimensions may be reset by user.
4407% @multitableparskip is vertical space between paragraphs in table.
4408% @multitableparindent is paragraph indent in table.
4409% @multitablecolmargin is horizontal space to be left between columns.
4410% @multitablelinespace is space to leave between table items, baseline
4411% to baseline.
4412% 0pt means it depends on current normal line spacing.
4413%
4414\newskip\multitableparskip
4415\newskip\multitableparindent
4416\newdimen\multitablecolspace
4417\newskip\multitablelinespace
4418\multitableparskip=0pt
4419\multitableparindent=6pt
4420\multitablecolspace=12pt
4421\multitablelinespace=0pt
4422 4306
4423% Macros used to set up halign preamble: 4307% Macros used to set up halign preamble:
4424% 4308%
@@ -4466,8 +4350,6 @@ $$%
4466 \go 4350 \go
4467} 4351}
4468 4352
4469% multitable-only commands.
4470%
4471% @headitem starts a heading row, which we typeset in bold. Assignments 4353% @headitem starts a heading row, which we typeset in bold. Assignments
4472% have to be global since we are inside the implicit group of an 4354% have to be global since we are inside the implicit group of an
4473% alignment entry. \everycr below resets \everytab so we don't have to 4355% alignment entry. \everycr below resets \everytab so we don't have to
@@ -4484,14 +4366,8 @@ $$%
4484% default for tables with no headings. 4366% default for tables with no headings.
4485\let\headitemcrhook=\relax 4367\let\headitemcrhook=\relax
4486% 4368%
4487% A \tab used to include \hskip1sp. But then the space in a template
4488% line is not enough. That is bad. So let's go back to just `&' until
4489% we again encounter the problem the 1sp was intended to solve.
4490% --karl, nathan@acm.org, 20apr99.
4491\def\tab{\checkenv\multitable &\the\everytab}% 4369\def\tab{\checkenv\multitable &\the\everytab}%
4492 4370
4493% @multitable ... @end multitable definitions:
4494%
4495\newtoks\everytab % insert after every tab. 4371\newtoks\everytab % insert after every tab.
4496% 4372%
4497\envdef\multitable{% 4373\envdef\multitable{%
@@ -4506,9 +4382,8 @@ $$%
4506 % 4382 %
4507 \tolerance=9500 4383 \tolerance=9500
4508 \hbadness=9500 4384 \hbadness=9500
4509 \setmultitablespacing 4385 \parskip=0pt
4510 \parskip=\multitableparskip 4386 \parindent=6pt
4511 \parindent=\multitableparindent
4512 \overfullrule=0pt 4387 \overfullrule=0pt
4513 \global\colcount=0 4388 \global\colcount=0
4514 % 4389 %
@@ -4538,47 +4413,24 @@ $$%
4538 % continue for many paragraphs if desired. 4413 % continue for many paragraphs if desired.
4539 \halign\bgroup &% 4414 \halign\bgroup &%
4540 \global\advance\colcount by 1 4415 \global\advance\colcount by 1
4541 \multistrut 4416 \strut
4542 \vtop{% 4417 \vtop{%
4543 % Use the current \colcount to find the correct column width: 4418 \advance\hsize by -1\leftskip
4419 % Find the correct column width
4544 \hsize=\expandafter\csname col\the\colcount\endcsname 4420 \hsize=\expandafter\csname col\the\colcount\endcsname
4545 % 4421 %
4546 % In order to keep entries from bumping into each other
4547 % we will add a \leftskip of \multitablecolspace to all columns after
4548 % the first one.
4549 %
4550 % If a template has been used, we will add \multitablecolspace
4551 % to the width of each template entry.
4552 %
4553 % If the user has set preamble in terms of percent of \hsize we will
4554 % use that dimension as the width of the column, and the \leftskip
4555 % will keep entries from bumping into each other. Table will start at
4556 % left margin and final column will justify at right margin.
4557 %
4558 % Make sure we don't inherit \rightskip from the outer environment.
4559 \rightskip=0pt 4422 \rightskip=0pt
4560 \ifnum\colcount=1 4423 \ifnum\colcount=1
4561 % The first column will be indented with the surrounding text. 4424 \advance\hsize by\leftskip % Add indent of surrounding text
4562 \advance\hsize by\leftskip
4563 \else 4425 \else
4564 \ifsetpercent \else 4426 % In order to keep entries from bumping into each other.
4565 % If user has not set preamble in terms of percent of \hsize 4427 \leftskip=12pt
4566 % we will advance \hsize by \multitablecolspace. 4428 \ifsetpercent \else
4567 \advance\hsize by \multitablecolspace 4429 % If a template has been used
4568 \fi 4430 \advance\hsize by \leftskip
4569 % In either case we will make \leftskip=\multitablecolspace: 4431 \fi
4570 \leftskip=\multitablecolspace
4571 \fi 4432 \fi
4572 % Ignoring space at the beginning and end avoids an occasional spurious 4433 \noindent\ignorespaces##\unskip\strut
4573 % blank line, when TeX decides to break the line at the space before the
4574 % box from the multistrut, so the strut ends up on a line by itself.
4575 % For example:
4576 % @multitable @columnfractions .11 .89
4577 % @item @code{#}
4578 % @tab Legal holiday which is valid in major parts of the whole country.
4579 % Is automatically provided with highlighting sequences respectively
4580 % marking characters.
4581 \noindent\ignorespaces##\unskip\multistrut
4582 }\cr 4434 }\cr
4583} 4435}
4584\def\Emultitable{% 4436\def\Emultitable{%
@@ -4587,31 +4439,6 @@ $$%
4587 \global\setpercentfalse 4439 \global\setpercentfalse
4588} 4440}
4589 4441
4590\def\setmultitablespacing{%
4591 \def\multistrut{\strut}% just use the standard line spacing
4592 %
4593 % Compute \multitablelinespace (if not defined by user) for use in
4594 % \multitableparskip calculation. We used define \multistrut based on
4595 % this, but (ironically) that caused the spacing to be off.
4596 % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100.
4597\ifdim\multitablelinespace=0pt
4598\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
4599\global\advance\multitablelinespace by-\ht0
4600\fi
4601% Test to see if parskip is larger than space between lines of
4602% table. If not, do nothing.
4603% If so, set to same dimension as multitablelinespace.
4604\ifdim\multitableparskip>\multitablelinespace
4605\global\multitableparskip=\multitablelinespace
4606\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller
4607 % than skip between lines in the table.
4608\fi%
4609\ifdim\multitableparskip=0pt
4610\global\multitableparskip=\multitablelinespace
4611\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller
4612 % than skip between lines in the table.
4613\fi}
4614
4615 4442
4616\message{conditionals,} 4443\message{conditionals,}
4617 4444
@@ -5225,30 +5052,29 @@ $$%
5225 \let\lbracechar\{% 5052 \let\lbracechar\{%
5226 \let\rbracechar\}% 5053 \let\rbracechar\}%
5227 % 5054 %
5055 % Non-English letters.
5056 \def\AA{AA}%
5057 \def\AE{AE}%
5058 \def\DH{DZZ}%
5059 \def\L{L}%
5060 \def\OE{OE}%
5061 \def\O{O}%
5062 \def\TH{TH}%
5063 \def\aa{aa}%
5064 \def\ae{ae}%
5065 \def\dh{dzz}%
5066 \def\exclamdown{!}%
5067 \def\l{l}%
5068 \def\oe{oe}%
5069 \def\ordf{a}%
5070 \def\ordm{o}%
5071 \def\o{o}%
5072 \def\questiondown{?}%
5073 \def\ss{ss}%
5074 \def\th{th}%
5228 % 5075 %
5229 \let\do\indexnofontsdef 5076 \let\do\indexnofontsdef
5230 % 5077 %
5231 % Non-English letters.
5232 \do\AA{AA}%
5233 \do\AE{AE}%
5234 \do\DH{DZZ}%
5235 \do\L{L}%
5236 \do\OE{OE}%
5237 \do\O{O}%
5238 \do\TH{TH}%
5239 \do\aa{aa}%
5240 \do\ae{ae}%
5241 \do\dh{dzz}%
5242 \do\exclamdown{!}%
5243 \do\l{l}%
5244 \do\oe{oe}%
5245 \do\ordf{a}%
5246 \do\ordm{o}%
5247 \do\o{o}%
5248 \do\questiondown{?}%
5249 \do\ss{ss}%
5250 \do\th{th}%
5251 %
5252 \do\LaTeX{LaTeX}% 5078 \do\LaTeX{LaTeX}%
5253 \do\TeX{TeX}% 5079 \do\TeX{TeX}%
5254 % 5080 %
@@ -7144,7 +6970,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
7144% But \@ or @@ will get a plain @ character. 6970% But \@ or @@ will get a plain @ character.
7145 6971
7146\envdef\tex{% 6972\envdef\tex{%
7147 \setupmarkupstyle{tex}% 6973 \setregularquotes
7148 \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 6974 \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
7149 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 6975 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
7150 \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie 6976 \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
@@ -7370,7 +7196,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
7370% If you want all examples etc. small: @set dispenvsize small. 7196% If you want all examples etc. small: @set dispenvsize small.
7371% If you want even small examples the full size: @set dispenvsize nosmall. 7197% If you want even small examples the full size: @set dispenvsize nosmall.
7372% This affects the following displayed environments: 7198% This affects the following displayed environments:
7373% @example, @display, @format, @lisp 7199% @example, @display, @format, @lisp, @verbatim
7374% 7200%
7375\def\smallword{small} 7201\def\smallword{small}
7376\def\nosmallword{nosmall} 7202\def\nosmallword{nosmall}
@@ -7416,9 +7242,9 @@ might help (with 'rm \jobname.?? \jobname.??s')%
7416% 7242%
7417\maketwodispenvdef{lisp}{example}{% 7243\maketwodispenvdef{lisp}{example}{%
7418 \nonfillstart 7244 \nonfillstart
7419 \tt\setupmarkupstyle{example}% 7245 \tt\setcodequotes
7420 \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. 7246 \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
7421 \gobble % eat return 7247 \parsearg\gobble
7422} 7248}
7423% @display/@smalldisplay: same as @lisp except keep current font. 7249% @display/@smalldisplay: same as @lisp except keep current font.
7424% 7250%
@@ -7576,7 +7402,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
7576\def\setupverb{% 7402\def\setupverb{%
7577 \tt % easiest (and conventionally used) font for verbatim 7403 \tt % easiest (and conventionally used) font for verbatim
7578 \def\par{\leavevmode\endgraf}% 7404 \def\par{\leavevmode\endgraf}%
7579 \setupmarkupstyle{verb}% 7405 \setcodequotes
7580 \tabeightspaces 7406 \tabeightspaces
7581 % Respect line breaks, 7407 % Respect line breaks,
7582 % print special symbols as themselves, and 7408 % print special symbols as themselves, and
@@ -7617,7 +7443,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
7617 \tt % easiest (and conventionally used) font for verbatim 7443 \tt % easiest (and conventionally used) font for verbatim
7618 \def\par{\egroup\leavevmode\box\verbbox\endgraf\starttabbox}% 7444 \def\par{\egroup\leavevmode\box\verbbox\endgraf\starttabbox}%
7619 \tabexpand 7445 \tabexpand
7620 \setupmarkupstyle{verbatim}% 7446 \setcodequotes
7621 % Respect line breaks, 7447 % Respect line breaks,
7622 % print special symbols as themselves, and 7448 % print special symbols as themselves, and
7623 % make each space count. 7449 % make each space count.
@@ -8036,7 +7862,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8036 % leave the code in, but it's strange for @var to lead to typewriter. 7862 % leave the code in, but it's strange for @var to lead to typewriter.
8037 % Nowadays we recommend @code, since the difference between a ttsl hyphen 7863 % Nowadays we recommend @code, since the difference between a ttsl hyphen
8038 % and a tt hyphen is pretty tiny. @code also disables ?` !`. 7864 % and a tt hyphen is pretty tiny. @code also disables ?` !`.
8039 \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}% 7865 \def\var##1{{\setregularquotes\ttslanted{##1}}}%
8040 #1% 7866 #1%
8041 \sl\hyphenchar\font=45 7867 \sl\hyphenchar\font=45
8042} 7868}
@@ -8145,11 +7971,18 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8145 } 7971 }
8146\fi 7972\fi
8147 7973
7974\let\E=\expandafter
7975
8148% Used at the time of macro expansion. 7976% Used at the time of macro expansion.
8149% Argument is macro body with arguments substituted 7977% Argument is macro body with arguments substituted
8150\def\scanmacro#1{% 7978\def\scanmacro#1{%
8151 \newlinechar`\^^M 7979 \newlinechar`\^^M
8152 \def\xeatspaces{\eatspaces}% 7980 % expand the expansion of \eatleadingcr twice to maybe remove a leading
7981 % newline (and \else and \fi tokens), then call \eatspaces on the result.
7982 \def\xeatspaces##1{%
7983 \E\E\E\E\E\E\E\eatspaces\E\E\E\E\E\E\E{\eatleadingcr##1%
7984 }}%
7985 \def\xempty##1{}%
8153 % 7986 %
8154 % Process the macro body under the current catcode regime. 7987 % Process the macro body under the current catcode regime.
8155 \scantokens{#1@comment}% 7988 \scantokens{#1@comment}%
@@ -8202,6 +8035,11 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8202\unbrace{\gdef\trim@@@ #1 } #2@{#1} 8035\unbrace{\gdef\trim@@@ #1 } #2@{#1}
8203} 8036}
8204 8037
8038{\catcode`\^^M=\other%
8039\gdef\eatleadingcr#1{\if\noexpand#1\noexpand^^M\else\E#1\fi}}%
8040% Warning: this won't work for a delimited argument
8041% or for an empty argument
8042
8205% Trim a single trailing ^^M off a string. 8043% Trim a single trailing ^^M off a string.
8206{\catcode`\^^M=\other \catcode`\Q=3% 8044{\catcode`\^^M=\other \catcode`\Q=3%
8207\gdef\eatcr #1{\eatcra #1Q^^MQ}% 8045\gdef\eatcr #1{\eatcra #1Q^^MQ}%
@@ -8368,6 +8206,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8368 \let\hash\relax 8206 \let\hash\relax
8369 % \hash is redefined to `#' later to get it into definitions 8207 % \hash is redefined to `#' later to get it into definitions
8370 \let\xeatspaces\relax 8208 \let\xeatspaces\relax
8209 \let\xempty\relax
8371 \parsemargdefxxx#1,;,% 8210 \parsemargdefxxx#1,;,%
8372 \ifnum\paramno<10\relax\else 8211 \ifnum\paramno<10\relax\else
8373 \paramno0\relax 8212 \paramno0\relax
@@ -8379,9 +8218,11 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8379 \else \let\next=\parsemargdefxxx 8218 \else \let\next=\parsemargdefxxx
8380 \advance\paramno by 1 8219 \advance\paramno by 1
8381 \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname 8220 \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
8382 {\xeatspaces{\hash\the\paramno}}% 8221 {\xeatspaces{\hash\the\paramno\noexpand\xempty{}}}%
8383 \edef\paramlist{\paramlist\hash\the\paramno,}% 8222 \edef\paramlist{\paramlist\hash\the\paramno,}%
8384 \fi\next} 8223 \fi\next}
8224% the \xempty{} is to give \eatleadingcr an argument in the case of an
8225% empty macro argument.
8385 8226
8386% \parsemacbody, \parsermacbody 8227% \parsemacbody, \parsermacbody
8387% 8228%
@@ -8970,7 +8811,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8970 \else 8811 \else
8971 \ifhavexrefs 8812 \ifhavexrefs
8972 % We (should) know the real title if we have the xref values. 8813 % We (should) know the real title if we have the xref values.
8973 \def\printedrefname{\refx{#1-title}{}}% 8814 \def\printedrefname{\refx{#1-title}}%
8974 \else 8815 \else
8975 % Otherwise just copy the Info node name. 8816 % Otherwise just copy the Info node name.
8976 \def\printedrefname{\ignorespaces #1}% 8817 \def\printedrefname{\ignorespaces #1}%
@@ -9064,7 +8905,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
9064 % If the user specified the print name (third arg) to the ref, 8905 % If the user specified the print name (third arg) to the ref,
9065 % print it instead of our usual "Figure 1.2". 8906 % print it instead of our usual "Figure 1.2".
9066 \ifdim\wd\printedrefnamebox = 0pt 8907 \ifdim\wd\printedrefnamebox = 0pt
9067 \refx{#1-snt}{}% 8908 \refx{#1-snt}%
9068 \else 8909 \else
9069 \printedrefname 8910 \printedrefname
9070 \fi 8911 \fi
@@ -9099,28 +8940,30 @@ might help (with 'rm \jobname.?? \jobname.??s')%
9099 \else 8940 \else
9100 % Reference within this manual. 8941 % Reference within this manual.
9101 % 8942 %
9102 % Only output a following space if the -snt ref is nonempty; for 8943 % Only output a following space if the -snt ref is nonempty, as the ref
9103 % @unnumbered and @anchor, it won't be. 8944 % will be empty for @unnumbered and @anchor.
9104 \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% 8945 \setbox2 = \hbox{\ignorespaces \refx{#1-snt}}%
9105 \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi 8946 \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
9106 % 8947 %
9107 % output the `[mynode]' via the macro below so it can be overridden. 8948 % output the `[mynode]' via the macro below so it can be overridden.
9108 \xrefprintnodename\printedrefname 8949 \xrefprintnodename\printedrefname
9109 % 8950 %
9110 % But we always want a comma and a space: 8951 \expandafter\ifx\csname SETtxiomitxrefpg\endcsname\relax
9111 ,\space 8952 % But we always want a comma and a space:
9112 % 8953 ,\space
9113 % output the `page 3'. 8954 %
9114 \turnoffactive \putwordpage\tie\refx{#1-pg}{}% 8955 % output the `page 3'.
9115 % Add a , if xref followed by a space 8956 \turnoffactive \putwordpage\tie\refx{#1-pg}%
9116 \if\space\noexpand\tokenafterxref ,% 8957 % Add a , if xref followed by a space
9117 \else\ifx\ \tokenafterxref ,% @TAB 8958 \if\space\noexpand\tokenafterxref ,%
9118 \else\ifx\*\tokenafterxref ,% @* 8959 \else\ifx\ \tokenafterxref ,% @TAB
9119 \else\ifx\ \tokenafterxref ,% @SPACE 8960 \else\ifx\*\tokenafterxref ,% @*
9120 \else\ifx\ 8961 \else\ifx\ \tokenafterxref ,% @SPACE
9121 \tokenafterxref ,% @NL 8962 \else\ifx\
9122 \else\ifx\tie\tokenafterxref ,% @tie 8963 \tokenafterxref ,% @NL
9123 \fi\fi\fi\fi\fi\fi 8964 \else\ifx\tie\tokenafterxref ,% @tie
8965 \fi\fi\fi\fi\fi\fi
8966 \fi
9124 \fi\fi 8967 \fi\fi
9125 \fi 8968 \fi
9126 \endlink 8969 \endlink
@@ -9187,9 +9030,8 @@ might help (with 'rm \jobname.?? \jobname.??s')%
9187 \fi\fi\fi 9030 \fi\fi\fi
9188} 9031}
9189 9032
9190% \refx{NAME}{SUFFIX} - reference a cross-reference string named NAME. SUFFIX 9033% \refx{NAME} - reference a cross-reference string named NAME.
9191% is output afterwards if non-empty. 9034\def\refx#1{%
9192\def\refx#1#2{%
9193 \requireauxfile 9035 \requireauxfile
9194 {% 9036 {%
9195 \indexnofonts 9037 \indexnofonts
@@ -9216,7 +9058,6 @@ might help (with 'rm \jobname.?? \jobname.??s')%
9216 % It's defined, so just use it. 9058 % It's defined, so just use it.
9217 \thisrefX 9059 \thisrefX
9218 \fi 9060 \fi
9219 #2% Output the suffix in any case.
9220} 9061}
9221 9062
9222% This is the macro invoked by entries in the aux file. Define a control 9063% This is the macro invoked by entries in the aux file. Define a control
@@ -9326,10 +9167,10 @@ might help (with 'rm \jobname.?? \jobname.??s')%
9326 \catcode`\[=\other 9167 \catcode`\[=\other
9327 \catcode`\]=\other 9168 \catcode`\]=\other
9328 \catcode`\"=\other 9169 \catcode`\"=\other
9329 \catcode`\_=\other 9170 \catcode`\_=\active
9330 \catcode`\|=\other 9171 \catcode`\|=\active
9331 \catcode`\<=\other 9172 \catcode`\<=\active
9332 \catcode`\>=\other 9173 \catcode`\>=\active
9333 \catcode`\$=\other 9174 \catcode`\$=\other
9334 \catcode`\#=\other 9175 \catcode`\#=\other
9335 \catcode`\&=\other 9176 \catcode`\&=\other
@@ -9550,7 +9391,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
9550\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup 9391\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup
9551 \catcode`\^^M = 5 % in case we're inside an example 9392 \catcode`\^^M = 5 % in case we're inside an example
9552 \normalturnoffactive % allow _ et al. in names 9393 \normalturnoffactive % allow _ et al. in names
9553 \def\xprocessmacroarg{\eatspaces}% in case we are being used via a macro 9394 \makevalueexpandable
9554 % If the image is by itself, center it. 9395 % If the image is by itself, center it.
9555 \ifvmode 9396 \ifvmode
9556 \imagevmodetrue 9397 \imagevmodetrue
@@ -9576,7 +9417,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
9576 % On the other hand, if we are in the case of @center @image, we don't 9417 % On the other hand, if we are in the case of @center @image, we don't
9577 % want to start a paragraph, which will create a hsize-width box and 9418 % want to start a paragraph, which will create a hsize-width box and
9578 % eradicate the centering. 9419 % eradicate the centering.
9579 \ifx\centersub\centerV\else \noindent \fi 9420 \ifx\centersub\centerV \else \imageindent \fi
9580 % 9421 %
9581 % Output the image. 9422 % Output the image.
9582 \ifpdf 9423 \ifpdf
@@ -11603,7 +11444,7 @@ directory should work if nowhere else does.}
11603 \let> = \activegtr 11444 \let> = \activegtr
11604 \let~ = \activetilde 11445 \let~ = \activetilde
11605 \let^ = \activehat 11446 \let^ = \activehat
11606 \markupsetuplqdefault \markupsetuprqdefault 11447 \setregularquotes
11607 \let\b = \strong 11448 \let\b = \strong
11608 \let\i = \smartitalic 11449 \let\i = \smartitalic
11609 % in principle, all other definitions in \tex have to be undone too. 11450 % in principle, all other definitions in \tex have to be undone too.
@@ -11662,8 +11503,7 @@ directory should work if nowhere else does.}
11662 @let|=@normalverticalbar 11503 @let|=@normalverticalbar
11663 @let~=@normaltilde 11504 @let~=@normaltilde
11664 @let\=@ttbackslash 11505 @let\=@ttbackslash
11665 @markupsetuplqdefault 11506 @setregularquotes
11666 @markupsetuprqdefault
11667 @unsepspaces 11507 @unsepspaces
11668 } 11508 }
11669} 11509}
@@ -11756,8 +11596,7 @@ directory should work if nowhere else does.}
11756@c Do this last of all since we use ` in the previous @catcode assignments. 11596@c Do this last of all since we use ` in the previous @catcode assignments.
11757@catcode`@'=@active 11597@catcode`@'=@active
11758@catcode`@`=@active 11598@catcode`@`=@active
11759@markupsetuplqdefault 11599@setregularquotes
11760@markupsetuprqdefault
11761 11600
11762@c Local variables: 11601@c Local variables:
11763@c eval: (add-hook 'before-save-hook 'time-stamp) 11602@c eval: (add-hook 'before-save-hook 'time-stamp)
@@ -11770,3 +11609,4 @@ directory should work if nowhere else does.}
11770@c vim:sw=2: 11609@c vim:sw=2:
11771 11610
11772@enablebackslashhack 11611@enablebackslashhack
11612