aboutsummaryrefslogtreecommitdiff
path: root/doc/texinfo.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/texinfo.tex')
-rw-r--r--doc/texinfo.tex441
1 files changed, 151 insertions, 290 deletions
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index 9a2439c8..2abda0f3 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{2012-09-05.06} 6\def\texinfoversion{2012-01-03.09}
7% 7%
8% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 8% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
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, 2010, 2011, 2012 Free Software Foundation, Inc. 10% 2007, 2008, 2009, 2010, 2011 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
@@ -28,9 +28,9 @@
28% 28%
29% Please try the latest version of texinfo.tex before submitting bug 29% Please try the latest version of texinfo.tex before submitting bug
30% reports; you can get the latest version from: 30% reports; you can get the latest version from:
31% http://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or 31% http://www.gnu.org/software/texinfo/ (the Texinfo home page), or
32% http://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or 32% ftp://tug.org/tex/texinfo.tex
33% http://www.gnu.org/software/texinfo/ (the Texinfo home page) 33% (and all CTAN mirrors, see http://www.ctan.org).
34% The texinfo.tex in any given distribution could well be out 34% The texinfo.tex in any given distribution could well be out
35% of date, so if that's what you're using, please check. 35% of date, so if that's what you're using, please check.
36% 36%
@@ -594,7 +594,7 @@
594\def\:{\spacefactor=1000 } 594\def\:{\spacefactor=1000 }
595 595
596% @* forces a line break. 596% @* forces a line break.
597\def\*{\unskip\hfil\break\hbox{}\ignorespaces} 597\def\*{\hfil\break\hbox{}\ignorespaces}
598 598
599% @/ allows a line break. 599% @/ allows a line break.
600\let\/=\allowbreak 600\let\/=\allowbreak
@@ -887,7 +887,7 @@ where each line of input produces a line of output.}
887\def\popthisfilestack{\errthisfilestackempty} 887\def\popthisfilestack{\errthisfilestackempty}
888\def\errthisfilestackempty{\errmessage{Internal error: 888\def\errthisfilestackempty{\errmessage{Internal error:
889 the stack of filenames is empty.}} 889 the stack of filenames is empty.}}
890% 890
891\def\thisfile{} 891\def\thisfile{}
892 892
893% @center line 893% @center line
@@ -895,46 +895,36 @@ where each line of input produces a line of output.}
895% 895%
896\parseargdef\center{% 896\parseargdef\center{%
897 \ifhmode 897 \ifhmode
898 \let\centersub\centerH 898 \let\next\centerH
899 \else 899 \else
900 \let\centersub\centerV 900 \let\next\centerV
901 \fi 901 \fi
902 \centersub{\hfil \ignorespaces#1\unskip \hfil}% 902 \next{\hfil \ignorespaces#1\unskip \hfil}%
903 \let\centersub\relax % don't let the definition persist, just in case
904} 903}
905\def\centerH#1{{% 904\def\centerH#1{%
906 \hfil\break 905 {%
907 \advance\hsize by -\leftskip 906 \hfil\break
908 \advance\hsize by -\rightskip 907 \advance\hsize by -\leftskip
909 \line{#1}% 908 \advance\hsize by -\rightskip
910 \break 909 \line{#1}%
911}} 910 \break
912% 911 }%
913\newcount\centerpenalty
914\def\centerV#1{%
915 % The idea here is the same as in \startdefun, \cartouche, etc.: if
916 % @center is the first thing after a section heading, we need to wipe
917 % out the negative parskip inserted by \sectionheading, but still
918 % prevent a page break here.
919 \centerpenalty = \lastpenalty
920 \ifnum\centerpenalty>10000 \vskip\parskip \fi
921 \ifnum\centerpenalty>9999 \penalty\centerpenalty \fi
922 \line{\kern\leftskip #1\kern\rightskip}%
923} 912}
913\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}}
924 914
925% @sp n outputs n lines of vertical space 915% @sp n outputs n lines of vertical space
926% 916
927\parseargdef\sp{\vskip #1\baselineskip} 917\parseargdef\sp{\vskip #1\baselineskip}
928 918
929% @comment ...line which is ignored... 919% @comment ...line which is ignored...
930% @c is the same as @comment 920% @c is the same as @comment
931% @ignore ... @end ignore is another way to write a comment 921% @ignore ... @end ignore is another way to write a comment
932% 922
933\def\comment{\begingroup \catcode`\^^M=\other% 923\def\comment{\begingroup \catcode`\^^M=\other%
934\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other% 924\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
935\commentxxx} 925\commentxxx}
936{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}} 926{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
937% 927
938\let\c=\comment 928\let\c=\comment
939 929
940% @paragraphindent NCHARS 930% @paragraphindent NCHARS
@@ -1117,7 +1107,7 @@ where each line of input produces a line of output.}
1117% #1 is a control sequence in which to do the replacements, 1107% #1 is a control sequence in which to do the replacements,
1118% which we \xdef. 1108% which we \xdef.
1119\def\txiescapepdf#1{% 1109\def\txiescapepdf#1{%
1120 \ifx\pdfescapestring\thisisundefined 1110 \ifx\pdfescapestring\relax
1121 % No primitive available; should we give a warning or log? 1111 % No primitive available; should we give a warning or log?
1122 % Many times it won't matter. 1112 % Many times it won't matter.
1123 \else 1113 \else
@@ -1183,8 +1173,8 @@ output) for that.)}
1183 % 1173 %
1184 % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). 1174 % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
1185 \def\dopdfimage#1#2#3{% 1175 \def\dopdfimage#1#2#3{%
1186 \def\pdfimagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% 1176 \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
1187 \def\pdfimageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% 1177 \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
1188 % 1178 %
1189 % pdftex (and the PDF format) support .pdf, .png, .jpg (among 1179 % pdftex (and the PDF format) support .pdf, .png, .jpg (among
1190 % others). Let's try in that order, PDF first since if 1180 % others). Let's try in that order, PDF first since if
@@ -1222,8 +1212,8 @@ output) for that.)}
1222 \else 1212 \else
1223 \immediate\pdfximage 1213 \immediate\pdfximage
1224 \fi 1214 \fi
1225 \ifdim \wd0 >0pt width \pdfimagewidth \fi 1215 \ifdim \wd0 >0pt width \imagewidth \fi
1226 \ifdim \wd2 >0pt height \pdfimageheight \fi 1216 \ifdim \wd2 >0pt height \imageheight \fi
1227 \ifnum\pdftexversion<13 1217 \ifnum\pdftexversion<13
1228 #1.\pdfimgext 1218 #1.\pdfimgext
1229 \else 1219 \else
@@ -1367,17 +1357,12 @@ output) for that.)}
1367 \def\skipspaces#1{\def\PP{#1}\def\D{|}% 1357 \def\skipspaces#1{\def\PP{#1}\def\D{|}%
1368 \ifx\PP\D\let\nextsp\relax 1358 \ifx\PP\D\let\nextsp\relax
1369 \else\let\nextsp\skipspaces 1359 \else\let\nextsp\skipspaces
1370 \addtokens{\filename}{\PP}% 1360 \ifx\p\space\else\addtokens{\filename}{\PP}%
1371 \advance\filenamelength by 1 1361 \advance\filenamelength by 1
1362 \fi
1372 \fi 1363 \fi
1373 \nextsp} 1364 \nextsp}
1374 \def\getfilename#1{% 1365 \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
1375 \filenamelength=0
1376 % If we don't expand the argument now, \skipspaces will get
1377 % snagged on things like "@value{foo}".
1378 \edef\temp{#1}%
1379 \expandafter\skipspaces\temp|\relax
1380 }
1381 \ifnum\pdftexversion < 14 1366 \ifnum\pdftexversion < 14
1382 \let \startlink \pdfannotlink 1367 \let \startlink \pdfannotlink
1383 \else 1368 \else
@@ -1474,6 +1459,9 @@ output) for that.)}
1474\def\ttsl{\setfontstyle{ttsl}} 1459\def\ttsl{\setfontstyle{ttsl}}
1475 1460
1476 1461
1462% Default leading.
1463\newdimen\textleading \textleading = 13.2pt
1464
1477% Set the baselineskip to #1, and the lineskip and strut size 1465% Set the baselineskip to #1, and the lineskip and strut size
1478% correspondingly. There is no deep meaning behind these magic numbers 1466% correspondingly. There is no deep meaning behind these magic numbers
1479% used as factors; they just match (closely enough) what Knuth defined. 1467% used as factors; they just match (closely enough) what Knuth defined.
@@ -1485,7 +1473,6 @@ output) for that.)}
1485% can get a sort of poor man's double spacing by redefining this. 1473% can get a sort of poor man's double spacing by redefining this.
1486\def\baselinefactor{1} 1474\def\baselinefactor{1}
1487% 1475%
1488\newdimen\textleading
1489\def\setleading#1{% 1476\def\setleading#1{%
1490 \dimen0 = #1\relax 1477 \dimen0 = #1\relax
1491 \normalbaselineskip = \baselinefactor\dimen0 1478 \normalbaselineskip = \baselinefactor\dimen0
@@ -1758,24 +1745,18 @@ end
1758\fi\fi 1745\fi\fi
1759 1746
1760 1747
1761% Set the font macro #1 to the font named \fontprefix#2. 1748% Set the font macro #1 to the font named #2, adding on the
1749% specified font prefix (normally `cm').
1762% #3 is the font's design size, #4 is a scale factor, #5 is the CMap 1750% #3 is the font's design size, #4 is a scale factor, #5 is the CMap
1763% encoding (only OT1, OT1IT and OT1TT are allowed, or empty to omit). 1751% encoding (currently only OT1, OT1IT and OT1TT are allowed, pass
1764% Example: 1752% empty to omit).
1765% #1 = \textrm
1766% #2 = \rmshape
1767% #3 = 10
1768% #4 = \mainmagstep
1769% #5 = OT1
1770%
1771\def\setfont#1#2#3#4#5{% 1753\def\setfont#1#2#3#4#5{%
1772 \font#1=\fontprefix#2#3 scaled #4 1754 \font#1=\fontprefix#2#3 scaled #4
1773 \csname cmap#5\endcsname#1% 1755 \csname cmap#5\endcsname#1%
1774} 1756}
1775% This is what gets called when #5 of \setfont is empty. 1757% This is what gets called when #5 of \setfont is empty.
1776\let\cmap\gobble 1758\let\cmap\gobble
1777% 1759% emacs-page end of cmaps
1778% (end of cmaps)
1779 1760
1780% Use cm as the default font prefix. 1761% Use cm as the default font prefix.
1781% To specify the font prefix, you must define \fontprefix 1762% To specify the font prefix, you must define \fontprefix
@@ -1785,7 +1766,7 @@ end
1785\fi 1766\fi
1786% Support font families that don't use the same naming scheme as CM. 1767% Support font families that don't use the same naming scheme as CM.
1787\def\rmshape{r} 1768\def\rmshape{r}
1788\def\rmbshape{bx} % where the normal face is bold 1769\def\rmbshape{bx} %where the normal face is bold
1789\def\bfshape{b} 1770\def\bfshape{b}
1790\def\bxshape{bx} 1771\def\bxshape{bx}
1791\def\ttshape{tt} 1772\def\ttshape{tt}
@@ -1800,7 +1781,8 @@ end
1800\def\scshape{csc} 1781\def\scshape{csc}
1801\def\scbshape{csc} 1782\def\scbshape{csc}
1802 1783
1803% Definitions for a main text size of 11pt. (The default in Texinfo.) 1784% Definitions for a main text size of 11pt. This is the default in
1785% Texinfo.
1804% 1786%
1805\def\definetextfontsizexi{% 1787\def\definetextfontsizexi{%
1806% Text fonts (11.2pt, magstep1). 1788% Text fonts (11.2pt, magstep1).
@@ -1925,7 +1907,7 @@ end
1925\textleading = 13.2pt % line spacing for 11pt CM 1907\textleading = 13.2pt % line spacing for 11pt CM
1926\textfonts % reset the current fonts 1908\textfonts % reset the current fonts
1927\rm 1909\rm
1928} % end of 11pt text font size definitions, \definetextfontsizexi 1910} % end of 11pt text font size definitions
1929 1911
1930 1912
1931% Definitions to make the main text be 10pt Computer Modern, with 1913% Definitions to make the main text be 10pt Computer Modern, with
@@ -2057,7 +2039,7 @@ end
2057\textleading = 12pt % line spacing for 10pt CM 2039\textleading = 12pt % line spacing for 10pt CM
2058\textfonts % reset the current fonts 2040\textfonts % reset the current fonts
2059\rm 2041\rm
2060} % end of 10pt text font size definitions, \definetextfontsizex 2042} % end of 10pt text font size definitions
2061 2043
2062 2044
2063% We provide the user-level command 2045% We provide the user-level command
@@ -2448,12 +2430,34 @@ end
2448% @samp. 2430% @samp.
2449\def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}} 2431\def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}}
2450 2432
2451% @indicateurl is \samp, that is, with quotes. 2433% definition of @key that produces a lozenge. Doesn't adjust to text size.
2452\let\indicateurl=\samp 2434%\setfont\keyrm\rmshape{8}{1000}{OT1}
2435%\font\keysy=cmsy9
2436%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
2437% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
2438% \vbox{\hrule\kern-0.4pt
2439% \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
2440% \kern-0.4pt\hrule}%
2441% \kern-.06em\raise0.4pt\hbox{\angleright}}}}
2453 2442
2454% @code (and similar) prints in typewriter, but with spaces the same 2443% definition of @key with no lozenge. If the current font is already
2455% size as normal in the surrounding text, without hyphenation, etc. 2444% monospace, don't change it; that way, we respect @kbdinputstyle. But
2456% This is a subroutine for that. 2445% if it isn't monospace, then use \tt.
2446%
2447\def\key#1{{\setupmarkupstyle{key}%
2448 \nohyphenation
2449 \ifmonospace\else\tt\fi
2450 #1}\null}
2451
2452% ctrl is no longer a Texinfo command.
2453\def\ctrl #1{{\tt \rawbackslash \hat}#1}
2454
2455% @file, @option are the same as @samp.
2456\let\file=\samp
2457\let\option=\samp
2458
2459% @code is a modification of @t,
2460% which makes spaces the same size as normal in the surrounding text.
2457\def\tclose#1{% 2461\def\tclose#1{%
2458 {% 2462 {%
2459 % Change normal interword space to be same as for the current font. 2463 % Change normal interword space to be same as for the current font.
@@ -2478,7 +2482,7 @@ end
2478% We *must* turn on hyphenation at `-' and `_' in @code. 2482% We *must* turn on hyphenation at `-' and `_' in @code.
2479% Otherwise, it is too hard to avoid overfull hboxes 2483% Otherwise, it is too hard to avoid overfull hboxes
2480% in the Emacs manual, the Library manual, etc. 2484% in the Emacs manual, the Library manual, etc.
2481% 2485
2482% Unfortunately, TeX uses one parameter (\hyphenchar) to control 2486% Unfortunately, TeX uses one parameter (\hyphenchar) to control
2483% both hyphenation at - and hyphenation within words. 2487% both hyphenation at - and hyphenation within words.
2484% We must therefore turn them both off (\tclose does that) 2488% We must therefore turn them both off (\tclose does that)
@@ -2542,13 +2546,6 @@ end
2542 \fi\fi 2546 \fi\fi
2543} 2547}
2544 2548
2545% For @command, @env, @file, @option quotes seem unnecessary,
2546% so use \code rather than \samp.
2547\let\command=\code
2548\let\env=\code
2549\let\file=\code
2550\let\option=\code
2551
2552% @uref (abbreviation for `urlref') takes an optional (comma-separated) 2549% @uref (abbreviation for `urlref') takes an optional (comma-separated)
2553% second argument specifying the text to display and an optional third 2550% second argument specifying the text to display and an optional third
2554% arg as text to display instead of (rather than in addition to) the url 2551% arg as text to display instead of (rather than in addition to) the url
@@ -2728,24 +2725,10 @@ end
2728\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi 2725\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
2729\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi} 2726\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi}
2730 2727
2731% definition of @key that produces a lozenge. Doesn't adjust to text size. 2728% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
2732%\setfont\keyrm\rmshape{8}{1000}{OT1} 2729\let\indicateurl=\code
2733%\font\keysy=cmsy9 2730\let\env=\code
2734%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% 2731\let\command=\code
2735% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
2736% \vbox{\hrule\kern-0.4pt
2737% \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
2738% \kern-0.4pt\hrule}%
2739% \kern-.06em\raise0.4pt\hbox{\angleright}}}}
2740
2741% definition of @key with no lozenge. If the current font is already
2742% monospace, don't change it; that way, we respect @kbdinputstyle. But
2743% if it isn't monospace, then use \tt.
2744%
2745\def\key#1{{\setupmarkupstyle{key}%
2746 \nohyphenation
2747 \ifmonospace\else\tt\fi
2748 #1}\null}
2749 2732
2750% @clicksequence{File @click{} Open ...} 2733% @clicksequence{File @click{} Open ...}
2751\def\clicksequence#1{\begingroup #1\endgroup} 2734\def\clicksequence#1{\begingroup #1\endgroup}
@@ -2853,17 +2836,14 @@ end
2853 } 2836 }
2854} 2837}
2855 2838
2856% ctrl is no longer a Texinfo command, but leave this definition for fun.
2857\def\ctrl #1{{\tt \rawbackslash \hat}#1}
2858
2859% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. 2839% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
2860% Ignore unless FMTNAME == tex; then it is like @iftex and @tex, 2840% Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
2861% except specified as a normal braced arg, so no newlines to worry about. 2841% except specified as a normal braced arg, so no newlines to worry about.
2862% 2842%
2863\def\outfmtnametex{tex} 2843\def\outfmtnametex{tex}
2864% 2844%
2865\long\def\inlinefmt#1{\doinlinefmt #1,\finish} 2845\def\inlinefmt#1{\doinlinefmt #1,\finish}
2866\long\def\doinlinefmt#1,#2,\finish{% 2846\def\doinlinefmt#1,#2,\finish{%
2867 \def\inlinefmtname{#1}% 2847 \def\inlinefmtname{#1}%
2868 \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi 2848 \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi
2869} 2849}
@@ -2875,8 +2855,8 @@ end
2875% well use a command to get a left brace too. We could re-use the 2855% well use a command to get a left brace too. We could re-use the
2876% delimiter character idea from \verb, but it seems like overkill. 2856% delimiter character idea from \verb, but it seems like overkill.
2877% 2857%
2878\long\def\inlineraw{\tex \doinlineraw} 2858\def\inlineraw{\tex \doinlineraw}
2879\long\def\doinlineraw#1{\doinlinerawtwo #1,\finish} 2859\def\doinlineraw#1{\doinlinerawtwo #1,\finish}
2880\def\doinlinerawtwo#1,#2,\finish{% 2860\def\doinlinerawtwo#1,#2,\finish{%
2881 \def\inlinerawname{#1}% 2861 \def\inlinerawname{#1}%
2882 \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi 2862 \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi
@@ -3146,17 +3126,12 @@ end
3146 % hopefully nobody will notice/care. 3126 % hopefully nobody will notice/care.
3147 \edef\ecsize{\csname\curfontsize ecsize\endcsname}% 3127 \edef\ecsize{\csname\curfontsize ecsize\endcsname}%
3148 \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}% 3128 \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}%
3149 \ifmonospace 3129 \ifx\curfontstyle\bfstylename
3150 % typewriter: 3130 % bold:
3151 \font\thisecfont = ectt\ecsize \space at \nominalsize 3131 \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
3152 \else 3132 \else
3153 \ifx\curfontstyle\bfstylename 3133 % regular:
3154 % bold: 3134 \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
3155 \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
3156 \else
3157 % regular:
3158 \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
3159 \fi
3160 \fi 3135 \fi
3161 \thisecfont 3136 \thisecfont
3162} 3137}
@@ -3269,20 +3244,6 @@ end
3269 \finishedtitlepagetrue 3244 \finishedtitlepagetrue
3270} 3245}
3271 3246
3272% Settings used for typesetting titles: no hyphenation, no indentation,
3273% don't worry much about spacing, ragged right. This should be used
3274% inside a \vbox, and fonts need to be set appropriately first. Because
3275% it is always used for titles, nothing else, we call \rmisbold. \par
3276% should be specified before the end of the \vbox, since a vbox is a group.
3277%
3278\def\raggedtitlesettings{%
3279 \rmisbold
3280 \hyphenpenalty=10000
3281 \parindent=0pt
3282 \tolerance=5000
3283 \ptexraggedright
3284}
3285
3286% Macros to be used within @titlepage: 3247% Macros to be used within @titlepage:
3287 3248
3288\let\subtitlerm=\tenrm 3249\let\subtitlerm=\tenrm
@@ -3290,7 +3251,7 @@ end
3290 3251
3291\parseargdef\title{% 3252\parseargdef\title{%
3292 \checkenv\titlepage 3253 \checkenv\titlepage
3293 \vbox{\titlefonts \raggedtitlesettings #1\par}% 3254 \leftline{\titlefonts\rmisbold #1}
3294 % print a rule at the page bottom also. 3255 % print a rule at the page bottom also.
3295 \finishedtitlepagefalse 3256 \finishedtitlepagefalse
3296 \vskip4pt \hrule height 4pt width \hsize \vskip4pt 3257 \vskip4pt \hrule height 4pt width \hsize \vskip4pt
@@ -4227,7 +4188,7 @@ end
4227} 4188}
4228\def\ifsetfail{\doignore{ifset}} 4189\def\ifsetfail{\doignore{ifset}}
4229 4190
4230% @ifclear VAR ... @end executes the `...' iff VAR has never been 4191% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
4231% defined with @set, or has been undefined with @clear. 4192% defined with @set, or has been undefined with @clear.
4232% 4193%
4233% The `\else' inside the `\doifset' parameter is a trick to reuse the 4194% The `\else' inside the `\doifset' parameter is a trick to reuse the
@@ -4238,35 +4199,6 @@ end
4238\def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}} 4199\def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}}
4239\def\ifclearfail{\doignore{ifclear}} 4200\def\ifclearfail{\doignore{ifclear}}
4240 4201
4241% @ifcommandisdefined CMD ... @end executes the `...' if CMD (written
4242% without the @) is in fact defined. We can only feasibly check at the
4243% TeX level, so something like `mathcode' is going to considered
4244% defined even though it is not a Texinfo command.
4245%
4246\makecond{ifcommanddefined}
4247\def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}}
4248%
4249\def\doifcmddefined#1#2{{%
4250 \makevalueexpandable
4251 \let\next=\empty
4252 \expandafter\ifx\csname #2\endcsname\relax
4253 #1% If not defined, \let\next as above.
4254 \fi
4255 \expandafter
4256 }\next
4257}
4258\def\ifcmddefinedfail{\doignore{ifcommanddefined}}
4259
4260% @ifcommandnotdefined CMD ... handlded similar to @ifclear above.
4261\makecond{ifcommandnotdefined}
4262\def\ifcommandnotdefined{%
4263 \parsearg{\doifcmddefined{\else \let\next=\ifcmdnotdefinedfail}}}
4264\def\ifcmdnotdefinedfail{\doignore{ifcommandnotdefined}}
4265
4266% Set the `txicommandconditionals' variable, so documents have a way to
4267% test if the @ifcommand...defined conditionals are available.
4268\set txicommandconditionals
4269
4270% @dircategory CATEGORY -- specify a category of the dir file 4202% @dircategory CATEGORY -- specify a category of the dir file
4271% which this file should belong to. Ignore this in TeX. 4203% which this file should belong to. Ignore this in TeX.
4272\let\dircategory=\comment 4204\let\dircategory=\comment
@@ -4503,7 +4435,6 @@ end
4503 \definedummyword\guillemetright 4435 \definedummyword\guillemetright
4504 \definedummyword\guilsinglleft 4436 \definedummyword\guilsinglleft
4505 \definedummyword\guilsinglright 4437 \definedummyword\guilsinglright
4506 \definedummyword\lbracechar
4507 \definedummyword\leq 4438 \definedummyword\leq
4508 \definedummyword\minus 4439 \definedummyword\minus
4509 \definedummyword\ogonek 4440 \definedummyword\ogonek
@@ -4516,7 +4447,6 @@ end
4516 \definedummyword\quoteleft 4447 \definedummyword\quoteleft
4517 \definedummyword\quoteright 4448 \definedummyword\quoteright
4518 \definedummyword\quotesinglbase 4449 \definedummyword\quotesinglbase
4519 \definedummyword\rbracechar
4520 \definedummyword\result 4450 \definedummyword\result
4521 \definedummyword\textdegree 4451 \definedummyword\textdegree
4522 % 4452 %
@@ -4568,7 +4498,6 @@ end
4568 \definedummyword\t 4498 \definedummyword\t
4569 % 4499 %
4570 % Commands that take arguments. 4500 % Commands that take arguments.
4571 \definedummyword\abbr
4572 \definedummyword\acronym 4501 \definedummyword\acronym
4573 \definedummyword\anchor 4502 \definedummyword\anchor
4574 \definedummyword\cite 4503 \definedummyword\cite
@@ -4580,9 +4509,7 @@ end
4580 \definedummyword\emph 4509 \definedummyword\emph
4581 \definedummyword\env 4510 \definedummyword\env
4582 \definedummyword\file 4511 \definedummyword\file
4583 \definedummyword\image
4584 \definedummyword\indicateurl 4512 \definedummyword\indicateurl
4585 \definedummyword\inforef
4586 \definedummyword\kbd 4513 \definedummyword\kbd
4587 \definedummyword\key 4514 \definedummyword\key
4588 \definedummyword\math 4515 \definedummyword\math
@@ -4629,10 +4556,7 @@ end
4629 % content at all. So for index sorting, we map @{ and @} to strings 4556 % content at all. So for index sorting, we map @{ and @} to strings
4630 % starting with |, since that ASCII character is between ASCII { and }. 4557 % starting with |, since that ASCII character is between ASCII { and }.
4631 \def\{{|a}% 4558 \def\{{|a}%
4632 \def\lbracechar{|a}%
4633 %
4634 \def\}{|b}% 4559 \def\}{|b}%
4635 \def\rbracechar{|b}%
4636 % 4560 %
4637 % Non-English letters. 4561 % Non-English letters.
4638 \def\AA{AA}% 4562 \def\AA{AA}%
@@ -4808,9 +4732,10 @@ end
4808% 4732%
4809% ..., ready, GO: 4733% ..., ready, GO:
4810% 4734%
4811\def\safewhatsit#1{\ifhmode 4735\def\safewhatsit#1{%
4736\ifhmode
4812 #1% 4737 #1%
4813 \else 4738\else
4814 % \lastskip and \lastpenalty cannot both be nonzero simultaneously. 4739 % \lastskip and \lastpenalty cannot both be nonzero simultaneously.
4815 \whatsitskip = \lastskip 4740 \whatsitskip = \lastskip
4816 \edef\lastskipmacro{\the\lastskip}% 4741 \edef\lastskipmacro{\the\lastskip}%
@@ -4834,6 +4759,7 @@ end
4834 % to re-insert the same penalty (values >10000 are used for various 4759 % to re-insert the same penalty (values >10000 are used for various
4835 % signals); since we just inserted a non-discardable item, any 4760 % signals); since we just inserted a non-discardable item, any
4836 % following glue (such as a \parskip) would be a breakpoint. For example: 4761 % following glue (such as a \parskip) would be a breakpoint. For example:
4762 %
4837 % @deffn deffn-whatever 4763 % @deffn deffn-whatever
4838 % @vindex index-whatever 4764 % @vindex index-whatever
4839 % Description. 4765 % Description.
@@ -4846,7 +4772,8 @@ end
4846 % (the whatsit from the \write), so we must insert a \nobreak. 4772 % (the whatsit from the \write), so we must insert a \nobreak.
4847 \nobreak\vskip\whatsitskip 4773 \nobreak\vskip\whatsitskip
4848 \fi 4774 \fi
4849\fi} 4775\fi
4776}
4850 4777
4851% The index entry written in the file actually looks like 4778% The index entry written in the file actually looks like
4852% \entry {sortstring}{page}{topic} 4779% \entry {sortstring}{page}{topic}
@@ -5593,6 +5520,14 @@ end
5593 5520
5594% Define @majorheading, @heading and @subheading 5521% Define @majorheading, @heading and @subheading
5595 5522
5523% NOTE on use of \vbox for chapter headings, section headings, and such:
5524% 1) We use \vbox rather than the earlier \line to permit
5525% overlong headings to fold.
5526% 2) \hyphenpenalty is set to 10000 because hyphenation in a
5527% heading is obnoxious; this forbids it.
5528% 3) Likewise, headings look best if no \parindent is used, and
5529% if justification is not attempted. Hence \raggedright.
5530
5596\def\majorheading{% 5531\def\majorheading{%
5597 {\advance\chapheadingskip by 10pt \chapbreak }% 5532 {\advance\chapheadingskip by 10pt \chapbreak }%
5598 \parsearg\chapheadingzzz 5533 \parsearg\chapheadingzzz
@@ -5600,8 +5535,10 @@ end
5600 5535
5601\def\chapheading{\chapbreak \parsearg\chapheadingzzz} 5536\def\chapheading{\chapbreak \parsearg\chapheadingzzz}
5602\def\chapheadingzzz#1{% 5537\def\chapheadingzzz#1{%
5603 \vbox{\chapfonts \raggedtitlesettings #1\par}% 5538 {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
5604 \nobreak\bigskip \nobreak 5539 \parindent=0pt\ptexraggedright
5540 \rmisbold #1\hfill}}%
5541 \bigskip \par\penalty 200\relax
5605 \suppressfirstparagraphindent 5542 \suppressfirstparagraphindent
5606} 5543}
5607 5544
@@ -5760,7 +5697,8 @@ end
5760 % 5697 %
5761 % Typeset the actual heading. 5698 % Typeset the actual heading.
5762 \nobreak % Avoid page breaks at the interline glue. 5699 \nobreak % Avoid page breaks at the interline glue.
5763 \vbox{\raggedtitlesettings \hangindent=\wd0 \centerparametersmaybe 5700 \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright
5701 \hangindent=\wd0 \centerparametersmaybe
5764 \unhbox0 #1\par}% 5702 \unhbox0 #1\par}%
5765 }% 5703 }%
5766 \nobreak\bigskip % no page break after a chapter title 5704 \nobreak\bigskip % no page break after a chapter title
@@ -5782,18 +5720,18 @@ end
5782\def\setchapterstyle #1 {\csname CHAPF#1\endcsname} 5720\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
5783% 5721%
5784\def\unnchfopen #1{% 5722\def\unnchfopen #1{%
5785 \chapoddpage 5723\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
5786 \vbox{\chapfonts \raggedtitlesettings #1\par}% 5724 \parindent=0pt\ptexraggedright
5787 \nobreak\bigskip\nobreak 5725 \rmisbold #1\hfill}}\bigskip \par\nobreak
5788} 5726}
5789\def\chfopen #1#2{\chapoddpage {\chapfonts 5727\def\chfopen #1#2{\chapoddpage {\chapfonts
5790\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% 5728\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
5791\par\penalty 5000 % 5729\par\penalty 5000 %
5792} 5730}
5793\def\centerchfopen #1{% 5731\def\centerchfopen #1{%
5794 \chapoddpage 5732\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
5795 \vbox{\chapfonts \raggedtitlesettings \hfill #1\hfill}% 5733 \parindent=0pt
5796 \nobreak\bigskip \nobreak 5734 \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak
5797} 5735}
5798\def\CHAPFopen{% 5736\def\CHAPFopen{%
5799 \global\let\chapmacro=\chfopen 5737 \global\let\chapmacro=\chfopen
@@ -5938,15 +5876,14 @@ end
5938 % 5876 %
5939 % We'll almost certainly start a paragraph next, so don't let that 5877 % We'll almost certainly start a paragraph next, so don't let that
5940 % glue accumulate. (Not a breakpoint because it's preceded by a 5878 % glue accumulate. (Not a breakpoint because it's preceded by a
5941 % discardable item.) However, when a paragraph is not started next 5879 % discardable item.)
5942 % (\startdefun, \cartouche, \center, etc.), this needs to be wiped out
5943 % or the negative glue will cause weirdly wrong output, typically
5944 % obscuring the section heading with something else.
5945 \vskip-\parskip 5880 \vskip-\parskip
5946 % 5881 %
5947 % This is so the last item on the main vertical list is a known 5882 % This is purely so the last item on the list is a known \penalty >
5948 % \penalty > 10000, so \startdefun, etc., can recognize the situation 5883 % 10000. This is so \startdefun can avoid allowing breakpoints after
5949 % and do the needful. 5884 % section headings. Otherwise, it would insert a valid breakpoint between:
5885 % @section sec-whatever
5886 % @deffn def-whatever
5950 \penalty 10001 5887 \penalty 10001
5951} 5888}
5952 5889
@@ -6366,7 +6303,7 @@ end
6366 % If this cartouche directly follows a sectioning command, we need the 6303 % If this cartouche directly follows a sectioning command, we need the
6367 % \parskip glue (backspaced over by default) or the cartouche can 6304 % \parskip glue (backspaced over by default) or the cartouche can
6368 % collide with the section heading. 6305 % collide with the section heading.
6369 \ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi 6306 \ifnum\lastpenalty>10000 \vskip\parskip \fi
6370 % 6307 %
6371 \vbox\bgroup 6308 \vbox\bgroup
6372 \baselineskip=0pt\parskip=0pt\lineskip=0pt 6309 \baselineskip=0pt\parskip=0pt\lineskip=0pt
@@ -7856,7 +7793,7 @@ end
7856 \fi\fi 7793 \fi\fi
7857} 7794}
7858 7795
7859% 7796
7860% @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is 7797% @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is
7861% the node name, #2 the name of the Info cross-reference, #3 the printed 7798% the node name, #2 the name of the Info cross-reference, #3 the printed
7862% node name, #4 the name of the Info file, #5 the name of the printed 7799% node name, #4 the name of the Info file, #5 the name of the printed
@@ -7865,41 +7802,26 @@ end
7865\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]} 7802\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
7866\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} 7803\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
7867\def\ref#1{\xrefX[#1,,,,,,,]} 7804\def\ref#1{\xrefX[#1,,,,,,,]}
7868%
7869\newbox\toprefbox
7870\newbox\printedrefnamebox
7871\newbox\infofilenamebox
7872\newbox\printedmanualbox
7873%
7874\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup 7805\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
7875 \unsepspaces 7806 \unsepspaces
7876 %
7877 % Get args without leading/trailing spaces.
7878 \def\printedrefname{\ignorespaces #3}%
7879 \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}%
7880 %
7881 \def\infofilename{\ignorespaces #4}%
7882 \setbox\infofilenamebox = \hbox{\infofilename\unskip}%
7883 %
7884 \def\printedmanual{\ignorespaces #5}% 7807 \def\printedmanual{\ignorespaces #5}%
7885 \setbox\printedmanualbox = \hbox{\printedmanual\unskip}% 7808 \def\printedrefname{\ignorespaces #3}%
7886 % 7809 \setbox1=\hbox{\printedmanual\unskip}%
7887 % If the printed reference name (arg #3) was not explicitly given in 7810 \setbox0=\hbox{\printedrefname\unskip}%
7888 % the @xref, figure out what we want to use. 7811 \ifdim \wd0 = 0pt
7889 \ifdim \wd\printedrefnamebox = 0pt
7890 % No printed node name was explicitly given. 7812 % No printed node name was explicitly given.
7891 \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax 7813 \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax
7892 % Not auto section-title: use node name inside the square brackets. 7814 % Use the node name inside the square brackets.
7893 \def\printedrefname{\ignorespaces #1}% 7815 \def\printedrefname{\ignorespaces #1}%
7894 \else 7816 \else
7895 % Auto section-title: use chapter/section title inside 7817 % Use the actual chapter/section title appear inside
7896 % the square brackets if we have it. 7818 % the square brackets. Use the real section title if we have it.
7897 \ifdim \wd\printedmanualbox > 0pt 7819 \ifdim \wd1 > 0pt
7898 % It is in another manual, so we don't have it; use node name. 7820 % It is in another manual, so we don't have it.
7899 \def\printedrefname{\ignorespaces #1}% 7821 \def\printedrefname{\ignorespaces #1}%
7900 \else 7822 \else
7901 \ifhavexrefs 7823 \ifhavexrefs
7902 % We (should) know the real title if we have the xref values. 7824 % We know the real title if we have the xref values.
7903 \def\printedrefname{\refx{#1-title}{}}% 7825 \def\printedrefname{\refx{#1-title}{}}%
7904 \else 7826 \else
7905 % Otherwise just copy the Info node name. 7827 % Otherwise just copy the Info node name.
@@ -7913,20 +7835,12 @@ end
7913 \ifpdf 7835 \ifpdf
7914 {\indexnofonts 7836 {\indexnofonts
7915 \turnoffactive 7837 \turnoffactive
7916 \makevalueexpandable
7917 % This expands tokens, so do it after making catcode changes, so _ 7838 % This expands tokens, so do it after making catcode changes, so _
7918 % etc. don't get their TeX definitions. This ignores all spaces in 7839 % etc. don't get their TeX definitions.
7919 % #4, including (wrongly) those in the middle of the filename.
7920 \getfilename{#4}% 7840 \getfilename{#4}%
7921 % 7841 %
7922 % This (wrongly) does not take account of leading or trailing
7923 % spaces in #1, which should be ignored.
7924 \edef\pdfxrefdest{#1}% 7842 \edef\pdfxrefdest{#1}%
7925 \ifx\pdfxrefdest\empty 7843 \txiescapepdf\pdfxrefdest
7926 \def\pdfxrefdest{Top}% no empty targets
7927 \else
7928 \txiescapepdf\pdfxrefdest % escape PDF special chars
7929 \fi
7930 % 7844 %
7931 \leavevmode 7845 \leavevmode
7932 \startlink attr{/Border [0 0 0]}% 7846 \startlink attr{/Border [0 0 0]}%
@@ -7953,42 +7867,29 @@ end
7953 \iffloat\Xthisreftitle 7867 \iffloat\Xthisreftitle
7954 % If the user specified the print name (third arg) to the ref, 7868 % If the user specified the print name (third arg) to the ref,
7955 % print it instead of our usual "Figure 1.2". 7869 % print it instead of our usual "Figure 1.2".
7956 \ifdim\wd\printedrefnamebox = 0pt 7870 \ifdim\wd0 = 0pt
7957 \refx{#1-snt}{}% 7871 \refx{#1-snt}{}%
7958 \else 7872 \else
7959 \printedrefname 7873 \printedrefname
7960 \fi 7874 \fi
7961 % 7875 %
7962 % If the user also gave the printed manual name (fifth arg), append 7876 % if the user also gave the printed manual name (fifth arg), append
7963 % "in MANUALNAME". 7877 % "in MANUALNAME".
7964 \ifdim \wd\printedmanualbox > 0pt 7878 \ifdim \wd1 > 0pt
7965 \space \putwordin{} \cite{\printedmanual}% 7879 \space \putwordin{} \cite{\printedmanual}%
7966 \fi 7880 \fi
7967 \else 7881 \else
7968 % node/anchor (non-float) references. 7882 % node/anchor (non-float) references.
7969 %
7970 % If we use \unhbox to print the node names, TeX does not insert
7971 % empty discretionaries after hyphens, which means that it will not
7972 % find a line break at a hyphen in a node names. Since some manuals
7973 % are best written with fairly long node names, containing hyphens,
7974 % this is a loss. Therefore, we give the text of the node name
7975 % again, so it is as if TeX is seeing it for the first time.
7976 %
7977 \ifdim \wd\printedmanualbox > 0pt
7978 % Cross-manual reference with a printed manual name.
7979 %
7980 \crossmanualxref{\cite{\printedmanual\unskip}}%
7981 %
7982 \else\ifdim \wd\infofilenamebox > 0pt
7983 % Cross-manual reference with only an info filename (arg 4), no
7984 % printed manual name (arg 5). This is essentially the same as
7985 % the case above; we output the filename, since we have nothing else.
7986 %
7987 \crossmanualxref{\code{\infofilename\unskip}}%
7988 % 7883 %
7884 % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
7885 % insert empty discretionaries after hyphens, which means that it will
7886 % not find a line break at a hyphen in a node names. Since some manuals
7887 % are best written with fairly long node names, containing hyphens, this
7888 % is a loss. Therefore, we give the text of the node name again, so it
7889 % is as if TeX is seeing it for the first time.
7890 \ifdim \wd1 > 0pt
7891 \putwordSection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
7989 \else 7892 \else
7990 % Reference within this manual.
7991 %
7992 % _ (for example) has to be the character _ for the purposes of the 7893 % _ (for example) has to be the character _ for the purposes of the
7993 % control sequence corresponding to the node, but it has to expand 7894 % control sequence corresponding to the node, but it has to expand
7994 % into the usual \leavevmode...\vrule stuff for purposes of 7895 % into the usual \leavevmode...\vrule stuff for purposes of
@@ -8000,7 +7901,7 @@ end
8000 \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% 7901 \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
8001 \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi 7902 \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
8002 }% 7903 }%
8003 % output the `[mynode]' via the macro below so it can be overridden. 7904 % output the `[mynode]' via a macro so it can be overridden.
8004 \xrefprintnodename\printedrefname 7905 \xrefprintnodename\printedrefname
8005 % 7906 %
8006 % But we always want a comma and a space: 7907 % But we always want a comma and a space:
@@ -8008,37 +7909,11 @@ end
8008 % 7909 %
8009 % output the `page 3'. 7910 % output the `page 3'.
8010 \turnoffactive \putwordpage\tie\refx{#1-pg}{}% 7911 \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
8011 \fi\fi 7912 \fi
8012 \fi 7913 \fi
8013 \endlink 7914 \endlink
8014\endgroup} 7915\endgroup}
8015 7916
8016% Output a cross-manual xref to #1. Used just above (twice).
8017%
8018% Only include the text "Section ``foo'' in" if the foo is neither
8019% missing or Top. Thus, @xref{,,,foo,The Foo Manual} outputs simply
8020% "see The Foo Manual", the idea being to refer to the whole manual.
8021%
8022% But, this being TeX, we can't easily compare our node name against the
8023% string "Top" while ignoring the possible spaces before and after in
8024% the input. By adding the arbitrary 7sp below, we make it much less
8025% likely that a real node name would have the same width as "Top" (e.g.,
8026% in a monospaced font). Hopefully it will never happen in practice.
8027%
8028% For the same basic reason, we retypeset the "Top" at every
8029% reference, since the current font is indeterminate.
8030%
8031\def\crossmanualxref#1{%
8032 \setbox\toprefbox = \hbox{Top\kern7sp}%
8033 \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}%
8034 \ifdim \wd2 > 7sp % nonempty?
8035 \ifdim \wd2 = \wd\toprefbox \else % same as Top?
8036 \putwordSection{} ``\printedrefname'' \putwordin{}\space
8037 \fi
8038 \fi
8039 #1%
8040}
8041
8042% This macro is called from \xrefX for the `[nodename]' part of xref 7917% This macro is called from \xrefX for the `[nodename]' part of xref
8043% output. It's a separate macro only so it can be changed more easily, 7918% output. It's a separate macro only so it can be changed more easily,
8044% since square brackets don't work well in some documents. Particularly 7919% since square brackets don't work well in some documents. Particularly
@@ -8406,7 +8281,7 @@ end
8406 it from ftp://tug.org/tex/epsf.tex.} 8281 it from ftp://tug.org/tex/epsf.tex.}
8407% 8282%
8408\def\image#1{% 8283\def\image#1{%
8409 \ifx\epsfbox\thisisundefined 8284 \ifx\epsfbox\thisiundefined
8410 \ifwarnednoepsf \else 8285 \ifwarnednoepsf \else
8411 \errhelp = \noepsfhelp 8286 \errhelp = \noepsfhelp
8412 \errmessage{epsf.tex not found, images will be ignored}% 8287 \errmessage{epsf.tex not found, images will be ignored}%
@@ -8430,13 +8305,6 @@ end
8430 % If the image is by itself, center it. 8305 % If the image is by itself, center it.
8431 \ifvmode 8306 \ifvmode
8432 \imagevmodetrue 8307 \imagevmodetrue
8433 \else \ifx\centersub\centerV
8434 % for @center @image, we need a vbox so we can have our vertical space
8435 \imagevmodetrue
8436 \vbox\bgroup % vbox has better behavior than vtop herev
8437 \fi\fi
8438 %
8439 \ifimagevmode
8440 \nobreak\medskip 8308 \nobreak\medskip
8441 % Usually we'll have text after the image which will insert 8309 % Usually we'll have text after the image which will insert
8442 % \parskip glue, so insert it here too to equalize the space 8310 % \parskip glue, so insert it here too to equalize the space
@@ -8446,13 +8314,9 @@ end
8446 \fi 8314 \fi
8447 % 8315 %
8448 % Leave vertical mode so that indentation from an enclosing 8316 % Leave vertical mode so that indentation from an enclosing
8449 % environment such as @quotation is respected. 8317 % environment such as @quotation is respected. On the other hand, if
8450 % However, if we're at the top level, we don't want the 8318 % it's at the top level, we don't want the normal paragraph indentation.
8451 % normal paragraph indentation. 8319 \noindent
8452 % On the other hand, if we are in the case of @center @image, we don't
8453 % want to start a paragraph, which will create a hsize-width box and
8454 % eradicate the centering.
8455 \ifx\centersub\centerV\else \noindent \fi
8456 % 8320 %
8457 % Output the image. 8321 % Output the image.
8458 \ifpdf 8322 \ifpdf
@@ -8464,10 +8328,7 @@ end
8464 \epsfbox{#1.eps}% 8328 \epsfbox{#1.eps}%
8465 \fi 8329 \fi
8466 % 8330 %
8467 \ifimagevmode 8331 \ifimagevmode \medskip \fi % space after the standalone image
8468 \medskip % space after a standalone image
8469 \fi
8470 \ifx\centersub\centerV \egroup \fi
8471\endgroup} 8332\endgroup}
8472 8333
8473 8334