aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorPaul Eggert2016-08-03 15:10:58 -0700
committerPaul Eggert2016-08-03 15:12:06 -0700
commit7f9721d3990155bae83e4e4840f0ff4913868d50 (patch)
tree6c7283459b89571444694523e3431834b1952f92 /doc
parent967e2ef61dab8d2046f3285eefa71f3dcb9d9b60 (diff)
downloademacs-7f9721d3990155bae83e4e4840f0ff4913868d50.tar.gz
emacs-7f9721d3990155bae83e4e4840f0ff4913868d50.zip
Update from gnulib
This incorporates: 2016-07-03 mktime: call tzset as per POSIX * doc/misc/texinfo.tex, lib/mktime.c, m4/mktime.m4: Copy from gnulib.
Diffstat (limited to 'doc')
-rw-r--r--doc/misc/texinfo.tex424
1 files changed, 213 insertions, 211 deletions
diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex
index daa7055bbbc..5a1f728da48 100644
--- a/doc/misc/texinfo.tex
+++ b/doc/misc/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{2016-06-18.21} 6\def\texinfoversion{2016-08-03.13}
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,
@@ -1541,22 +1541,72 @@ output) for that.)}
1541 % 1541 %
1542 % XeTeX version check 1542 % XeTeX version check
1543 % 1543 %
1544 \ifnum\strcmp{\the\XeTeXversion\XeTeXrevision}{0.99995}>-1 1544 \ifnum\strcmp{\the\XeTeXversion\XeTeXrevision}{0.99996}>-1
1545 % XeTeX 0.99995+ contains xdvipdfmx 20160307+. 1545 % TeX Live 2016 contains XeTeX 0.99996 and xdvipdfmx 20160307.
1546 % It can handle Unicode destination name for PDF. 1546 % It can use the `dvipdfmx:config' special (from TeX Live SVN r40941).
1547 % For avoiding PDF destination name replacement, we use this special
1548 % instead of xdvipdfmx's command line option `-C 0x0010'.
1549 \special{dvipdfmx:config C 0x0010}
1550 % XeTeX 0.99995+ comes with xdvipdfmx 20160307+.
1551 % It can handle Unicode destination names for PDF.
1547 \txiuseunicodedestnametrue 1552 \txiuseunicodedestnametrue
1548 \else 1553 \else
1549 % XeTeX < 0.99995 can not handle Unicode destination name for PDF 1554 % XeTeX < 0.99996 (TeX Live < 2016) cannot use the
1550 % because xdvipdfmx 20150315 has UTF-16 convert issue. 1555 % `dvipdfmx:config' special.
1551 % It fixed by xdvipdfmx 20160106 (TeX Live SVN r39753). 1556 % So for avoiding PDF destination name replacement,
1557 % xdvipdfmx's command line option `-C 0x0010' is necessary.
1558 %
1559 % XeTeX < 0.99995 can not handle Unicode destination names for PDF
1560 % because xdvipdfmx 20150315 has a UTF-16 conversion issue.
1561 % It is fixed by xdvipdfmx 20160106 (TeX Live SVN r39753).
1552 \txiuseunicodedestnamefalse 1562 \txiuseunicodedestnamefalse
1553 \fi 1563 \fi
1554 % 1564 %
1565 % Color support
1566 %
1567 \def\rgbDarkRed{0.50 0.09 0.12}
1568 \def\rgbBlack{0 0 0}
1569 %
1570 \def\pdfsetcolor#1{\special{pdf:scolor [#1]}}
1571 %
1572 % Set color, and create a mark which defines \thiscolor accordingly,
1573 % so that \makeheadline knows which color to restore.
1574 \def\setcolor#1{%
1575 \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}%
1576 \domark
1577 \pdfsetcolor{#1}%
1578 }
1579 %
1580 \def\maincolor{\rgbBlack}
1581 \pdfsetcolor{\maincolor}
1582 \edef\thiscolor{\maincolor}
1583 \def\lastcolordefs{}
1584 %
1585 \def\makefootline{%
1586 \baselineskip24pt
1587 \line{\pdfsetcolor{\maincolor}\the\footline}%
1588 }
1589 %
1590 \def\makeheadline{%
1591 \vbox to 0pt{%
1592 \vskip-22.5pt
1593 \line{%
1594 \vbox to8.5pt{}%
1595 % Extract \thiscolor definition from the marks.
1596 \getcolormarks
1597 % Typeset the headline with \maincolor, then restore the color.
1598 \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}%
1599 }%
1600 \vss
1601 }%
1602 \nointerlineskip
1603 }
1604 %
1555 % PDF outline support 1605 % PDF outline support
1556 % 1606 %
1557 % Emulate the primitive of pdfTeX 1607 % Emulate pdfTeX primitive
1558 \def\pdfdest name#1 xyz{% 1608 \def\pdfdest name#1 xyz{%
1559 \special{pdf:dest (name#1) [@thispage /XYZ @xpos @ypos]}% 1609 \special{pdf:dest (#1) [@thispage /XYZ @xpos @ypos null]}%
1560 } 1610 }
1561 \def\pdfmkdest#1{{% 1611 \def\pdfmkdest#1{{%
1562 % We have to set dummies so commands such as @code, and characters 1612 % We have to set dummies so commands such as @code, and characters
@@ -1565,7 +1615,7 @@ output) for that.)}
1565 \iftxiuseunicodedestname 1615 \iftxiuseunicodedestname
1566 \def\pdfdestname{#1}% Pass through Unicode characters. 1616 \def\pdfdestname{#1}% Pass through Unicode characters.
1567 \else 1617 \else
1568 \edef\pdfdestname{#1}% Replace Unicode characters to ASCII. 1618 \edef\pdfdestname{#1}% Replace Unicode characters with ASCII.
1569 \fi 1619 \fi
1570 \turnoffactive 1620 \turnoffactive
1571 \makevalueexpandable 1621 \makevalueexpandable
@@ -1573,11 +1623,16 @@ output) for that.)}
1573 \safewhatsit{\pdfdest name{\pdfdestname} xyz}% 1623 \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
1574 }} 1624 }}
1575 % 1625 %
1626 % by default, use black for everything.
1627 \def\urlcolor{\rgbBlack}
1628 \def\linkcolor{\rgbBlack}
1629 \def\endlink{\setcolor{\maincolor}\pdfendlink}
1630 %
1576 \def\dopdfoutline#1#2#3#4{% 1631 \def\dopdfoutline#1#2#3#4{%
1577 \iftxiuseunicodedestname 1632 \iftxiuseunicodedestname
1578 \def\pdfoutlinedest{#3}% Pass through Unicode characters. 1633 \def\pdfoutlinedest{#3}% Pass through Unicode characters.
1579 \else 1634 \else
1580 \edef\pdfoutlinedest{#3}% Replace Unicode characters to ASCII. 1635 \edef\pdfoutlinedest{#3}% Replace Unicode characters with ASCII.
1581 \fi 1636 \fi
1582 \ifx\pdfoutlinedest\empty 1637 \ifx\pdfoutlinedest\empty
1583 \def\pdfoutlinedest{#4}% 1638 \def\pdfoutlinedest{#4}%
@@ -1589,17 +1644,17 @@ output) for that.)}
1589 \txiescapepdf\pdfoutlinetext 1644 \txiescapepdf\pdfoutlinetext
1590 % 1645 %
1591 \special{pdf:out [-] #2 << /Title (\pdfoutlinetext) /A 1646 \special{pdf:out [-] #2 << /Title (\pdfoutlinetext) /A
1592 << /S /GoTo /D (name\pdfoutlinedest) >> >> }% 1647 << /S /GoTo /D (\pdfoutlinedest) >> >> }%
1593 } 1648 }
1594 } 1649 }
1595 % 1650 %
1596 \def\pdfmakeoutlines{% 1651 \def\pdfmakeoutlines{%
1597 \begingroup 1652 \begingroup
1598 % 1653 %
1599 % In the case of XeTeX, counts of subentries is not necesary. 1654 % For XeTeX, counts of subentries are not necessary.
1600 % Therefore, read toc only once. 1655 % Therefore, we read toc only once.
1601 % 1656 %
1602 % We use the node names as the destinations. 1657 % We use node names as destinations.
1603 \def\partentry##1##2##3##4{}% ignore parts in the outlines 1658 \def\partentry##1##2##3##4{}% ignore parts in the outlines
1604 \def\numchapentry##1##2##3##4{% 1659 \def\numchapentry##1##2##3##4{%
1605 \dopdfoutline{##1}{1}{##3}{##4}}% 1660 \dopdfoutline{##1}{1}{##3}{##4}}%
@@ -1619,7 +1674,7 @@ output) for that.)}
1619 \let\unnsubsecentry\numsubsecentry% 1674 \let\unnsubsecentry\numsubsecentry%
1620 \let\unnsubsubsecentry\numsubsubsecentry% 1675 \let\unnsubsubsecentry\numsubsubsecentry%
1621 % 1676 %
1622 % In the case of XeTeX, xdvipdfmx converts strings to UTF-16. 1677 % For XeTeX, xdvipdfmx converts strings to UTF-16.
1623 % Therefore, the encoding and the language may not be considered. 1678 % Therefore, the encoding and the language may not be considered.
1624 % 1679 %
1625 \indexnofonts 1680 \indexnofonts
@@ -1641,9 +1696,9 @@ output) for that.)}
1641 \special{pdf:docview << /PageMode /UseOutlines >> } 1696 \special{pdf:docview << /PageMode /UseOutlines >> }
1642 % ``\special{pdf:tounicode ...}'' is not necessary 1697 % ``\special{pdf:tounicode ...}'' is not necessary
1643 % because xdvipdfmx converts strings from UTF-8 to UTF-16 without it. 1698 % because xdvipdfmx converts strings from UTF-8 to UTF-16 without it.
1644 % However, due to UTF-16 convert issue of xdvipdfmx 20150315, 1699 % However, due to a UTF-16 conversion issue of xdvipdfmx 20150315,
1645 % ``\special{pdf:dest ...}'' can not handle non-ASCII strings. 1700 % ``\special{pdf:dest ...}'' cannot handle non-ASCII strings.
1646 % It fixed by xdvipdfmx 20160106 (TeX Live SVN r39753). 1701 % It is fixed by xdvipdfmx 20160106 (TeX Live SVN r39753).
1647% 1702%
1648 \def\skipspaces#1{\def\PP{#1}\def\D{|}% 1703 \def\skipspaces#1{\def\PP{#1}\def\D{|}%
1649 \ifx\PP\D\let\nextsp\relax 1704 \ifx\PP\D\let\nextsp\relax
@@ -1703,7 +1758,7 @@ output) for that.)}
1703 {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} 1758 {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
1704 \def\pdflink#1{% 1759 \def\pdflink#1{%
1705 \special{pdf:bann << /Border [0 0 0] 1760 \special{pdf:bann << /Border [0 0 0]
1706 /Type /Annot /Subtype /Link /A << /S /GoTo /D (name#1) >> >>}% 1761 /Type /Annot /Subtype /Link /A << /S /GoTo /D (#1) >> >>}%
1707 \setcolor{\linkcolor}#1\endlink} 1762 \setcolor{\linkcolor}#1\endlink}
1708 \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} 1763 \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
1709% 1764%
@@ -1715,7 +1770,7 @@ output) for that.)}
1715 \def\xeteximagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% 1770 \def\xeteximagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
1716 \def\xeteximageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% 1771 \def\xeteximageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
1717 % 1772 %
1718 % XeTeX (and the PDF format) support .pdf, .png, .jpg (among 1773 % XeTeX (and the PDF format) supports .pdf, .png, .jpg (among
1719 % others). Let's try in that order, PDF first since if 1774 % others). Let's try in that order, PDF first since if
1720 % someone has a scalable image, presumably better to use that than a 1775 % someone has a scalable image, presumably better to use that than a
1721 % bitmap. 1776 % bitmap.
@@ -3287,23 +3342,10 @@ end
3287\let\atchar=\@ 3342\let\atchar=\@
3288 3343
3289% @{ @} @lbracechar{} @rbracechar{} all generate brace characters. 3344% @{ @} @lbracechar{} @rbracechar{} all generate brace characters.
3290% Unless we're in typewriter, use \ecfont because the CM text fonts do 3345\def\lbracechar{{\ifmonospace\char123\else\ensuremath\lbrace\fi}}
3291% not have braces, and we don't want to switch into math. 3346\def\rbracechar{{\ifmonospace\char125\else\ensuremath\rbrace\fi}}
3292\def\mylbrace{{\ifmonospace\char123\else\ensuremath\lbrace\fi}} 3347\let\{=\lbracechar
3293\def\myrbrace{{\ifmonospace\char125\else\ensuremath\rbrace\fi}} 3348\let\}=\rbracechar
3294\let\{=\mylbrace \let\lbracechar=\{
3295\let\}=\myrbrace \let\rbracechar=\}
3296\begingroup
3297 % Definitions to produce \{ and \} commands for indices,
3298 % and @{ and @} for the aux/toc files.
3299 \catcode`\{ = \other \catcode`\} = \other
3300 \catcode`\[ = 1 \catcode`\] = 2
3301 \catcode`\! = 0 \catcode`\\ = \other
3302 !gdef!lbracecmd[\{]%
3303 !gdef!rbracecmd[\}]%
3304 !gdef!lbraceatcmd[@{]%
3305 !gdef!rbraceatcmd[@}]%
3306!endgroup
3307 3349
3308% @comma{} to avoid , parsing problems. 3350% @comma{} to avoid , parsing problems.
3309\let\comma = , 3351\let\comma = ,
@@ -4771,14 +4813,7 @@ end
4771% #1 is \doindex or \docodeindex, #2 the index getting redefined (foo), 4813% #1 is \doindex or \docodeindex, #2 the index getting redefined (foo),
4772% #3 the target index (bar). 4814% #3 the target index (bar).
4773\def\dosynindex#1#2#3{% 4815\def\dosynindex#1#2#3{%
4774 % Only do \closeout if we haven't already done it, else we'll end up 4816 \requireopenindexfile{#3}%
4775 % closing the target index.
4776 \expandafter \ifx\csname donesynindex#2\endcsname \relax
4777 % The \closeout helps reduce unnecessary open files; the limit on the
4778 % Acorn RISC OS is a mere 16 files.
4779 \expandafter\closeout\csname#2indfile\endcsname
4780 \expandafter\let\csname donesynindex#2\endcsname = 1
4781 \fi
4782 % redefine \fooindfile: 4817 % redefine \fooindfile:
4783 \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname 4818 \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname
4784 \expandafter\let\csname#2indfile\endcsname=\temp 4819 \expandafter\let\csname#2indfile\endcsname=\temp
@@ -4803,17 +4838,12 @@ end
4803% 4838%
4804\def\indexdummies{% 4839\def\indexdummies{%
4805 \escapechar = `\\ % use backslash in output files. 4840 \escapechar = `\\ % use backslash in output files.
4806 \def\@{@}% change to @@ when we switch to @ as escape char in index files. 4841 \definedummyletter\@%
4807 \def\ {\realbackslash\space }% 4842 \definedummyletter\ %
4808 % 4843 %
4809 % Need these unexpandable (because we define \tt as a dummy) 4844 % For texindex which always views { and } as separators.
4810 % definitions when @{ or @} appear in index entry text. Also, more 4845 \def\{{\lbracechar}%
4811 % complicated, when \tex is in effect and \{ is a \delimiter again. 4846 \def\}{\rbracechar}%
4812 % We can't use \lbracecmd and \rbracecmd because texindex assumes
4813 % braces and backslashes are used only as delimiters. Perhaps we
4814 % should use @lbracechar and @rbracechar?
4815 \def\{{{\tt\char123}}%
4816 \def\}{{\tt\char125}}%
4817 % 4847 %
4818 % Do the redefinitions. 4848 % Do the redefinitions.
4819 \definedummies 4849 \definedummies
@@ -4821,16 +4851,11 @@ end
4821 4851
4822% Used for the aux and toc files, where @ is the escape character. 4852% Used for the aux and toc files, where @ is the escape character.
4823% 4853%
4824% For the aux and toc files, @ is the escape character. So we want to
4825% redefine everything using @ as the escape character (instead of
4826% \realbackslash, still used for index files). When everything uses @,
4827% this will be simpler.
4828%
4829\def\atdummies{% 4854\def\atdummies{%
4830 \def\@{@@}% 4855 \definedummyletter\@%
4831 \def\ {@ }% 4856 \definedummyletter\ %
4832 \let\{ = \lbraceatcmd 4857 \definedummyletter\{%
4833 \let\} = \rbraceatcmd 4858 \definedummyletter\}%
4834 % 4859 %
4835 % Do the redefinitions. 4860 % Do the redefinitions.
4836 \definedummies 4861 \definedummies
@@ -5412,7 +5437,7 @@ end
5412 % \initial {@} 5437 % \initial {@}
5413 % as its first line, TeX doesn't complain about mismatched braces 5438 % as its first line, TeX doesn't complain about mismatched braces
5414 % (because it thinks @} is a control sequence). 5439 % (because it thinks @} is a control sequence).
5415 \catcode`\@ = 11 5440 \catcode`\@ = 12
5416 % See comment in \requireopenindexfile. 5441 % See comment in \requireopenindexfile.
5417 \def\indexname{#1}\ifx\indexname\indexisfl\def\indexname{f1}\fi 5442 \def\indexname{#1}\ifx\indexname\indexisfl\def\indexname{f1}\fi
5418 \openin 1 \jobname.\indexname s 5443 \openin 1 \jobname.\indexname s
@@ -5944,49 +5969,46 @@ end
5944 \dimen@ = \ht0 5969 \dimen@ = \ht0
5945 \advance\dimen@ by \topskip 5970 \advance\dimen@ by \topskip
5946 \advance\dimen@ by-\baselineskip 5971 \advance\dimen@ by-\baselineskip
5947 \ifdim\dimen@<14\baselineskip 5972 \ifdim\dimen@<5\baselineskip
5948 % Don't split a short final column in two. 5973 % Don't split a short final column in two.
5949 \setbox2=\vbox{}% 5974 \setbox2=\vbox{}%
5950 \else 5975 \else
5951 \divide\dimen@ by 2 % target to split to 5976 \divide\dimen@ by 2 % target to split to
5952 \dimen@ii = \dimen@ 5977 \dimen@ii = \dimen@
5953 \splittopskip = \topskip 5978 \splittopskip = \topskip
5954 % Loop until the second column is no higher than the first 5979 % Loop until left column is at least as high as the right column.
5955 {% 5980 {%
5956 \vbadness = 10000 5981 \vbadness = 10000
5957 \loop 5982 \loop
5958 \global\setbox3 = \copy0 5983 \global\setbox3 = \copy0
5959 \global\setbox1 = \vsplit3 to \dimen@ 5984 \global\setbox1 = \vsplit3 to \dimen@
5960 % Remove glue from bottom of first column to 5985 % Remove glue from bottom of columns to compare
5961 % make sure it is higher than the second. 5986 % apparent heights.
5962 \global\setbox1 = \vbox{\unvbox1\unpenalty\unskip}% 5987 \global\setbox1 = \vbox{\unvbox1\unpenalty\unskip}%
5963 \ifdim\ht3>\ht1 5988 \global\setbox3 = \vbox{\unvbox3\unpenalty\unskip}%
5989 \ifdim\ht1<\ht3
5964 \global\advance\dimen@ by 1pt 5990 \global\advance\dimen@ by 1pt
5965 \repeat 5991 \repeat
5966 }% 5992 }%
5993 % Now the left column is in box 1, and the right column in box 3.
5994 % Check whether the left column has come out higher than the page itself.
5995 % (Note that we have doubled \vsize for the double columns, so
5996 % the actual height of the page is 0.5\vsize).
5967 \ifdim2\ht1>\vsize 5997 \ifdim2\ht1>\vsize
5968 % The left column has come out longer than the page itself. (Note 5998 % Just split the last of the double column material roughly in half.
5969 % that we have doubled \vsize for the double columns, so
5970 % the actual height of the page is 0.5\vsize). Just split the last
5971 % of the double column material roughly in half.
5972 \setbox2=\box0 5999 \setbox2=\box0
5973 \setbox0 = \vsplit2 to \dimen@ii 6000 \setbox0 = \vsplit2 to \dimen@ii
5974 \setbox0=\vbox to\dimen@ii{\unvbox0}% 6001 \setbox0=\vbox to\dimen@ii{\unvbox0}%
5975 \setbox2=\vbox to\dimen@ii{\unvbox2}% 6002 \setbox2=\vbox to\dimen@ii{\unvbox2}%
5976 \else 6003 \else
5977 \multiply\dimen@ii by 5 6004 % Compare the heights of the two columns.
5978 \divide\dimen@ii by 4 6005 \ifdim4\ht1>5\ht3
5979 \global\setbox3 = \copy0
5980 \global\setbox1 = \vsplit3 to \dimen@ii
5981 \global\setbox\balancedcolumns=\vbox{\pagesofar}%
5982 \ifdim\ht3<\dimen@ii
5983 % Column heights are too different, so don't make their bottoms 6006 % Column heights are too different, so don't make their bottoms
5984 % flush with each other. The glue at the end of the second column 6007 % flush with each other.
5985 % allows a second column to stretch, reducing the difference in 6008 \setbox2=\vbox to \ht1 {\unvbox3\vfill}%
5986 % height between the two. 6009 \setbox0=\vbox to \ht1 {\unvbox1\vfill}%
5987 \setbox0=\vbox to\dimen@{\unvbox1\vfill}%
5988 \setbox2=\vbox to\dimen@{\unvbox3\vskip 0pt plus 0.3\ht0}%
5989 \else 6010 \else
6011 % Make column bottoms flush with each other.
5990 \setbox0=\vbox to\dimen@{\unvbox1}% 6012 \setbox0=\vbox to\dimen@{\unvbox1}%
5991 \setbox2=\vbox to\dimen@{\unvbox3}% 6013 \setbox2=\vbox to\dimen@{\unvbox3}%
5992 \fi 6014 \fi
@@ -8038,7 +8060,7 @@ end
8038\newif\ifrecursive % Is it recursive? 8060\newif\ifrecursive % Is it recursive?
8039 8061
8040% List of all defined macros in the form 8062% List of all defined macros in the form
8041% \definedummyword\macro1\definedummyword\macro2... 8063% \commondummyword\macro1\commondummyword\macro2...
8042% Currently is also contains all @aliases; the list can be split 8064% Currently is also contains all @aliases; the list can be split
8043% if there is a need. 8065% if there is a need.
8044\def\macrolist{} 8066\def\macrolist{}
@@ -8046,7 +8068,7 @@ end
8046% Add the macro to \macrolist 8068% Add the macro to \macrolist
8047\def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname} 8069\def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname}
8048\def\addtomacrolistxxx#1{% 8070\def\addtomacrolistxxx#1{%
8049 \toks0 = \expandafter{\macrolist\definedummyword#1}% 8071 \toks0 = \expandafter{\macrolist\commondummyword#1}%
8050 \xdef\macrolist{\the\toks0}% 8072 \xdef\macrolist{\the\toks0}%
8051} 8073}
8052 8074
@@ -8187,7 +8209,7 @@ end
8187 % Remove the macro name from \macrolist: 8209 % Remove the macro name from \macrolist:
8188 \begingroup 8210 \begingroup
8189 \expandafter\let\csname#1\endcsname \relax 8211 \expandafter\let\csname#1\endcsname \relax
8190 \let\definedummyword\unmacrodo 8212 \let\commondummyword\unmacrodo
8191 \xdef\macrolist{\macrolist}% 8213 \xdef\macrolist{\macrolist}%
8192 \endgroup 8214 \endgroup
8193 \else 8215 \else
@@ -8202,7 +8224,7 @@ end
8202 \ifx #1\relax 8224 \ifx #1\relax
8203 % remove this 8225 % remove this
8204 \else 8226 \else
8205 \noexpand\definedummyword \noexpand#1% 8227 \noexpand\commondummyword \noexpand#1%
8206 \fi 8228 \fi
8207} 8229}
8208 8230
@@ -8477,8 +8499,7 @@ end
8477% its parameters, looking like "\xeatspaces{\hash 1}". 8499% its parameters, looking like "\xeatspaces{\hash 1}".
8478% \paramno is the number of parameters 8500% \paramno is the number of parameters
8479% \paramlist is a TeX parameter text, e.g. "#1,#2,#3," 8501% \paramlist is a TeX parameter text, e.g. "#1,#2,#3,"
8480% There are eight cases: recursive and nonrecursive macros of zero, one, 8502% There are four cases: macros of zero, one, up to nine, and many arguments.
8481% up to nine, and many arguments.
8482% \xdef is used so that macro definitions will survive the file 8503% \xdef is used so that macro definitions will survive the file
8483% they're defined in: @include reads the file inside a group. 8504% they're defined in: @include reads the file inside a group.
8484% 8505%
@@ -8493,91 +8514,48 @@ end
8493 \else 8514 \else
8494 \let\xeatspaces\relax % suppress expansion 8515 \let\xeatspaces\relax % suppress expansion
8495 \fi 8516 \fi
8496 \ifrecursive %%%%%%%%%%%%%% Recursive %%%%%%%%%%%%%%%%%%%%%%%%%%%%% 8517 \ifcase\paramno
8497 \ifcase\paramno 8518 % 0
8498 % 0 8519 \expandafter\xdef\csname\the\macname\endcsname{%
8499 \expandafter\xdef\csname\the\macname\endcsname{% 8520 \noexpand\scanmacro{\macrobody}}%
8500 \noexpand\scanmacro{\macrobody}}% 8521 \or % 1
8501 \or % 1 8522 \expandafter\xdef\csname\the\macname\endcsname{%
8523 \bgroup
8524 \noexpand\braceorline
8525 \expandafter\noexpand\csname\the\macname @@@\endcsname}%
8526 \expandafter\xdef\csname\the\macname @@@\endcsname##1{%
8527 \egroup
8528 \noexpand\scanmacro{\macrobody}%
8529 }%
8530 \else % at most 9
8531 \ifnum\paramno<10\relax
8532 % @MACNAME sets the context for reading the macro argument
8533 % @MACNAME@@ gets the argument, processes backslashes and appends a
8534 % comma.
8535 % @MACNAME@@@ removes braces surrounding the argument list.
8536 % @MACNAME@@@@ scans the macro body with arguments substituted.
8502 \expandafter\xdef\csname\the\macname\endcsname{% 8537 \expandafter\xdef\csname\the\macname\endcsname{%
8503 \bgroup 8538 \bgroup
8504 \noexpand\braceorline 8539 \noexpand\expandafter % This \expandafter skip any spaces after the
8505 \expandafter\noexpand\csname\the\macname @@@\endcsname}% 8540 \noexpand\macroargctxt % macro before we change the catcode of space.
8541 \noexpand\expandafter
8542 \expandafter\noexpand\csname\the\macname @@\endcsname}%
8543 \expandafter\xdef\csname\the\macname @@\endcsname##1{%
8544 \noexpand\passargtomacro
8545 \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}%
8506 \expandafter\xdef\csname\the\macname @@@\endcsname##1{% 8546 \expandafter\xdef\csname\the\macname @@@\endcsname##1{%
8507 \egroup 8547 \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}%
8508 \noexpand\scanmacro{\macrobody}% 8548 \expandafter\expandafter
8509 }% 8549 \expandafter\xdef
8510 \else 8550 \expandafter\expandafter
8511 \ifnum\paramno<10\relax % at most 9 8551 \csname\the\macname @@@@\endcsname\paramlist{%
8512 % See non-recursive section below for comments 8552 \egroup\noexpand\scanmacro{\macrobody}}%
8513 \expandafter\xdef\csname\the\macname\endcsname{% 8553 \else % 10 or more:
8514 \bgroup
8515 \noexpand\expandafter
8516 \noexpand\macroargctxt
8517 \noexpand\expandafter
8518 \expandafter\noexpand\csname\the\macname @@\endcsname}%
8519 \expandafter\xdef\csname\the\macname @@\endcsname##1{%
8520 \noexpand\passargtomacro
8521 \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}%
8522 \expandafter\xdef\csname\the\macname @@@\endcsname##1{%
8523 \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}%
8524 \expandafter\expandafter
8525 \expandafter\xdef
8526 \expandafter\expandafter
8527 \csname\the\macname @@@@\endcsname\paramlist{%
8528 \egroup\noexpand\scanmacro{\macrobody}}%
8529 \else % 10 or more
8530 \expandafter\xdef\csname\the\macname\endcsname{%
8531 \noexpand\getargvals@{\the\macname}{\argl}%
8532 }%
8533 \global\expandafter\let\csname mac.\the\macname .body\endcsname\macrobody
8534 \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble
8535 \fi
8536 \fi
8537 \else %%%%%%%%%%%%%%%%%%%%%% Non-recursive %%%%%%%%%%%%%%%%%%%%%%%%%%
8538 \ifcase\paramno
8539 % 0
8540 \expandafter\xdef\csname\the\macname\endcsname{%
8541 \noexpand\scanmacro{\macrobody}}%
8542 \or % 1
8543 \expandafter\xdef\csname\the\macname\endcsname{% 8554 \expandafter\xdef\csname\the\macname\endcsname{%
8544 \bgroup 8555 \noexpand\getargvals@{\the\macname}{\argl}%
8545 \noexpand\braceorline 8556 }%
8546 \expandafter\noexpand\csname\the\macname @@@\endcsname}% 8557 \global\expandafter\let\csname mac.\the\macname .body\endcsname\macrobody
8547 \expandafter\xdef\csname\the\macname @@@\endcsname##1{% 8558 \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble
8548 \egroup
8549 \noexpand\scanmacro{\macrobody}%
8550 }%
8551 \else % at most 9
8552 \ifnum\paramno<10\relax
8553 % @MACNAME sets the context for reading the macro argument
8554 % @MACNAME@@ gets the argument, processes backslashes and appends a
8555 % comma.
8556 % @MACNAME@@@ removes braces surrounding the argument list.
8557 % @MACNAME@@@@ scans the macro body with arguments substituted.
8558 \expandafter\xdef\csname\the\macname\endcsname{%
8559 \bgroup
8560 \noexpand\expandafter % This \expandafter skip any spaces after the
8561 \noexpand\macroargctxt % macro before we change the catcode of space.
8562 \noexpand\expandafter
8563 \expandafter\noexpand\csname\the\macname @@\endcsname}%
8564 \expandafter\xdef\csname\the\macname @@\endcsname##1{%
8565 \noexpand\passargtomacro
8566 \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}%
8567 \expandafter\xdef\csname\the\macname @@@\endcsname##1{%
8568 \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}%
8569 \expandafter\expandafter
8570 \expandafter\xdef
8571 \expandafter\expandafter
8572 \csname\the\macname @@@@\endcsname\paramlist{%
8573 \egroup\noexpand\scanmacro{\macrobody}}%
8574 \else % 10 or more:
8575 \expandafter\xdef\csname\the\macname\endcsname{%
8576 \noexpand\getargvals@{\the\macname}{\argl}%
8577 }%
8578 \global\expandafter\let\csname mac.\the\macname .body\endcsname\macrobody
8579 \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\norecurse
8580 \fi
8581 \fi 8559 \fi
8582 \fi} 8560 \fi}
8583 8561
@@ -8867,16 +8845,21 @@ end
8867 \ifpdf 8845 \ifpdf
8868 % For pdfTeX and LuaTeX 8846 % For pdfTeX and LuaTeX
8869 {\indexnofonts 8847 {\indexnofonts
8870 \turnoffactive
8871 \makevalueexpandable 8848 \makevalueexpandable
8849 %
8850 % This (wrongly) does not take account of leading or trailing
8851 % spaces in #1, which should be ignored.
8852 \ifx\luatexversion\thisisundefined
8853 \edef\pdfxrefdest{#1}% pdfTeX: Replace Unicode characters with ASCII.
8854 \else
8855 \def\pdfxrefdest{#1}% LuaTeX: Pass through Unicode characters.
8856 \fi
8857 \turnoffactive
8872 % This expands tokens, so do it after making catcode changes, so _ 8858 % This expands tokens, so do it after making catcode changes, so _
8873 % etc. don't get their TeX definitions. This ignores all spaces in 8859 % etc. don't get their TeX definitions. This ignores all spaces in
8874 % #4, including (wrongly) those in the middle of the filename. 8860 % #4, including (wrongly) those in the middle of the filename.
8875 \getfilename{#4}% 8861 \getfilename{#4}%
8876 % 8862 %
8877 % This (wrongly) does not take account of leading or trailing
8878 % spaces in #1, which should be ignored.
8879 \edef\pdfxrefdest{#1}%
8880 \ifx\pdfxrefdest\empty 8863 \ifx\pdfxrefdest\empty
8881 \def\pdfxrefdest{Top}% no empty targets 8864 \def\pdfxrefdest{Top}% no empty targets
8882 \else 8865 \else
@@ -8897,20 +8880,21 @@ end
8897 \else 8880 \else
8898 % For XeTeX 8881 % For XeTeX
8899 {\indexnofonts 8882 {\indexnofonts
8900 \turnoffactive
8901 \makevalueexpandable 8883 \makevalueexpandable
8902 % This expands tokens, so do it after making catcode changes, so _
8903 % etc. don't get their TeX definitions. This ignores all spaces in
8904 % #4, including (wrongly) those in the middle of the filename.
8905 \getfilename{#4}%
8906 % 8884 %
8907 % This (wrongly) does not take account of leading or trailing 8885 % This (wrongly) does not take account of leading or trailing
8908 % spaces in #1, which should be ignored. 8886 % spaces in #1, which should be ignored.
8909 \iftxiuseunicodedestname 8887 \iftxiuseunicodedestname
8910 \def\pdfxrefdest{#1}% Pass through Unicode characters. 8888 \def\pdfxrefdest{#1}% Pass through Unicode characters.
8911 \else 8889 \else
8912 \edef\pdfxrefdest{#1}% Replace Unicode characters to ASCII. 8890 \edef\pdfxrefdest{#1}% Replace Unicode characters with ASCII.
8913 \fi 8891 \fi
8892 \turnoffactive
8893 % This expands tokens, so do it after making catcode changes, so _
8894 % etc. don't get their TeX definitions. This ignores all spaces in
8895 % #4, including (wrongly) those in the middle of the filename.
8896 \getfilename{#4}%
8897 %
8914 \ifx\pdfxrefdest\empty 8898 \ifx\pdfxrefdest\empty
8915 \def\pdfxrefdest{Top}% no empty targets 8899 \def\pdfxrefdest{Top}% no empty targets
8916 \else 8900 \else
@@ -8919,16 +8903,19 @@ end
8919 % 8903 %
8920 \leavevmode 8904 \leavevmode
8921 \ifnum\filenamelength>0 8905 \ifnum\filenamelength>0
8922 % By the default settings, 8906 % With default settings,
8923 % XeTeX (xdvipdfmx) replaces link destination names with integers. 8907 % XeTeX (xdvipdfmx) replaces link destination names with integers.
8924 % In this case, the replaced destination names of 8908 % In this case, the replaced destination names of
8925 % remote PDF cannot be known. In order to avoid replacement, 8909 % remote PDFs are no longer known. In order to avoid a replacement,
8926 % you can use commandline option `-C 0x0010' for xdvipdfmx. 8910 % you can use xdvipdfmx's command line option `-C 0x0010'.
8911 % If you use XeTeX 0.99996+ (TeX Live 2016+),
8912 % this command line option is no longer necessary
8913 % because we can use the `dvipdfmx:config' special.
8927 \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A 8914 \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A
8928 << /S /GoToR /F (\the\filename.pdf) /D (name\pdfxrefdest) >> >>}% 8915 << /S /GoToR /F (\the\filename.pdf) /D (\pdfxrefdest) >> >>}%
8929 \else 8916 \else
8930 \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A 8917 \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A
8931 << /S /GoTo /D (name\pdfxrefdest) >> >>}% 8918 << /S /GoTo /D (\pdfxrefdest) >> >>}%
8932 \fi 8919 \fi
8933 }% 8920 }%
8934 \setcolor{\linkcolor}% 8921 \setcolor{\linkcolor}%
@@ -9835,9 +9822,9 @@ directory should work if nowhere else does.}
9835 \global\righthyphenmin = #3\relax 9822 \global\righthyphenmin = #3\relax
9836} 9823}
9837 9824
9838% XeTeX and LuaTeX can handle native Unicode. 9825% XeTeX and LuaTeX can handle Unicode natively.
9839% Their default I/O is UTF-8 sequence instead of byte-wise. 9826% Their default I/O uses UTF-8 sequences instead of a byte-wise operation.
9840% Other TeX engine (pdfTeX etc.) I/O is byte-wise. 9827% Other TeX engines' I/O (pdfTeX, etc.) is byte-wise.
9841% 9828%
9842\newif\iftxinativeunicodecapable 9829\newif\iftxinativeunicodecapable
9843\newif\iftxiusebytewiseio 9830\newif\iftxiusebytewiseio
@@ -9961,14 +9948,15 @@ directory should work if nowhere else does.}
9961 % 9948 %
9962 \else \ifx \declaredencoding \utfeight 9949 \else \ifx \declaredencoding \utfeight
9963 \iftxinativeunicodecapable 9950 \iftxinativeunicodecapable
9964 % For native Unicode (XeTeX and LuaTeX) 9951 % For native Unicode handling (XeTeX and LuaTeX)
9965 \nativeunicodechardefs 9952 \nativeunicodechardefs
9966 \else 9953 \else
9967 % For UTF-8 byte sequence (TeX, eTeX and pdfTeX) 9954 % For treating UTF-8 as byte sequences (TeX, eTeX and pdfTeX)
9968 \setnonasciicharscatcode\active 9955 \setnonasciicharscatcode\active
9969 % since we already invoked \utfeightchardefs at the top level 9956 % since we already invoked \utfeightchardefs at the top level
9970 % (below), do not re-invoke it, then our check for duplicated 9957 % (below), do not re-invoke it, otherwise our check for duplicated
9971 % definitions triggers. Making non-ascii chars active is enough. 9958 % definitions gets triggered. Making non-ascii chars active is
9959 % sufficient.
9972 \fi 9960 \fi
9973 % 9961 %
9974 \else 9962 \else
@@ -9979,6 +9967,18 @@ directory should work if nowhere else does.}
9979 \fi % latone 9967 \fi % latone
9980 \fi % lattwo 9968 \fi % lattwo
9981 \fi % ascii 9969 \fi % ascii
9970 %
9971 \ifx\XeTeXrevision\thisisundefined
9972 \else
9973 \ifx \declaredencoding \utfeight
9974 \else
9975 \ifx \declaredencoding \ascii
9976 \else
9977 \message{Warning: XeTeX with non-UTF-8 encodings cannot handle %
9978 non-ASCII characters in auxiallity files.}%
9979 \fi
9980 \fi
9981 \fi
9982} 9982}
9983 9983
9984% emacs-page 9984% emacs-page
@@ -10316,8 +10316,9 @@ directory should work if nowhere else does.}
10316\def\U#1{% 10316\def\U#1{%
10317 \expandafter\ifx\csname uni:#1\endcsname \relax 10317 \expandafter\ifx\csname uni:#1\endcsname \relax
10318 \iftxinativeunicodecapable 10318 \iftxinativeunicodecapable
10319 % Any Unicode characters can be used by native Unicode. 10319 % All Unicode characters can be used if native Unicode handling is
10320 % However, if the font does not have the glyph, the letter will miss. 10320 % active. However, if the font does not have the glyph,
10321 % letters are missing.
10321 \begingroup 10322 \begingroup
10322 \uccode`\.="#1\relax 10323 \uccode`\.="#1\relax
10323 \uppercase{.} 10324 \uppercase{.}
@@ -10340,9 +10341,9 @@ directory should work if nowhere else does.}
10340\def\UTFviiiFourOctetsName#1#2#3#4{% 10341\def\UTFviiiFourOctetsName#1#2#3#4{%
10341 \csname u8:#1\string #2\string #3\string #4\endcsname}% 10342 \csname u8:#1\string #2\string #3\string #4\endcsname}%
10342 10343
10343% For UTF-8 byte sequence (TeX, e-TeX and pdfTeX) 10344% For UTF-8 byte sequences (TeX, e-TeX and pdfTeX),
10344% Definition macro to replace the Unicode character 10345% provide a definition macro to replace a Unicode character;
10345% Definition macro that is used by @U command 10346% this gets used by the @U command
10346% 10347%
10347\begingroup 10348\begingroup
10348 \catcode`\"=12 10349 \catcode`\"=12
@@ -10430,8 +10431,8 @@ directory should work if nowhere else does.}
10430 \uppercase{\gdef\UTFviiiTmp{#2#3#4}}} 10431 \uppercase{\gdef\UTFviiiTmp{#2#3#4}}}
10431\endgroup 10432\endgroup
10432 10433
10433% For native Unicode (XeTeX and LuaTeX) 10434% For native Unicode handling (XeTeX and LuaTeX),
10434% Definition macro that is set catcode other non global 10435% provide a definition macro that sets a catcode to `other' non-globally
10435% 10436%
10436\def\DeclareUnicodeCharacterNativeOther#1#2{% 10437\def\DeclareUnicodeCharacterNativeOther#1#2{%
10437 \catcode"#1=\other 10438 \catcode"#1=\other
@@ -11137,8 +11138,8 @@ directory should work if nowhere else does.}
11137\newif\ifpassthroughchars 11138\newif\ifpassthroughchars
11138\passthroughcharsfalse 11139\passthroughcharsfalse
11139 11140
11140% For native Unicode (XeTeX and LuaTeX) 11141% For native Unicode handling (XeTeX and LuaTeX),
11141% Definition macro to replace / pass-through the Unicode character 11142% provide a definition macro to replace/pass-through a Unicode character
11142% 11143%
11143\def\DeclareUnicodeCharacterNative#1#2{% 11144\def\DeclareUnicodeCharacterNative#1#2{%
11144 \catcode"#1=\active 11145 \catcode"#1=\active
@@ -11161,21 +11162,22 @@ directory should work if nowhere else does.}
11161 \endgroup 11162 \endgroup
11162} 11163}
11163 11164
11164% Native Unicode (XeTeX and LuaTeX) character replacing definitions 11165% Native Unicode handling (XeTeX and LuaTeX) character replacing definition.
11165% It makes the setting that replace the Unicode characters. 11166% It activates the setting that replaces Unicode characters.
11166\def\nativeunicodechardefs{% 11167\def\nativeunicodechardefs{%
11167 \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNative 11168 \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNative
11168 \unicodechardefs 11169 \unicodechardefs
11169} 11170}
11170 11171
11171% For native Unicode (XeTeX and LuaTeX). Make the character token expand 11172% For native Unicode handling (XeTeX and LuaTeX),
11173% make the character token expand
11172% to the sequences given in \unicodechardefs for printing. 11174% to the sequences given in \unicodechardefs for printing.
11173\def\DeclareUnicodeCharacterNativeAtU#1#2{% 11175\def\DeclareUnicodeCharacterNativeAtU#1#2{%
11174 \def\UTFAtUTmp{#2} 11176 \def\UTFAtUTmp{#2}
11175 \expandafter\globallet\csname uni:#1\endcsname \UTFAtUTmp 11177 \expandafter\globallet\csname uni:#1\endcsname \UTFAtUTmp
11176} 11178}
11177 11179
11178% Native Unicode (XeTeX and LuaTeX) @U command definitions 11180% @U command definitions for native Unicode handling (XeTeX and LuaTeX).
11179\def\nativeunicodechardefsatu{% 11181\def\nativeunicodechardefsatu{%
11180 \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNativeAtU 11182 \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNativeAtU
11181 \unicodechardefs 11183 \unicodechardefs
@@ -11186,7 +11188,7 @@ directory should work if nowhere else does.}
11186 \relax 11188 \relax
11187} 11189}
11188 11190
11189% define all the unicode characters we know about, for the sake of @U. 11191% define all Unicode characters we know about, for the sake of @U.
11190\iftxinativeunicodecapable 11192\iftxinativeunicodecapable
11191 \nativeunicodechardefsatu 11193 \nativeunicodechardefsatu
11192\else 11194\else