Diff for /embedaddon/quagga/doc/texinfo.tex between versions 1.1.1.3 and 1.1.1.4

version 1.1.1.3, 2012/10/09 09:22:28 version 1.1.1.4, 2013/07/21 23:54:38
Line 3 Line 3
 % Load plain if necessary, i.e., if running under initex.  % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi  \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %  %
\def\texinfoversion{2012-03-11.15}\def\texinfoversion{2012-11-08.11}
 %  %
 % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,  % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,  % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
Line 28 Line 28
 %  %
 % Please try the latest version of texinfo.tex before submitting bug  % Please try the latest version of texinfo.tex before submitting bug
 % reports; you can get the latest version from:  % reports; you can get the latest version from:
%   http://www.gnu.org/software/texinfo/ (the Texinfo home page), or%   http://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or
%   ftp://tug.org/tex/texinfo.tex%   http://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or
%     (and all CTAN mirrors, see http://www.ctan.org).%   http://www.gnu.org/software/texinfo/ (the Texinfo home page)
 % The texinfo.tex in any given distribution could well be out  % The texinfo.tex in any given distribution could well be out
 % of date, so if that's what you're using, please check.  % of date, so if that's what you're using, please check.
 %  %
Line 594 Line 594
 \def\:{\spacefactor=1000 }  \def\:{\spacefactor=1000 }
   
 % @* forces a line break.  % @* forces a line break.
\def\*{\hfil\break\hbox{}\ignorespaces}\def\*{\unskip\hfil\break\hbox{}\ignorespaces}
   
 % @/ allows a line break.  % @/ allows a line break.
 \let\/=\allowbreak  \let\/=\allowbreak
Line 1117  where each line of input produces a line of output.} Line 1117  where each line of input produces a line of output.}
 % #1 is a control sequence in which to do the replacements,  % #1 is a control sequence in which to do the replacements,
 % which we \xdef.  % which we \xdef.
 \def\txiescapepdf#1{%  \def\txiescapepdf#1{%
  \ifx\pdfescapestring\relax  \ifx\pdfescapestring\thisisundefined
     % No primitive available; should we give a warning or log?      % No primitive available; should we give a warning or log?
     % Many times it won't matter.      % Many times it won't matter.
   \else    \else
Line 1367  output) for that.)} Line 1367  output) for that.)}
   \def\skipspaces#1{\def\PP{#1}\def\D{|}%    \def\skipspaces#1{\def\PP{#1}\def\D{|}%
     \ifx\PP\D\let\nextsp\relax      \ifx\PP\D\let\nextsp\relax
     \else\let\nextsp\skipspaces      \else\let\nextsp\skipspaces
      \ifx\p\space\else\addtokens{\filename}{\PP}%      \addtokens{\filename}{\PP}%
        \advance\filenamelength by 1      \advance\filenamelength by 1
      \fi 
     \fi      \fi
     \nextsp}      \nextsp}
   \def\getfilename#1{%    \def\getfilename#1{%
Line 1475  output) for that.)} Line 1474  output) for that.)}
 \def\ttsl{\setfontstyle{ttsl}}  \def\ttsl{\setfontstyle{ttsl}}
   
   
 % Default leading.  
 \newdimen\textleading  \textleading = 13.2pt  
   
 % Set the baselineskip to #1, and the lineskip and strut size  % Set the baselineskip to #1, and the lineskip and strut size
 % correspondingly.  There is no deep meaning behind these magic numbers  % correspondingly.  There is no deep meaning behind these magic numbers
 % used as factors; they just match (closely enough) what Knuth defined.  % used as factors; they just match (closely enough) what Knuth defined.
Line 1489  output) for that.)} Line 1485  output) for that.)}
 % can get a sort of poor man's double spacing by redefining this.  % can get a sort of poor man's double spacing by redefining this.
 \def\baselinefactor{1}  \def\baselinefactor{1}
 %  %
   \newdimen\textleading
 \def\setleading#1{%  \def\setleading#1{%
   \dimen0 = #1\relax    \dimen0 = #1\relax
   \normalbaselineskip = \baselinefactor\dimen0    \normalbaselineskip = \baselinefactor\dimen0
Line 1761  end Line 1758  end
 \fi\fi  \fi\fi
   
   
% Set the font macro #1 to the font named #2, adding on the% Set the font macro #1 to the font named \fontprefix#2.
% specified font prefix (normally `cm'). 
 % #3 is the font's design size, #4 is a scale factor, #5 is the CMap  % #3 is the font's design size, #4 is a scale factor, #5 is the CMap
% encoding (currently only OT1, OT1IT and OT1TT are allowed, pass% encoding (only OT1, OT1IT and OT1TT are allowed, or empty to omit).
% empty to omit).% Example:
 % #1 = \textrm
 % #2 = \rmshape
 % #3 = 10
 % #4 = \mainmagstep
 % #5 = OT1
 %
 \def\setfont#1#2#3#4#5{%  \def\setfont#1#2#3#4#5{%
   \font#1=\fontprefix#2#3 scaled #4    \font#1=\fontprefix#2#3 scaled #4
   \csname cmap#5\endcsname#1%    \csname cmap#5\endcsname#1%
 }  }
 % This is what gets called when #5 of \setfont is empty.  % This is what gets called when #5 of \setfont is empty.
 \let\cmap\gobble  \let\cmap\gobble
% emacs-page end of cmaps%
 % (end of cmaps)
   
 % Use cm as the default font prefix.  % Use cm as the default font prefix.
 % To specify the font prefix, you must define \fontprefix  % To specify the font prefix, you must define \fontprefix
Line 1782  end Line 1785  end
 \fi  \fi
 % Support font families that don't use the same naming scheme as CM.  % Support font families that don't use the same naming scheme as CM.
 \def\rmshape{r}  \def\rmshape{r}
\def\rmbshape{bx}               %where the normal face is bold\def\rmbshape{bx}               % where the normal face is bold
 \def\bfshape{b}  \def\bfshape{b}
 \def\bxshape{bx}  \def\bxshape{bx}
 \def\ttshape{tt}  \def\ttshape{tt}
Line 1797  end Line 1800  end
 \def\scshape{csc}  \def\scshape{csc}
 \def\scbshape{csc}  \def\scbshape{csc}
   
% Definitions for a main text size of 11pt.  This is the default in% Definitions for a main text size of 11pt.  (The default in Texinfo.)
% Texinfo. 
 %  %
 \def\definetextfontsizexi{%  \def\definetextfontsizexi{%
 % Text fonts (11.2pt, magstep1).  % Text fonts (11.2pt, magstep1).
Line 1923  end Line 1925  end
 \textleading = 13.2pt % line spacing for 11pt CM  \textleading = 13.2pt % line spacing for 11pt CM
 \textfonts            % reset the current fonts  \textfonts            % reset the current fonts
 \rm  \rm
} % end of 11pt text font size definitions} % end of 11pt text font size definitions, \definetextfontsizexi
   
   
 % Definitions to make the main text be 10pt Computer Modern, with  % Definitions to make the main text be 10pt Computer Modern, with
Line 2055  end Line 2057  end
 \textleading = 12pt   % line spacing for 10pt CM  \textleading = 12pt   % line spacing for 10pt CM
 \textfonts            % reset the current fonts  \textfonts            % reset the current fonts
 \rm  \rm
} % end of 10pt text font size definitions} % end of 10pt text font size definitions, \definetextfontsizex
   
   
 % We provide the user-level command  % We provide the user-level command
Line 2270  end Line 2272  end
   
 \gdef\markupsetcodequoteleft{\let`\codequoteleft}  \gdef\markupsetcodequoteleft{\let`\codequoteleft}
 \gdef\markupsetcodequoteright{\let'\codequoteright}  \gdef\markupsetcodequoteright{\let'\codequoteright}
   
 \gdef\markupsetnoligaturesquoteleft{\let`\noligaturesquoteleft}  
 }  }
   
 \let\markupsetuplqcode \markupsetcodequoteleft  \let\markupsetuplqcode \markupsetcodequoteleft
Line 2280  end Line 2280  end
 \let\markupsetuplqexample \markupsetcodequoteleft  \let\markupsetuplqexample \markupsetcodequoteleft
 \let\markupsetuprqexample \markupsetcodequoteright  \let\markupsetuprqexample \markupsetcodequoteright
 %  %
   \let\markupsetuplqkbd     \markupsetcodequoteleft
   \let\markupsetuprqkbd     \markupsetcodequoteright
   %
 \let\markupsetuplqsamp \markupsetcodequoteleft  \let\markupsetuplqsamp \markupsetcodequoteleft
 \let\markupsetuprqsamp \markupsetcodequoteright  \let\markupsetuprqsamp \markupsetcodequoteright
 %  %
Line 2289  end Line 2292  end
 \let\markupsetuplqverbatim \markupsetcodequoteleft  \let\markupsetuplqverbatim \markupsetcodequoteleft
 \let\markupsetuprqverbatim \markupsetcodequoteright  \let\markupsetuprqverbatim \markupsetcodequoteright
   
 \let\markupsetuplqkbd \markupsetnoligaturesquoteleft  
   
 % Allow an option to not use regular directed right quote/apostrophe  % Allow an option to not use regular directed right quote/apostrophe
 % (char 0x27), but instead the undirected quote from cmtt (char 0x0d).  % (char 0x27), but instead the undirected quote from cmtt (char 0x0d).
 % The undirected quote is ugly, so don't make it the default, but it  % The undirected quote is ugly, so don't make it the default, but it
Line 2380  end Line 2381  end
   \aftersmartic    \aftersmartic
 }  }
   
% like \smartslanted except unconditionally uses \ttsl, and no ic.% Unconditional use \ttsl, and no ic.  @var is set to this for defuns.
% @var is set to this for defun arguments. 
 \def\ttslanted#1{{\ttsl #1}}  \def\ttslanted#1{{\ttsl #1}}
   
 % @cite is like \smartslanted except unconditionally use \sl.  We never want  % @cite is like \smartslanted except unconditionally use \sl.  We never want
Line 2446  end Line 2446  end
 % @samp.  % @samp.
 \def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}}  \def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}}
   
% definition of @key that produces a lozenge.  Doesn't adjust to text size.% @indicateurl is \samp, that is, with quotes.
%\setfont\keyrm\rmshape{8}{1000}{OT1}\let\indicateurl=\samp
%\font\keysy=cmsy9 
%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% 
%  \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% 
%    \vbox{\hrule\kern-0.4pt 
%     \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% 
%    \kern-0.4pt\hrule}% 
%  \kern-.06em\raise0.4pt\hbox{\angleright}}}} 
   
% definition of @key with no lozenge.  If the current font is already% @code (and similar) prints in typewriter, but with spaces the same
% monospace, don't change it; that way, we respect @kbdinputstyle.  But% size as normal in the surrounding text, without hyphenation, etc.
% if it isn't monospace, then use \tt.% This is a subroutine for that.
% 
\def\key#1{{\setupmarkupstyle{key}% 
  \nohyphenation 
  \ifmonospace\else\tt\fi 
  #1}\null} 
 
% ctrl is no longer a Texinfo command. 
\def\ctrl #1{{\tt \rawbackslash \hat}#1} 
 
% @file, @option are the same as @samp. 
\let\file=\samp 
\let\option=\samp 
 
% @code is a modification of @t, 
% which makes spaces the same size as normal in the surrounding text. 
 \def\tclose#1{%  \def\tclose#1{%
   {%    {%
     % Change normal interword space to be same as for the current font.      % Change normal interword space to be same as for the current font.
Line 2498  end Line 2476  end
 % We *must* turn on hyphenation at `-' and `_' in @code.  % We *must* turn on hyphenation at `-' and `_' in @code.
 % Otherwise, it is too hard to avoid overfull hboxes  % Otherwise, it is too hard to avoid overfull hboxes
 % in the Emacs manual, the Library manual, etc.  % in the Emacs manual, the Library manual, etc.
%
 % Unfortunately, TeX uses one parameter (\hyphenchar) to control  % Unfortunately, TeX uses one parameter (\hyphenchar) to control
 % both hyphenation at - and hyphenation within words.  % both hyphenation at - and hyphenation within words.
 % We must therefore turn them both off (\tclose does that)  % We must therefore turn them both off (\tclose does that)
Line 2562  end Line 2540  end
   \fi\fi    \fi\fi
 }  }
   
   % For @command, @env, @file, @option quotes seem unnecessary,
   % so use \code rather than \samp.
   \let\command=\code
   \let\env=\code
   \let\file=\code
   \let\option=\code
   
 % @uref (abbreviation for `urlref') takes an optional (comma-separated)  % @uref (abbreviation for `urlref') takes an optional (comma-separated)
 % second argument specifying the text to display and an optional third  % second argument specifying the text to display and an optional third
 % arg as text to display instead of (rather than in addition to) the url  % arg as text to display instead of (rather than in addition to) the url
Line 2708  end Line 2693  end
   \let\email=\uref    \let\email=\uref
 \fi  \fi
   
 % @kbd is like @code, except that if the argument is just one @key command,  
 % then @kbd has no effect.  
 \def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}}  
   
 % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),  % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
 %   `example' (@kbd uses ttsl only inside of @example and friends),  %   `example' (@kbd uses ttsl only inside of @example and friends),
 %   or `code' (@kbd uses normal tty font always).  %   or `code' (@kbd uses normal tty font always).
Line 2735  end Line 2716  end
 % Default is `distinct'.  % Default is `distinct'.
 \kbdinputstyle distinct  \kbdinputstyle distinct
   
   % @kbd is like @code, except that if the argument is just one @key command,
   % then @kbd has no effect.
   \def\kbd#1{{\def\look{#1}\expandafter\kbdsub\look??\par}}
   
 \def\xkey{\key}  \def\xkey{\key}
\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%\def\kbdsub#1#2#3\par{%
\ifx\one\xkey\ifx\threex\three \key{#2}%  \def\one{#1}\def\three{#3}\def\threex{??}%
\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi  \ifx\one\xkey\ifx\threex\three \key{#2}%
\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi}  \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
   \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
 }
   
% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.% definition of @key that produces a lozenge.  Doesn't adjust to text size.
\let\indicateurl=\code%\setfont\keyrm\rmshape{8}{1000}{OT1}
\let\env=\code%\font\keysy=cmsy9
\let\command=\code%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
 %  \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
 %    \vbox{\hrule\kern-0.4pt
 %     \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
 %    \kern-0.4pt\hrule}%
 %  \kern-.06em\raise0.4pt\hbox{\angleright}}}}
   
   % definition of @key with no lozenge.  If the current font is already
   % monospace, don't change it; that way, we respect @kbdinputstyle.  But
   % if it isn't monospace, then use \tt.
   %
   \def\key#1{{\setupmarkupstyle{key}%
     \nohyphenation
     \ifmonospace\else\tt\fi
     #1}\null}
   
 % @clicksequence{File @click{} Open ...}  % @clicksequence{File @click{} Open ...}
 \def\clicksequence#1{\begingroup #1\endgroup}  \def\clicksequence#1{\begingroup #1\endgroup}
   
Line 2852  end Line 2853  end
   }    }
 }  }
   
   % ctrl is no longer a Texinfo command, but leave this definition for fun.
   \def\ctrl #1{{\tt \rawbackslash \hat}#1}
   
 % @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.  % @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
 % Ignore unless FMTNAME == tex; then it is like @iftex and @tex,  % Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
 % except specified as a normal braced arg, so no newlines to worry about.  % except specified as a normal braced arg, so no newlines to worry about.
Line 3142  end Line 3146  end
   % hopefully nobody will notice/care.    % hopefully nobody will notice/care.
   \edef\ecsize{\csname\curfontsize ecsize\endcsname}%    \edef\ecsize{\csname\curfontsize ecsize\endcsname}%
   \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}%    \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}%
  \ifx\curfontstyle\bfstylename  \ifmonospace
    % bold:    % typewriter:
    \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize    \font\thisecfont = ectt\ecsize \space at \nominalsize
   \else    \else
    % regular:    \ifx\curfontstyle\bfstylename
    \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize      % bold:
       \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
     \else
       % regular:
       \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
     \fi
   \fi    \fi
   \thisecfont    \thisecfont
 }  }
Line 3260  end Line 3269  end
   \finishedtitlepagetrue    \finishedtitlepagetrue
 }  }
   
   % Settings used for typesetting titles: no hyphenation, no indentation,
   % don't worry much about spacing, ragged right.  This should be used
   % inside a \vbox, and fonts need to be set appropriately first.  Because
   % it is always used for titles, nothing else, we call \rmisbold.  \par
   % should be specified before the end of the \vbox, since a vbox is a group.
   % 
   \def\raggedtitlesettings{%
     \rmisbold
     \hyphenpenalty=10000
     \parindent=0pt
     \tolerance=5000
     \ptexraggedright
   }
   
 % Macros to be used within @titlepage:  % Macros to be used within @titlepage:
   
 \let\subtitlerm=\tenrm  \let\subtitlerm=\tenrm
Line 3267  end Line 3290  end
   
 \parseargdef\title{%  \parseargdef\title{%
   \checkenv\titlepage    \checkenv\titlepage
  \leftline{\titlefonts\rmisbold #1}  \vbox{\titlefonts \raggedtitlesettings #1\par}%
   % print a rule at the page bottom also.    % print a rule at the page bottom also.
   \finishedtitlepagefalse    \finishedtitlepagefalse
   \vskip4pt \hrule height 4pt width \hsize \vskip4pt    \vskip4pt \hrule height 4pt width \hsize \vskip4pt
Line 4204  end Line 4227  end
 }  }
 \def\ifsetfail{\doignore{ifset}}  \def\ifsetfail{\doignore{ifset}}
   
% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been% @ifclear VAR ... @end executes the `...' iff VAR has never been
 % defined with @set, or has been undefined with @clear.  % defined with @set, or has been undefined with @clear.
 %  %
 % The `\else' inside the `\doifset' parameter is a trick to reuse the  % The `\else' inside the `\doifset' parameter is a trick to reuse the
Line 4215  end Line 4238  end
 \def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}}  \def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}}
 \def\ifclearfail{\doignore{ifclear}}  \def\ifclearfail{\doignore{ifclear}}
   
   % @ifcommandisdefined CMD ... @end executes the `...' if CMD (written
   % without the @) is in fact defined.  We can only feasibly check at the
   % TeX level, so something like `mathcode' is going to considered
   % defined even though it is not a Texinfo command.
   % 
   \makecond{ifcommanddefined}
   \def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}}
   %
   \def\doifcmddefined#1#2{{%
       \makevalueexpandable
       \let\next=\empty
       \expandafter\ifx\csname #2\endcsname\relax
         #1% If not defined, \let\next as above.
       \fi
       \expandafter
     }\next
   }
   \def\ifcmddefinedfail{\doignore{ifcommanddefined}}
   
   % @ifcommandnotdefined CMD ... handled similar to @ifclear above.
   \makecond{ifcommandnotdefined}
   \def\ifcommandnotdefined{%
     \parsearg{\doifcmddefined{\else \let\next=\ifcmdnotdefinedfail}}}
   \def\ifcmdnotdefinedfail{\doignore{ifcommandnotdefined}}
   
   % Set the `txicommandconditionals' variable, so documents have a way to
   % test if the @ifcommand...defined conditionals are available.
   \set txicommandconditionals
   
 % @dircategory CATEGORY  -- specify a category of the dir file  % @dircategory CATEGORY  -- specify a category of the dir file
 % which this file should belong to.  Ignore this in TeX.  % which this file should belong to.  Ignore this in TeX.
 \let\dircategory=\comment  \let\dircategory=\comment
Line 4451  end Line 4503  end
   \definedummyword\guillemetright    \definedummyword\guillemetright
   \definedummyword\guilsinglleft    \definedummyword\guilsinglleft
   \definedummyword\guilsinglright    \definedummyword\guilsinglright
     \definedummyword\lbracechar
   \definedummyword\leq    \definedummyword\leq
   \definedummyword\minus    \definedummyword\minus
   \definedummyword\ogonek    \definedummyword\ogonek
Line 4463  end Line 4516  end
   \definedummyword\quoteleft    \definedummyword\quoteleft
   \definedummyword\quoteright    \definedummyword\quoteright
   \definedummyword\quotesinglbase    \definedummyword\quotesinglbase
     \definedummyword\rbracechar
   \definedummyword\result    \definedummyword\result
   \definedummyword\textdegree    \definedummyword\textdegree
   %    %
Line 4514  end Line 4568  end
   \definedummyword\t    \definedummyword\t
   %    %
   % Commands that take arguments.    % Commands that take arguments.
     \definedummyword\abbr
   \definedummyword\acronym    \definedummyword\acronym
   \definedummyword\anchor    \definedummyword\anchor
   \definedummyword\cite    \definedummyword\cite
Line 4525  end Line 4580  end
   \definedummyword\emph    \definedummyword\emph
   \definedummyword\env    \definedummyword\env
   \definedummyword\file    \definedummyword\file
     \definedummyword\image
   \definedummyword\indicateurl    \definedummyword\indicateurl
     \definedummyword\inforef
   \definedummyword\kbd    \definedummyword\kbd
   \definedummyword\key    \definedummyword\key
   \definedummyword\math    \definedummyword\math
Line 4572  end Line 4629  end
   % content at all.  So for index sorting, we map @{ and @} to strings    % content at all.  So for index sorting, we map @{ and @} to strings
   % starting with |, since that ASCII character is between ASCII { and }.    % starting with |, since that ASCII character is between ASCII { and }.
   \def\{{|a}%    \def\{{|a}%
     \def\lbracechar{|a}%
     %
   \def\}{|b}%    \def\}{|b}%
     \def\rbracechar{|b}%
   %    %
   % Non-English letters.    % Non-English letters.
   \def\AA{AA}%    \def\AA{AA}%
Line 5533  end Line 5593  end
   
 % Define @majorheading, @heading and @subheading  % Define @majorheading, @heading and @subheading
   
 % NOTE on use of \vbox for chapter headings, section headings, and such:  
 %       1) We use \vbox rather than the earlier \line to permit  
 %          overlong headings to fold.  
 %       2) \hyphenpenalty is set to 10000 because hyphenation in a  
 %          heading is obnoxious; this forbids it.  
 %       3) Likewise, headings look best if no \parindent is used, and  
 %          if justification is not attempted.  Hence \raggedright.  
   
 \def\majorheading{%  \def\majorheading{%
   {\advance\chapheadingskip by 10pt \chapbreak }%    {\advance\chapheadingskip by 10pt \chapbreak }%
   \parsearg\chapheadingzzz    \parsearg\chapheadingzzz
Line 5548  end Line 5600  end
   
 \def\chapheading{\chapbreak \parsearg\chapheadingzzz}  \def\chapheading{\chapbreak \parsearg\chapheadingzzz}
 \def\chapheadingzzz#1{%  \def\chapheadingzzz#1{%
  {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000  \vbox{\chapfonts \raggedtitlesettings #1\par}%
                    \parindent=0pt\ptexraggedright  \nobreak\bigskip \nobreak
                    \rmisbold #1\hfill}}% 
  \bigskip \par\penalty 200\relax 
   \suppressfirstparagraphindent    \suppressfirstparagraphindent
 }  }
   
Line 5710  end Line 5760  end
     %      %
     % Typeset the actual heading.      % Typeset the actual heading.
     \nobreak % Avoid page breaks at the interline glue.      \nobreak % Avoid page breaks at the interline glue.
    \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright    \vbox{\raggedtitlesettings \hangindent=\wd0 \centerparametersmaybe
          \hangindent=\wd0 \centerparametersmaybe 
           \unhbox0 #1\par}%            \unhbox0 #1\par}%
   }%    }%
   \nobreak\bigskip % no page break after a chapter title    \nobreak\bigskip % no page break after a chapter title
Line 5733  end Line 5782  end
 \def\setchapterstyle #1 {\csname CHAPF#1\endcsname}  \def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
 %  %
 \def\unnchfopen #1{%  \def\unnchfopen #1{%
\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000  \chapoddpage
                       \parindent=0pt\ptexraggedright  \vbox{\chapfonts \raggedtitlesettings #1\par}%
                       \rmisbold #1\hfill}}\bigskip \par\nobreak  \nobreak\bigskip\nobreak
 }  }
 \def\chfopen #1#2{\chapoddpage {\chapfonts  \def\chfopen #1#2{\chapoddpage {\chapfonts
 \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%  \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
 \par\penalty 5000 %  \par\penalty 5000 %
 }  }
 \def\centerchfopen #1{%  \def\centerchfopen #1{%
\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000  \chapoddpage
                       \parindent=0pt  \vbox{\chapfonts \raggedtitlesettings \hfill #1\hfill}%
                       \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak  \nobreak\bigskip \nobreak
 }  }
 \def\CHAPFopen{%  \def\CHAPFopen{%
   \global\let\chapmacro=\chfopen    \global\let\chapmacro=\chfopen
Line 6510  end Line 6559  end
 \makedispenvdef{quotation}{\quotationstart}  \makedispenvdef{quotation}{\quotationstart}
 %  %
 \def\quotationstart{%  \def\quotationstart{%
  {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip  \indentedblockstart % same as \indentedblock, but increase right margin too.
  \parindent=0pt 
  % 
  % @cartouche defines \nonarrowing to inhibit narrowing at next level down. 
   \ifx\nonarrowing\relax    \ifx\nonarrowing\relax
     \advance\leftskip by \lispnarrowing  
     \advance\rightskip by \lispnarrowing      \advance\rightskip by \lispnarrowing
     \exdentamount = \lispnarrowing  
   \else  
     \let\nonarrowing = \relax  
   \fi    \fi
   \parsearg\quotationlabel    \parsearg\quotationlabel
 }  }
Line 6545  end Line 6587  end
   \fi    \fi
 }  }
   
   % @indentedblock is like @quotation, but indents only on the left and
   % has no optional argument.
   % 
   \makedispenvdef{indentedblock}{\indentedblockstart}
   %
   \def\indentedblockstart{%
     {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
     \parindent=0pt
     %
     % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
     \ifx\nonarrowing\relax
       \advance\leftskip by \lispnarrowing
       \exdentamount = \lispnarrowing
     \else
       \let\nonarrowing = \relax
     \fi
   }
   
   % Keep a nonzero parskip for the environment, since we're doing normal filling.
   %
   \def\Eindentedblock{%
     \par
     {\parskip=0pt \afterenvbreak}%
   }
   \def\Esmallindentedblock{\Eindentedblock}
   
   
 % LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>}  % LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>}
 % If we want to allow any <char> as delimiter,  % If we want to allow any <char> as delimiter,
 % we need the curly braces so that makeinfo sees the @verb command, eg:  % we need the curly braces so that makeinfo sees the @verb command, eg:
Line 7023  end Line 7091  end
   \df \sl \hyphenchar\font=0    \df \sl \hyphenchar\font=0
   %    %
   % On the other hand, if an argument has two dashes (for instance), we    % On the other hand, if an argument has two dashes (for instance), we
  % want a way to get ttsl.  Let's try @var for that.  % want a way to get ttsl.  We used to recommend @var for that, so
   % leave the code in, but it's strange for @var to lead to typewriter.
   % Nowadays we recommend @code, since the difference between a ttsl hyphen
   % and a tt hyphen is pretty tiny.  @code also disables ?` !`.
   \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}%    \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}%
   #1%    #1%
   \sl\hyphenchar\font=45    \sl\hyphenchar\font=45
Line 7807  end Line 7878  end
   \fi\fi    \fi\fi
 }  }
   
%
 % @xref, @pxref, and @ref generate cross-references.  For \xrefX, #1 is  % @xref, @pxref, and @ref generate cross-references.  For \xrefX, #1 is
 % the node name, #2 the name of the Info cross-reference, #3 the printed  % the node name, #2 the name of the Info cross-reference, #3 the printed
 % node name, #4 the name of the Info file, #5 the name of the printed  % node name, #4 the name of the Info file, #5 the name of the printed
Line 7817  end Line 7888  end
 \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}  \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
 \def\ref#1{\xrefX[#1,,,,,,,]}  \def\ref#1{\xrefX[#1,,,,,,,]}
 %  %
\newbox\topbox\newbox\toprefbox
 \newbox\printedrefnamebox  \newbox\printedrefnamebox
   \newbox\infofilenamebox
 \newbox\printedmanualbox  \newbox\printedmanualbox
 %  %
 \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup  \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
   \unsepspaces    \unsepspaces
   %    %
     % Get args without leading/trailing spaces.
   \def\printedrefname{\ignorespaces #3}%    \def\printedrefname{\ignorespaces #3}%
   \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}%    \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}%
   %    %
     \def\infofilename{\ignorespaces #4}%
     \setbox\infofilenamebox = \hbox{\infofilename\unskip}%
     %
   \def\printedmanual{\ignorespaces #5}%    \def\printedmanual{\ignorespaces #5}%
   \setbox\printedmanualbox  = \hbox{\printedmanual\unskip}%    \setbox\printedmanualbox  = \hbox{\printedmanual\unskip}%
   %    %
Line 7861  end Line 7937  end
      \turnoffactive       \turnoffactive
      \makevalueexpandable       \makevalueexpandable
      % This expands tokens, so do it after making catcode changes, so _       % This expands tokens, so do it after making catcode changes, so _
     % etc. don't get their TeX definitions.     % etc. don't get their TeX definitions.  This ignores all spaces in
      % #4, including (wrongly) those in the middle of the filename.
      \getfilename{#4}%       \getfilename{#4}%
      %       %
        % This (wrongly) does not take account of leading or trailing
        % spaces in #1, which should be ignored.
      \edef\pdfxrefdest{#1}%       \edef\pdfxrefdest{#1}%
     \txiescapepdf\pdfxrefdest     \ifx\pdfxrefdest\empty
        \def\pdfxrefdest{Top}% no empty targets
      \else
        \txiescapepdf\pdfxrefdest  % escape PDF special chars
      \fi
      %       %
      \leavevmode       \leavevmode
      \startlink attr{/Border [0 0 0]}%       \startlink attr{/Border [0 0 0]}%
Line 7898  end Line 7981  end
       \printedrefname        \printedrefname
     \fi      \fi
     %      %
    % if the user also gave the printed manual name (fifth arg), append    % If the user also gave the printed manual name (fifth arg), append
     % "in MANUALNAME".      % "in MANUALNAME".
     \ifdim \wd\printedmanualbox > 0pt      \ifdim \wd\printedmanualbox > 0pt
       \space \putwordin{} \cite{\printedmanual}%        \space \putwordin{} \cite{\printedmanual}%
Line 7913  end Line 7996  end
     % this is a loss.  Therefore, we give the text of the node name      % this is a loss.  Therefore, we give the text of the node name
     % again, so it is as if TeX is seeing it for the first time.      % again, so it is as if TeX is seeing it for the first time.
     %       % 
     % Cross-manual reference.  Only include the "Section ``foo'' in" if  
     % the foo is neither missing or Top.  Thus, @xref{,,,foo,The Foo Manual}  
     % outputs simply "see The Foo Manual".  
     \ifdim \wd\printedmanualbox > 0pt      \ifdim \wd\printedmanualbox > 0pt
      % What is the 7sp about?  The idea is that we also want to omit      % Cross-manual reference with a printed manual name.
      % the Section part if we would be printing "Top", since they are 
      % clearly trying to refer to the whole manual.  But, this being 
      % TeX, we can't easily compare strings while ignoring the possible 
      % spaces before and after in the input.  By adding the arbitrary 
      % 7sp, we make it much less likely that a real node name would 
      % happen to have the same width as "Top" (e.g., in a monospaced font). 
      % I hope it will never happen in practice. 
       %         % 
      % For the same basic reason, we retypeset the "Top" at every      \crossmanualxref{\cite{\printedmanual\unskip}}%
      % reference, since the current font is indeterminate.    %
     \else\ifdim \wd\infofilenamebox > 0pt
       % Cross-manual reference with only an info filename (arg 4), no
       % printed manual name (arg 5).  This is essentially the same as
       % the case above; we output the filename, since we have nothing else.
       %         % 
      \setbox\topbox = \hbox{Top\kern7sp}%      \crossmanualxref{\code{\infofilename\unskip}}%
      \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}%    %
      \ifdim \wd2 > 7sp 
        \ifdim \wd2 = \wd\topbox \else 
          \putwordSection{} ``\printedrefname'' \putwordin{}\space 
        \fi 
      \fi 
      \cite{\printedmanual}% 
     \else      \else
      % Reference in this manual.      % Reference within this manual.
       %        %
       % _ (for example) has to be the character _ for the purposes of the        % _ (for example) has to be the character _ for the purposes of the
       % control sequence corresponding to the node, but it has to expand        % control sequence corresponding to the node, but it has to expand
Line 7959  end Line 8030  end
       %        %
       % output the `page 3'.        % output the `page 3'.
       \turnoffactive \putwordpage\tie\refx{#1-pg}{}%        \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
    \fi    \fi\fi
   \fi    \fi
   \endlink    \endlink
 \endgroup}  \endgroup}
   
   % Output a cross-manual xref to #1.  Used just above (twice).
   % 
   % Only include the text "Section ``foo'' in" if the foo is neither
   % missing or Top.  Thus, @xref{,,,foo,The Foo Manual} outputs simply
   % "see The Foo Manual", the idea being to refer to the whole manual.
   % 
   % But, this being TeX, we can't easily compare our node name against the
   % string "Top" while ignoring the possible spaces before and after in
   % the input.  By adding the arbitrary 7sp below, we make it much less
   % likely that a real node name would have the same width as "Top" (e.g.,
   % in a monospaced font).  Hopefully it will never happen in practice.
   % 
   % For the same basic reason, we retypeset the "Top" at every
   % reference, since the current font is indeterminate.
   % 
   \def\crossmanualxref#1{%
     \setbox\toprefbox = \hbox{Top\kern7sp}%
     \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}%
     \ifdim \wd2 > 7sp  % nonempty?
       \ifdim \wd2 = \wd\toprefbox \else  % same as Top?
         \putwordSection{} ``\printedrefname'' \putwordin{}\space
       \fi
     \fi
     #1%
   }
   
 % This macro is called from \xrefX for the `[nodename]' part of xref  % This macro is called from \xrefX for the `[nodename]' part of xref
 % output.  It's a separate macro only so it can be changed more easily,  % output.  It's a separate macro only so it can be changed more easily,

Removed from v.1.1.1.3  
changed lines
  Added in v.1.1.1.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>