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, 289 insertions, 129 deletions
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index e48383d..3c7051d 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{2021-04-25.21} 6\def\texinfoversion{2020-10-24.12}
7% 7%
8% Copyright 1985, 1986, 1988, 1990-2021 Free Software Foundation, Inc. 8% Copyright 1985, 1986, 1988, 1990-2020 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,8 +572,9 @@
572 \fi 572 \fi
573} 573}
574 574
575 575% @end foo executes the definition of \Efoo.
576% @end foo calls \checkenv and executes the definition of \Efoo. 576% But first, it executes a specialized version of \checkenv
577%
577\parseargdef\end{% 578\parseargdef\end{%
578 \if 1\csname iscond.#1\endcsname 579 \if 1\csname iscond.#1\endcsname
579 \else 580 \else
@@ -1002,14 +1003,6 @@ where each line of input produces a line of output.}
1002 \global\everypar = {}% 1003 \global\everypar = {}%
1003} 1004}
1004 1005
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
1013 1006
1014% @refill is a no-op. 1007% @refill is a no-op.
1015\let\refill=\relax 1008\let\refill=\relax
@@ -1870,23 +1863,19 @@ output) for that.)}
1870 \closein 1 1863 \closein 1
1871 \endgroup 1864 \endgroup
1872 % 1865 %
1873 % Putting an \hbox around the image can prevent an over-long line 1866 \def\xetexpdfext{pdf}%
1874 % after the image. 1867 \ifx\xeteximgext\xetexpdfext
1875 \hbox\bgroup 1868 \XeTeXpdffile "#1".\xeteximgext ""
1876 \def\xetexpdfext{pdf}% 1869 \else
1870 \def\xetexpdfext{PDF}%
1877 \ifx\xeteximgext\xetexpdfext 1871 \ifx\xeteximgext\xetexpdfext
1878 \XeTeXpdffile "#1".\xeteximgext "" 1872 \XeTeXpdffile "#1".\xeteximgext ""
1879 \else 1873 \else
1880 \def\xetexpdfext{PDF}% 1874 \XeTeXpicfile "#1".\xeteximgext ""
1881 \ifx\xeteximgext\xetexpdfext
1882 \XeTeXpdffile "#1".\xeteximgext ""
1883 \else
1884 \XeTeXpicfile "#1".\xeteximgext ""
1885 \fi
1886 \fi 1875 \fi
1887 \ifdim \wd0 >0pt width \xeteximagewidth \fi 1876 \fi
1888 \ifdim \wd2 >0pt height \xeteximageheight \fi \relax 1877 \ifdim \wd0 >0pt width \xeteximagewidth \fi
1889 \egroup 1878 \ifdim \wd2 >0pt height \xeteximageheight \fi \relax
1890 } 1879 }
1891\fi 1880\fi
1892 1881
@@ -2684,6 +2673,8 @@ end
2684\definetextfontsizexi 2673\definetextfontsizexi
2685 2674
2686 2675
2676\message{markup,}
2677
2687% Check if we are currently using a typewriter font. Since all the 2678% Check if we are currently using a typewriter font. Since all the
2688% Computer Modern typewriter fonts have zero interword stretch (and 2679% Computer Modern typewriter fonts have zero interword stretch (and
2689% shrink), and it is reasonable to expect all typewriter fonts to have 2680% shrink), and it is reasonable to expect all typewriter fonts to have
@@ -2691,14 +2682,68 @@ end
2691% 2682%
2692\def\ifmonospace{\ifdim\fontdimen3\font=0pt } 2683\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
2693 2684
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
2694{ 2718{
2695\catcode`\'=\active 2719\catcode`\'=\active
2696\catcode`\`=\active 2720\catcode`\`=\active
2697 2721
2698\gdef\setcodequotes{\let`\codequoteleft \let'\codequoteright} 2722\gdef\markupsetuplqdefault{\let`\lq}
2699\gdef\setregularquotes{\let`\lq \let'\rq} 2723\gdef\markupsetuprqdefault{\let'\rq}
2724
2725\gdef\markupsetcodequoteleft{\let`\codequoteleft}
2726\gdef\markupsetcodequoteright{\let'\codequoteright}
2700} 2727}
2701 2728
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
2702% Allow an option to not use regular directed right quote/apostrophe 2747% Allow an option to not use regular directed right quote/apostrophe
2703% (char 0x27), but instead the undirected quote from cmtt (char 0x0d). 2748% (char 0x27), but instead the undirected quote from cmtt (char 0x0d).
2704% The undirected quote is ugly, so don't make it the default, but it 2749% The undirected quote is ugly, so don't make it the default, but it
@@ -2861,7 +2906,7 @@ end
2861} 2906}
2862 2907
2863% @samp. 2908% @samp.
2864\def\samp#1{{\setcodequotes\lq\tclose{#1}\rq\null}} 2909\def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}}
2865 2910
2866% @indicateurl is \samp, that is, with quotes. 2911% @indicateurl is \samp, that is, with quotes.
2867\let\indicateurl=\samp 2912\let\indicateurl=\samp
@@ -2904,7 +2949,8 @@ end
2904 \global\let'=\rq \global\let`=\lq % default definitions 2949 \global\let'=\rq \global\let`=\lq % default definitions
2905 % 2950 %
2906 \global\def\code{\begingroup 2951 \global\def\code{\begingroup
2907 \setcodequotes 2952 \setupmarkupstyle{code}%
2953 % The following should really be moved into \setupmarkupstyle handlers.
2908 \catcode\dashChar=\active \catcode\underChar=\active 2954 \catcode\dashChar=\active \catcode\underChar=\active
2909 \ifallowcodebreaks 2955 \ifallowcodebreaks
2910 \let-\codedash 2956 \let-\codedash
@@ -3058,7 +3104,7 @@ end
3058 \urefcatcodes 3104 \urefcatcodes
3059 % 3105 %
3060 \global\def\urefcode{\begingroup 3106 \global\def\urefcode{\begingroup
3061 \setcodequotes 3107 \setupmarkupstyle{code}%
3062 \urefcatcodes 3108 \urefcatcodes
3063 \let&\urefcodeamp 3109 \let&\urefcodeamp
3064 \let.\urefcodedot 3110 \let.\urefcodedot
@@ -3179,8 +3225,8 @@ end
3179\def\kbdsub#1#2#3\par{% 3225\def\kbdsub#1#2#3\par{%
3180 \def\one{#1}\def\three{#3}\def\threex{??}% 3226 \def\one{#1}\def\three{#3}\def\threex{??}%
3181 \ifx\one\xkey\ifx\threex\three \key{#2}% 3227 \ifx\one\xkey\ifx\threex\three \key{#2}%
3182 \else{\tclose{\kbdfont\setcodequotes\look}}\fi 3228 \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
3183 \else{\tclose{\kbdfont\setcodequotes\look}}\fi 3229 \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
3184} 3230}
3185 3231
3186% definition of @key that produces a lozenge. Doesn't adjust to text size. 3232% definition of @key that produces a lozenge. Doesn't adjust to text size.
@@ -3197,7 +3243,7 @@ end
3197% monospace, don't change it; that way, we respect @kbdinputstyle. But 3243% monospace, don't change it; that way, we respect @kbdinputstyle. But
3198% if it isn't monospace, then use \tt. 3244% if it isn't monospace, then use \tt.
3199% 3245%
3200\def\key#1{{\setregularquotes 3246\def\key#1{{\setupmarkupstyle{key}%
3201 \nohyphenation 3247 \nohyphenation
3202 \ifmonospace\else\tt\fi 3248 \ifmonospace\else\tt\fi
3203 #1}\null} 3249 #1}\null}
@@ -3327,20 +3373,16 @@ end
3327{\obeylines 3373{\obeylines
3328\globaldefs=1 3374\globaldefs=1
3329\envdef\displaymath{% 3375\envdef\displaymath{%
3330\tex% 3376\tex
3331\def\thisenv{\displaymath}% 3377\def\thisenv{\displaymath}%
3332\begingroup\let\end\displaymathend%
3333$$% 3378$$%
3334} 3379}
3335 3380
3336\def\displaymathend{$$\endgroup\end}% 3381\def\Edisplaymath{$$
3337
3338\def\Edisplaymath{%
3339\def\thisenv{\tex}% 3382\def\thisenv{\tex}%
3340\end tex 3383\end tex
3341}} 3384}}
3342 3385
3343
3344% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. 3386% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
3345% Ignore unless FMTNAME == tex; then it is like @iftex and @tex, 3387% Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
3346% except specified as a normal braced arg, so no newlines to worry about. 3388% except specified as a normal braced arg, so no newlines to worry about.
@@ -4301,8 +4343,82 @@ $$%
4301 \doitemize{#1.}\flushcr 4343 \doitemize{#1.}\flushcr
4302} 4344}
4303 4345
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
4304 4354
4305% @multitable macros 4355% @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
4306 4422
4307% Macros used to set up halign preamble: 4423% Macros used to set up halign preamble:
4308% 4424%
@@ -4350,6 +4466,8 @@ $$%
4350 \go 4466 \go
4351} 4467}
4352 4468
4469% multitable-only commands.
4470%
4353% @headitem starts a heading row, which we typeset in bold. Assignments 4471% @headitem starts a heading row, which we typeset in bold. Assignments
4354% have to be global since we are inside the implicit group of an 4472% have to be global since we are inside the implicit group of an
4355% alignment entry. \everycr below resets \everytab so we don't have to 4473% alignment entry. \everycr below resets \everytab so we don't have to
@@ -4366,8 +4484,14 @@ $$%
4366% default for tables with no headings. 4484% default for tables with no headings.
4367\let\headitemcrhook=\relax 4485\let\headitemcrhook=\relax
4368% 4486%
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.
4369\def\tab{\checkenv\multitable &\the\everytab}% 4491\def\tab{\checkenv\multitable &\the\everytab}%
4370 4492
4493% @multitable ... @end multitable definitions:
4494%
4371\newtoks\everytab % insert after every tab. 4495\newtoks\everytab % insert after every tab.
4372% 4496%
4373\envdef\multitable{% 4497\envdef\multitable{%
@@ -4382,8 +4506,9 @@ $$%
4382 % 4506 %
4383 \tolerance=9500 4507 \tolerance=9500
4384 \hbadness=9500 4508 \hbadness=9500
4385 \parskip=0pt 4509 \setmultitablespacing
4386 \parindent=6pt 4510 \parskip=\multitableparskip
4511 \parindent=\multitableparindent
4387 \overfullrule=0pt 4512 \overfullrule=0pt
4388 \global\colcount=0 4513 \global\colcount=0
4389 % 4514 %
@@ -4413,24 +4538,47 @@ $$%
4413 % continue for many paragraphs if desired. 4538 % continue for many paragraphs if desired.
4414 \halign\bgroup &% 4539 \halign\bgroup &%
4415 \global\advance\colcount by 1 4540 \global\advance\colcount by 1
4416 \strut 4541 \multistrut
4417 \vtop{% 4542 \vtop{%
4418 \advance\hsize by -1\leftskip 4543 % Use the current \colcount to find the correct column width:
4419 % Find the correct column width
4420 \hsize=\expandafter\csname col\the\colcount\endcsname 4544 \hsize=\expandafter\csname col\the\colcount\endcsname
4421 % 4545 %
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.
4422 \rightskip=0pt 4559 \rightskip=0pt
4423 \ifnum\colcount=1 4560 \ifnum\colcount=1
4424 \advance\hsize by\leftskip % Add indent of surrounding text 4561 % The first column will be indented with the surrounding text.
4562 \advance\hsize by\leftskip
4425 \else 4563 \else
4426 % In order to keep entries from bumping into each other. 4564 \ifsetpercent \else
4427 \leftskip=12pt 4565 % If user has not set preamble in terms of percent of \hsize
4428 \ifsetpercent \else 4566 % we will advance \hsize by \multitablecolspace.
4429 % If a template has been used 4567 \advance\hsize by \multitablecolspace
4430 \advance\hsize by \leftskip 4568 \fi
4431 \fi 4569 % In either case we will make \leftskip=\multitablecolspace:
4570 \leftskip=\multitablecolspace
4432 \fi 4571 \fi
4433 \noindent\ignorespaces##\unskip\strut 4572 % Ignoring space at the beginning and end avoids an occasional spurious
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
4434 }\cr 4582 }\cr
4435} 4583}
4436\def\Emultitable{% 4584\def\Emultitable{%
@@ -4439,6 +4587,31 @@ $$%
4439 \global\setpercentfalse 4587 \global\setpercentfalse
4440} 4588}
4441 4589
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
4442 4615
4443\message{conditionals,} 4616\message{conditionals,}
4444 4617
@@ -5052,29 +5225,30 @@ $$%
5052 \let\lbracechar\{% 5225 \let\lbracechar\{%
5053 \let\rbracechar\}% 5226 \let\rbracechar\}%
5054 % 5227 %
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}%
5075 % 5228 %
5076 \let\do\indexnofontsdef 5229 \let\do\indexnofontsdef
5077 % 5230 %
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 %
5078 \do\LaTeX{LaTeX}% 5252 \do\LaTeX{LaTeX}%
5079 \do\TeX{TeX}% 5253 \do\TeX{TeX}%
5080 % 5254 %
@@ -6970,7 +7144,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
6970% But \@ or @@ will get a plain @ character. 7144% But \@ or @@ will get a plain @ character.
6971 7145
6972\envdef\tex{% 7146\envdef\tex{%
6973 \setregularquotes 7147 \setupmarkupstyle{tex}%
6974 \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 7148 \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
6975 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 7149 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
6976 \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie 7150 \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
@@ -7196,7 +7370,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
7196% If you want all examples etc. small: @set dispenvsize small. 7370% If you want all examples etc. small: @set dispenvsize small.
7197% If you want even small examples the full size: @set dispenvsize nosmall. 7371% If you want even small examples the full size: @set dispenvsize nosmall.
7198% This affects the following displayed environments: 7372% This affects the following displayed environments:
7199% @example, @display, @format, @lisp, @verbatim 7373% @example, @display, @format, @lisp
7200% 7374%
7201\def\smallword{small} 7375\def\smallword{small}
7202\def\nosmallword{nosmall} 7376\def\nosmallword{nosmall}
@@ -7242,9 +7416,9 @@ might help (with 'rm \jobname.?? \jobname.??s')%
7242% 7416%
7243\maketwodispenvdef{lisp}{example}{% 7417\maketwodispenvdef{lisp}{example}{%
7244 \nonfillstart 7418 \nonfillstart
7245 \tt\setcodequotes 7419 \tt\setupmarkupstyle{example}%
7246 \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. 7420 \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
7247 \parsearg\gobble 7421 \gobble % eat return
7248} 7422}
7249% @display/@smalldisplay: same as @lisp except keep current font. 7423% @display/@smalldisplay: same as @lisp except keep current font.
7250% 7424%
@@ -7402,7 +7576,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
7402\def\setupverb{% 7576\def\setupverb{%
7403 \tt % easiest (and conventionally used) font for verbatim 7577 \tt % easiest (and conventionally used) font for verbatim
7404 \def\par{\leavevmode\endgraf}% 7578 \def\par{\leavevmode\endgraf}%
7405 \setcodequotes 7579 \setupmarkupstyle{verb}%
7406 \tabeightspaces 7580 \tabeightspaces
7407 % Respect line breaks, 7581 % Respect line breaks,
7408 % print special symbols as themselves, and 7582 % print special symbols as themselves, and
@@ -7443,7 +7617,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
7443 \tt % easiest (and conventionally used) font for verbatim 7617 \tt % easiest (and conventionally used) font for verbatim
7444 \def\par{\egroup\leavevmode\box\verbbox\endgraf\starttabbox}% 7618 \def\par{\egroup\leavevmode\box\verbbox\endgraf\starttabbox}%
7445 \tabexpand 7619 \tabexpand
7446 \setcodequotes 7620 \setupmarkupstyle{verbatim}%
7447 % Respect line breaks, 7621 % Respect line breaks,
7448 % print special symbols as themselves, and 7622 % print special symbols as themselves, and
7449 % make each space count. 7623 % make each space count.
@@ -7862,7 +8036,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
7862 % leave the code in, but it's strange for @var to lead to typewriter. 8036 % leave the code in, but it's strange for @var to lead to typewriter.
7863 % Nowadays we recommend @code, since the difference between a ttsl hyphen 8037 % Nowadays we recommend @code, since the difference between a ttsl hyphen
7864 % and a tt hyphen is pretty tiny. @code also disables ?` !`. 8038 % and a tt hyphen is pretty tiny. @code also disables ?` !`.
7865 \def\var##1{{\setregularquotes\ttslanted{##1}}}% 8039 \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}%
7866 #1% 8040 #1%
7867 \sl\hyphenchar\font=45 8041 \sl\hyphenchar\font=45
7868} 8042}
@@ -7971,18 +8145,11 @@ might help (with 'rm \jobname.?? \jobname.??s')%
7971 } 8145 }
7972\fi 8146\fi
7973 8147
7974\let\E=\expandafter
7975
7976% Used at the time of macro expansion. 8148% Used at the time of macro expansion.
7977% Argument is macro body with arguments substituted 8149% Argument is macro body with arguments substituted
7978\def\scanmacro#1{% 8150\def\scanmacro#1{%
7979 \newlinechar`\^^M 8151 \newlinechar`\^^M
7980 % expand the expansion of \eatleadingcr twice to maybe remove a leading 8152 \def\xeatspaces{\eatspaces}%
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{}%
7986 % 8153 %
7987 % Process the macro body under the current catcode regime. 8154 % Process the macro body under the current catcode regime.
7988 \scantokens{#1@comment}% 8155 \scantokens{#1@comment}%
@@ -8035,11 +8202,6 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8035\unbrace{\gdef\trim@@@ #1 } #2@{#1} 8202\unbrace{\gdef\trim@@@ #1 } #2@{#1}
8036} 8203}
8037 8204
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
8043% Trim a single trailing ^^M off a string. 8205% Trim a single trailing ^^M off a string.
8044{\catcode`\^^M=\other \catcode`\Q=3% 8206{\catcode`\^^M=\other \catcode`\Q=3%
8045\gdef\eatcr #1{\eatcra #1Q^^MQ}% 8207\gdef\eatcr #1{\eatcra #1Q^^MQ}%
@@ -8206,7 +8368,6 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8206 \let\hash\relax 8368 \let\hash\relax
8207 % \hash is redefined to `#' later to get it into definitions 8369 % \hash is redefined to `#' later to get it into definitions
8208 \let\xeatspaces\relax 8370 \let\xeatspaces\relax
8209 \let\xempty\relax
8210 \parsemargdefxxx#1,;,% 8371 \parsemargdefxxx#1,;,%
8211 \ifnum\paramno<10\relax\else 8372 \ifnum\paramno<10\relax\else
8212 \paramno0\relax 8373 \paramno0\relax
@@ -8218,11 +8379,9 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8218 \else \let\next=\parsemargdefxxx 8379 \else \let\next=\parsemargdefxxx
8219 \advance\paramno by 1 8380 \advance\paramno by 1
8220 \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname 8381 \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
8221 {\xeatspaces{\hash\the\paramno\noexpand\xempty{}}}% 8382 {\xeatspaces{\hash\the\paramno}}%
8222 \edef\paramlist{\paramlist\hash\the\paramno,}% 8383 \edef\paramlist{\paramlist\hash\the\paramno,}%
8223 \fi\next} 8384 \fi\next}
8224% the \xempty{} is to give \eatleadingcr an argument in the case of an
8225% empty macro argument.
8226 8385
8227% \parsemacbody, \parsermacbody 8386% \parsemacbody, \parsermacbody
8228% 8387%
@@ -8811,7 +8970,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8811 \else 8970 \else
8812 \ifhavexrefs 8971 \ifhavexrefs
8813 % We (should) know the real title if we have the xref values. 8972 % We (should) know the real title if we have the xref values.
8814 \def\printedrefname{\refx{#1-title}}% 8973 \def\printedrefname{\refx{#1-title}{}}%
8815 \else 8974 \else
8816 % Otherwise just copy the Info node name. 8975 % Otherwise just copy the Info node name.
8817 \def\printedrefname{\ignorespaces #1}% 8976 \def\printedrefname{\ignorespaces #1}%
@@ -8905,7 +9064,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8905 % If the user specified the print name (third arg) to the ref, 9064 % If the user specified the print name (third arg) to the ref,
8906 % print it instead of our usual "Figure 1.2". 9065 % print it instead of our usual "Figure 1.2".
8907 \ifdim\wd\printedrefnamebox = 0pt 9066 \ifdim\wd\printedrefnamebox = 0pt
8908 \refx{#1-snt}% 9067 \refx{#1-snt}{}%
8909 \else 9068 \else
8910 \printedrefname 9069 \printedrefname
8911 \fi 9070 \fi
@@ -8940,30 +9099,28 @@ might help (with 'rm \jobname.?? \jobname.??s')%
8940 \else 9099 \else
8941 % Reference within this manual. 9100 % Reference within this manual.
8942 % 9101 %
8943 % Only output a following space if the -snt ref is nonempty, as the ref 9102 % Only output a following space if the -snt ref is nonempty; for
8944 % will be empty for @unnumbered and @anchor. 9103 % @unnumbered and @anchor, it won't be.
8945 \setbox2 = \hbox{\ignorespaces \refx{#1-snt}}% 9104 \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
8946 \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi 9105 \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
8947 % 9106 %
8948 % output the `[mynode]' via the macro below so it can be overridden. 9107 % output the `[mynode]' via the macro below so it can be overridden.
8949 \xrefprintnodename\printedrefname 9108 \xrefprintnodename\printedrefname
8950 % 9109 %
8951 \expandafter\ifx\csname SETtxiomitxrefpg\endcsname\relax 9110 % But we always want a comma and a space:
8952 % But we always want a comma and a space: 9111 ,\space
8953 ,\space 9112 %
8954 % 9113 % output the `page 3'.
8955 % output the `page 3'. 9114 \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
8956 \turnoffactive \putwordpage\tie\refx{#1-pg}% 9115 % Add a , if xref followed by a space
8957 % Add a , if xref followed by a space 9116 \if\space\noexpand\tokenafterxref ,%
8958 \if\space\noexpand\tokenafterxref ,% 9117 \else\ifx\ \tokenafterxref ,% @TAB
8959 \else\ifx\ \tokenafterxref ,% @TAB 9118 \else\ifx\*\tokenafterxref ,% @*
8960 \else\ifx\*\tokenafterxref ,% @* 9119 \else\ifx\ \tokenafterxref ,% @SPACE
8961 \else\ifx\ \tokenafterxref ,% @SPACE 9120 \else\ifx\
8962 \else\ifx\ 9121 \tokenafterxref ,% @NL
8963 \tokenafterxref ,% @NL 9122 \else\ifx\tie\tokenafterxref ,% @tie
8964 \else\ifx\tie\tokenafterxref ,% @tie 9123 \fi\fi\fi\fi\fi\fi
8965 \fi\fi\fi\fi\fi\fi
8966 \fi
8967 \fi\fi 9124 \fi\fi
8968 \fi 9125 \fi
8969 \endlink 9126 \endlink
@@ -9030,8 +9187,9 @@ might help (with 'rm \jobname.?? \jobname.??s')%
9030 \fi\fi\fi 9187 \fi\fi\fi
9031} 9188}
9032 9189
9033% \refx{NAME} - reference a cross-reference string named NAME. 9190% \refx{NAME}{SUFFIX} - reference a cross-reference string named NAME. SUFFIX
9034\def\refx#1{% 9191% is output afterwards if non-empty.
9192\def\refx#1#2{%
9035 \requireauxfile 9193 \requireauxfile
9036 {% 9194 {%
9037 \indexnofonts 9195 \indexnofonts
@@ -9058,6 +9216,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
9058 % It's defined, so just use it. 9216 % It's defined, so just use it.
9059 \thisrefX 9217 \thisrefX
9060 \fi 9218 \fi
9219 #2% Output the suffix in any case.
9061} 9220}
9062 9221
9063% This is the macro invoked by entries in the aux file. Define a control 9222% This is the macro invoked by entries in the aux file. Define a control
@@ -9167,10 +9326,10 @@ might help (with 'rm \jobname.?? \jobname.??s')%
9167 \catcode`\[=\other 9326 \catcode`\[=\other
9168 \catcode`\]=\other 9327 \catcode`\]=\other
9169 \catcode`\"=\other 9328 \catcode`\"=\other
9170 \catcode`\_=\active 9329 \catcode`\_=\other
9171 \catcode`\|=\active 9330 \catcode`\|=\other
9172 \catcode`\<=\active 9331 \catcode`\<=\other
9173 \catcode`\>=\active 9332 \catcode`\>=\other
9174 \catcode`\$=\other 9333 \catcode`\$=\other
9175 \catcode`\#=\other 9334 \catcode`\#=\other
9176 \catcode`\&=\other 9335 \catcode`\&=\other
@@ -9391,7 +9550,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
9391\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup 9550\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup
9392 \catcode`\^^M = 5 % in case we're inside an example 9551 \catcode`\^^M = 5 % in case we're inside an example
9393 \normalturnoffactive % allow _ et al. in names 9552 \normalturnoffactive % allow _ et al. in names
9394 \makevalueexpandable 9553 \def\xprocessmacroarg{\eatspaces}% in case we are being used via a macro
9395 % If the image is by itself, center it. 9554 % If the image is by itself, center it.
9396 \ifvmode 9555 \ifvmode
9397 \imagevmodetrue 9556 \imagevmodetrue
@@ -9417,7 +9576,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
9417 % On the other hand, if we are in the case of @center @image, we don't 9576 % On the other hand, if we are in the case of @center @image, we don't
9418 % want to start a paragraph, which will create a hsize-width box and 9577 % want to start a paragraph, which will create a hsize-width box and
9419 % eradicate the centering. 9578 % eradicate the centering.
9420 \ifx\centersub\centerV \else \imageindent \fi 9579 \ifx\centersub\centerV\else \noindent \fi
9421 % 9580 %
9422 % Output the image. 9581 % Output the image.
9423 \ifpdf 9582 \ifpdf
@@ -11444,7 +11603,7 @@ directory should work if nowhere else does.}
11444 \let> = \activegtr 11603 \let> = \activegtr
11445 \let~ = \activetilde 11604 \let~ = \activetilde
11446 \let^ = \activehat 11605 \let^ = \activehat
11447 \setregularquotes 11606 \markupsetuplqdefault \markupsetuprqdefault
11448 \let\b = \strong 11607 \let\b = \strong
11449 \let\i = \smartitalic 11608 \let\i = \smartitalic
11450 % in principle, all other definitions in \tex have to be undone too. 11609 % in principle, all other definitions in \tex have to be undone too.
@@ -11503,7 +11662,8 @@ directory should work if nowhere else does.}
11503 @let|=@normalverticalbar 11662 @let|=@normalverticalbar
11504 @let~=@normaltilde 11663 @let~=@normaltilde
11505 @let\=@ttbackslash 11664 @let\=@ttbackslash
11506 @setregularquotes 11665 @markupsetuplqdefault
11666 @markupsetuprqdefault
11507 @unsepspaces 11667 @unsepspaces
11508 } 11668 }
11509} 11669}
@@ -11596,7 +11756,8 @@ directory should work if nowhere else does.}
11596@c Do this last of all since we use ` in the previous @catcode assignments. 11756@c Do this last of all since we use ` in the previous @catcode assignments.
11597@catcode`@'=@active 11757@catcode`@'=@active
11598@catcode`@`=@active 11758@catcode`@`=@active
11599@setregularquotes 11759@markupsetuplqdefault
11760@markupsetuprqdefault
11600 11761
11601@c Local variables: 11762@c Local variables:
11602@c eval: (add-hook 'before-save-hook 'time-stamp) 11763@c eval: (add-hook 'before-save-hook 'time-stamp)
@@ -11609,4 +11770,3 @@ directory should work if nowhere else does.}
11609@c vim:sw=2: 11770@c vim:sw=2:
11610 11771
11611@enablebackslashhack 11772@enablebackslashhack
11612