diff options
author | Christian Grothoff <christian@grothoff.org> | 2012-09-08 19:18:42 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2012-09-08 19:18:42 +0000 |
commit | c0a35aad4ccde1f8b940204c07e65507511ce656 (patch) | |
tree | 40a7e78b185149c6c26564abda0a8a57b5587c96 /doc | |
parent | b59348b94e8397d74efacbd3b1d681e8af130db9 (diff) | |
download | libmicrohttpd-c0a35aad4ccde1f8b940204c07e65507511ce656.tar.gz libmicrohttpd-c0a35aad4ccde1f8b940204c07e65507511ce656.zip |
update distfiles
Diffstat (limited to 'doc')
-rw-r--r-- | doc/texinfo.tex | 293 |
1 files changed, 184 insertions, 109 deletions
diff --git a/doc/texinfo.tex b/doc/texinfo.tex index 85b68e79..9a2439c8 100644 --- a/doc/texinfo.tex +++ b/doc/texinfo.tex | |||
@@ -3,7 +3,7 @@ | |||
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-03-11.15} | 6 | \def\texinfoversion{2012-09-05.06} |
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, |
@@ -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://www.gnu.org/software/texinfo/ (the Texinfo home page), or | 31 | % http://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or |
32 | % ftp://tug.org/tex/texinfo.tex | 32 | % http://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or |
33 | % (and all CTAN mirrors, see http://www.ctan.org). | 33 | % http://www.gnu.org/software/texinfo/ (the Texinfo home page) |
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\*{\hfil\break\hbox{}\ignorespaces} | 597 | \def\*{\unskip\hfil\break\hbox{}\ignorespaces} |
598 | 598 | ||
599 | % @/ allows a line break. | 599 | % @/ allows a line break. |
600 | \let\/=\allowbreak | 600 | \let\/=\allowbreak |
@@ -1117,7 +1117,7 @@ where each line of input produces a line of output.} | |||
1117 | % #1 is a control sequence in which to do the replacements, | 1117 | % #1 is a control sequence in which to do the replacements, |
1118 | % which we \xdef. | 1118 | % which we \xdef. |
1119 | \def\txiescapepdf#1{% | 1119 | \def\txiescapepdf#1{% |
1120 | \ifx\pdfescapestring\relax | 1120 | \ifx\pdfescapestring\thisisundefined |
1121 | % No primitive available; should we give a warning or log? | 1121 | % No primitive available; should we give a warning or log? |
1122 | % Many times it won't matter. | 1122 | % Many times it won't matter. |
1123 | \else | 1123 | \else |
@@ -1367,9 +1367,8 @@ output) for that.)} | |||
1367 | \def\skipspaces#1{\def\PP{#1}\def\D{|}% | 1367 | \def\skipspaces#1{\def\PP{#1}\def\D{|}% |
1368 | \ifx\PP\D\let\nextsp\relax | 1368 | \ifx\PP\D\let\nextsp\relax |
1369 | \else\let\nextsp\skipspaces | 1369 | \else\let\nextsp\skipspaces |
1370 | \ifx\p\space\else\addtokens{\filename}{\PP}% | 1370 | \addtokens{\filename}{\PP}% |
1371 | \advance\filenamelength by 1 | 1371 | \advance\filenamelength by 1 |
1372 | \fi | ||
1373 | \fi | 1372 | \fi |
1374 | \nextsp} | 1373 | \nextsp} |
1375 | \def\getfilename#1{% | 1374 | \def\getfilename#1{% |
@@ -1475,9 +1474,6 @@ output) for that.)} | |||
1475 | \def\ttsl{\setfontstyle{ttsl}} | 1474 | \def\ttsl{\setfontstyle{ttsl}} |
1476 | 1475 | ||
1477 | 1476 | ||
1478 | % Default leading. | ||
1479 | \newdimen\textleading \textleading = 13.2pt | ||
1480 | |||
1481 | % Set the baselineskip to #1, and the lineskip and strut size | 1477 | % Set the baselineskip to #1, and the lineskip and strut size |
1482 | % correspondingly. There is no deep meaning behind these magic numbers | 1478 | % correspondingly. There is no deep meaning behind these magic numbers |
1483 | % used as factors; they just match (closely enough) what Knuth defined. | 1479 | % used as factors; they just match (closely enough) what Knuth defined. |
@@ -1489,6 +1485,7 @@ output) for that.)} | |||
1489 | % can get a sort of poor man's double spacing by redefining this. | 1485 | % can get a sort of poor man's double spacing by redefining this. |
1490 | \def\baselinefactor{1} | 1486 | \def\baselinefactor{1} |
1491 | % | 1487 | % |
1488 | \newdimen\textleading | ||
1492 | \def\setleading#1{% | 1489 | \def\setleading#1{% |
1493 | \dimen0 = #1\relax | 1490 | \dimen0 = #1\relax |
1494 | \normalbaselineskip = \baselinefactor\dimen0 | 1491 | \normalbaselineskip = \baselinefactor\dimen0 |
@@ -1761,18 +1758,24 @@ end | |||
1761 | \fi\fi | 1758 | \fi\fi |
1762 | 1759 | ||
1763 | 1760 | ||
1764 | % Set the font macro #1 to the font named #2, adding on the | 1761 | % Set the font macro #1 to the font named \fontprefix#2. |
1765 | % specified font prefix (normally `cm'). | ||
1766 | % #3 is the font's design size, #4 is a scale factor, #5 is the CMap | 1762 | % #3 is the font's design size, #4 is a scale factor, #5 is the CMap |
1767 | % encoding (currently only OT1, OT1IT and OT1TT are allowed, pass | 1763 | % encoding (only OT1, OT1IT and OT1TT are allowed, or empty to omit). |
1768 | % empty to omit). | 1764 | % Example: |
1765 | % #1 = \textrm | ||
1766 | % #2 = \rmshape | ||
1767 | % #3 = 10 | ||
1768 | % #4 = \mainmagstep | ||
1769 | % #5 = OT1 | ||
1770 | % | ||
1769 | \def\setfont#1#2#3#4#5{% | 1771 | \def\setfont#1#2#3#4#5{% |
1770 | \font#1=\fontprefix#2#3 scaled #4 | 1772 | \font#1=\fontprefix#2#3 scaled #4 |
1771 | \csname cmap#5\endcsname#1% | 1773 | \csname cmap#5\endcsname#1% |
1772 | } | 1774 | } |
1773 | % This is what gets called when #5 of \setfont is empty. | 1775 | % This is what gets called when #5 of \setfont is empty. |
1774 | \let\cmap\gobble | 1776 | \let\cmap\gobble |
1775 | % emacs-page end of cmaps | 1777 | % |
1778 | % (end of cmaps) | ||
1776 | 1779 | ||
1777 | % Use cm as the default font prefix. | 1780 | % Use cm as the default font prefix. |
1778 | % To specify the font prefix, you must define \fontprefix | 1781 | % To specify the font prefix, you must define \fontprefix |
@@ -1782,7 +1785,7 @@ end | |||
1782 | \fi | 1785 | \fi |
1783 | % Support font families that don't use the same naming scheme as CM. | 1786 | % Support font families that don't use the same naming scheme as CM. |
1784 | \def\rmshape{r} | 1787 | \def\rmshape{r} |
1785 | \def\rmbshape{bx} %where the normal face is bold | 1788 | \def\rmbshape{bx} % where the normal face is bold |
1786 | \def\bfshape{b} | 1789 | \def\bfshape{b} |
1787 | \def\bxshape{bx} | 1790 | \def\bxshape{bx} |
1788 | \def\ttshape{tt} | 1791 | \def\ttshape{tt} |
@@ -1797,8 +1800,7 @@ end | |||
1797 | \def\scshape{csc} | 1800 | \def\scshape{csc} |
1798 | \def\scbshape{csc} | 1801 | \def\scbshape{csc} |
1799 | 1802 | ||
1800 | % Definitions for a main text size of 11pt. This is the default in | 1803 | % Definitions for a main text size of 11pt. (The default in Texinfo.) |
1801 | % Texinfo. | ||
1802 | % | 1804 | % |
1803 | \def\definetextfontsizexi{% | 1805 | \def\definetextfontsizexi{% |
1804 | % Text fonts (11.2pt, magstep1). | 1806 | % Text fonts (11.2pt, magstep1). |
@@ -1923,7 +1925,7 @@ end | |||
1923 | \textleading = 13.2pt % line spacing for 11pt CM | 1925 | \textleading = 13.2pt % line spacing for 11pt CM |
1924 | \textfonts % reset the current fonts | 1926 | \textfonts % reset the current fonts |
1925 | \rm | 1927 | \rm |
1926 | } % end of 11pt text font size definitions | 1928 | } % end of 11pt text font size definitions, \definetextfontsizexi |
1927 | 1929 | ||
1928 | 1930 | ||
1929 | % Definitions to make the main text be 10pt Computer Modern, with | 1931 | % Definitions to make the main text be 10pt Computer Modern, with |
@@ -2055,7 +2057,7 @@ end | |||
2055 | \textleading = 12pt % line spacing for 10pt CM | 2057 | \textleading = 12pt % line spacing for 10pt CM |
2056 | \textfonts % reset the current fonts | 2058 | \textfonts % reset the current fonts |
2057 | \rm | 2059 | \rm |
2058 | } % end of 10pt text font size definitions | 2060 | } % end of 10pt text font size definitions, \definetextfontsizex |
2059 | 2061 | ||
2060 | 2062 | ||
2061 | % We provide the user-level command | 2063 | % We provide the user-level command |
@@ -2446,34 +2448,12 @@ end | |||
2446 | % @samp. | 2448 | % @samp. |
2447 | \def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}} | 2449 | \def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}} |
2448 | 2450 | ||
2449 | % definition of @key that produces a lozenge. Doesn't adjust to text size. | 2451 | % @indicateurl is \samp, that is, with quotes. |
2450 | %\setfont\keyrm\rmshape{8}{1000}{OT1} | 2452 | \let\indicateurl=\samp |
2451 | %\font\keysy=cmsy9 | ||
2452 | %\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% | ||
2453 | % \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% | ||
2454 | % \vbox{\hrule\kern-0.4pt | ||
2455 | % \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% | ||
2456 | % \kern-0.4pt\hrule}% | ||
2457 | % \kern-.06em\raise0.4pt\hbox{\angleright}}}} | ||
2458 | |||
2459 | % definition of @key with no lozenge. If the current font is already | ||
2460 | % monospace, don't change it; that way, we respect @kbdinputstyle. But | ||
2461 | % if it isn't monospace, then use \tt. | ||
2462 | % | ||
2463 | \def\key#1{{\setupmarkupstyle{key}% | ||
2464 | \nohyphenation | ||
2465 | \ifmonospace\else\tt\fi | ||
2466 | #1}\null} | ||
2467 | |||
2468 | % ctrl is no longer a Texinfo command. | ||
2469 | \def\ctrl #1{{\tt \rawbackslash \hat}#1} | ||
2470 | |||
2471 | % @file, @option are the same as @samp. | ||
2472 | \let\file=\samp | ||
2473 | \let\option=\samp | ||
2474 | 2453 | ||
2475 | % @code is a modification of @t, | 2454 | % @code (and similar) prints in typewriter, but with spaces the same |
2476 | % which makes spaces the same size as normal in the surrounding text. | 2455 | % size as normal in the surrounding text, without hyphenation, etc. |
2456 | % This is a subroutine for that. | ||
2477 | \def\tclose#1{% | 2457 | \def\tclose#1{% |
2478 | {% | 2458 | {% |
2479 | % Change normal interword space to be same as for the current font. | 2459 | % Change normal interword space to be same as for the current font. |
@@ -2498,7 +2478,7 @@ end | |||
2498 | % We *must* turn on hyphenation at `-' and `_' in @code. | 2478 | % We *must* turn on hyphenation at `-' and `_' in @code. |
2499 | % Otherwise, it is too hard to avoid overfull hboxes | 2479 | % Otherwise, it is too hard to avoid overfull hboxes |
2500 | % in the Emacs manual, the Library manual, etc. | 2480 | % in the Emacs manual, the Library manual, etc. |
2501 | 2481 | % | |
2502 | % Unfortunately, TeX uses one parameter (\hyphenchar) to control | 2482 | % Unfortunately, TeX uses one parameter (\hyphenchar) to control |
2503 | % both hyphenation at - and hyphenation within words. | 2483 | % both hyphenation at - and hyphenation within words. |
2504 | % We must therefore turn them both off (\tclose does that) | 2484 | % We must therefore turn them both off (\tclose does that) |
@@ -2562,6 +2542,13 @@ end | |||
2562 | \fi\fi | 2542 | \fi\fi |
2563 | } | 2543 | } |
2564 | 2544 | ||
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 | |||
2565 | % @uref (abbreviation for `urlref') takes an optional (comma-separated) | 2552 | % @uref (abbreviation for `urlref') takes an optional (comma-separated) |
2566 | % second argument specifying the text to display and an optional third | 2553 | % second argument specifying the text to display and an optional third |
2567 | % arg as text to display instead of (rather than in addition to) the url | 2554 | % arg as text to display instead of (rather than in addition to) the url |
@@ -2741,10 +2728,24 @@ end | |||
2741 | \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi | 2728 | \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi |
2742 | \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi} | 2729 | \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi} |
2743 | 2730 | ||
2744 | % For @indicateurl, @env, @command quotes seem unnecessary, so use \code. | 2731 | % definition of @key that produces a lozenge. Doesn't adjust to text size. |
2745 | \let\indicateurl=\code | 2732 | %\setfont\keyrm\rmshape{8}{1000}{OT1} |
2746 | \let\env=\code | 2733 | %\font\keysy=cmsy9 |
2747 | \let\command=\code | 2734 | %\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% |
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} | ||
2748 | 2749 | ||
2749 | % @clicksequence{File @click{} Open ...} | 2750 | % @clicksequence{File @click{} Open ...} |
2750 | \def\clicksequence#1{\begingroup #1\endgroup} | 2751 | \def\clicksequence#1{\begingroup #1\endgroup} |
@@ -2852,6 +2853,9 @@ end | |||
2852 | } | 2853 | } |
2853 | } | 2854 | } |
2854 | 2855 | ||
2856 | % ctrl is no longer a Texinfo command, but leave this definition for fun. | ||
2857 | \def\ctrl #1{{\tt \rawbackslash \hat}#1} | ||
2858 | |||
2855 | % @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. | 2859 | % @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. |
2856 | % Ignore unless FMTNAME == tex; then it is like @iftex and @tex, | 2860 | % Ignore unless FMTNAME == tex; then it is like @iftex and @tex, |
2857 | % except specified as a normal braced arg, so no newlines to worry about. | 2861 | % except specified as a normal braced arg, so no newlines to worry about. |
@@ -3142,12 +3146,17 @@ end | |||
3142 | % hopefully nobody will notice/care. | 3146 | % hopefully nobody will notice/care. |
3143 | \edef\ecsize{\csname\curfontsize ecsize\endcsname}% | 3147 | \edef\ecsize{\csname\curfontsize ecsize\endcsname}% |
3144 | \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}% | 3148 | \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}% |
3145 | \ifx\curfontstyle\bfstylename | 3149 | \ifmonospace |
3146 | % bold: | 3150 | % typewriter: |
3147 | \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize | 3151 | \font\thisecfont = ectt\ecsize \space at \nominalsize |
3148 | \else | 3152 | \else |
3149 | % regular: | 3153 | \ifx\curfontstyle\bfstylename |
3150 | \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize | 3154 | % bold: |
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 | ||
3151 | \fi | 3160 | \fi |
3152 | \thisecfont | 3161 | \thisecfont |
3153 | } | 3162 | } |
@@ -3260,6 +3269,20 @@ end | |||
3260 | \finishedtitlepagetrue | 3269 | \finishedtitlepagetrue |
3261 | } | 3270 | } |
3262 | 3271 | ||
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 | |||
3263 | % Macros to be used within @titlepage: | 3286 | % Macros to be used within @titlepage: |
3264 | 3287 | ||
3265 | \let\subtitlerm=\tenrm | 3288 | \let\subtitlerm=\tenrm |
@@ -3267,7 +3290,7 @@ end | |||
3267 | 3290 | ||
3268 | \parseargdef\title{% | 3291 | \parseargdef\title{% |
3269 | \checkenv\titlepage | 3292 | \checkenv\titlepage |
3270 | \leftline{\titlefonts\rmisbold #1} | 3293 | \vbox{\titlefonts \raggedtitlesettings #1\par}% |
3271 | % print a rule at the page bottom also. | 3294 | % print a rule at the page bottom also. |
3272 | \finishedtitlepagefalse | 3295 | \finishedtitlepagefalse |
3273 | \vskip4pt \hrule height 4pt width \hsize \vskip4pt | 3296 | \vskip4pt \hrule height 4pt width \hsize \vskip4pt |
@@ -4204,7 +4227,7 @@ end | |||
4204 | } | 4227 | } |
4205 | \def\ifsetfail{\doignore{ifset}} | 4228 | \def\ifsetfail{\doignore{ifset}} |
4206 | 4229 | ||
4207 | % @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been | 4230 | % @ifclear VAR ... @end executes the `...' iff VAR has never been |
4208 | % defined with @set, or has been undefined with @clear. | 4231 | % defined with @set, or has been undefined with @clear. |
4209 | % | 4232 | % |
4210 | % The `\else' inside the `\doifset' parameter is a trick to reuse the | 4233 | % The `\else' inside the `\doifset' parameter is a trick to reuse the |
@@ -4215,6 +4238,35 @@ end | |||
4215 | \def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}} | 4238 | \def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}} |
4216 | \def\ifclearfail{\doignore{ifclear}} | 4239 | \def\ifclearfail{\doignore{ifclear}} |
4217 | 4240 | ||
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 | |||
4218 | % @dircategory CATEGORY -- specify a category of the dir file | 4270 | % @dircategory CATEGORY -- specify a category of the dir file |
4219 | % which this file should belong to. Ignore this in TeX. | 4271 | % which this file should belong to. Ignore this in TeX. |
4220 | \let\dircategory=\comment | 4272 | \let\dircategory=\comment |
@@ -4451,6 +4503,7 @@ end | |||
4451 | \definedummyword\guillemetright | 4503 | \definedummyword\guillemetright |
4452 | \definedummyword\guilsinglleft | 4504 | \definedummyword\guilsinglleft |
4453 | \definedummyword\guilsinglright | 4505 | \definedummyword\guilsinglright |
4506 | \definedummyword\lbracechar | ||
4454 | \definedummyword\leq | 4507 | \definedummyword\leq |
4455 | \definedummyword\minus | 4508 | \definedummyword\minus |
4456 | \definedummyword\ogonek | 4509 | \definedummyword\ogonek |
@@ -4463,6 +4516,7 @@ end | |||
4463 | \definedummyword\quoteleft | 4516 | \definedummyword\quoteleft |
4464 | \definedummyword\quoteright | 4517 | \definedummyword\quoteright |
4465 | \definedummyword\quotesinglbase | 4518 | \definedummyword\quotesinglbase |
4519 | \definedummyword\rbracechar | ||
4466 | \definedummyword\result | 4520 | \definedummyword\result |
4467 | \definedummyword\textdegree | 4521 | \definedummyword\textdegree |
4468 | % | 4522 | % |
@@ -4514,6 +4568,7 @@ end | |||
4514 | \definedummyword\t | 4568 | \definedummyword\t |
4515 | % | 4569 | % |
4516 | % Commands that take arguments. | 4570 | % Commands that take arguments. |
4571 | \definedummyword\abbr | ||
4517 | \definedummyword\acronym | 4572 | \definedummyword\acronym |
4518 | \definedummyword\anchor | 4573 | \definedummyword\anchor |
4519 | \definedummyword\cite | 4574 | \definedummyword\cite |
@@ -4525,7 +4580,9 @@ end | |||
4525 | \definedummyword\emph | 4580 | \definedummyword\emph |
4526 | \definedummyword\env | 4581 | \definedummyword\env |
4527 | \definedummyword\file | 4582 | \definedummyword\file |
4583 | \definedummyword\image | ||
4528 | \definedummyword\indicateurl | 4584 | \definedummyword\indicateurl |
4585 | \definedummyword\inforef | ||
4529 | \definedummyword\kbd | 4586 | \definedummyword\kbd |
4530 | \definedummyword\key | 4587 | \definedummyword\key |
4531 | \definedummyword\math | 4588 | \definedummyword\math |
@@ -4572,7 +4629,10 @@ end | |||
4572 | % content at all. So for index sorting, we map @{ and @} to strings | 4629 | % content at all. So for index sorting, we map @{ and @} to strings |
4573 | % starting with |, since that ASCII character is between ASCII { and }. | 4630 | % starting with |, since that ASCII character is between ASCII { and }. |
4574 | \def\{{|a}% | 4631 | \def\{{|a}% |
4632 | \def\lbracechar{|a}% | ||
4633 | % | ||
4575 | \def\}{|b}% | 4634 | \def\}{|b}% |
4635 | \def\rbracechar{|b}% | ||
4576 | % | 4636 | % |
4577 | % Non-English letters. | 4637 | % Non-English letters. |
4578 | \def\AA{AA}% | 4638 | \def\AA{AA}% |
@@ -5533,14 +5593,6 @@ end | |||
5533 | 5593 | ||
5534 | % Define @majorheading, @heading and @subheading | 5594 | % Define @majorheading, @heading and @subheading |
5535 | 5595 | ||
5536 | % NOTE on use of \vbox for chapter headings, section headings, and such: | ||
5537 | % 1) We use \vbox rather than the earlier \line to permit | ||
5538 | % overlong headings to fold. | ||
5539 | % 2) \hyphenpenalty is set to 10000 because hyphenation in a | ||
5540 | % heading is obnoxious; this forbids it. | ||
5541 | % 3) Likewise, headings look best if no \parindent is used, and | ||
5542 | % if justification is not attempted. Hence \raggedright. | ||
5543 | |||
5544 | \def\majorheading{% | 5596 | \def\majorheading{% |
5545 | {\advance\chapheadingskip by 10pt \chapbreak }% | 5597 | {\advance\chapheadingskip by 10pt \chapbreak }% |
5546 | \parsearg\chapheadingzzz | 5598 | \parsearg\chapheadingzzz |
@@ -5548,10 +5600,8 @@ end | |||
5548 | 5600 | ||
5549 | \def\chapheading{\chapbreak \parsearg\chapheadingzzz} | 5601 | \def\chapheading{\chapbreak \parsearg\chapheadingzzz} |
5550 | \def\chapheadingzzz#1{% | 5602 | \def\chapheadingzzz#1{% |
5551 | {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 | 5603 | \vbox{\chapfonts \raggedtitlesettings #1\par}% |
5552 | \parindent=0pt\ptexraggedright | 5604 | \nobreak\bigskip \nobreak |
5553 | \rmisbold #1\hfill}}% | ||
5554 | \bigskip \par\penalty 200\relax | ||
5555 | \suppressfirstparagraphindent | 5605 | \suppressfirstparagraphindent |
5556 | } | 5606 | } |
5557 | 5607 | ||
@@ -5710,8 +5760,7 @@ end | |||
5710 | % | 5760 | % |
5711 | % Typeset the actual heading. | 5761 | % Typeset the actual heading. |
5712 | \nobreak % Avoid page breaks at the interline glue. | 5762 | \nobreak % Avoid page breaks at the interline glue. |
5713 | \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright | 5763 | \vbox{\raggedtitlesettings \hangindent=\wd0 \centerparametersmaybe |
5714 | \hangindent=\wd0 \centerparametersmaybe | ||
5715 | \unhbox0 #1\par}% | 5764 | \unhbox0 #1\par}% |
5716 | }% | 5765 | }% |
5717 | \nobreak\bigskip % no page break after a chapter title | 5766 | \nobreak\bigskip % no page break after a chapter title |
@@ -5733,18 +5782,18 @@ end | |||
5733 | \def\setchapterstyle #1 {\csname CHAPF#1\endcsname} | 5782 | \def\setchapterstyle #1 {\csname CHAPF#1\endcsname} |
5734 | % | 5783 | % |
5735 | \def\unnchfopen #1{% | 5784 | \def\unnchfopen #1{% |
5736 | \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 | 5785 | \chapoddpage |
5737 | \parindent=0pt\ptexraggedright | 5786 | \vbox{\chapfonts \raggedtitlesettings #1\par}% |
5738 | \rmisbold #1\hfill}}\bigskip \par\nobreak | 5787 | \nobreak\bigskip\nobreak |
5739 | } | 5788 | } |
5740 | \def\chfopen #1#2{\chapoddpage {\chapfonts | 5789 | \def\chfopen #1#2{\chapoddpage {\chapfonts |
5741 | \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% | 5790 | \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% |
5742 | \par\penalty 5000 % | 5791 | \par\penalty 5000 % |
5743 | } | 5792 | } |
5744 | \def\centerchfopen #1{% | 5793 | \def\centerchfopen #1{% |
5745 | \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 | 5794 | \chapoddpage |
5746 | \parindent=0pt | 5795 | \vbox{\chapfonts \raggedtitlesettings \hfill #1\hfill}% |
5747 | \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak | 5796 | \nobreak\bigskip \nobreak |
5748 | } | 5797 | } |
5749 | \def\CHAPFopen{% | 5798 | \def\CHAPFopen{% |
5750 | \global\let\chapmacro=\chfopen | 5799 | \global\let\chapmacro=\chfopen |
@@ -7807,7 +7856,7 @@ end | |||
7807 | \fi\fi | 7856 | \fi\fi |
7808 | } | 7857 | } |
7809 | 7858 | ||
7810 | 7859 | % | |
7811 | % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is | 7860 | % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is |
7812 | % the node name, #2 the name of the Info cross-reference, #3 the printed | 7861 | % the node name, #2 the name of the Info cross-reference, #3 the printed |
7813 | % node name, #4 the name of the Info file, #5 the name of the printed | 7862 | % node name, #4 the name of the Info file, #5 the name of the printed |
@@ -7817,16 +7866,21 @@ end | |||
7817 | \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} | 7866 | \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} |
7818 | \def\ref#1{\xrefX[#1,,,,,,,]} | 7867 | \def\ref#1{\xrefX[#1,,,,,,,]} |
7819 | % | 7868 | % |
7820 | \newbox\topbox | 7869 | \newbox\toprefbox |
7821 | \newbox\printedrefnamebox | 7870 | \newbox\printedrefnamebox |
7871 | \newbox\infofilenamebox | ||
7822 | \newbox\printedmanualbox | 7872 | \newbox\printedmanualbox |
7823 | % | 7873 | % |
7824 | \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup | 7874 | \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup |
7825 | \unsepspaces | 7875 | \unsepspaces |
7826 | % | 7876 | % |
7877 | % Get args without leading/trailing spaces. | ||
7827 | \def\printedrefname{\ignorespaces #3}% | 7878 | \def\printedrefname{\ignorespaces #3}% |
7828 | \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}% | 7879 | \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}% |
7829 | % | 7880 | % |
7881 | \def\infofilename{\ignorespaces #4}% | ||
7882 | \setbox\infofilenamebox = \hbox{\infofilename\unskip}% | ||
7883 | % | ||
7830 | \def\printedmanual{\ignorespaces #5}% | 7884 | \def\printedmanual{\ignorespaces #5}% |
7831 | \setbox\printedmanualbox = \hbox{\printedmanual\unskip}% | 7885 | \setbox\printedmanualbox = \hbox{\printedmanual\unskip}% |
7832 | % | 7886 | % |
@@ -7861,11 +7915,18 @@ end | |||
7861 | \turnoffactive | 7915 | \turnoffactive |
7862 | \makevalueexpandable | 7916 | \makevalueexpandable |
7863 | % This expands tokens, so do it after making catcode changes, so _ | 7917 | % This expands tokens, so do it after making catcode changes, so _ |
7864 | % etc. don't get their TeX definitions. | 7918 | % etc. don't get their TeX definitions. This ignores all spaces in |
7919 | % #4, including (wrongly) those in the middle of the filename. | ||
7865 | \getfilename{#4}% | 7920 | \getfilename{#4}% |
7866 | % | 7921 | % |
7922 | % This (wrongly) does not take account of leading or trailing | ||
7923 | % spaces in #1, which should be ignored. | ||
7867 | \edef\pdfxrefdest{#1}% | 7924 | \edef\pdfxrefdest{#1}% |
7868 | \txiescapepdf\pdfxrefdest | 7925 | \ifx\pdfxrefdest\empty |
7926 | \def\pdfxrefdest{Top}% no empty targets | ||
7927 | \else | ||
7928 | \txiescapepdf\pdfxrefdest % escape PDF special chars | ||
7929 | \fi | ||
7869 | % | 7930 | % |
7870 | \leavevmode | 7931 | \leavevmode |
7871 | \startlink attr{/Border [0 0 0]}% | 7932 | \startlink attr{/Border [0 0 0]}% |
@@ -7898,7 +7959,7 @@ end | |||
7898 | \printedrefname | 7959 | \printedrefname |
7899 | \fi | 7960 | \fi |
7900 | % | 7961 | % |
7901 | % if the user also gave the printed manual name (fifth arg), append | 7962 | % If the user also gave the printed manual name (fifth arg), append |
7902 | % "in MANUALNAME". | 7963 | % "in MANUALNAME". |
7903 | \ifdim \wd\printedmanualbox > 0pt | 7964 | \ifdim \wd\printedmanualbox > 0pt |
7904 | \space \putwordin{} \cite{\printedmanual}% | 7965 | \space \putwordin{} \cite{\printedmanual}% |
@@ -7913,32 +7974,20 @@ end | |||
7913 | % this is a loss. Therefore, we give the text of the node name | 7974 | % this is a loss. Therefore, we give the text of the node name |
7914 | % again, so it is as if TeX is seeing it for the first time. | 7975 | % again, so it is as if TeX is seeing it for the first time. |
7915 | % | 7976 | % |
7916 | % Cross-manual reference. Only include the "Section ``foo'' in" if | ||
7917 | % the foo is neither missing or Top. Thus, @xref{,,,foo,The Foo Manual} | ||
7918 | % outputs simply "see The Foo Manual". | ||
7919 | \ifdim \wd\printedmanualbox > 0pt | 7977 | \ifdim \wd\printedmanualbox > 0pt |
7920 | % What is the 7sp about? The idea is that we also want to omit | 7978 | % Cross-manual reference with a printed manual name. |
7921 | % the Section part if we would be printing "Top", since they are | ||
7922 | % clearly trying to refer to the whole manual. But, this being | ||
7923 | % TeX, we can't easily compare strings while ignoring the possible | ||
7924 | % spaces before and after in the input. By adding the arbitrary | ||
7925 | % 7sp, we make it much less likely that a real node name would | ||
7926 | % happen to have the same width as "Top" (e.g., in a monospaced font). | ||
7927 | % I hope it will never happen in practice. | ||
7928 | % | 7979 | % |
7929 | % For the same basic reason, we retypeset the "Top" at every | 7980 | \crossmanualxref{\cite{\printedmanual\unskip}}% |
7930 | % reference, since the current font is indeterminate. | 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. | ||
7931 | % | 7986 | % |
7932 | \setbox\topbox = \hbox{Top\kern7sp}% | 7987 | \crossmanualxref{\code{\infofilename\unskip}}% |
7933 | \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}% | 7988 | % |
7934 | \ifdim \wd2 > 7sp | ||
7935 | \ifdim \wd2 = \wd\topbox \else | ||
7936 | \putwordSection{} ``\printedrefname'' \putwordin{}\space | ||
7937 | \fi | ||
7938 | \fi | ||
7939 | \cite{\printedmanual}% | ||
7940 | \else | 7989 | \else |
7941 | % Reference in this manual. | 7990 | % Reference within this manual. |
7942 | % | 7991 | % |
7943 | % _ (for example) has to be the character _ for the purposes of the | 7992 | % _ (for example) has to be the character _ for the purposes of the |
7944 | % control sequence corresponding to the node, but it has to expand | 7993 | % control sequence corresponding to the node, but it has to expand |
@@ -7959,11 +8008,37 @@ end | |||
7959 | % | 8008 | % |
7960 | % output the `page 3'. | 8009 | % output the `page 3'. |
7961 | \turnoffactive \putwordpage\tie\refx{#1-pg}{}% | 8010 | \turnoffactive \putwordpage\tie\refx{#1-pg}{}% |
7962 | \fi | 8011 | \fi\fi |
7963 | \fi | 8012 | \fi |
7964 | \endlink | 8013 | \endlink |
7965 | \endgroup} | 8014 | \endgroup} |
7966 | 8015 | ||
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 | |||
7967 | % This macro is called from \xrefX for the `[nodename]' part of xref | 8042 | % This macro is called from \xrefX for the `[nodename]' part of xref |
7968 | % output. It's a separate macro only so it can be changed more easily, | 8043 | % output. It's a separate macro only so it can be changed more easily, |
7969 | % since square brackets don't work well in some documents. Particularly | 8044 | % since square brackets don't work well in some documents. Particularly |