[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[7055] XeTeX PDF TOC page number link support
From: |
Masamichi Hosoda |
Subject: |
[7055] XeTeX PDF TOC page number link support |
Date: |
Wed, 23 Mar 2016 11:50:48 +0000 |
Revision: 7055
http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=7055
Author: trueroad
Date: 2016-03-23 11:50:48 +0000 (Wed, 23 Mar 2016)
Log Message:
-----------
XeTeX PDF TOC page number link support
Modified Paths:
--------------
trunk/ChangeLog
trunk/doc/texinfo.tex
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2016-03-22 15:01:23 UTC (rev 7054)
+++ trunk/ChangeLog 2016-03-23 11:50:48 UTC (rev 7055)
@@ -1,3 +1,9 @@
+2016-03-23 Masamichi Hosoda <address@hidden>
+
+ * doc/texinfo.tex (\pdfgettoks, \pdfaddtokens, \adn, \poptoks,
+ \maketoks, \makelink, \pdflink, \done): New Macro.
+ Add XeTeX PDF table of contents page number link support.
+
2016-03-22 Masamichi Hosoda <address@hidden>
* doc/texinfo.tex (\pdfurl, \endlink): New macro.
Modified: trunk/doc/texinfo.tex
===================================================================
--- trunk/doc/texinfo.tex 2016-03-22 15:01:23 UTC (rev 7054)
+++ trunk/doc/texinfo.tex 2016-03-23 11:50:48 UTC (rev 7055)
@@ -3,7 +3,7 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2016-03-22.15}
+\def\texinfoversion{2016-03-23.11}
%
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@@ -1645,6 +1645,32 @@
/Subtype /Link /A << /S /URI /URI (#1) >> >>}%
\endgroup}
\def\endlink{\setcolor{\maincolor}\special{pdf:eann}}
+ \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
+ \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
+ \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
+ \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
+ \def\maketoks{%
+ \expandafter\poptoks\the\toksA|ENDTOKS|\relax
+ \ifx\first0\adn0
+ \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
+ \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
+ \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
+ \else
+ \ifnum0=\countA\else\makelink\fi
+ \ifx\first.\let\next=\done\else
+ \let\next=\maketoks
+ \addtokens{\toksB}{\the\toksD}
+ \ifx\first,\addtokens{\toksB}{\space}\fi
+ \fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \next}
+ \def\makelink{\addtokens{\toksB}%
+ {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
+ \def\pdflink#1{%
+ \special{pdf:bann << /Border [0 0 0]
+ /Type /Annot /Subtype /Link /A << /S /GoTo /D (name#1) >> >>}%
+ \setcolor{\linkcolor}#1\endlink}
+ \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
%
%
% @image support
@@ -5479,7 +5505,14 @@
% preserve coloured links across page boundaries. Otherwise the marks
% would get in the way of \lastbox in \insertindexentrybox.
\else
- \hskip\skip\thinshrinkable #1%
+ \ifx\XeTeXrevision\thisisundefined
+ \hskip\skip\thinshrinkable #1%
+ \else
+ \pdfgettoks#1.%
+ \bgroup\let\domark\relax
+ \hskip\skip\thinshrinkable\the\toksA
+ \egroup
+ \fi
\fi
\fi
\egroup % end \boxA
@@ -5614,7 +5647,11 @@
\ifpdf
\pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
\else
- #2
+ \ifx\XeTeXrevision\thisisundefined
+ #2
+ \else
+ \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
+ \fi
\fi
\par
}}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [7055] XeTeX PDF TOC page number link support,
Masamichi Hosoda <=