diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/hyperref/hyperref.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/hyperref/hyperref.dtx | 2051 |
1 files changed, 1537 insertions, 514 deletions
diff --git a/Master/texmf-dist/source/latex/hyperref/hyperref.dtx b/Master/texmf-dist/source/latex/hyperref/hyperref.dtx index a26fd8ae8e1..b87911f4a58 100644 --- a/Master/texmf-dist/source/latex/hyperref/hyperref.dtx +++ b/Master/texmf-dist/source/latex/hyperref/hyperref.dtx @@ -1,7 +1,6 @@ % \iffalse %% File: hyperref.dtx Copyright 1995-2001 Sebastian Rahtz, % with portions written by David Carlisle and Heiko Oberdiek. -%% RCS: $Id: hyperref.dtx 6.71 2000/10/04 rahtz Exp rahtz $ %% %% This file is part of the `Hyperref Bundle'. %% ------------------------------------------- @@ -37,7 +36,8 @@ %<tex4htcfg>\ProvidesFile{htex4ht.cfg} %<pd1enc>\ProvidesFile{pd1enc.def} %<puenc>\ProvidesFile{puenc.def} -%<!none> [2003/11/30 v6.74m +%<puvnenc>\ProvidesFile{puvnenc.def} +%<!none> [2006/08/16 v6.75c %<package> Hypertext links for LaTeX] %<nohyperref> Dummy hyperref (SR)] %<driver> Hyperref documentation driver file] @@ -58,29 +58,62 @@ %<tex4htcfg> Hyperref configuration file for TeX4ht] %<pd1enc> Hyperref: PDFDocEncoding definition (HO)] %<puenc> Hyperref: PDF Unicode definition (HO)] +%<puvnenc> Hyperref: Additions to puenc.def for VnTeX] %<*driver> \documentclass{ltxdoc} +\IfFileExists{bmhydoc.sty}{\usepackage{bmhydoc}}{} \usepackage{array,times} \def\ttdefault{cmtt} -\usepackage[colorlinks,hyperindex]{hyperref} +\usepackage[ + colorlinks, + hyperindex=false,% done by hypdoc + pdfusetitle, + pdfpagelabels +]{hyperref} +\usepackage[numbered]{hypdoc} \pdfstringdefDisableCommands{\let\\\textbackslash}% \EnableCrossrefs \CodelineIndex \begin{document} + % + % title + % \GetFileInfo{hyperref.sty} \title{Hypertext marks in \LaTeX} \author{Sebastian Rahtz\\ - Email: \texttt{sebastian.rahtz@oucs.ox.ac.uk}} + Email: \texttt{sebastian.rahtz@oucs.ox.ac.uk}\\[1.5ex] + Heiko Oberdiek\\ + Email: \texttt{oberdiek@uni-freiburg.de}} \date{processed \today} \maketitle - \tableofcontents + % + % overview + % + \makeatletter + \@ifundefined{HyperrefOverview}{}{% + \HyperrefOverview\relax + \newpage + } + % + % table of contents + % + \section{\contentsname} + \makeatletter + \@starttoc{toc} + \newpage + % + % source code documentation + % \let\Email\texttt \DocInput{hyperref.dtx} + % + % index + % \PrintIndex \end{document} %</driver> % \fi -% \CheckSum{17219} +% \CheckSum{19023} % % \MakeShortVerb{|} % \StopEventually{} @@ -90,6 +123,12 @@ % \DoNotIndex{\csname,\endcsname,\relax,\begingroup,\endgroup} % \DoNotIndex{\DeclareTextCommand,\DeclareTextCompositeCommand} % \DoNotIndex{\space,\@empty,\special} +% \DoNotIndex{\\,\0,\1,\2,\8} +% \makeatletter +% \g@addto@macro\theindex{^^A +% \parfillskip=0pt plus 1fil +% } +% \makeatother % % \section{File hycheck.tex} % @@ -535,6 +574,9 @@ \newif\ifHy@CJKbookmarks \newif\ifHy@colorlinks \newif\ifHy@draft +\let\Hy@finaltrue\Hy@draftfalse +\let\Hy@finalfalse\Hy@drafttrue +\newif\ifHy@escapeform \newif\ifHy@figures \newif\ifHy@fitwindow \newif\ifHy@frenchlinks @@ -573,6 +615,7 @@ \Hy@breaklinksfalse \Hy@centerwindowfalse \Hy@CJKbookmarksfalse +\Hy@escapeformfalse \Hy@figuresfalse \Hy@fitwindowfalse \Hy@hyperfootnotestrue @@ -585,10 +628,10 @@ \Hy@nestingfalse \Hy@newwindowfalse \Hy@pageanchortrue -\Hy@pagelabelsfalse +\Hy@pagelabelstrue \Hy@pdfpagehiddenfalse \Hy@pdfstringfalse -\Hy@plainpagestrue +\Hy@plainpagesfalse \Hy@raiselinksfalse \Hy@setpagesizetrue \Hy@texhtfalse @@ -667,7 +710,7 @@ % \begin{itemize} % \item Works only in options that use \cmd{\hypercalcbpdef} % (currently only |pdfstartview|). -% \item For calculations package |calc| have to be loaded. +% \item For calculations package |calc| has to be loaded. % \item The expansion of the argument is done at definition time. % \end{itemize} % \end{itemize} @@ -729,7 +772,7 @@ % % \section{Dealing with PDF strings}\label{sec:pdfstring} % The PDF string stuff done by Heiko Oberdiek.\\ -% Email: \Email{oberdiek@ruf.uni-freiburg.de}. +% Email: \Email{oberdiek@uni-freiburg.de}. % % Naming convention: All internal commands that are only % needed by \cs{pdfstringdef} are prefixed with \cs{HyPsd@}. @@ -847,6 +890,7 @@ \edef\8{\string\8}% \edef\9{\string\9}% \fontencoding{PU}% + \HyPsd@UTFviii \else \fontencoding{PD1}% \fi @@ -870,7 +914,7 @@ % as a usable hook. While an \cs{edef} a warning message by % \cs{@inmathwarn} or \cs{TextSymbolUnavailable} cannot be give out, % so \cs{@inmathwarn} should be disabled. And with the help of it -% the assignments in \cs{@changed@cmd} can easily be catched +% the assignments in \cs{@changed@cmd} can easily be caught % (see below). % \begin{macrocode} \let\@inmathwarn\HyPsd@inmathwarn @@ -994,6 +1038,11 @@ \let\cyr\relax % \end{macrocode} % +% Redefine \cs{es@roman}, used in spanish.ldf. +% \begin{macrocode} + \let\es@roman\@Roman +% \end{macrocode} +% % \paragraph{Package german.} % \begin{macrocode} \let\glqq\textglqq @@ -1009,12 +1058,20 @@ % \paragraph{Package french.} The support is deferred, because % it needs |\GenericError| to be disabled (see below). % +% \paragraph{Package FrenchPro.} This package uses: +% \begin{quote} +% |\if@mid@expandable{|not fully expandable code|}{|fully expandable code|}| +% \end{quote} +% \begin{macrocode} + \let\if@mid@expandable\@firstoftwo +% \end{macrocode} +% % \paragraph{AMS classes.} % \begin{macrocode} \HyPSD@AMSclassfix % \end{macrocode} % -% \paragraph{Redefintion of \cs{hspace}} +% \paragraph{Redefinition of \cs{hspace}} % \cs{hspace} don't work in bookmarks, the following fix % tries to set a space if the argument is a positive length. % \begin{macrocode} @@ -1066,6 +1123,7 @@ % \paragraph{Miscellaneous commands.} % \begin{macrocode} \let\leavevmode\@empty + \let\mbox\@empty % \end{macrocode} % \cs{halign} causes error messages because of the template % character |#|. @@ -1101,7 +1159,7 @@ % % \paragraph{Spaces.} % For checking the token of the string, spaces must be masked, because -% they cannot by catched by undelimited arguments. +% they cannot by caught by undelimited arguments. % \begin{macrocode} \HyPsd@LetUnexpandableSpace\space \HyPsd@LetUnexpandableSpace\ % @@ -1143,6 +1201,7 @@ % in order to get rid of the error message at least: % \begin{macrocode} \let\@ifnextchar\HyPsd@ifnextchar + \let\@ifnextchar\HyPsd@new@ifnextchar \let\@protected@testopt\HyPsd@protected@testopt % \end{macrocode} % @@ -1313,7 +1372,7 @@ %\end{verbatim} % \paragraph{Looking for wrong glyphs.} % The case that glyphs aren't defined in the PD1 encoding -% is catched above in such a way, that the glyph name and +% is caught above in such a way, that the glyph name and % a marker is inserted into the string. Now we can safely % scan the string for this marker and provide a descriptive % warning. @@ -1953,7 +2012,7 @@ % In \cmd{\HyPsd@@ProtectSpaces} the space tokens are replaced % by not expandable commands, that work like spaces: % \begin{itemize} -% \item So they can catched by undelimited arguments. +% \item So they can caught by undelimited arguments. % \item And they work in number, dimen, and skip % assignments. % \end{itemize} @@ -2152,6 +2211,10 @@ % of the \cs{let} commands cannot be canceled with an undelimited % parameter because of a possible space token after \cs{futurelet}. % +% To avoid unmachted \cs{if...} tokens, the cases +% \verb|\let\if...\iftrue| and \verb|\let\if...\iffalse| +% are checked and ignored. +% % \begin{macro}{\HyPsd@DefCommand} % \begin{macro}{\HyPsd@LetCommand} % \begin{macrocode} @@ -2166,14 +2229,32 @@ \@gobble }% \let#2\let - \def\HyPsd@LetCommand##1{% - #2% - \expandafter\noexpand - \csname\expandafter\@gobble\string##1\@empty\endcsname + \def\HyPsd@@LetCommand##1{% + \expandafter\ifx\csname##1\expandafter\endcsname + \csname iftrue\endcsname + \pdfstringdefWarn\let + \expandafter\@gobble + \else + \expandafter\ifx\csname##1\expandafter\endcsname + \csname iffalse\endcsname + \pdfstringdefWarn\let + \expandafter\expandafter\expandafter\@gobble + \else + #2% + \expandafter\noexpand + \csname##1\expandafter\expandafter\expandafter\endcsname + \fi + \fi }% }% \expandafter\x\csname <def>-command\expandafter\endcsname \csname <let>-command\endcsname +\def\HyPsd@LetCommand#1{% + \expandafter\expandafter\expandafter\HyPsd@@LetCommand + \expandafter\expandafter\expandafter{% + \expandafter\@gobble\string#1\@empty + }% +} % \end{macrocode} % \end{macro} % \end{macro} @@ -2196,6 +2277,18 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\HyPsd@new@ifnextchar} +% Package \verb|amsgen.sty| redefines \cs{@ifstar} using +% \cs{new@ifnextchar} instead of \cs{@ifnextchar}. See +% bug report latex/3662. +% \begin{macrocode} +\def\HyPsd@new@ifnextchar{% + \pdfstringdefWarn\new@ifnextchar + \expandafter\@gobbletwo\@gobble +} +% \end{macrocode} +% \end{macro} +% % \subsubsection{^^A % \texorpdfstring{\cs{@protected@testoptifnextchar}}^^A % {\\@protected@testopt}^^A @@ -2695,9 +2788,15 @@ % \begin{macrocode} |gdef|HyPsd@ConvertToUnicode#1{% |xdef#1{% - \376\377% |expandafter|HyPsd@DoConvert#1|@empty|@empty|@empty }% + |xdef#1{% + |ifx#1|@empty + |else + \376\377% + #1% + |fi + }% } % \end{macrocode} % \end{macro} @@ -2767,6 +2866,188 @@ % \end{macrocode} % \end{macro} % +% \subsubsection{Support for UTF-8 input encoding} +% +% After |\usepackage[utf8]{inputenc}| there are macros that +% expect the UTF-8 octets as arguments. Therefore we can +% calculate the PDF octal sequences directly. Because the +% PDF format is limited to UCS-2, conversion macros are +% needed for UTF-8 sequences with two and three octets only. +% +% This calculation must be done in an expandable context, +% so we use e\TeX here for performance reasons. Unhappily +% the results of divisions are rounded. Thus a +% circumvention via |\dimexpr| is used, e.g.: +% \begin{quote} +% |\numexpr 123/4\relax| is replaced by\\ +% |\number\dimexpr.25\dimexpr 123sp\relax\relax| +% \end{quote} +% \begin{macrocode} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname numexpr\endcsname\relax + \let\HyPsd@UTFviii\relax +\else + \def\HyPsd@UTFviii{% + \let\UTFviii@two@octets\HyPsd@UTFviii@two + \let\UTFviii@three@octets\HyPsd@UTFviii@three + \let\unichar\HyPsd@unichar + }% +% \end{macrocode} +% +% The two octet form of UTF-8 |110aaabb| (A) and |10cccddd| (B) +% must be converted into octal numbers |00a| and |bcd|. The +% result is |\8a\bcd| (with a, b, c, d as octal numbers). +% The conversion equations. +% \begin{eqnarray} +% a &:= A/4 - 48\\ +% b &:= A - 4*(A/4)\\ +% c &:= B/8 - 8*((8*(B/8))/8)\\ +% d &:= B - 8*(B/8)\\ +% \end{eqnarray} +% ^^A #1 = A/4 #2 = A +% ^^A #3 = B/8 #4 = B +% \begin{macrocode} + \def\HyPsd@UTFviii@two#1#2{% + \expandafter\HyPsd@UTFviii@@two + \number\dimexpr.25\dimexpr`#1sp\expandafter\relax\expandafter|% + \number`#1\expandafter|% + \number\dimexpr.125\dimexpr`#2sp\expandafter\relax\expandafter|% + \number`#2 \@nil + }% + \def\HyPsd@UTFviii@@two#1|#2|#3|#4\@nil{% + \expandafter\8% + \number\numexpr #1-48\expandafter\relax + \csname\number\numexpr #2-4*#1\relax\expandafter\endcsname + \number\numexpr #3-8*% + \number\dimexpr.125\dimexpr#3sp\relax\relax\expandafter\relax + \number\numexpr #4-8*#3\relax + }% +% \end{macrocode} +% +% Three octet form: |1110aabb| (A), |10bcccdd| (B), and |10eeefff| +% (C). The result is |\9abc\def| (with a, \dots, f as octal numbers). +% The conversion equations: +% \begin{eqnarray} +% a &:= A/4 - 56\\ +% b &:= 2*(A - 4*(A/4)) + ((B-128 < 32) ? 0 : 1)\\ +% c &:= B/4 - 32 - ((B-128 < 32) ? 0 : 8)\\ +% d &:= B - 4*(B/4)\\ +% e &:= C/8 - 16\\ +% f &:= C - 8*(C/8)\\ +% \end{eqnarray} +% ^^A #1 = A/4 #2 = A +% ^^A #3 = (B-128 < 32) ? 0 : 1 +% ^^A #4 = B/4 #5 = B +% ^^A #6 = C/8 #7 = C +% \begin{macrocode} + \def\HyPsd@UTFviii@three#1#2#3{% + \expandafter\HyPsd@UTFviii@@three + \number\dimexpr.25\dimexpr`#1sp\expandafter\relax\expandafter|% + \number`#1\expandafter|% + \number\ifnum\numexpr`#2-128\relax <32 0\else 1\fi\expandafter|% + \number\dimexpr.25\dimexpr`#2sp\expandafter\relax\expandafter|% + \number`#2\expandafter|% + \number\dimexpr.125\dimexpr`#3sp\expandafter\relax\expandafter|% + \number`#3 \@nil + }% + \def\HyPsd@UTFviii@@three#1|#2|#3|#4|#5|#6|#7\@nil{% + \expandafter\9% + \number\numexpr #1-56\expandafter\relax + \number\numexpr 2*(#2-4*#1)+#3\expandafter\relax + \number\numexpr #4 - 32 -\ifcase#3 0\else 8\fi\expandafter\relax + \csname\number\numexpr #5-4*#4\relax\expandafter\endcsname + \number\numexpr #6-16\expandafter\relax + \number\numexpr #7-8*#6\relax + }% +% \end{macrocode} +% +% Four octet form: |11110aab| (A), |10bcccdd| (B), |10deeeff| (C), +% and |10ggghhh| (D). The result are two surrogate characters +% |110010aabbcccddd| and |11001eeeffggghhh|, or as octal numbers +% |\931a\bcd| and |\931e\fgh|. +% The conversion equations: +% \begin{eqnarray} +% a &:= A/2 - 120\\ +% b &:= (isodd(A) ? 2 : 0) + (B/32 - 4)\\ +% c &:= (B - 32*(B/32))/4\\ +% d &:= 2*(B - 4*(B/4)) + (C/32 - 4)\\ +% e &:= (C - 32*(C/32))/4\\ +% f &:= C - 4*C/4\\ +% g &:= D/8 - 16\\ +% h &:= D - 8*(D/8)\\ +% \end{eqnarray} +% ^^A \HyPsd@UTFviii@four/\HyPsd@UTFviii@@four +% ^^A #1 = A (char/number) +% ^^A #2 = B (char) +% ^^A #3 = C (char) +% ^^A #4 = D (char) +% ^^A \HyPsd@UTFviii@@@four +% ^^A #1 = A (number) +% ^^A #2 = B (char) +% ^^A #3 = B/32 (number) +% ^^A #4 = C (char) +% ^^A #5 = C/32 (number) +% ^^A #6 = D (char) +% ^^A #7 = D/8 (number) +% \begin{macrocode} + \def\HyPsd@UTFviii@four#1{% + \expandafter\HyPsd@UTFviii@@four\number`#1|% + }% + \def\HyPsd@UTFviii@@four#1|#2#3#4{% + \expandafter\HyPsd@UTFviii@@@four\number#1\expandafter|% + \number`#2\expandafter| + \number\dimexpr.03125\dimexpr`#2sp\expandafter|% + \number`#3\expandafter|% + \number\dimexpr.03125\dimexpr`#3sp\expandafter|% + \number`#4\expandafter|% + \number\dimexpr.125\dimexpr`#4|% + }% + \def\HyPsd@UTFviii@@@four#1|#2|#3|#4|#5|#6|#7|{% + \931% + \number\numexpr\dimexpr.5\dimexpr#1sp\relax\relax -120\relax + \csname\number\numexpr\ifodd#1 2\else 0\fi +#3-4\relax\endcsname + \number\dimexpr.25\dimexpr #2sp - 32\dimexpr#3sp\relax\relax\relax + % ... + }% +% \end{macrocode} +% +% Input encoding |utf8x| of package |ucs| uses macro +% \cmd{\unichar}. It takes a macro name as argument. +% Then name obeys the following structure: +%\begin{verbatim} +%\u8-<first byte as decimal number>-[continuation byte]+ +%\end{verbatim} +% \begin{macrocode} + \def\HyPsd@unichar#1{% + \expandafter\HyPsd@@unichar\string#1\@empty\@empty\@empty\@nil + }% + \def\HyPsd@@unichar #1-#2-#3#4#5#6\@nil{% + \ifnum#2>191 % + \ifnum#2<224 % + \expandafter\HyPsd@UTFviii@@two + \number\dimexpr.25\dimexpr#2sp\expandafter\relax\expandafter|% + \number#2\expandafter|% + \number\dimexpr.125\dimexpr`#3sp\expandafter\relax\expandafter|% + \number`#3 \@nil + \else + \ifnum#2<240 % + \expandafter\HyPsd@UTFviii@@three + \number\dimexpr.25\dimexpr#2sp\expandafter\relax\expandafter|% + \number#2\expandafter|% + \number\ifnum\numexpr`#3-128\relax <32 0\else 1\fi\expandafter|% + \number\dimexpr.25\dimexpr`#3sp\expandafter\relax\expandafter|% + \number`#3\expandafter|% + \number\dimexpr.125\dimexpr`#4sp\expandafter\relax\expandafter|% + \number`#4 \@nil + \else + ?% unsupported + \fi + \fi + \fi + }% +\fi +% \end{macrocode} +% % \section{Support of other packages} % % \subsection{Package subfigure} @@ -2779,20 +3060,22 @@ \renewcommand*{\sub@label}[1]{% \@bsphack \subfig@oldlabel{#1}% - \begingroup - \edef\@currentlabstr{% - \expandafter\strip@prefix\meaning\@currentlabelname - }% - \protected@write\@auxout{}{% - \string\newlabel{sub@#1}{% - {\@nameuse{@@thesub\@captype}}% - {\thepage}% - {\expandafter\strip@period\@currentlabstr\relax.\relax\@@@}% - {\@currentHref}% - {}% + \if@filesw + \begingroup + \edef\@currentlabstr{% + \expandafter\strip@prefix\meaning\@currentlabelname }% - }% - \endgroup + \protected@write\@auxout{}{% + \string\newlabel{sub@#1}{% + {\@nameuse{@@thesub\@captype}}% + {\thepage}% + {\expandafter\strip@period\@currentlabstr\relax.\relax\@@@}% + {\@currentHref}% + {}% + }% + }% + \endgroup + \fi \@esphack }% \@ifpackagelater{subfigure}{2002/03/26}{}{% @@ -2867,6 +3150,7 @@ \ifvmode #1% \else + \penalty\@M \smash{\raise\HyperRaiseLinkLength\hbox{#1}}% \fi } @@ -2997,12 +3281,7 @@ \Hy@boolkey{draft}{#1}% } \define@key{Hyp}{final}[true]{% - \Hy@boolkey{draft}{#1}% - \ifHy@draft - \Hy@draftfalse - \else - \Hy@drafttrue - \fi + \Hy@boolkey{final}{#1}% } \let\KV@Hyp@nolinks\KV@Hyp@draft \define@key{Hyp}{a4paper}[true]{% @@ -3131,6 +3410,10 @@ \Hy@breaklinkstrue } \define@key{Hyp}{dvipdf}[true]{% + \Hy@WarningNoLine{% + Option `dvipdf' is deprecated.\MessageBreak + See the user manual for available driver options% + }% } \define@key{Hyp}{nativepdf}[true]{% \def\Hy@driver{hdvips}% @@ -3401,6 +3684,40 @@ \def\FancyVerbLineautorefname{Lyn}% \def\theoremautorefname{Teorema}% } +\def\HyLang@french{% + \def\equationautorefname{\'Equation}% + \def\footnoteautorefname{note}% + \def\itemautorefname{item}% + \def\figureautorefname{Figure}% + \def\tableautorefname{Tableau}% + \def\partautorefname{Partie}% + \def\appendixautorefname{Appendice}% + \def\chapterautorefname{chapitre}% + \def\sectionautorefname{section}% + \def\subsectionautorefname{sous-section}% + \def\subsubsectionautorefname{sous-sous-section}% + \def\paragraphautorefname{paragraphe}% + \def\subparagraphautorefname{sous-paragraphe}% + \def\FancyVerbLineautorefname{ligne}% + \def\theoremautorefname{Th\'eor\`eme}% +} +\def\HyLang@vietnamese{% + \def\equationautorefname{Ph\uhorn{}\ohorn{}ng tr\`inh}% + \def\footnoteautorefname{Ch\'u th\'ich}% + \def\itemautorefname{m\d{u}c}% + \def\figureautorefname{H\`inh}% + \def\tableautorefname{B\h{a}ng}% + \def\partautorefname{Ph\`\acircumflex{}n}% + \def\appendixautorefname{Ph\d{u} l\d{u}c}% + \def\chapterautorefname{ch\uhorn{}\ohorn{}ng}% + \def\sectionautorefname{m\d{u}c}% + \def\subsectionautorefname{m\d{u}c}% + \def\subsubsectionautorefname{m\d{u}c}% + \def\paragraphautorefname{\dj{}o\d{a}n}% + \def\subparagraphautorefname{\dj{}o\d{a}n}% + \def\FancyVerbLineautorefname{d\`ong}% + \def\theoremautorefname{\DJ{}\d{i}nh l\'y}% +} % \end{macrocode} % % Instead of package babel's definition of \cmd{\addto} the @@ -3436,7 +3753,7 @@ }% }% \expandafter\x\csname extras#1\expandafter\endcsname - \csname HyLang@#2\expandafter\endcsname + \csname HyLang@#2\endcsname } \HyLang@DeclareLang{english}{english} \HyLang@DeclareLang{UKenglish}{english} @@ -3452,6 +3769,30 @@ \HyLang@DeclareLang{portuguese}{portuges} \HyLang@DeclareLang{spanish}{spanish} \HyLang@DeclareLang{afrikaans}{afrikaans} +\HyLang@DeclareLang{french}{french} +\HyLang@DeclareLang{frenchb}{french} +\HyLang@DeclareLang{francais}{french} +\HyLang@DeclareLang{acadian}{french} +\HyLang@DeclareLang{canadien}{french} +% \end{macrocode} +% More work is needed in case of options |vietnamese| and |vietnam|. +% \begin{macrocode} +\define@key{Hyp}{vietnamese}[]{% + \HyLang@addto\extrasvietnamese\HyLang@vietnamese + \AtEndOfPackage{% + \@ifundefined{T@PU}{}{% + \input{puvnenc.def}% + }% + }% +} +\define@key{Hyp}{vietnam}[]{% + \HyLang@addto\extrasvietnam\HyLang@vietnamese + \AtEndOfPackage{% + \@ifundefined{T@PU}{}{% + \input{puvnenc.def}% + }% + }% +} % \end{macrocode} % % \section{Options to change appearance of links}\label{appearance} @@ -3473,10 +3814,60 @@ \define@key{Hyp}{bookmarks}[true]{% \Hy@boolkey{bookmarks}{#1}% } +% \end{macrocode} +% \begin{macrocode} \define@key{Hyp}{bookmarksopen}[true]{% \Hy@boolkey{bookmarksopen}{#1}% } +% \end{macrocode} +% +% The depth of the outlines is controlled by option +% \verb|bookmarksdepth|. +% The option acts globally and distinguishes three cases: +% \begin{itemize} +% \item \verb|bookmarksdepth|: Without value hyperref uses +% counter \texttt{tocdepth} (compatible behaviour and default). +% \item \verb|bookmarksdepth=<number>|: the depth is set to +% \verb|<number>|. +% \item \verb|bookmarksdepth=<name>|: The \verb|<name>| must +% not start with a number or minus sign. It is a document +% division name (part, chapter, section, \dots). Internally +% the value of macro \verb|\toclevel@<name>| is used. +% \end{itemize} +% \begin{macrocode} +\let\Hy@bookmarksdepth\c@tocdepth +\define@key{Hyp}{bookmarksdepth}[]{% + \begingroup + \edef\x{#1}% + \ifx\x\empty + \global\let\Hy@bookmarksdepth\c@tocdepth + \else + \@ifundefined{toclevel@\x}{% + \@onelevel@sanitize\x + \edef\y{\expandafter\@car\x\@nil}% + \ifcase 0\expandafter\ifx\y-1\fi + \expandafter\ifnum\expandafter`\y>47 % + \expandafter\ifnum\expandafter`\y<58 1\fi\fi\relax + \Hy@Warning{Unknown document division name (\x)}% + \else + \setbox\z@=\hbox{% + \count@=\x + \xdef\Hy@bookmarksdepth{\the\count@}% + }% + \fi + }{% + \setbox\z@=\hbox{% + \count@=\csname toclevel@\x\endcsname + \xdef\Hy@bookmarksdepth{\the\count@}% + }% + }% + \fi + \endgroup +} +% \end{macrocode} +% % `bookmarksopenlevel' to specify the open level. From Heiko Oberdiek. +% \begin{macrocode} \define@key{Hyp}{bookmarksopenlevel}{% \def\@bookmarksopenlevel{#1}% } @@ -3501,7 +3892,7 @@ \define@key{Hyp}{CJKbookmarks}[true]{% \Hy@boolkey{CJKbookmarks}{#1}% } -% \end{macrcode} +% \end{macrocode} % % \begin{macrocode} \define@key{Hyp}{linkcolor}{\def\@linkcolor{#1}} @@ -3570,16 +3961,65 @@ } % \end{macrocode} % +% The value of the |bordercolor| options are not processed +% by the color package. Therefore the value consists of +% space separated rgb numbers in the range 0 until 1. +% +% Package |xcolor| provides |\XC@bordercolor| since version 1.1. +% If the two spaces in the color specification are missing, +% then the value is processed as color specification from +% package |xcolor| by using |\XC@bordercolor| (since +% xcolor 2004/05/09 v1.11). +% \begin{macrocode} +\def\Hy@ColorList{cite,file,link,menu,page,run,url} +\@for\Hy@temp:=\Hy@ColorList\do{% + \edef\Hy@temp{% + \noexpand\define@key{Hyp}{\Hy@temp bordercolor}{% + \noexpand\Hy@bordercolor{\Hy@temp}{##1}{ }% + }% + }% + \Hy@temp +} +\def\Hy@bordercolor#1#2#3{% + \begingroup + \csname @safe@activestrue\endcsname + \@ifundefined{XC@edef}{\edef}{\XC@edef}\x{#2}% + \expandafter\Hy@CheckColorSpec\x#3#3\@nil{#1}{#2}% +} +\def\Hy@CheckColorSpec#1 #2 #3\@nil#4#5{% + \ifx\\#3\\% + \@ifundefined{XC@bordercolor}{% + \Hy@Warning{% + Unsupported color specification (#4bordercolor).\MessageBreak + Load package `xcolor' (version >= 1.11) first.\MessageBreak + Ignoring color specification% + }% + \endgroup + }{% + \endgroup + \XC@bordercolor{#4}{#5}% + }% + \else + \endgroup + \@namedef{@#4bordercolor}{#5}% + \fi +} +% \end{macrocode} +% % \begin{macrocode} -\define@key{Hyp}{linkbordercolor}{\def\@linkbordercolor{#1}} -\define@key{Hyp}{urlbordercolor}{\def\@urlbordercolor{#1}} -\define@key{Hyp}{menubordercolor}{\def\@menubordercolor{#1}} -\define@key{Hyp}{filebordercolor}{\def\@filebordercolor{#1}} -\define@key{Hyp}{runbordercolor}{\def\@runbordercolor{#1}} -\define@key{Hyp}{citebordercolor}{\def\@citebordercolor{#1}} -\define@key{Hyp}{pagebordercolor}{\def\@pagebordercolor{#1}} \define@key{Hyp}{pdfhighlight}{\def\@pdfhighlight{#1}} \define@key{Hyp}{pdfborder}{\def\@pdfborder{#1}} +\define@key{Hyp}{pdfborderstyle}{\def\@pdfborderstyle{#1}} +\def\Hy@setpdfborder{% + \ifx\@pdfborder\@empty + \else + /Border[\@pdfborder]% + \fi + \ifx\@pdfborderstyle\@empty + \else + /BS<<\@pdfborderstyle>>% + \fi +} \define@key{Hyp}{pdfpagemode}{% \def\Hy@tempa{#1}% \ifx\Hy@tempa\@empty @@ -3603,6 +4043,8 @@ \define@key{Hyp}{pdfauthor}{\pdfstringdef\@pdfauthor{#1}} \define@key{Hyp}{pdfproducer}{\pdfstringdef\@pdfproducer{#1}} \define@key{Hyp}{pdfcreator}{\pdfstringdef\@pdfcreator{#1}} +\define@key{Hyp}{pdfcreationdate}{\pdfstringdef\@pdfcreationdate{#1}} +\define@key{Hyp}{pdfmoddate}{\pdfstringdef\@pdfmoddate{#1}} \define@key{Hyp}{pdfsubject}{\pdfstringdef\@pdfsubject{#1}} \define@key{Hyp}{pdfkeywords}{\pdfstringdef\@pdfkeywords{#1}} \define@key{Hyp}{pdfview}{\calculate@pdfview#1 \\} @@ -3651,6 +4093,9 @@ \define@key{Hyp}{pdfpagelabels}[true]{% \Hy@boolkey[pdfpagelabels]{pagelabels}{#1}% } +\define@key{Hyp}{pdfescapeform}[true]{% + \Hy@boolkey[pdfescapeform]{escapeform}{#1}% +} % \end{macrocode} % Default values: % \begin{macrocode} @@ -3666,8 +4111,10 @@ \def\@pdfnonfullscreenpagemode{} \def\@pdftitle{} \def\@pdfauthor{} -\def\@pdfproducer{} +\let\@pdfproducer\relax \def\@pdfcreator{LaTeX with hyperref package} +\def\@pdfcreationdate{} +\def\@pdfmoddate{} \def\@pdfsubject{} \def\@pdfkeywords{} \def\@pdfpagescrop{} @@ -3709,43 +4156,13 @@ % To add flexibility, we will not use the ordinary processing of % package options, but put them through the \emph{keyval} package. % This section was written by David Carlisle. -% \begin{macrocode} -\def\ProcessOptionsWithKV#1{% - \let\@tempc\relax - \let\Hy@tempa\@empty -% \end{macrocode} -% Add any global options that are known to KV to the start of the list -% being built in |\Hy@tempa| and mark them used (by removing them from -% the unused option list). -% \begin{macrocode} - \@for\CurrentOption:=\@classoptionslist\do{% - \@ifundefined{KV@#1@\CurrentOption}% - {}% - {% - \edef\Hy@tempa{\Hy@tempa,\CurrentOption,}% - \@expandtwoargs\@removeelement\CurrentOption - \@unusedoptionlist\@unusedoptionlist - }% - }% -% \end{macrocode} % -% Now stick the package options at the end of the list and wrap in a call -% to |\setkeys|. Can simply use |\edef|, normally KV takes care to avoid -% expansion, but the package system has already fully expanded the package -% option list before passing it to the package, so no more harm can occur -% here. +% Package kvoptions is used for processing options that are +% given as key value pairs. The package provides +% |\ProcessKeyvalOptions|, formerly known as +% |\ProcessOptionsWithKV|. % \begin{macrocode} - \edef\Hy@tempa{% - \noexpand\setkeys{#1}{% - \Hy@tempa\@ptionlist{\@currname.\@currext}% - }% - }% -% \end{macrocode} -% -% Do it. -% \begin{macrocode} - \Hy@tempa -} +\RequirePackage{kvoptions} % \end{macrocode} % % Add option |tex4ht| if package |tex4ht| is loaded. @@ -3759,7 +4176,7 @@ % % \begin{macrocode} \let\ReadBookmarks\relax -\ProcessOptionsWithKV{Hyp} +\ProcessKeyvalOptions{Hyp} % \end{macrocode} % % After processing options. @@ -3816,7 +4233,7 @@ \let\HyPsd@InitUnicode\@undefined % \end{macrocode} % -% \subsubsection{Patch for babel's +% \subsection{Patch for babel's % \texorpdfstring{\cs{texttilde}}{\\texttilde}} % Babel does not define \cmd{\texttilde} in NFSS2 manner, % so the NFSS2 definitions of PD1 or PU encoding is not @@ -3920,7 +4337,7 @@ \fi \fi \else - \ifcase\pdfoutput + \ifnum\pdfoutput<1 % \let\Hy@driver\Hy@defaultdriver \else \def\Hy@driver{hpdftex}% @@ -3929,6 +4346,32 @@ \Hy@breaklinkstrue \fi \fi + \ifx\Hy@driver\Hy@defaultdriver + \def\Hy@temp{hdvips}% + \ifx\Hy@temp\Hy@driver + \def\Hy@raisedlink{}% + \def\XR@ext{pdf}% + \fi + \def\Hy@temp{hdvipdfm}% + \ifx\Hy@temp\Hy@driver + \def\XR@ext{pdf}% + \Hy@breaklinkstrue + \fi + \def\Hy@temp{hdviwind}% + \ifx\Hy@temp\Hy@driver + \setkeys{Hyp}{colorlinks}% + \PassOptionsToPackage{dviwindo}{color}% + \fi + \def\Hy@temp{hdvipson}% + \ifx\Hy@temp\Hy@driver + \def\XR@ext{pdf}% + \def\Hy@raisedlink{}% + \fi + \def\Hy@temp{textures}% + \ifx\Hy@temp\Hy@driver + \def\XR@ext{pdf}% + \fi + \fi \typeout{*hyperref using default driver \Hy@driver*}% \else \typeout{*hyperref using driver \Hy@driver*}% @@ -3991,11 +4434,25 @@ \Hy@DisableOption{bookmarks} % \end{macrocode} % +% |\Hy@colorlink| expects a macro as argument. It contains +% the color specification. % \begin{macrocode} \AtBeginDocument{% \ifHy@colorlinks \ifHy@typexml\else\RequirePackage{color}\fi - \def\Hy@colorlink#1{\begingroup\color{#1}}% + \def\Hy@colorlink#1{% + \begingroup + \expandafter\Hy@colorscan\expandafter#1#1\@nil% + }% + \def\Hy@colorscan#1{% + \@ifnextchar[% ] + {% + \Hy@@colorscan + }{% + \expandafter\color\expandafter#1\@car{}% + }% + }% + \def\Hy@@colorscan#1\@nil{\color#1}% \def\Hy@endcolorlink{\endgroup}% \Hy@Info{Link coloring ON}% \else @@ -4077,6 +4534,7 @@ \catcode`\%\active \catcode`\#\active \catcode`\_\active + \catcode`\$\active \gdef\hyper@normalise{ \begingroup \catcode`\^^M\active @@ -4087,6 +4545,7 @@ \catcode`\#\active \def#{\hyper@hash} \def\#{\hyper@hash} + \@makeother\& \edef\textunderscore{\string_} \let\_\textunderscore \catcode`\_\active @@ -4094,6 +4553,8 @@ \let~\hyper@tilde \let\~\hyper@tilde \let\textasciitilde\hyper@tilde + \let\\\@backslashchar + \edef${\string$} \ifx\@safe@activestrue\@undefined\else\@safe@activestrue\fi \hyper@n@rmalise } @@ -4226,8 +4687,10 @@ \def\label@hyperdef[#1]#2#3#4{% label name, category, name, % anchor text \@bsphack - \protected@write\@auxout{}% - {\string\newlabel{#1}{{}{}{}\##2.#3}}% + \if@filesw + \protected@write\@auxout{}% + {\string\newlabel{#1}{{}{}{}\##2.#3}}% + \fi \@esphack \ifHy@nesting \hyper@@anchor{#2.#3}{#4}% @@ -4330,7 +4793,7 @@ % \end{macrocode} % otherwise its a URL % \begin{macrocode} - \hyper@linkurl{#3}{#7\ifx\\#2\\\else\##2\fi}% + \hyper@linkurl{#3}{#7\ifx\\#2\\\else\hyper@hash#2\fi}% \fi \fi \fi @@ -4340,7 +4803,7 @@ % By default, turn |run:| into |file:| % \begin{macrocode} \def\@hyper@launch run:#1\\#2#3{% filename, anchor text, linkname - \hyper@linkurl{#2}{\Hy@linkfileprefix#1\ifx\\#3\\\else\##3\fi}% + \hyper@linkurl{#2}{\Hy@linkfileprefix#1\ifx\\#3\\\else\hyper@hash#3\fi}% } % \end{macrocode} % D P Story <story@uakron.edu> pointed out that relative paths @@ -4359,10 +4822,10 @@ \else \ifx\@baseurl\@empty \hyper@linkurl{#2}{% - \Hy@linkfileprefix\use@file\ifx\\#3\\\else\##3\fi + \Hy@linkfileprefix\use@file\ifx\\#3\\\else\hyper@hash#3\fi }% \else - \hyper@linkurl{#2}{\use@file\ifx\\#3\\\else\##3\fi}% + \hyper@linkurl{#2}{\use@file\ifx\\#3\\\else\hyper@hash#3\fi}% \fi \fi } @@ -4496,8 +4959,9 @@ \csname Form@#2\ifx\relax#1\relax true\else#1\fi\endcsname } \define@key{Form}{action}{% - \def\Form@action{#1}% + \hyper@normalise\Hy@DefFormAction{#1}% } +\def\Hy@DefFormAction{\def\Form@action} \def\enc@@html{html} \define@key{Form}{encoding}{% \def\Hy@tempa{#1}% @@ -4917,12 +5381,12 @@ % to cope with the extra arguments. % \begin{macrocode} \if@filesw - \ifHy@typexml - \immediate\closeout\@mainaux - \immediate\openout\@mainaux\jobname.aux - \immediate\write\@auxout{<relaxxml>\relax}% - \fi - \immediate\write\@auxout{% + \ifHy@typexml + \immediate\closeout\@mainaux + \immediate\openout\@mainaux\jobname.aux + \immediate\write\@auxout{<relaxxml>\relax}% + \fi + \immediate\write\@auxout{% % \end{macrocode} % % \begin{macrocode} @@ -5298,12 +5762,13 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\HyPL@Useless} -% The |/PageLabels| entry does not make sense, -% if the absolute page numbers and the page labels are the -% same. Then \cmd{\HyPL@Labels} has the meaning of \cmd{\HyPL@Useless}. -% \begin{macrocode} +% \begin{macro}{\HyPL@Useless} +% The |/PageLabels| entry does not make sense, +% if the absolute page numbers and the page labels are the +% same. Then \cmd{\HyPL@Labels} has the meaning of \cmd{\HyPL@Useless}. +% \begin{macrocode} \def\HyPL@Useless{0 << /S /D >> }% + \@onelevel@sanitize\HyPL@Useless % \end{macrocode} % \end{macro} % @@ -5313,6 +5778,7 @@ % driver files. % \begin{macrocode} \def\HyPL@SetPageLabels{% + \@onelevel@sanitize\HyPL@Labels \ifx\HyPL@Labels\@empty \else \ifx\HyPL@Labels\HyPL@Useless @@ -5321,8 +5787,8 @@ \fi \fi } -% \end{macrocode} -% \end{macro} +% \end{macrocode} +% \end{macro} % % \begin{macro}{\HyPL@EveryPage} % Without option `pdfpagelabels' we need a dummy for @@ -5732,8 +6198,7 @@ \ifHy@plainpages \def\Hy@temp{\arabic{page}}% \else - \let\textlatin\@firstofone - \edef\Hy@temp{\thepage}% + \pdfstringdef\Hy@temp{\thepage}% \fi \else \def\Hy@temp{\the\Hy@pagecounter}% @@ -5767,72 +6232,16 @@ % % \section{Package ifthen support} % -% \begin{macro}{\hypergetpageref} -% Package ifthen's \cmd{\isodd} does not work with -% \cmd{\pageref} because of the extra link and the -% star form. Therefore we need an expandable variant: -% \begin{macrocode} -\newcommand*{\hypergetpageref}[1]{% - \expandafter\Hy@getpageref\csname r@#1\endcsname{#1}% -} -\def\Hy@getpageref#1#2{% - \ifx#1\relax - 0% - \protect\G@refundefinedtrue - \@latex@warning{Reference `#2' on page \thepage\space - undefined% - }% - \else - \expandafter\Hy@GetSecondArg#1\@nil - \fi -} -\long\def\Hy@GetSecondArg#1#2#3\@nil{#2} -% \end{macrocode} -% \end{macro} +% Since version 6.75a this is done in package nameref. % -% \begin{macro}{\hypergetref} -% The corresponding macro of \cmd{\hypergetpageref} is -% \cmd{\hypergetref}: +% For compatibility \cmd{\hypergetref} and +% \cmd{\hypergetpageref} are still provided. +% But they do not generate warnings, if the reference is +% undefined. % \begin{macrocode} -\newcommand*{\hypergetref}[1]{% - \expandafter\Hy@getref\csname r@#1\endcsname{#1}% -} -\def\Hy@getref#1#2{% - \ifx#1\relax - ??% - \protect\G@refundefinedtrue - \@latex@warning{Reference `#2' on page \thepage\space - undefined% - }% - \else - \expandafter\@car#1\@nil - \fi -} +\def\hypergetref#1{\getrefbykeydefault{#1}{}{??}} +\def\hypergetpageref#1{\getrefbykeydefault{#1}{page}{0}} % \end{macrocode} -% \end{macro} -% -% \begin{macro}{\Hy@TE@begingroup} -% Unfortunately there is no hook in \cmd{\ifthenelse} in order -% to provide expandable versions without link of \cmd{\ref} -% and \cmd{\pageref}. As possible target I could only find -% \cmd{\begingroup}: -% \begin{macrocode} -\@ifpackageloaded{ifthen}{% - \let\HyOrg@ifthenelse\ifthenelse - \def\ifthenelse{% - \let\begingroup\Hy@TE@begingroup - \HyOrg@ifthenelse - }% - \let\HyOrg@begingroup\begingroup - \def\Hy@TE@begingroup{% - \let\begingroup\HyOrg@begingroup - \begingroup - \let\ref\hypergetref - \let\pageref\hypergetpageref - }% -}{} -% \end{macrocode} -% \end{macro} % % \section{Package titlesec and titletoc support} % @@ -5870,12 +6279,13 @@ % Package nameref uses five arguments for the ref system. % Fix provided by Felix Neubauer (\Email{felix.neubauer@gmx.net}). % \begin{macrocode} +\def\Hy@varioref@undefined{{???}{??}{}{}{}} \@ifpackageloaded{varioref}{% \def\vref@pagenum#1#2{% \@ifundefined{r@#2}{% - \@namedef{r@#2}{{??}{??}{}{}{}}% + \expandafter\let\csname r@#2\endcsname\Hy@varioref@undefined }{}% - \edef#1{\hypergetpageref{#2}}% + \edef#1{\getpagerefnumber{#2}}% }% }{} % \end{macrocode} @@ -6292,6 +6702,7 @@ } \long\def\@caption#1[#2]#3{% \hyper@makecurrent{\@captype}% + \def\@currentlabelname{#2}% \par\addcontentsline{\csname ext@#1\endcsname}{#1}{% \protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}% }% @@ -6331,7 +6742,10 @@ \renewcommand{\float@makebox}[1]{% \HyOrg@float@makebox{% #1\relax - \hyper@@anchor{\@currentHref}{\relax}% + \begingroup + \hyper@makecurrent{\@captype}% + \hyper@@anchor{\@currentHref}{\relax}% + \endgroup }% }% }{} @@ -6420,7 +6834,6 @@ }% \endgroup % \end{macrocode} -% \begin{macrocode} % |\@BIBLABEL| is working around a `feature' of Rev\TeX. % \begin{macrocode} \providecommand*{\@BIBLABEL}{\@biblabel}% @@ -6601,13 +7014,15 @@ \ifx\@empty\@currentlabel \else \@bsphack - \protected@write\@auxout{}{% - \string\@writefile{brf}{% - \string\backcite{#1}{% - {\thepage}{\@currentlabel}{\@currentHref}% + \if@filesw + \protected@write\@auxout{}{% + \string\@writefile{brf}{% + \string\backcite{#1}{% + {\thepage}{\@currentlabel}{\@currentHref}% + }% }% }% - }% + \fi \@esphack \fi \fi @@ -6734,9 +7149,7 @@ \global\let\@begindvi\Hy@begindvi } \def\Hy@begindvi{% - \ifHy@pageanchor - \@hyperfixhead - \fi + \@hyperfixhead \HyPL@EveryPage } \def\pagenumbering#1{% @@ -6773,20 +7186,23 @@ % \begin{macrocode} \def\@hyperfixhead{% \Hy@DistillerDestFix - \ifHy@hypertexnames - \ifHy@plainpages - \gdef\Hy@TempPageAnchor{\hyper@@anchor{page.\the\c@page}}% + \ifHy@pageanchor + \ifHy@hypertexnames + \ifHy@plainpages + \gdef\Hy@TempPageAnchor{\hyper@@anchor{page.\the\c@page}}% + \else + \begingroup + \let\@number\@firstofone + \pdfstringdef\@the@H@page{\thepage}% + \endgroup + \gdef\Hy@TempPageAnchor{\hyper@@anchor{page.\@the@H@page}}% + \fi \else - \begingroup - \let\@number\@firstofone - \let\textlatin\@firstofone - \xdef\@the@H@page{\thepage}% - \endgroup - \gdef\Hy@TempPageAnchor{\hyper@@anchor{page.\@the@H@page}}% + \Hy@GlobalStepCount\Hy@pagecounter + \gdef\Hy@TempPageAnchor{\hyper@@anchor{page.\the\Hy@pagecounter}}% \fi \else - \Hy@GlobalStepCount\Hy@pagecounter - \gdef\Hy@TempPageAnchor{\hyper@@anchor{page.\the\Hy@pagecounter}}% + \let\Hy@TempPageAnchor\@empty \fi \let\H@old@thehead\@thehead \if^\@thehead^% @@ -6879,9 +7295,11 @@ {\Hy@toclevel}% {#1}% \ifHy@verbose + \def\Hy@tempa{#3}% + \@onelevel@sanitize\Hy@tempa \typeout{pdftex: bookmark at \the\inputlineno: {\csname the#2\endcsname} - {#3} + {\Hy@tempa} {\@currentHref}% {\Hy@toclevel}% {#1}% @@ -7112,22 +7530,24 @@ \else \def\@wrindex#1{\@@wrindex#1||\\} \def\@@wrindex#1|#2|#3\\{% - \ifx\\#2\\% - \protected@write\@indexfile{}{% - \string\indexentry{#1|hyperpage}{\thepage}% - }% - \else - \def\Hy@temp@A{#2}% - \ifcase0\ifx\Hy@temp@A\HyInd@ParenLeft 1\fi - \ifx\Hy@temp@A\HyInd@ParenRight 1\fi - \relax + \if@filesw + \ifx\\#2\\% \protected@write\@indexfile{}{% - \string\indexentry{#1|#2}{\thepage}% + \string\indexentry{#1|hyperpage}{\thepage}% }% \else - \protected@write\@indexfile{}{% - \string\indexentry{#1|#2hyperpage}{\thepage}% - }% + \def\Hy@temp@A{#2}% + \ifcase0\ifx\Hy@temp@A\HyInd@ParenLeft 1\fi + \ifx\Hy@temp@A\HyInd@ParenRight 1\fi + \relax + \protected@write\@indexfile{}{% + \string\indexentry{#1|#2}{\thepage}% + }% + \else + \protected@write\@indexfile{}{% + \string\indexentry{#1|#2hyperpage}{\thepage}% + }% + \fi \fi \fi \endgroup @@ -7479,19 +7899,19 @@ \@safe@activesfalse } \def\auto@setref#1#2#3{% csname, extract group, refname - \ifx#1\relax - \protect\G@refundefinedtrue - \nfss@text{\reset@font\bfseries ??}% - \@latex@warning{% - Reference `#3' on page \thepage \space undefined% - }% - \else + \ifcase 0\ifx#1\relax 1\fi\ifx#1\Hy@varioref@undefined 1\fi\relax \edef\@thisref{\expandafter\@fourthoffive#1\@empty\@empty}% \expandafter\test@reftype\@thisref\\% \hyper@@link {\expandafter\@fifthoffive#1}% {\expandafter\@fourthoffive#1\@empty\@empty}% {\@currentHtag\expandafter#2#1\@empty\@empty\null}% + \else + \protect\G@refundefinedtrue + \nfss@text{\reset@font\bfseries ??}% + \@latex@warning{% + Reference `#3' on page \thepage \space undefined% + }% \fi } \def\test@reftype#1.#2\\{% @@ -7534,12 +7954,81 @@ % % \begin{macrocode} %</package> -%<*pdftex> % \end{macrocode} +% % \section{Configuration files} +% +% \subsection{PS/PDF strings} +% +% Some drivers write PS or PDF strings. These strings are delimited +% by parentheses, therefore a lonely unmatched parenthesis must be +% avoided to avoid PS or PDF syntax errors. Also the backslash character +% itself has to be protected. +% +% \begin{macro}{\Hy@pstringdef} +% Therefore such strings should be passed through |\Hy@pstringdef|. +% The first argument holds a macro for the result, the second +% argument is the string that needs protecting. +% Since version 1.30.0 pdf\TeX\ offers \cs{pdfescapestring}. +% \begin{macrocode} +%<*pdftex|dvipdfm|vtex|pdfmarkbase|dviwindo> +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname pdfescapestring\endcsname\relax + \begingroup + \catcode`\|=0 % + \@makeother\\% + |@firstofone{|endgroup + |def|Hy@pstringdef#1#2{% + |edef#1{#2}% + |@onelevel@sanitize#1% + |edef#1{|expandafter|Hy@ExchangeBackslash#1\|@nil}% + |edef#1{|expandafter|Hy@ExchangeLeftParenthesis#1(|@nil}% + |edef#1{|expandafter|Hy@ExchangeRightParenthesis#1)|@nil}% + }% + |def|Hy@ExchangeBackslash#1\#2|@nil{% + #1% + |ifx|\#2|\% + |else + \\% + |Hy@ReturnAfterFi{% + |Hy@ExchangeBackslash#2|@nil + }% + |fi + }% + } + \def\Hy@ExchangeLeftParenthesis#1(#2\@nil{% + #1% + \ifx\\#2\\% + \else + \@backslashchar(% + \Hy@ReturnAfterFi{% + \Hy@ExchangeLeftParenthesis#2\@nil + }% + \fi + } + \def\Hy@ExchangeRightParenthesis#1)#2\@nil{% + #1% + \ifx\\#2\\% + \else + \@backslashchar)% + \Hy@ReturnAfterFi{% + \Hy@ExchangeRightParenthesis#2\@nil + }% + \fi + } +\else + \def\Hy@pstringdef#1#2{% + \edef#1{\pdfescapestring{#2}}% + }% +\fi +%</pdftex|dvipdfm|vtex|pdfmarkbase|dviwindo> +% \end{macrocode} +% \end{macro} +% % \subsection{pdftex} % % \begin{macrocode} +%<*pdftex> % \end{macrocode} % This driver is for Han The Thanh's \TeX{} variant % which produces PDF directly. This has new primitives @@ -7571,11 +8060,21 @@ \typeout{pdftex: define anchor at line \the\inputlineno: #1}% \fi \Hy@SaveLastskip - \pdfdest name {#1}\@pdfview + \Hy@pstringdef\Hy@pstringDest{#1}% + \Hy@DestName\Hy@pstringDest\@pdfview \Hy@RestoreLastskip } \let\pdf@endanchor\@empty % \end{macrocode} +% \begin{macro}{\Hy@DestName} +% Wrap the call of \verb|\pdfdest name| in \cs{Hy@DestName}. +% Then it can easier be catched by package |hypdestopt|. +% \begin{macrocode} +\def\Hy@DestName#1#2{% + \pdfdest name{#1}#2\relax +} +% \end{macrocode} +% \end{macro} % % Now the links; the interesting part here is the set of attributes % which define how the link looks. We probably want to add a border @@ -7584,21 +8083,25 @@ % add an interface at some point. % \begin{macrocode} \providecommand\@pdfborder{0 0 1} +\providecommand*\@pdfborderstyle{} \def\Hy@undefinedname{UNDEFINED} \def\find@pdflink#1#2{% \leavevmode \protected@edef\Hy@testname{#2}% \ifx\Hy@testname\@empty \let\Hy@testname\Hy@undefinedname + \else + \Hy@pstringdef\Hy@testname\Hy@testname \fi - \pdfstartlink - attr{% - /Border[\@pdfborder]% - /H\@pdfhighlight - /C[\CurrentBorderColor]% - }% - goto name {\Hy@testname}% - \Hy@colorlink{\csname @#1color\endcsname}% + \Hy@StartlinkName{% + \Hy@setpdfborder + /H\@pdfhighlight + /C[\CurrentBorderColor]% + }\Hy@testname + \expandafter\Hy@colorlink\csname @#1color\endcsname +} +\def\Hy@StartlinkName#1#2{% + \pdfstartlink attr{#1}goto name{#2}\relax } \def\close@pdflink{\Hy@endcolorlink\pdfendlink} \def\hyper@anchor#1{\new@pdflink{#1}\anchor@spot\pdf@endanchor} @@ -7614,12 +8117,13 @@ } \def\CurrentBorderColor{\@linkbordercolor} \def\hyper@linkurl#1#2{% - \bgroup + \begingroup + \Hy@pstringdef\Hy@pstringURI{#2}% \hyper@chars \leavevmode \pdfstartlink attr{% - /Border[\@pdfborder]% + \Hy@setpdfborder /H\@pdfhighlight /C[\@urlbordercolor]% }% @@ -7628,28 +8132,31 @@ /A<<% /Type/Action% /S/URI% - /URI(#2)% + /URI(\Hy@pstringURI)% >>% }% - \Hy@colorlink{\@urlcolor}#1% + \relax + \Hy@colorlink\@urlcolor#1% \close@pdflink - \egroup + \endgroup } \def\hyper@linkfile#1#2#3{% anchor text, filename, linkname - \bgroup + \begingroup + \Hy@pstringdef\Hy@pstringF{#2}% + \Hy@pstringdef\Hy@pstringD{#3}% \leavevmode \pdfstartlink attr{% - /Border[\@pdfborder]% + \Hy@setpdfborder /H\@pdfhighlight /C[\@filebordercolor]% }% user {% /Subtype/Link% /A<<% - /F(#2)% + /F(\Hy@pstringF)% /S/GoToR% - \ifHy@newwindow /NewWindow true \fi + \ifHy@newwindow /NewWindow true\fi % \end{macrocode} % If |#3| is empty, page 0; if its a number, Page number, otherwise % a named destination. @@ -7667,66 +8174,81 @@ \ifx\\#3\\% /D[0 \@pdfstartview]% \else - /D(#3)% + /D(\Hy@pstringD)% \fi >>% }% - \Hy@colorlink{\@filecolor}#1% + \relax + \Hy@colorlink\@filecolor#1% \close@pdflink - \egroup + \endgroup } \def\@hyper@launch run:#1\\#2#3{% filename, anchor text linkname - \bgroup + \begingroup + \Hy@pstringdef\Hy@pstringF{#1}% + \Hy@pstringdef\Hy@pstringP{#3}% \leavevmode \pdfstartlink attr{% - /Border[\@pdfborder]% + \Hy@setpdfborder /H\@pdfhighlight /C[\@runbordercolor]% }% user {% /Subtype/Link% /A<<% - /F(#1)% + /F(\Hy@pstringF)% /S/Launch% - \ifHy@newwindow /NewWindow true \fi + \ifHy@newwindow /NewWindow true\fi \ifx\\#3\\% \else - /Win<</P(#3)/F(#1)>>% + /Win<</P(\Hy@pstringP)/F(\Hy@pstringF)>>% \fi >>% }% - \Hy@colorlink{\@filecolor}#2% + \relax + \Hy@colorlink\@filecolor#2% \close@pdflink - \egroup + \endgroup } % \end{macrocode} % \begin{macro}{\@pdfproducer} % \begin{macrocode} -\def\@pdfproducer{pdfTeX} -\ifx\eTeXversion\@undefined -\else - \ifx\eTeXversion\relax +\ifx\@pdfproducer\relax + \def\@pdfproducer{pdfTeX} + \ifx\eTeXversion\@undefined \else - \ifnum\eTeXversion>0 % - \def\@pdfproducer{pdfeTeX} + \ifx\eTeXversion\relax + \else + \ifnum\eTeXversion>0 % + \def\@pdfproducer{pdfeTeX} + \fi \fi \fi -\fi -\ifx\pdftexversion\@undefined -\else - \ifnum\pdftexversion<100 % - \edef\@pdfproducer{% - \@pdfproducer - \the\pdftexversion.\pdftexrevision - } + \ifx\pdftexversion\@undefined \else - \edef\@pdfproducer{% - \@pdfproducer-% - \expandafter\@car\the\pdftexversion\@empty\@nil.% - \expandafter\@cdr\the\pdftexversion\@empty\@nil - \pdftexrevision - } + \ifnum\pdftexversion<100 % + \edef\@pdfproducer{% + \@pdfproducer + \the\pdftexversion.\pdftexrevision + } + \else + \ifnum\pdftexversion<130 % + \edef\@pdfproducer{% + \@pdfproducer-% + \expandafter\@car\the\pdftexversion\@empty\@nil.% + \expandafter\@cdr\the\pdftexversion\@empty\@nil + \pdftexrevision + } + \else + \edef\@pdfproducer{% + \@pdfproducer-% + \expandafter\@car\the\pdftexversion\@empty\@nil.% + \expandafter\@cdr\the\pdftexversion\@empty\@nil.% + \pdftexrevision + }% + \fi + \fi \fi \fi % \end{macrocode} @@ -7747,11 +8269,12 @@ }% \process@me \fi + \Hy@pstringdef\Hy@pstringB{\@baseurl}% \pdfcatalog{% - /PageMode \@pdfpagemode + /PageMode\@pdfpagemode \ifx\@baseurl\@empty \else - /URI<</Base(\@baseurl)>> + /URI<</Base(\Hy@pstringB)>>% \fi }% \ifx\@pdfstartview\@empty @@ -7777,7 +8300,7 @@ \fi \ifx\pdf@pagelayout\@empty \else - /PageLayout/\pdf@pagelayout\space + /PageLayout/\pdf@pagelayout \fi }% } @@ -7792,13 +8315,26 @@ /Title(\@pdftitle)% /Subject(\@pdfsubject)% /Creator(\@pdfcreator)% - /Producer(\@pdfproducer)% + \ifx\@pdfcreationdate\@empty + \else + /CreationDate(\@pdfcreationdate)% + \fi + \ifx\@pdfmoddate\@empty + \else + /ModDate(\@pdfmoddate)% + \fi + \ifx\@pdfproducer\relax + \else + /Producer(\@pdfproducer)% + \fi /Keywords(\@pdfkeywords)% }% \Hy@DisableOption{pdfauthor}% \Hy@DisableOption{pdftitle}% \Hy@DisableOption{pdfsubject}% \Hy@DisableOption{pdfcreator}% + \Hy@DisableOption{pdfcreationdate}% + \Hy@DisableOption{pdfmoddate}% \Hy@DisableOption{pdfproducer}% \Hy@DisableOption{pdfkeywords}% } @@ -7995,17 +8531,18 @@ \leavevmode \pdfstartlink attr{% - /Border [\@pdfborder] - /H \@pdfhighlight\space - /C [\@menubordercolor]% + \Hy@setpdfborder + /H \@pdfhighlight + /C[\@menubordercolor]% }% user{ /Subtype /Link - /A << - /S /Named /N /#1 - >> + /A<<% + /S/Named/N/#1% + >>% }% - \Hy@colorlink{\@menucolor}#2\close@pdflink + \relax + \Hy@colorlink\@menucolor#2\close@pdflink } %</pdftex> %<*hypertex> @@ -8066,7 +8603,7 @@ \special{html:<a name=\hyper@quote #1\hyper@quote>}% \endgroup \Hy@activeanchortrue - \Hy@colorlink{\@anchorcolor}\anchor@spot\Hy@endcolorlink + \Hy@colorlink\@anchorcolor\anchor@spot\Hy@endcolorlink \special{html:</a>}% \Hy@activeanchorfalse \Hy@RestoreLastskip @@ -8086,7 +8623,7 @@ } \def\@urltype{url} \def\hyper@linkstart#1#2{% - \Hy@colorlink{\csname @#1color\endcsname}% + \expandafter\Hy@colorlink\csname @#1color\endcsname \def\Hy@tempa{#1}% \ifx\Hy@tempa\@urltype \special{html:<a href=\hyper@quote#2\hyper@quote>}% @@ -8118,7 +8655,7 @@ \hyper@chars \special{html:<a href=\hyper@quote#2\hyper@quote>}% }% - \Hy@colorlink{\@urlcolor}#1% + \Hy@colorlink\@urlcolor#1% \@linkdim\ht\@tempboxa % \end{macrocode} % Because of the interaction with the dvihps processor, we have to subtract a @@ -8133,7 +8670,7 @@ \begingroup \hyper@chars \special{html:<a href=\hyper@quote#2\hyper@quote>}% - \Hy@colorlink{\@urlcolor}#1% + \Hy@colorlink\@urlcolor#1% \special{html:</a>}% \Hy@endcolorlink \endgroup @@ -8180,7 +8717,7 @@ \special{mark: #1}% \endgroup \Hy@activeanchortrue - \Hy@colorlink{\@anchorcolor}\anchor@spot\Hy@endcolorlink + \Hy@colorlink\@anchorcolor\anchor@spot\Hy@endcolorlink \Hy@activeanchorfalse \Hy@RestoreLastskip } @@ -8194,7 +8731,7 @@ \Hy@RestoreLastskip } \def\hyper@linkstart#1#2{% - \Hy@colorlink{\csname @#1color\endcsname}% + \expandafter\Hy@colorlink\csname @#1color\endcsname \special{button: 10000000 \number\baselineskip\space @@ -8215,7 +8752,7 @@ \number\ht\@tempboxa\space #2% }% - \Hy@colorlink{\csname @#1color\endcsname}#3% + \expandafter\Hy@colorlink\csname @#1color\endcsname#3% \Hy@endcolorlink }% \@linkdim\ht\@tempboxa @@ -8227,7 +8764,7 @@ \number\ht\@tempboxa\space #2% }% - \Hy@colorlink{\csname @#1color\endcsname}#3\Hy@endcolorlink + \exandafter\Hy@colorlink\csname @#1color\endcsname#3\Hy@endcolorlink \fi } \def\hyper@linkurl#1#2{% @@ -8244,7 +8781,7 @@ launch: \wwwbrowser\space #2% }% - \Hy@colorlink{\@urlcolor}#1\Hy@endcolorlink + \Hy@colorlink\@urlcolor#1\Hy@endcolorlink }% \@linkdim\ht\@tempboxa \advance\@linkdim by -6.5\p@ @@ -8256,7 +8793,7 @@ launch: \wwwbrowser\space #2% }% - \Hy@colorlink{\@urlcolor}#1\Hy@endcolorlink + \Hy@colorlink\@urlcolor#1\Hy@endcolorlink \fi \endgroup } @@ -8274,7 +8811,7 @@ #3, file: #2% }% - \Hy@colorlink{\@filecolor}#1\Hy@endcolorlink + \Hy@colorlink\@filecolor#1\Hy@endcolorlink }% \@linkdim\ht\@tempboxa \advance\@linkdim by -6.5\p@ @@ -8286,23 +8823,38 @@ #3, file: #2 }% - \Hy@colorlink{\@filecolor}#1\Hy@endcolorlink + \Hy@colorlink\@filecolor#1\Hy@endcolorlink \fi \endgroup } -\def\@pdfproducer{dviwindo + Distiller} +\ifx\@pdfproducer\relax + \def\@pdfproducer{dviwindo + Distiller} +\fi \def\PDF@FinishDoc{% \Hy@UseMaketitleInfos \special{PDF: Keywords \@pdfkeywords}% \special{PDF: Title \@pdftitle}% \special{PDF: Creator \@pdfcreator}% + \ifx\@pdfcreationdate\@empty + \else + \special{PDF: CreationDate \@pdfcreationdate}% + \fi + \ifx\@pdfmoddate\@empty + \else + \special{PDF: ModDate \@pdfmoddate}% + \fi \special{PDF: Author \@pdfauthor}% - \special{PDF: Producer \@pdfproducer}% + \ifx\@pdfproducer\relax + \else + \special{PDF: Producer \@pdfproducer}% + \fi \special{PDF: Subject \@pdfsubject}% \Hy@DisableOption{pdfauthor}% \Hy@DisableOption{pdftitle}% \Hy@DisableOption{pdfsubject}% \Hy@DisableOption{pdfcreator}% + \Hy@DisableOption{pdfcreationdate}% + \Hy@disableOption{pdfmoddate}% \Hy@DisableOption{pdfproducer}% \Hy@DisableOption{pdfkeywords}% } @@ -8360,11 +8912,13 @@ \def\@pdfm@mark#1{\special{pdf:#1}} \def\@pdfm@dest#1{% \Hy@SaveLastskip - \@pdfm@mark{dest (#1) [@thispage /\@pdfview\space @xpos @ypos]}% + \Hy@pstringdef\Hy@pstringDest{#1}% + \@pdfm@mark{dest (\Hy@pstringDest) [@thispage /\@pdfview\space @xpos @ypos]}% \Hy@RestoreLastskip } \providecommand\@pdfview{XYZ} \providecommand\@pdfborder{0 0 1} +\providecommand*\@pdfborderstyle{} \def\hyper@anchor#1{% \@pdfm@dest{#1}% } @@ -8380,12 +8934,14 @@ \protected@edef\Hy@testname{#2}% \ifx\Hy@testname\@empty \let\Hy@testname\Hy@undefinedname + \else + \Hy@pstringdef\Hy@testname\Hy@testname \fi \@pdfm@mark{% bann << /Type /Annot /Subtype /Link - /Border [\@pdfborder] + \Hy@setpdfborder /C [\csname @#1bordercolor\endcsname] /A << /S /GoTo @@ -8393,7 +8949,7 @@ >> >> }% - \Hy@colorlink{\csname @#1color\endcsname}% + \expandafter\Hy@colorlink\csname @#1color\endcsname } \def\hyper@linkend{% \Hy@endcolorlink @@ -8403,58 +8959,63 @@ \hyper@linkstart{#1}{#2}#3\hyper@linkend } \def\hyper@linkfile#1#2#3{% + \Hy@pstringdef\Hy@pstringF{#2}% + \Hy@pstringdef\Hy@pstringD{#3}% \@pdfm@mark{% bann << /Type /Annot /Subtype /Link - /Border [\@pdfborder] + \Hy@setpdfborder /C [\@filebordercolor] /A << /S /GoToR - /F (#2) - /D \ifx\\#3\\[0 \@pdfstartview]\else(#3)\fi\space + /F (\Hy@pstringF) + /D \ifx\\#3\\[0 \@pdfstartview]\else(\Hy@pstringD)\fi\space \ifHy@newwindow /NewWindow true \fi >> >>% }% - \Hy@colorlink{\@filecolor}#1\Hy@endcolorlink + \Hy@colorlink\@filecolor#1\Hy@endcolorlink \@pdfm@mark{eann}% } \def\@hyper@launch run:#1\\#2#3{% filename, anchor text linkname + \Hy@pstringdef\Hy@pstringF{#1}% + \Hy@pstringdef\Hy@pstringP{#3}% \@pdfm@mark{% bann << /Type /Annot /Subtype /Link - /Border [\@pdfborder] + \Hy@setpdfborder /C [\@filebordercolor] /A << /S /Launch - /F (#1) + /F (\Hy@pstringF) \ifHy@newwindow /NewWindow true \fi \ifx\\#3\\% \else - /Win << /P (#3) /F (#1) >> + /Win << /P (\Hy@pstringP) /F (\Hy@pstringF) >> \fi >> >>% }% - \Hy@colorlink{\@filecolor}#2\Hy@endcolorlink + \Hy@colorlink\@filecolor#2\Hy@endcolorlink \@pdfm@mark{eann}% } \def\hyper@linkurl#1#2{% + \Hy@pstringdef\Hy@pstringURI{#2}% \@pdfm@mark{% bann << /Type /Annot /Subtype /Link - /Border [\@pdfborder] + \Hy@setpdfborder /C [\@urlbordercolor] /A << /S /URI - /URI (#2) + /URI (\Hy@pstringURI) >> >>% }% - \Hy@colorlink{\@urlcolor}#1\Hy@endcolorlink + \Hy@colorlink\@urlcolor#1\Hy@endcolorlink \@pdfm@mark{eann}% } \def\Acrobatmenu#1#2{% @@ -8466,14 +9027,16 @@ /S /Named /N /#1 >> - /Border [\@pdfborder] + \Hy@setpdfborder /C [\@menubordercolor] >>% }% - \Hy@colorlink{\@menucolor}#2\Hy@endcolorlink + \Hy@colorlink\@menucolor#2\Hy@endcolorlink \@pdfm@mark{eann}% } -\def\@pdfproducer{dvipdfm} +\ifx\@pdfproducer\relax + \def\@pdfproducer{dvipdfm} +\fi \def\PDF@FinishDoc{% \Hy@UseMaketitleInfos \@pdfm@mark{% @@ -8481,8 +9044,19 @@ /Title (\@pdftitle) /Subject (\@pdfsubject) /Creator (\@pdfcreator) + \ifx\@pdfcreationdate\@empty + \else + /CreationDate(\@pdfcreationdate) % + \fi + \ifx\@pdfmoddate\@empty + \else + /ModDate(\@pdfmoddate) % + \fi /Author (\@pdfauthor) - /Producer (\@pdfproducer) + \ifx\@pdfproducer\relax + \else + /Producer (\@pdfproducer) + \fi /Keywords (\@pdfkeywords) >>% }% @@ -8490,6 +9064,8 @@ \Hy@DisableOption{pdftitle}% \Hy@DisableOption{pdfsubject}% \Hy@DisableOption{pdfcreator}% + \Hy@DisableOption{pdfcreationdate}% + \Hy@DisableOption{pdfmoddate}% \Hy@DisableOption{pdfproducer}% \Hy@DisableOption{pdfkeywords}% } @@ -8508,6 +9084,7 @@ /NonFullScreenPageMode\@pdfnonfullscreenpagemode \fi }% + \Hy@pstringdef\Hy@pstringB{\@baseurl}% \@pdfm@mark{% docview <<% \ifx\@pdfstartview\@empty @@ -8516,7 +9093,7 @@ \fi \ifx\@baseurl\@empty \else - /URI<</Base(\@baseurl)>>% + /URI<</Base(\Hy@pstringB)>>% \fi /PageMode \@pdfpagemode \ifx\Hy@temp\@empty @@ -8681,7 +9258,8 @@ % Older versions of VTeX require |xyz| in lower case. % \begin{macrocode} \providecommand\@pdfview{xyz} -\providecommand\@pdfborder{0 0 1}% +\providecommand\@pdfborder{0 0 1} +\providecommand*\@pdfborderstyle{} \def\CurrentBorderColor{\@linkbordercolor} \def\hyper@anchor#1{% \Hy@SaveLastskip @@ -8691,7 +9269,7 @@ \special{!aname #1;\@pdfview}% \endgroup \Hy@activeanchortrue - \Hy@colorlink{\@anchorcolor}\anchor@spot\Hy@endcolorlink + \Hy@colorlink\@anchorcolor\anchor@spot\Hy@endcolorlink \Hy@activeanchorfalse \Hy@RestoreLastskip } @@ -8710,13 +9288,14 @@ \def\@urltype{url} \def\Hy@undefinedname{UNDEFINED} \def\hyper@linkstart#1#2{% - \Hy@colorlink{\csname @#1color\endcsname}% + \Hy@pstringdef\Hy@pstringURI{#2}% + \expandafter\Hy@colorlink\csname @#1color\endcsname \edef\CurrentBorderColor{\csname @#1bordercolor\endcsname}% \def\Hy@tempa{#1}% \ifx\Hy@tempa\@urltype \special{!% - aref <u=/Type /Action /S /URI /URI (#2)>;% - a=</Border [\@pdfborder] /C [\CurrentBorderColor]>% + aref <u=/Type /Action /S /URI /URI (\Hy@pstringURI)>;% + a=<\Hy@setpdfborder /C [\CurrentBorderColor]>% }% \else \protected@edef\Hy@testname{#2}% @@ -8725,7 +9304,7 @@ \fi \special{!% aref \Hy@testname;% - a=</Border [\@pdfborder] /C [\CurrentBorderColor]>% + a=<\Hy@setpdfborder /C [\CurrentBorderColor]>% }% \fi } @@ -8739,20 +9318,21 @@ aref <% \ifnum\Hy@VTeXversion>753 \ifHy@newwindow n\fi\fi f=#2>#3;% - a=</Border [\@pdfborder] /C [\@filebordercolor]>% + a=<\Hy@setpdfborder /C [\@filebordercolor]>% }% - \Hy@colorlink{\@filecolor}#1\Hy@endcolorlink + \Hy@colorlink\@filecolor#1\Hy@endcolorlink \special{!endaref}% } \def\hyper@linkurl#1#2{% \begingroup + \Hy@pstringdef\Hy@pstringURI{#2}% \hyper@chars \leavevmode \special{!% - aref <u=/Type /Action /S /URI /URI (#2)>;% - a=</Border [\@pdfborder] /C [\@urlbordercolor]>% + aref <u=/Type /Action /S /URI /URI (\Hy@pstringURI)>;% + a=<\Hy@setpdfborder /C [\@urlbordercolor]>% }% - \Hy@colorlink{\@urlcolor}#1\Hy@endcolorlink + \Hy@colorlink\@urlcolor#1\Hy@endcolorlink \special{!endaref}% \endgroup } @@ -8765,36 +9345,38 @@ \fi \special{!% aref \Hy@testname;% - a=</Border [\@pdfborder] /C [\CurrentBorderColor]>% + a=<\Hy@setpdfborder /C [\CurrentBorderColor]>% }% - \Hy@colorlink{\csname @#1color\endcsname}#3\Hy@endcolorlink + \expandafter\Hy@colorlink\csname @#1color\endcsname#3\Hy@endcolorlink \special{!endaref}% } \def\hyper@image#1#2{% \hyper@linkurl{#2}{#1}% } \def\@hyper@launch run:#1\\#2#3{% + \Hy@pstringdef\Hy@pstringF{#1}% + \Hy@pstringdef\Hy@pstringP{#3}% \leavevmode \special{!aref <u=% /Type /Action /S /Launch - /F (#1) + /F (\Hy@pstringF) \ifHy@newwindow /NewWindow true \fi - \ifx\\#3\\\else /Win << /F (#1) /P (#3) >> \fi% + \ifx\\#3\\\else /Win << /F (\Hy@pstringF) /P (\Hy@pstringP) >> \fi% >;% - a=</Border [\@pdfborder] /C [\@runbordercolor]>% + a=<\Hy@setpdfborder /C [\@runbordercolor]>% }% - \Hy@colorlink{\@filecolor}#2\Hy@endcolorlink + \Hy@colorlink\@filecolor#2\Hy@endcolorlink \special{!endaref}% } \def\Acrobatmenu#1#2{% \leavevmode \special{!% aref <u=/S /Named /N /#1>;% - a=</Border [\@pdfborder] /C [\@menubordercolor]>% + a=<\Hy@setpdfborder /C [\@menubordercolor]>% }% - \Hy@colorlink{\@menucolor}#2\Hy@endcolorlink + \Hy@colorlink\@menucolor#2\Hy@endcolorlink \special{!endaref}% } % \end{macrocode} @@ -9036,34 +9618,36 @@ % 5 & MacOS/X\\ % \end{tabular} % \begin{macrocode} -\def\@pdfproducer{VTeX} -\ifnum\Hy@VTeXversion>\z@ - \count@\VTeXversion - \divide\count@ 100 - \edef\@pdfproducer{\@pdfproducer\space v\the\count@} - \multiply\count@ -100 - \advance\count@\VTeXversion - \edef\@pdfproducer{% - \@pdfproducer - .\ifnum\count@<10 0\fi\the\count@ - \ifx\VTeXOS\@undefined\else - \ifnum\VTeXOS>0 % - \ifnum\VTeXOS<6 % - \space(% - \ifcase\VTeXOS - \or Windows\or Linux\or OS/2\or MacOS\or MacOS/X% +\ifx\@pdfproducer\relax + \def\@pdfproducer{VTeX} + \ifnum\Hy@VTeXversion>\z@ + \count@\VTeXversion + \divide\count@ 100 + \edef\@pdfproducer{\@pdfproducer\space v\the\count@} + \multiply\count@ -100 + \advance\count@\VTeXversion + \edef\@pdfproducer{% + \@pdfproducer + .\ifnum\count@<10 0\fi\the\count@ + \ifx\VTeXOS\@undefined\else + \ifnum\VTeXOS>0 % + \ifnum\VTeXOS<6 % + \space(% + \ifcase\VTeXOS + \or Windows\or Linux\or OS/2\or MacOS\or MacOS/X% + \fi + )% \fi - )% \fi \fi - \fi - ,\space - \ifnum\OpMode=\@ne PDF\else PS\fi - \space backend% - \ifx\gexmode\@undefined\else - \ifnum\gexmode>\z@\space with GeX\fi - \fi - } + ,\space + \ifnum\OpMode=\@ne PDF\else PS\fi + \space backend% + \ifx\gexmode\@undefined\else + \ifnum\gexmode>\z@\space with GeX\fi + \fi + } + \fi \fi % \end{macrocode} % @@ -9124,12 +9708,17 @@ \special{!pdfinfo t=<\@pdftitle>}% \special{!pdfinfo s=<\@pdfsubject>}% \special{!pdfinfo c=<\@pdfcreator>}% - \special{!pdfinfo r=<\@pdfproducer>}% + \ifx\@pdfproducer\relax + \else + \special{!pdfinfo r=<\@pdfproducer>}% + \fi \special{!pdfinfo k=<\@pdfkeywords>}% \Hy@DisableOption{pdfauthor}% \Hy@DisableOption{pdftitle}% \Hy@DisableOption{pdfsubject}% \Hy@DisableOption{pdfcreator}% + \Hy@DisableOption{pdfcreationdate}% + \Hy@DisableOption{pdfmoddate}% \Hy@DisableOption{pdfproducer}% \Hy@DisableOption{pdfkeywords}% } @@ -9232,7 +9821,7 @@ \def\hyper@anchorstart#1{\Hy@activeanchortrue} \def\hyper@anchorend{\Hy@activeanchorfalse} \def\hyper@linkstart#1#2{% - \Hy@colorlink{\csname @#1color\endcsname}% + \expandafter\Hy@colorlink\csname @#1color\endcsname \xdef\hyper@currentanchor{#2}% } \def\hyper@linkend{% @@ -9264,7 +9853,7 @@ \else \leavevmode\hbox\bgroup \fi - \Hy@colorlink{\csname @#1color\endcsname}% + \expandafter\Hy@colorlink\csname @#1color\endcsname \literalps@out{H.S}% \xdef\hyper@currentanchor{#2}% \gdef\hyper@currentlinktype{#1}% @@ -9279,6 +9868,7 @@ Dest=\hyper@currentanchor,% AcroHighlight=\@pdfhighlight,% Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% Color=\Hy@temp,% Raw=H.B% }% @@ -9384,6 +9974,7 @@ linktype={#1},% AcroHighlight=\@pdfhighlight,% Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% Color=\Hy@temp,% Dest=\Hy@testname }% @@ -9394,6 +9985,7 @@ linktype={#1},% AcroHighlight=\@pdfhighlight,% Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% pdfmark=/ANN,% Subtype=/Link,% Dest=\Hy@testname @@ -9404,19 +9996,41 @@ \newtoks\pdf@docset \def\PDF@FinishDoc{% \Hy@UseMaketitleInfos - \pdfmark{% + \let\Hy@temp\@empty + \ifx\@pdfcreationdate\@empty + \else + \def\Hy@temp{CreationDate=\@pdfcreationdate,}% + \fi + \ifx\@pdfmoddate\@empty + \else + \expandafter\def\expandafter\Hy@temp\expandafter{% + \Hy@temp + ModDate=\@pdfmoddate,% + }% + \fi + \ifx\@pdfproducer\relax + \else + \expandafter\def\expandafter\Hy@temp\expandafter{% + \Hy@temp + Producer=\@pdfproducer,% + }% + \fi + \expandafter + \pdfmark\expandafter{% + \Hy@temp pdfmark=/DOCINFO,% Title=\@pdftitle,% Subject=\@pdfsubject,% Creator=\@pdfcreator,% Author=\@pdfauthor,% - Producer=\@pdfproducer,% Keywords=\@pdfkeywords }% \Hy@DisableOption{pdfauthor}% \Hy@DisableOption{pdftitle}% \Hy@DisableOption{pdfsubject}% \Hy@DisableOption{pdfcreator}% + \Hy@DisableOption{pdfcreationdate}% + \Hy@DisableOption{pdfmoddate}% \Hy@DisableOption{pdfproducer}% \Hy@DisableOption{pdfkeywords}% } @@ -9443,6 +10057,7 @@ /NonFullScreenPageMode\@pdfnonfullscreenpagemode \fi }% + \Hy@pstringdef\Hy@pstringB{\@baseurl}% \pdfmark{% pdfmark=/PUT,% Raw={% @@ -9457,7 +10072,7 @@ \fi \ifx\@baseurl\@empty \else - /URI << /Base (\@baseurl) >>% + /URI << /Base (\Hy@pstringB) >>% \fi >>% }% @@ -9476,12 +10091,16 @@ % values. % % \begin{macrocode} +\newif\ifHy@pdfmarkerror \def\pdfmark{\@ifnextchar[{\pdfmark@}{\pdfmark@[]}} \def\pdfmark@[#1]#2{% - \edef\@processme{\noexpand\pdf@toks={\the\pdf@defaulttoks}}% - \@processme - \let\pdf@type\relax - \setkeys{PDF}{#2}% + \Hy@pdfmarkerrorfalse + \edef\@processme{\noexpand\pdf@toks={\the\pdf@defaulttoks}}% + \@processme + \let\pdf@type\relax + \setkeys{PDF}{#2}% + \ifHy@pdfmarkerror + \else \ifx\pdf@type\relax \Hy@WarningNoLine{no pdfmark type specified in #2!!}% \ifx\\#1\\\relax\else\pdf@rect{#1}\fi @@ -9490,28 +10109,49 @@ %<pdfmarkbase> \literalps@out{[\the\pdf@toks\space\pdf@type\space pdfmark}% %<dvipdf> \literalps@out{/ANN >>}% \else - \Hy@colorlink{\@ifundefined{@\pdf@linktype color}% - {\@linkcolor}% - {\csname @\pdf@linktype color\endcsname}}% + \@ifundefined{@\pdf@linktype color}{% + \Hy@colorlink\@linkcolor + }{% + \expandafter\Hy@colorlink + \csname @\pdf@linktype color\endcsname + }% \pdf@rect{#1}% %<pdfmarkbase> \literalps@out{[\the\pdf@toks\space\pdf@type\space pdfmark}% %<dvipdf> \literalps@out{/ANN >>}% \Hy@endcolorlink \fi \fi + \fi } % \end{macrocode} % The complicated bit is working out the right enclosing rectangle of % some piece of \TeX\ text, needed by the /Rect key. This solution originates % with Toby Thain (\texttt{tobyt@netspace.net.au}). +% +% For the case breaklinks is enabled, I have added two hooks, +% the first one for package setouterhbox, it provides +% a hopefully better method without setting the text twice. +% \begin{quote} +% \verb|\usepackage[hyperref]{setouterhbox}| +% \end{quote} +% With the second hook, also you can set the text twice, e.g.: +% \begin{quote} +% \verb|\long\def\Hy@setouterhbox#1#2{\long\def\my@temp{#2}}|\\ +% \verb|\def\Hy@breaklinksunhbox#1{\my@temp}| +% \end{quote} % \begin{macrocode} \newsavebox{\pdf@box} +\providecommand{\Hy@setouterhbox}{\sbox} +\providecommand{\Hy@breaklinksunhbox}{\unhbox} \def\pdf@rect#1{% %<dvipdf> \literalps@out{/ANN \pdf@type\space\the\pdf@toks\space <<}#1% \leavevmode - \sbox\pdf@box{#1}% + \ifHy@breaklinks + \Hy@setouterhbox\pdf@box{#1}% + \else + \sbox\pdf@box{#1}% + \fi \dimen@\ht\pdf@box - \leavevmode \ifdim\dp\pdf@box=\z@ \literalps@out{H.S}% \else @@ -9522,7 +10162,12 @@ % the saved box like this, which saves executing it twice, which can % mess up counters etc (thanks DPC\ldots). % \begin{macrocode} - \ifHy@breaklinks\unhbox\else\box\fi\pdf@box + \ifHy@breaklinks + \expandafter\Hy@breaklinksunhbox + \else + \expandafter\box + \fi + \pdf@box % \end{macrocode} % but if it can have multiple paragraphs you'd need one of these, % but in that case the measured box size would be wrong anyway. @@ -9571,7 +10216,21 @@ % parameter is a name \define@key{PDF}{Action}{\pdf@addtoks{#1}{Action}} % parameter is a array -\define@key{PDF}{Border}{\pdf@addtoks{[#1]}{Border}} +\define@key{PDF}{Border}{% + \edef\Hy@temp{#1}% + \ifx\Hy@temp\@empty + \else + \pdf@addtoks{[#1]}{Border}% + \fi +} +% parameter is a dictionary +\define@key{PDF}{BorderStyle}{% + \edef\Hy@temp{#1}% + \ifx\Hy@temp\@empty + \else + \pdf@addtoks{<<#1>>}{BS}% + \fi +} % parameter is a array \define@key{PDF}{Color}{\pdf@addtoks{[#1]}{Color}} % parameter is a string @@ -9586,16 +10245,22 @@ \define@key{PDF}{DataSource}{\pdf@addtoks{(#1)}{DataSource}} % parameter is a destination \define@key{PDF}{Dest}{% - \begingroup - \edef\x{#1}% - \expandafter\endgroup - \ifx\x\@empty\else\pdf@addtoks{(#1) cvn}{Dest}\fi + \Hy@pstringdef\Hy@pstringDest{#1}% + \ifx\Hy@pstringDest\@empty + \Hy@pdfmarkerrortrue + \Hy@Warning{Destination with empty name ignored}% + \else + \pdf@addtoks{(\Hy@pstringDest) cvn}{Dest}% + \fi } \define@key{PDF}{DestAnchor}{% - \begingroup - \edef\x{#1}% - \expandafter\endgroup - \ifx\x\@empty\else\pdf@addtoks{(#1) cvn}{Dest}\fi + \Hy@pstringdef\Hy@pstringDest{#1}% + \ifx\Hy@pstringDest\@empty + \Hy@pdfmarkerrortrue + \Hy@Warning{Destination with empty name ignored}% + \else + \pdf@addtoks{(\Hy@pstringDest) cvn}{Dest}% + \fi } % parameter is a string \define@key{PDF}{Dir}{\pdf@addtoks{(#1)}{Dir}} @@ -9642,8 +10307,9 @@ % These are the keys used in the DOCINFO section. % \begin{macrocode} \define@key{PDF}{Author}{\pdf@addtoks{(#1)}{Author}} -\define@key{PDF}{CreationDate}{\pdf@addtoks{(#1)}{CreationDate}} \define@key{PDF}{Creator}{\pdf@addtoks{(#1)}{Creator}} +\define@key{PDF}{CreationDate}{\pdf@addtoks{(#1)}{CreationDate}} +\define@key{PDF}{ModDate}{\pdf@addtoks{(#1)}{ModDate}} \define@key{PDF}{Producer}{\pdf@addtoks{(#1)}{Producer}} \define@key{PDF}{Subject}{\pdf@addtoks{(#1)}{Subject}} \define@key{PDF}{Keywords}{\pdf@addtoks{(#1)}{Keywords}} @@ -9658,6 +10324,7 @@ pdfmark=/ANN,% AcroHighlight=\@pdfhighlight,% Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% Action={<< /Subtype /Named /N /#1 >>},% Subtype=/Link% }% @@ -9667,14 +10334,30 @@ % \begin{macrocode} \def\PDFNextPage{\@ifnextchar[{\PDFNextPage@}{\PDFNextPage@[]}} \def\PDFNextPage@[#1]#2{% - \pdfmark[{#2}]{#1,Border=\@pdfborder,Color=.2 .1 .5, - pdfmark=/ANN,Subtype=/Link,Page=/Next}} + \pdfmark[{#2}]{% + #1,% + Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% + Color=.2 .1 .5, + pdfmark=/ANN,% + Subtype=/Link,% + Page=/Next% + }% +} \def\PDFPreviousPage{% \@ifnextchar[{\PDFPreviousPage@}{\PDFPreviousPage@[]}% } \def\PDFPreviousPage@[#1]#2{% - \pdfmark[{#2}]{#1,Border=\@pdfborder,Color=.4 .4 .1, - pdfmark=/ANN,Subtype=/Link,Page=/Prev}} + \pdfmark[{#2}]{% + #1,% + Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% + Color=.4 .4 .1,% + pdfmark=/ANN,% + Subtype=/Link,% + Page=/Prev% + }% +} \def\PDFOpen#1{% \pdfmark{#1,pdfmark=/DOCVIEW}% } @@ -9694,6 +10377,7 @@ Page={#2},% AcroHighlight=\@pdfhighlight,% Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% Color=\@pagebordercolor,% pdfmark=/ANN,% Subtype=/Link% @@ -9711,6 +10395,7 @@ % \begin{macrocode} \def\hyper@linkurl#1#2{% \begingroup + \Hy@pstringdef\Hy@pstringURI{#2}% \hyper@chars \leavevmode %<*pdfmarkbase> @@ -9719,8 +10404,9 @@ linktype=url,% AcroHighlight=\@pdfhighlight,% Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% Color=\@urlbordercolor,% - Action={<< /Subtype /URI /URI (#2) >>},% + Action={<< /Subtype /URI /URI (\Hy@pstringURI) >>},% Subtype=/Link% }% %</pdfmarkbase> @@ -9730,14 +10416,17 @@ linktype=url,% AcroHighlight=\@pdfhighlight,% Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% Color=\@urlbordercolor,% - Action={URI /URI (#2)}% + Action={URI /URI <\Hy@hstringURI>}% }% %</dvipdf> \endgroup } \def\hyper@linkfile#1#2#3{% \begingroup + \Hy@pstringdef\Hy@pstringF{#2}% + \Hy@pstringdef\Hy@pstringD{#3}% \leavevmode %<*pdfmark> \pdfmark[{#1}]{% @@ -9745,13 +10434,14 @@ Subtype=/Link, AcroHighlight=\@pdfhighlight,% Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% linktype=file,% Color=\@filebordercolor,% Action={<< /S /GoToR \ifHy@newwindow /NewWindow true \fi - /F (#2) - /D \ifx\\#3\\[0 \@pdfstartview]\else(#3) cvn\fi + /F (\Hy@pstringF) + /D \ifx\\#3\\[0 \@pdfstartview]\else(\Hy@pstringD) cvn\fi >>}% }% %</pdfmark> @@ -9761,12 +10451,13 @@ linktype=file, AcroHighlight=\@pdfhighlight,% Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% Color=\@filebordercolor,% Action={<< /S /GoToR \ifHy@newwindow /NewWindow true \fi - /F (#2) - /D \ifx\\#3\\[0 \@pdfstartview]\else(#3) cvn\fi + /F (\Hy@pstringF) + /D \ifx\\#3\\[0 \@pdfstartview]\else(\Hy@pstringD) cvn\fi >>}% }% %</dvipdf> @@ -9774,6 +10465,8 @@ } \def\@hyper@launch run:#1\\#2#3{% \begingroup + \Hy@pstringdef\Hy@pstringF{#1}% + \Hy@pstringdef\Hy@pstringP{#3}% \leavevmode %<*pdfmark> \pdfmark[{#2}]{% @@ -9781,13 +10474,17 @@ Subtype=/Link,% AcroHighlight=\@pdfhighlight,% Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% linktype=file,% Color=\@filebordercolor,% Action={<< /S /Launch \ifHy@newwindow /NewWindow true \fi - /F (#1) - \ifx\\#3\\\else /Win << /P (#3) /F (#1) >> \fi + /F (\Hy@pstringF) + \ifx\\#3\\% + \else + /Win << /P (\Hy@pstringP) /F (\Hy@pstringF) >> + \fi >>}% }% %</pdfmark> @@ -9797,12 +10494,16 @@ linktype=file,% AcroHighlight=\@pdfhighlight,% Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% Color=\@filebordercolor,% Action={<< /S /GoToR \ifHy@newwindow /NewWindow true \fi - /F (#1) - /D \ifx\\#3\\[0 \@pdfstartview]\else(#3)\fi + /F (\Hy@pstringF) + \ifx\\#3\\% + \else + /Win << /P (\Hy@pstringP) /F (\Hy@pstringF) >> + \fi >>}% }% %</dvipdf> @@ -9825,10 +10526,13 @@ % \begin{macrocode} %<*dvips> \input{pdfmark.def}% -\def\@pdfproducer{dvips + Distiller} +\ifx\@pdfproducer\relax + \def\@pdfproducer{dvips + Distiller} +\fi \def\literalps@out#1{\special{ps:SDict begin #1 end}}% \def\headerps@out#1{\special{! #1}}% \providecommand\@pdfborder{0 0 12} +\providecommand*\@pdfborderstyle{} \providecommand\@pdfview{XYZ} \providecommand\@pdfviewparams{ H.V} % \end{macrocode} @@ -9910,9 +10614,14 @@ currentpoint exch pop vsize 72 sub exch DvipsToPDF sub /pdf@voff exch def } def - systemdict - /pdfmark known not - {userdict /pdfmark systemdict /cleartomark get put} if + systemdict /pdfmark known + { + userdict /?pdfmark systemdict /exec get put + }{ + userdict /?pdfmark systemdict /pop get put + userdict /pdfmark systemdict /cleartomark get put + } + ifelse }% } \AfterBeginDocument{% @@ -9940,14 +10649,17 @@ % \begin{macrocode} %<*vtexpdfmark> \input{pdfmark.def}% -\ifnum\OpMode=\@ne - \def\@pdfproducer{VTeX} -\else - \def\@pdfproducer{VTeX + Distiller} +\ifx\@pdfproducer\relax + \ifnum\OpMode=\@ne + \def\@pdfproducer{VTeX} + \else + \def\@pdfproducer{VTeX + Distiller} + \fi \fi \def\literalps@out#1{\special{pS:#1}}% \def\headerps@out#1{\immediate\special{pS:#1}}% \providecommand\@pdfborder{0 0 1} +\providecommand*\@pdfborderstyle{} \providecommand\@pdfview{XYZ} \providecommand\@pdfviewparams{ H.V} % \end{macrocode} @@ -10015,6 +10727,14 @@ currentpoint exch pop vsize 72 sub add /pdf@voff exch def } def + systemdict /pdfmark known + { + userdict /?pdfmark systemdict /exec get put + }{ + userdict /?pdfmark systemdict /pop get put + userdict /pdfmark systemdict /cleartomark get put + } + ifelse }% } %</vtexpdfmark> @@ -10102,13 +10822,23 @@ end }def\Hy@ps@CR __pdfmark__ not{/pdfmark /betterpdfmark load def}if + systemdict /pdfmark known + { + userdict /?pdfmark systemdict /load get put + }{ + userdict /?pdfmark systemdict /pop get put + } + ifelse }% end of \headerps@out }% end of \AtBeginDvi % \input{pdfmark.def}% % -\def\@pdfproducer{Textures + Distiller}% +\ifx\@pdfproducer\relax + \def\@pdfproducer{Textures + Distiller}% +\fi \providecommand\@pdfborder{0 0 1} +\providecommand*\@pdfborderstyle{} \providecommand\@pdfview{XYZ} \providecommand\@pdfviewparams{ H.V} % @@ -10189,7 +10919,7 @@ \special{html:<a name=\hyper@quote #1\hyper@quote>}% \endgroup \Hy@activeanchortrue - \Hy@colorlink{\@anchorcolor}\anchor@spot\Hy@endcolorlink + \Hy@colorlink\@anchorcolor\anchor@spot\Hy@endcolorlink \special{html:</a>}% \Hy@activeanchorfalse \Hy@RestoreLastskip @@ -10209,7 +10939,7 @@ } \def\@urltype{url} \def\hyper@linkstart#1#2{% - \Hy@colorlink{\csname @#1color\endcsname}% + \expandafter\Hy@colorlink\csname @#1color\endcsname \def\Hy@tempa{#1}% \ifx\Hy@tempa\@urltype \special{html:<a href=\hyper@quote#2\hyper@quote>}% @@ -10236,7 +10966,7 @@ \hyper@chars \special{html:<a href=\hyper@quote#2\hyper@quote>}% }% - \Hy@colorlink{\@urlcolor}#1% + \Hy@colorlink\@urlcolor#1% \@linkdim\ht\@tempboxa \advance\@linkdim by -6.5\p@ \raise\@linkdim\hbox{\special{html:</a>}}% @@ -10245,7 +10975,7 @@ \begingroup \hyper@chars \special{html:<a href=\hyper@quote#2\hyper@quote>}% - \Hy@colorlink{\@urlcolor}#1% + \Hy@colorlink\@urlcolor#1% \special{html:</a>}% \Hy@endcolorlink \endgroup @@ -10269,8 +10999,11 @@ % |\special| commands. %<*dvipsone> \providecommand\@pdfborder{0 0 65781} +\providecommand*\@pdfborderstyle{} \input{pdfmark.def}% -\def\@pdfproducer{dvipsone + Distiller} +\ifx\@pdfproducer\relax + \def\@pdfproducer{dvipsone + Distiller} +\fi \def\literalps@out#1{\special{ps:#1}}% \def\headerps@out#1{\special{! #1}}% \def\PDF@FinishDoc{% @@ -10278,13 +11011,26 @@ \special{PDF: Keywords \@pdfkeywords}% \special{PDF: Title \@pdftitle}% \special{PDF: Creator \@pdfcreator}% + \ifx\@pdfcreationdate\@empty + \else + \special{PDF: CreationDate \@pdfcreationdate}% + \fi + \ifx\@pdfmoddate\@empty + \else + \special{PDF: ModDate \@pdfmoddate}% + \fi \special{PDF: Author \@pdfauthor}% - \special{PDF: Producer \@pdfproducer}% + \ifx\@pdfproducer\relax + \else + \special{PDF: Producer \@pdfproducer}% + \fi \special{PDF: Subject \@pdfsubject}% \Hy@DisableOption{pdfauthor}% \Hy@DisableOption{pdftitle}% \Hy@DisableOption{pdfsubject}% \Hy@DisableOption{pdfcreator}% + \Hy@DisableOption{pdfcreationdate}% + \Hy@DisableOption{pdfmoddate}% \Hy@DisableOption{pdfproducer}% \Hy@DisableOption{pdfkeywords}% } @@ -10311,6 +11057,7 @@ /NonFullScreenPageMode\@pdfnonfullscreenpagemode \fi }% + \Hy@pstringdef\Hy@pstringB{\@baseurl}% \pdfmark{% pdfmark=/PUT,% Raw={% @@ -10325,7 +11072,7 @@ \fi \ifx\@baseurl\@empty \else - /URI << /Base (\@baseurl) >>% + /URI << /Base (\Hy@pstringB) >>% \fi >>% }% @@ -10383,13 +11130,20 @@ currentpoint exch pop DvipsToPDF /pdf@voff exch def } def systemdict - /pdfmark known not - {userdict /pdfmark systemdict /cleartomark get put} if + /pdfmark known + { + userdict /?pdfmark /exec load put + }{ + userdict /?pdfmark /pop load put + userdict /pdfmark systemdict /cleartomark get put + } + ifelse } %</dvipsone> %<*dvipdf> \def\literalps@out#1{\special{pdf: #1}}% \providecommand\@pdfborder{0 0 1} +\providecommand*\@pdfborderstyle{} %</dvipdf> % \end{macrocode} % @@ -10413,7 +11167,7 @@ \special{t4ht=<a name=\hyper@quote #1\hyper@quote>}% \endgroup \Hy@activeanchortrue - \Hy@colorlink{\@anchorcolor}\anchor@spot\Hy@endcolorlink + \Hy@colorlink\@anchorcolor\anchor@spot\Hy@endcolorlink \special{t4ht=</a>}% \Hy@activeanchorfalse \Hy@RestoreLastskip @@ -10432,7 +11186,7 @@ } \def\@urltype{url} \def\hyper@linkstart#1#2{% - \Hy@colorlink{\csname @#1color\endcsname}% + \expandafter\Hy@colorlink\csname @#1color\endcsname \def\Hy@tempa{#1}% \ifx\Hy@tempa\@urltype \special{t4ht=<a href=\hyper@quote#2\hyper@quote>}% @@ -10457,7 +11211,7 @@ \hyper@chars\special{t4ht=<a href=\hyper@quote#2\hyper@quote>}% \endgroup }% - \Hy@colorlink{\@urlcolor}#1\Hy@endcolorlink + \Hy@colorlink\@urlcolor#1\Hy@endcolorlink \@linkdim\ht\@tempboxa \advance\@linkdim by -6.5\p@ \raise\@linkdim\hbox{\special{t4ht=</a>}}% @@ -10465,7 +11219,7 @@ \begingroup \hyper@chars \special{t4ht=<a href=\hyper@quote#2\hyper@quote>}% - \Hy@colorlink{\@urlcolor}#1\Hy@endcolorlink + \Hy@colorlink\@urlcolor#1\Hy@endcolorlink \special{t4ht=</a>}% \endgroup \fi @@ -10563,24 +11317,26 @@ [ /_objdef {afields} /type /array /OBJ pdfmark -[/BBox [0 0 100 100] /_objdef {Check} /BP pdfmark -1 0 0 setrgbcolor /ZapfDingbats 80 selectfont 20 20 moveto (4) show -[/EP pdfmark -[/BBox [0 0 100 100] /_objdef {Cross} /BP pdfmark -1 0 0 setrgbcolor /ZapfDingbats 80 selectfont 20 20 moveto (8) show -[/EP pdfmark -[/BBox [0 0 250 100] /_objdef {Submit} /BP pdfmark 0.6 setgray 0 0 250 -100 rectfill 1 setgray 2 2 moveto 2 98 lineto 248 98 lineto 246 96 -lineto 4 96 lineto 4 4 lineto fill 0.34 setgray 248 98 moveto 248 2 -lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill -/Helvetica 76 selectfont 0 setgray 8 22.5 moveto (Submit) show -[/EP pdfmark -[/BBox [0 0 250 100] /_objdef {SubmitP} /BP pdfmark 0.6 setgray 0 0 -250 100 rectfill 0.34 setgray 2 2 moveto 2 98 lineto 248 98 lineto 246 -96 lineto 4 96 lineto 4 4 lineto fill 1 setgray 248 98 moveto 248 2 -lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill -/Helvetica 76 selectfont 0 setgray 10 20.5 moveto (Submit) show -[/EP pdfmark +{ + [/BBox [0 0 100 100] /_objdef {Check} /BP pdfmark + 1 0 0 setrgbcolor /ZapfDingbats 80 selectfont 20 20 moveto (4) show + [/EP pdfmark + [/BBox [0 0 100 100] /_objdef {Cross} /BP pdfmark + 1 0 0 setrgbcolor /ZapfDingbats 80 selectfont 20 20 moveto (8) show + [/EP pdfmark + [/BBox [0 0 250 100] /_objdef {Submit} /BP pdfmark 0.6 setgray 0 0 250 + 100 rectfill 1 setgray 2 2 moveto 2 98 lineto 248 98 lineto 246 96 + lineto 4 96 lineto 4 4 lineto fill 0.34 setgray 248 98 moveto 248 2 + lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill + /Helvetica 76 selectfont 0 setgray 8 22.5 moveto (Submit) show + [/EP pdfmark + [/BBox [0 0 250 100] /_objdef {SubmitP} /BP pdfmark 0.6 setgray 0 0 + 250 100 rectfill 0.34 setgray 2 2 moveto 2 98 lineto 248 98 lineto 246 + 96 lineto 4 96 lineto 4 4 lineto fill 1 setgray 248 98 moveto 248 2 + lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill + /Helvetica 76 selectfont 0 setgray 10 20.5 moveto (Submit) show + [/EP pdfmark +} ?pdfmark [ {aform} << /Fields {afields} @@ -10624,6 +11380,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \ifFld@hidden\def\Fld@width{1sp}\fi \ifx\Fld@value\@empty\def\Fld@value{\Fld@default}\fi \LayoutTextField{#2}{% + \Hy@escapeform\PDFForm@Text \pdfmark[\MakeTextField{\Fld@width}{\Fld@height}]{% pdfmark=/ANN,Raw={\PDFForm@Text}% }% @@ -10678,6 +11435,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \expandafter\Fld@checkequals\@curropt==\\% \Hy@StepCount\Fld@listcount \@currDisplay\space + \Hy@escapeform\PDFForm@Radio \pdfmark[\MakeRadioField{\Fld@width}{\Fld@height}]{% pdfmark=/ANN,% Raw={\PDFForm@Radio /AP <</N <</\@currValue\space {Check}>> >>}% @@ -10695,6 +11453,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \Choice@toks{\the\Choice@toks [(\@currValue) (\@currDisplay)]}% }\@processme }% + \Hy@escapeform\PDFForm@List \pdfmark[\MakeChoiceField{\Fld@width}{\Fld@height}]{% pdfmark=/ANN,Raw={\PDFForm@List}% }% @@ -10706,6 +11465,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \setkeys{Field}{#1}% \ifFld@hidden\def\Fld@width{1sp}\fi \LayoutPushButtonField{% + \Hy@escapeform\PDFForm@Push \pdfmark[\MakeButtonField{#2}]{% pdfmark=/ANN,Raw={\PDFForm@Push}% }% @@ -10720,6 +11480,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \def\Fld@name{Submit}% \setkeys{Field}{#1}% \ifFld@hidden\def\Fld@width{1sp}\fi + \Hy@escapeform\PDFForm@Submit \pdfmark[\MakeButtonField{#2}]{% pdfmark=/ANN,% Raw={\PDFForm@Submit /AP << /N {Submit} /D {SubmitP} >>}% @@ -10734,6 +11495,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \def\Fld@name{Reset}% \setkeys{Field}{#1}% \ifFld@hidden\def\Fld@width{1sp}\fi + \Hy@escapeform\PDFForm@Reset \pdfmark[\MakeButtonField{#2}]{% pdfmark=/ANN,Raw={\PDFForm@Reset}% }% @@ -10749,6 +11511,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \setkeys{Field}{#1}% \ifFld@hidden\def\Fld@width{1sp}\fi \LayoutCheckField{#2}{% + \Hy@escapeform\PDFForm@Check \pdfmark[\MakeCheckField{\Fld@width}{\Fld@height}]{% pdfmark=/ANN,Raw={\PDFForm@Check}% }% @@ -10954,7 +11717,6 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \def\@Gauge[#1]#2#3#4{% parameters, label, minimum, maximum \typeout{Sorry, pdftex does not support FORM gauges}% } -\RequirePackage{pifont}% \def\MakeFieldObject#1#2{\sbox0{#1}% \immediate\pdfxform0 % \expandafter\edef\csname #2Object\endcsname{% @@ -10972,7 +11734,19 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \pdfrefobj\OBJ@acroform \fi \pdfcatalog{/AcroForm \OBJ@acroform\space 0 R}% - \MakeFieldObject{\ding{123}}{Ding}% + \MakeFieldObject{% +% \end{macrocode} +% Same as \verb|\ding{123}| of package pifont. +% \begin{macrocode} + \begingroup + \fontfamily{pzd}% + \fontencoding{U}% + \fontseries{m}% + \fontshape{n}% + \selectfont + \char123 % + \endgroup + }{Ding}% \MakeFieldObject{\fbox{\textcolor{yellow}{\textsf{Submit}}}}{Submit}% \MakeFieldObject{\fbox{\textcolor{yellow}{\textsf{SubmitP}}}}{SubmitP}% } @@ -10998,8 +11772,10 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \ifFld@hidden\def\Fld@width{1sp}\fi \ifx\Fld@value\@empty\def\Fld@value{\Fld@default}\fi \LayoutTextField{#2}{% - \pdfstartlink user {\PDFForm@Text}% - \MakeTextField{\Fld@width}{\Fld@height}\pdfendlink}% + \Hy@escapeform\PDFForm@Text + \pdfstartlink user {\PDFForm@Text}\relax + \MakeTextField{\Fld@width}{\Fld@height}\pdfendlink + }% \egroup } \def\@ChoiceMenu[#1]#2#3{% parameters, label, choices @@ -11051,6 +11827,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \Hy@StepCount\Fld@listcount \@currDisplay\space \leavevmode + \Hy@escapeform\PDFForm@Radio \pdfstartlink user {% \PDFForm@Radio /AP << @@ -11065,6 +11842,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill >> >> }% + \relax \MakeRadioField{\Fld@width}{\Fld@height}\pdfendlink \space% deliberate space between radio buttons }% @@ -11081,7 +11859,8 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill }\@processme }% \leavevmode - \pdfstartlink user {\PDFForm@List}% + \Hy@escapeform\PDFForm@List + \pdfstartlink user {\PDFForm@List}\relax \MakeChoiceField{\Fld@width}{\Fld@height}% \pdfendlink } @@ -11093,7 +11872,8 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \ifFld@hidden\def\Fld@width{1sp}\fi \LayoutPushButtonField{% \leavevmode - \pdfstartlink user {\PDFForm@Push}% + \Hy@escapeform\PDFForm@Push + \pdfstartlink user {\PDFForm@Push}\relax \MakeButtonField{#2}% \pdfendlink }% @@ -11108,10 +11888,12 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \setkeys{Field}{#1}% \ifFld@hidden\def\Fld@width{1sp}\fi \leavevmode + \Hy@escapeform\PDFForm@Submit \pdfstartlink user {% \PDFForm@Submit /AP << /N \SubmitObject\space /D \SubmitPObject >> }% + \relax \MakeButtonField{#2}% \pdfendlink \egroup @@ -11125,7 +11907,8 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \setkeys{Field}{#1}% \ifFld@hidden\def\Fld@width{1sp}\fi \leavevmode - \pdfstartlink user {\PDFForm@Reset}% + \Hy@escapeform\PDFForm@Reset + \pdfstartlink user {\PDFForm@Reset}\relax \MakeButtonField{#2}% \pdfendlink \egroup @@ -11140,7 +11923,8 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \setkeys{Field}{#1}% \ifFld@hidden\def\Fld@width{1sp}\fi \LayoutCheckField{#2}{% - \pdfstartlink user {\PDFForm@Check}% + \Hy@escapeform\PDFForm@Check + \pdfstartlink user {\PDFForm@Check}\relax \MakeCheckField{\Fld@width}{\Fld@height}% \pdfendlink }% @@ -11279,6 +12063,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \MakeTextField{\Fld@width}{\Fld@height}% }% \LayoutTextField{#2}{% + \Hy@escapeform\PDFForm@Text \@pdfm@mark{% ann @\Fld@name\space \dvipdfm@setdim << \PDFForm@Text >>% }% @@ -11347,6 +12132,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \Hy@StepCount\Fld@listcount \@currDisplay\space \leavevmode + \Hy@escapeform\PDFForm@Radio \@pdfm@mark{% ann \ifnum\Fld@listcount=1 @\Fld@name\space\fi \dvipdfm@setdim @@ -11381,6 +12167,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill }% \setbox\pdfm@box=\hbox{\MakeChoiceField{\Fld@width}{\Fld@height}}% \leavevmode + \Hy@escapeform\PDFForm@List \@pdfm@mark{% ann @\Fld@name\space\dvipdfm@setdim << \PDFForm@List >>% @@ -11402,6 +12189,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \setbox\pdfm@box=\hbox{\MakeButtonField{#2}}% \LayoutPushButtonField{% \leavevmode + \Hy@escapeform\PDFForm@Push \@pdfm@mark{% ann @\Fld@name\space\dvipdfm@setdim << \PDFForm@Push >>% @@ -11426,6 +12214,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \ifFld@hidden\def\Fld@width{1sp}\fi \setbox\pdfm@box=\hbox{\MakeButtonField{#2}}% \leavevmode + \Hy@escapeform\PDFForm@Submit \@pdfm@mark{% ann @\Fld@name\space\dvipdfm@setdim << \PDFForm@Submit >>% @@ -11449,6 +12238,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \ifFld@hidden\def\Fld@width{1sp}\fi \setbox\pdfm@box=\hbox{\MakeButtonField{#2}}% \leavevmode + \Hy@escapeform\PDFForm@Reset \@pdfm@mark{% ann @\Fld@name\space\dvipdfm@setdim << \PDFForm@Reset >>% @@ -11473,6 +12263,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \ifFld@hidden\def\Fld@width{1sp}\fi \setbox\pdfm@box=\hbox{\MakeCheckField{\Fld@width}{\Fld@height}}% \LayoutCheckField{#2}{% + \Hy@escapeform\PDFForm@Check \@pdfm@mark{% ann @\Fld@name\space\dvipdfm@setdim << \PDFForm@Check >>% @@ -11539,12 +12330,59 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill % \begin{macrocode} %<*pdfform> % \end{macrocode} +% +% \begin{macro}{\Hy@escapestring} +% \begin{macrocode} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname pdfescapestring\endcsname\relax + \let\Hy@escapestring\@firstofone + \def\Hy@escapeform#1{% + \ifHy@escapeform + \def\Hy@escapestring##1{% + \noexpand\Hy@escapestring{\noexpand##1}% + }% + \edef\Hy@temp{#1}% + \expandafter\Hy@@escapeform\Hy@temp\Hy@escapestring{}\@nil + \def\Hy@escapestring##1{% + \@ifundefined{Hy@esc@\string##1}{% + ##1% + \ThisShouldNotHappen + }{% + \csname Hy@esc@\string##1\endcsname + }% + }% + \else + \let\Hy@escapestring\@firstofone + \fi + }% + \def\Hy@@escapeform#1\Hy@escapestring#2#3\@nil{% + \ifx\\#3\\% + \else + \expandafter\Hy@pstringdef\csname Hy@esc@\string#2\endcsname{#2}% + \Hy@ReturnAfterFi{% + \Hy@@escapeform#3\@nil + }% + \fi + }% +\else + \def\Hy@escapeform#1{% + \ifHy@escapeform + \let\Hy@escapestring\pdfescapestring + \else + \let\Hy@escapestring\@firstofone + \fi + }% + \Hy@escapeform{}% +\fi +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\PDFForm@Check} % \begin{macrocode} \def\PDFForm@Check{% /Subtype /Widget \ifFld@hidden /F 6 \else /F 4 \fi - /T (\Fld@name) + /T (\Hy@escapestring{\Fld@name}) /Q \Fld@align\space /BS << /W \Fld@borderwidth\space /S /\Fld@borderstyle\space >> /MK << @@ -11553,7 +12391,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \else /BG [\Fld@bcolor] \fi - /CA (\Fld@cbsymbol) + /CA (\Hy@escapestring{\Fld@cbsymbol}) >> /DA (/ZaDb \strip@pt\Fld@charsize\space Tf \Fld@color\space rg) /FT /Btn @@ -11567,7 +12405,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \def\PDFForm@Push{% /Subtype /Widget \ifFld@hidden /F 6 \else /F 4 \fi - /T (\Fld@name) + /T (\Hy@escapestring{\Fld@name}) /FT /Btn /Ff 65540 /H /P @@ -11575,7 +12413,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill /MK << /BC [\Fld@bordercolor] >> - /A << /S /JavaScript /JS (\Fld@onclick;) >> + /A << /S /JavaScript /JS (\Hy@escapestring{\Fld@onclick}) >> } % \end{macrocode} % \end{macro} @@ -11589,70 +12427,70 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill % \begin{macrocode} \ifx\Fld@keystroke@code\@empty \else - /K << /S /JavaScript /JS (\Fld@keystroke@code) >> + /K << /S /JavaScript /JS (\Hy@escapestring{\Fld@keystroke@code}) >> \fi % \end{macrocode} % F display format % \begin{macrocode} \ifx\Fld@format@code\@empty \else - /F << /S /JavaScript /JS (\Fld@format@code) >> + /F << /S /JavaScript /JS (\Hy@escapestring{\Fld@format@code}) >> \fi % \end{macrocode} % V validation % \begin{macrocode} \ifx\Fld@validate@code\@empty \else - /V << /S /JavaScript /JS (\Fld@validate@code) >> + /V << /S /JavaScript /JS (\Hy@escapestring{\Fld@validate@code}) >> \fi % \end{macrocode} % C calculation % \begin{macrocode} \ifx\Fld@calculate@code\@empty \else - /C << /S /JavaScript /JS (\Fld@calculate@code) >> + /C << /S /JavaScript /JS (\Hy@escapestring{\Fld@calculate@code}) >> \fi % \end{macrocode} % Fo receiving the input focus % \begin{macrocode} \ifx\Fld@onfocus@code\@empty \else - /Fo << /S /JavaScript /JS (\Fld@onfocus@code) >> + /Fo << /S /JavaScript /JS (\Hy@escapestring{\Fld@onfocus@code}) >> \fi % \end{macrocode} % Bl loosing the input focus (blurred) % \begin{macrocode} \ifx\Fld@onblur@code\@empty \else - /Bl << /S /JavaScript /JS (\Fld@onblur@code) >> + /Bl << /S /JavaScript /JS (\Hy@escapestring{\Fld@onblur@code}) >> \fi % \end{macrocode} % D pressing the mouse button (down) % \begin{macrocode} \ifx\Fld@onmousedown@code\@empty \else - /D << /S /JavaScript /JS (\Fld@onmousedown@code) >> + /D << /S /JavaScript /JS (\Hy@escapestring{\Fld@onmousedown@code}) >> \fi % \end{macrocode} % U releasing the mouse button (up) % \begin{macrocode} \ifx\Fld@onmouseup@code\@empty \else - /U << /S /JavaScript /JS (\Fld@onmouseup@code) >> + /U << /S /JavaScript /JS (\Hy@escapestring{\Fld@onmouseup@code}) >> \fi % \end{macrocode} % E cursor enters the annotation's active area. % \begin{macrocode} \ifx\Fld@onenter@code\@empty \else - /E << /S /JavaScript /JS (\Fld@onenter@code) >> + /E << /S /JavaScript /JS (\Hy@escapestring{\Fld@onenter@code}) >> \fi % \end{macrocode} % X cursor exits the annotation's active area. % \begin{macrocode} \ifx\Fld@onexit@code\@empty \else - /X << /S /JavaScript /JS (\Fld@onexit@code) >> + /X << /S /JavaScript /JS (\Hy@escapestring{\Fld@onexit@code}) >> \fi >> } @@ -11664,7 +12502,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \def\PDFForm@List{% /Subtype /Widget \ifFld@hidden /F 6 \else /F 4 \fi - /T (\Fld@name) + /T (\Hy@escapestring{\Fld@name}) /FT /Ch /Q \Fld@align\space /BS << /W \Fld@borderwidth\space /S /\Fld@borderstyle\space >> @@ -11677,7 +12515,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill >> /DA (/Helv \strip@pt\Fld@charsize\space Tf \Fld@color\space rg ) /Opt [\the\Choice@toks] - /DV (\Fld@default) + /DV (\Hy@escapestring{\Fld@default}) \Fld@additionalactions \Fld@flags } @@ -11688,7 +12526,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \def\PDFForm@Radio{% /Subtype /Widget \ifFld@hidden /F 6 \else /F 4 \fi - /T (\Fld@name) + /T (\Hy@escapestring{\Fld@name}) /FT /Btn /Ff 49152 /H /P @@ -11716,7 +12554,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \def\PDFForm@Text{% /Subtype /Widget \ifFld@hidden /F 6 \else /F 4 \fi - /T (\Fld@name) + /T (\Hy@escapestring{\Fld@name}) /Q \Fld@align\space /FT /Tx /BS << /W \Fld@borderwidth\space /S /\Fld@borderstyle\space >> @@ -11728,8 +12566,8 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \fi >> /DA (/Helv \strip@pt\Fld@charsize\space Tf \Fld@color\space rg ) - /DV (\Fld@default) - /V (\Fld@value) + /DV (\Hy@escapestring{\Fld@default}) + /V (\Hy@escapestring{\Fld@value}) \Fld@additionalactions \ifFld@multiline \ifFld@readonly /Ff 4097 \else /Ff 4096 \fi @@ -11749,7 +12587,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \def\PDFForm@Submit{% /Subtype /Widget \ifFld@hidden /F 6 \else /F 4 \fi - /T (\Fld@name) + /T (\Hy@escapestring{\Fld@name}) /FT /Btn /Ff 65540 /H /P @@ -11761,7 +12599,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill /S /SubmitForm /F << /FS /URL - /F (\Form@action) + /F (\Hy@escapestring{\Form@action}) >> \ifForm@html /Flags 4 \fi >> @@ -11773,7 +12611,7 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \def\PDFForm@Reset{% /Subtype /Widget \ifFld@hidden /F 6 \else /F 4 \fi - /T (\Fld@name) + /T (\Hy@escapestring{\Fld@name}) /FT /Btn /H /P /DA (/Helv \strip@pt\Fld@charsize\space Tf 0 0 1 rg) @@ -11807,9 +12645,9 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill % to get bookmarks when used with a manual |\addcontentsline| % \begin{macrocode} \def\phantomsection{% - \Hy@GlobalStepCount\Hy@linkcounter - \xdef\@currentHref{section*.\the\Hy@linkcounter}% - \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}% + \Hy@GlobalStepCount\Hy@linkcounter + \xdef\@currentHref{section*.\the\Hy@linkcounter}% + \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}% } %</package> % \end{macrocode} @@ -11829,11 +12667,10 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill % |doc| directory of hyperref. % % \begin{macrocode} -\newwrite\@outlinefile \def\Hy@writebookmark#1#2#3#4#5{% section number, text, label, level, file \ifx\WriteBookmarks\relax% \else - \ifnum#4>\c@tocdepth + \ifnum#4>\Hy@bookmarksdepth\relax \else \@@writetorep{#1}{#2}{#3}{#4}{#5}% \fi @@ -11881,11 +12718,13 @@ lineto 2 2 lineto 4 4 lineto 246 4 lineto 246 96 lineto fill \let\numberline\@gobble \fi \pdfstringdef\Hy@tempa{#2}% - \protected@write\@outlinefile{}{% - \protect\BOOKMARK - [\Hy@level][\@bookmarkopenstatus{\Hy@level}]{#3}% - {\Hy@tempa}{\Hy@tempb}% - }% + \if@filesw + \protected@write\@outlinefile{}{% + \protect\BOOKMARK + [\Hy@level][\@bookmarkopenstatus{\Hy@level}]{#3}% + {\Hy@tempa}{\Hy@tempb}% + }% + \fi \fi \endgroup } @@ -12029,6 +12868,7 @@ o\fi,t=#4}% \ifx\WriteBookmarks\relax \else \if@filesw + \newwrite\@outlinefile \immediate\openout\@outlinefile=\jobname.out \ifHy@typexml \immediate\write\@outlinefile{<relaxxml>\relax}% @@ -12055,27 +12895,30 @@ o\fi,t=#4}% \def\@@BOOKMARK[##1][##2]##3##4##5{% \def\Hy@temp{##4}% %<*pdftex> - \pdfoutline goto - name{##3}% - count ##2\check@bm@number{##3}{% - \expandafter\strip@prefix\meaning\Hy@temp - }% + \Hy@pstringdef\Hy@pstringName{##3}% + \Hy@OutlineName{}\Hy@pstringName{% + ##2\check@bm@number{##3}% + }{% + \expandafter\strip@prefix\meaning\Hy@temp + }% %</pdftex> %<*pdfmark> + \Hy@pstringdef\Hy@pstringName{##3}% \pdfmark{% pdfmark=/OUT,% Count={##2\check@bm@number{##3}},% - Dest={##3},% + Dest={\Hy@pstringName},% Title=\expandafter\strip@prefix\meaning\Hy@temp }% %</pdfmark> %<*dvipdfm> + \Hy@pstringdef\Hy@pstringName{##3}% \@pdfm@mark{% outline ##1 << /Title (\expandafter\strip@prefix\meaning\Hy@temp) /A << /S /GoTo - /D (##3) + /D (\Hy@pstringName) >> >> }% @@ -12086,15 +12929,23 @@ o\fi,t=#4}% \InputIfFileExists{\jobname.out}{}{}% }% %{\escapechar\m@ne\InputIfFileExists{\jobname.out}{}{}}% - \ifx\WriteBookmarks\relax\else - \if@filesw\immediate\openout\@outlinefile=\jobname.out - \ifHy@typexml - \immediate\write\@outlinefile{<relaxxml>\relax}% - \fi + \ifx\WriteBookmarks\relax + \else + \if@filesw + \newwrite\@outlinefile + \immediate\openout\@outlinefile=\jobname.out + \ifHy@typexml + \immediate\write\@outlinefile{<relaxxml>\relax}% + \fi \fi \fi \endgroup } +%<*pdftex> +\def\Hy@OutlineName#1#2#3#4{% + \pdfoutline goto name{#2}count#3{#4}% +} +%</pdftex> \def\check@bm@number#1{% \expandafter\ifx\csname B_#1\endcsname\relax 0% @@ -12170,6 +13021,21 @@ o\fi,t=#4}% } % \end{macrocode} % \begin{macrocode} +\let\H@old@part\@part +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname chapter\endcsname\relax + \let\Hy@secnum@part\z@ +\else + \let\Hy@secnum@part\m@ne +\fi +\def\@part{% + \ifnum\Hy@secnum@part>\c@secnumdepth + \phantomsection + \fi + \H@old@part +} +% \end{macrocode} +% \begin{macrocode} \let\H@old@spart\@spart \def\@spart#1{% \H@old@spart{#1}% @@ -12302,6 +13168,7 @@ o\fi,t=#4}% \DeclareTextCompositeCommand{\v}{PD1}{\@empty}{\textcaron} \DeclareTextCompositeCommand{\.}{PD1}{\@empty}{\textdotaccent} \DeclareTextCompositeCommand{\c}{PD1}{\@empty}{\textcedilla} +\DeclareTextCommand{\k}{PD1}[1]{\TextSymbolUnavailable{\k{#1}}#1} % \end{macrocode} % Accent glyph names % \begin{macrocode} @@ -12598,6 +13465,10 @@ o\fi,t=#4}% \DeclareTextCompositeCommand{\c}{PU}{\@empty}{\textcedilla} \DeclareTextCompositeCommand{\U}{PU}{\@empty}{\textbreve} \DeclareTextCompositeCommand{\C}{PU}{\@empty}{\textdoublegrave} +\DeclareTextCommand{\=}{PU}[1]{\TextSymbolUnavailable{\={#1}}#1} +\DeclareTextCommand{\H}{PU}[1]{\TextSymbolUnavailable{\H{#1}}#1} +\DeclareTextCommand{\k}{PU}[1]{\TextSymbolUnavailable{\k{#1}}#1} +\DeclareTextCommand{\u}{PU}[1]{\TextSymbolUnavailable{\u{#1}}#1} % \end{macrocode} % Accent glyph names % \begin{macrocode} @@ -12667,25 +13538,7 @@ o\fi,t=#4}% % % \subsubsection{Latin-1 Supplement} % \begin{macrocode} -\DeclareTextCommand{\textbullet}{PU}{\80\200} % bullet -\DeclareTextCommand{\textdagger}{PU}{\80\201} % dagger -\DeclareTextCommand{\textdaggerdbl}{PU}{\80\202} % daggerdbl -\DeclareTextCommand{\textellipsis}{PU}{\80\203} % ellipsis -\DeclareTextCommand{\textemdash}{PU}{\80\204} % emdash -\DeclareTextCommand{\textendash}{PU}{\80\205} % endash -\DeclareTextCommand{\textflorin}{PU}{\80\206} % florin -\DeclareTextCommand{\textfractionmark}{PU}{/} % fraction, \80\207 -\DeclareTextCommand{\guilsinglleft}{PU}{\80\210} % guilsinglleft -\DeclareTextCommand{\guilsinglright}{PU}{\80\211} % guilsinglright \DeclareTextCommand{\textminus}{PU}{-} % minus, \80\212 -\DeclareTextCommand{\textperthousand}{PU}{\80\213} % perthousand -\DeclareTextCommand{\quotedblbase}{PU}{\80\214} % quotedblbase -\DeclareTextCommand{\textquotedblleft}{PU}{\80\215} % quotedblleft -\DeclareTextCommand{\textquotedblright}{PU}{\80\216} % quotedblright -\DeclareTextCommand{\textquoteleft}{PU}{\80\217} % quoteleft -\DeclareTextCommand{\textquoteright}{PU}{\80\220} % quoteright -\DeclareTextCommand{\quotesinglbase}{PU}{\80\221} % quotesinglbase -\DeclareTextCommand{\texttrademark}{PU}{\80\222} % trademark \DeclareTextCommand{\textfi}{PU}{fi} % fi ?? \80\223 \DeclareTextCommand{\textfl}{PU}{fl} % fl ?? \80\224 % \end{macrocode} @@ -12695,8 +13548,8 @@ o\fi,t=#4}% % Problematic are all positions, but especially \cmd{\OE}, % \cmd{\oe}, and \cmd{\i}. % \begin{macrocode} -\DeclareTextCommand{\OE}{PU}{\80\226} % OE -\DeclareTextCommand{\oe}{PU}{\80\234} % oe +%\DeclareTextCommand{\OE}{PU}{OE} % OE +%\DeclareTextCommand{\oe}{PU}{oe} % oe % \end{macrocode} % The euro \cs{240} is inserted in version 1.3 of the pdf % specification. @@ -12807,7 +13660,6 @@ o\fi,t=#4}% % Glyphs that consist of several characters. % \begin{macrocode} \DeclareTextCommand{\SS}{PU}{SS} -\DeclareTextCommand{\textcelsius}{PU}{\textdegree C} % \end{macrocode} % Aliases (german.sty) % \begin{macrocode} @@ -12827,7 +13679,6 @@ o\fi,t=#4}% \DeclareTextCommand{\textdiv}{PU}{\textdivide} \DeclareTextCommand{\textpm}{PU}{\textplusminus} \DeclareTextCommand{\textcdot}{PU}{\textperiodcentered} -\DeclareTextCommand{\textbeta}{PU}{\ss} % \end{macrocode} % % \subsubsection{Latin Extended-A} @@ -12911,16 +13762,16 @@ o\fi,t=#4}% \DeclareTextCompositeCommand{\v}{PU}{N}{\81\107} % Ncaron \DeclareTextCompositeCommand{\v}{PU}{n}{\81\110} % ncaron % n apostrophe -\DeclareTextCommand{\NG}{PU}{NG} % \81\112 -\DeclareTextCommand{\ng}{PU}{ng} % \81\113 +\DeclareTextCommand{\NG}{PU}{\81\112} % NG +\DeclareTextCommand{\ng}{PU}{\81\113} % ng \DeclareTextCompositeCommand{\=}{PU}{O}{\81\114} % Omacron \DeclareTextCompositeCommand{\=}{PU}{o}{\81\115} % omacron \DeclareTextCompositeCommand{\u}{PU}{O}{\81\116} % Obreve \DeclareTextCompositeCommand{\u}{PU}{o}{\81\117} % obreve \DeclareTextCompositeCommand{\H}{PU}{O}{\81\120} % Odoubleacute \DeclareTextCompositeCommand{\H}{PU}{o}{\81\121} % odoubleacute -%\DeclareTextCommand{\OE}{PU}{\81\122} % OE -%\DeclareTextCommand{\oe}{PU}{\81\123} % oe +\DeclareTextCommand{\OE}{PU}{\81\122} % OE +\DeclareTextCommand{\oe}{PU}{\81\123} % oe \DeclareTextCompositeCommand{\'}{PU}{R}{\81\124} % Racute \DeclareTextCompositeCommand{\'}{PU}{r}{\81\125} % racute \DeclareTextCompositeCommand{\c}{PU}{R}{\81\126} % Rcedilla @@ -12967,8 +13818,10 @@ o\fi,t=#4}% \DeclareTextCompositeCommand{\v}{PU}{z}{\81\176} % zcaron % \end{macrocode} % +% % \subsubsection{Latin Extended-B} % \begin{macrocode} +\DeclareTextCommand{\textflorin}{PU}{\81\222} % florin \DeclareTextCompositeCommand{\v}{PU}{A}{\81\315} % Acaron \DeclareTextCompositeCommand{\v}{PU}{a}{\81\316} % acaron \DeclareTextCompositeCommand{\v}{PU}{I}{\81\317} % Icaron @@ -13304,9 +14157,30 @@ o\fi,t=#4}% \DeclareTextCompositeCommand{\"}{PU}{\CYRERY}{\84\370}% YERU diaeresis \DeclareTextCompositeCommand{\"}{PU}{\cyrery}{\84\371}% yeru diaeresis % \end{macrocode} -% \begin{macrocode} +% +% \subsubsection{Symbols} +% \begin{macrocode} +\DeclareTextCommand{\textendash}{PU}{\9040\023} % endash +\DeclareTextCommand{\textemdash}{PU}{\9040\024} % emdash +\DeclareTextCommand{\textquoteleft}{PU}{\9040\030} % quoteleft +\DeclareTextCommand{\textquoteright}{PU}{\9040\031} % quoteright +\DeclareTextCommand{\quotesinglbase}{PU}{\9040\032} % quotesinglbase +\DeclareTextCommand{\textquotedblleft}{PU}{\9040\034} % quotedblleft +\DeclareTextCommand{\textquotedblright}{PU}{\9040\035} % quotedblright +\DeclareTextCommand{\quotedblbase}{PU}{\9040\036} % quotedblbase +\DeclareTextCommand{\textdagger}{PU}{\9040\040} % dagger +\DeclareTextCommand{\textdaggerdbl}{PU}{\9040\041} % daggerdbl +\DeclareTextCommand{\textbullet}{PU}{\9040\042} % bullet +\DeclareTextCommand{\textellipsis}{PU}{\9040\046} % ellipsis +\DeclareTextCommand{\textperthousand}{PU}{\9040\060} % perthousand +\DeclareTextCommand{\textpertenthousand}{PU}{\9040\061} % pertenthousand +\DeclareTextCommand{\guilsinglleft}{PU}{\9040\071} % guilsinglleft +\DeclareTextCommand{\guilsinglright}{PU}{\9040\072} % guilsinglright +\DeclareTextCommand{\textfractionmark}{PU}{\9040\104} % fraction slash \DeclareTextCommand{\texteuro}{PU}{\9040\254} % Euro +\DeclareTextCommand{\textcelsius}{PU}{\9041\003} \DeclareTextCommand{\textnumero}{PU}{\9041\026} +\DeclareTextCommand{\texttrademark}{PU}{\9041\042} % trademark %\DeclareTextCommand{\cyrlangle}{PU}{\9043\051} %\DeclareTextCommand{\cyrrangle}{PU}{\9043\052} % \end{macrocode} @@ -13315,6 +14189,155 @@ o\fi,t=#4}% %</puenc> % \end{macrocode} % +% \subsection{PU encoding, additions for Vn\TeX} +% +% This file is provided by Han The Thanh. +% +% \begin{macrocode} +%<*puvnenc> +% \end{macrocode} +% \begin{macrocode} +\DeclareTextCommand{\abreve}{PU}{\81\003} +\DeclareTextCommand{\acircumflex}{PU}{\80\342} +\DeclareTextCommand{\dj}{PU}{\81\021} +\DeclareTextCommand{\ecircumflex}{PU}{\80\352} +\DeclareTextCommand{\ocircumflex}{PU}{\80\364} +\DeclareTextCommand{\ohorn}{PU}{\81\241} +\DeclareTextCommand{\uhorn}{PU}{\81\260} +\DeclareTextCommand{\ABREVE}{PU}{\81\002} +\DeclareTextCommand{\ACIRCUMFLEX}{PU}{\80\302} +\DeclareTextCommand{\DJ}{PU}{\81\020} +\DeclareTextCommand{\ECIRCUMFLEX}{PU}{\80\312} +\DeclareTextCommand{\OCIRCUMFLEX}{PU}{\80\324} +\DeclareTextCommand{\OHORN}{PU}{\81\240} +\DeclareTextCommand{\UHORN}{PU}{\81\257} +% \end{macrocode} +% \begin{macrocode} +\DeclareTextCompositeCommand{\'}{PU}{a}{\80\341} +\DeclareTextCompositeCommand{\d}{PU}{a}{\9036\241} +\DeclareTextCompositeCommand{\`}{PU}{a}{\80\340} +\DeclareTextCompositeCommand{\h}{PU}{a}{\9036\243} +\DeclareTextCompositeCommand{\~}{PU}{a}{\80\343} +\DeclareTextCompositeCommand{\'}{PU}{\abreve}{\9036\257} +\DeclareTextCompositeCommand{\d}{PU}{\abreve}{\9036\267} +\DeclareTextCompositeCommand{\`}{PU}{\abreve}{\9036\261} +\DeclareTextCompositeCommand{\h}{PU}{\abreve}{\9036\263} +\DeclareTextCompositeCommand{\~}{PU}{\abreve}{\9036\265} +\DeclareTextCompositeCommand{\'}{PU}{\acircumflex}{\9036\245} +\DeclareTextCompositeCommand{\d}{PU}{\acircumflex}{\9036\255} +\DeclareTextCompositeCommand{\`}{PU}{\acircumflex}{\9036\247} +\DeclareTextCompositeCommand{\h}{PU}{\acircumflex}{\9036\251} +\DeclareTextCompositeCommand{\~}{PU}{\acircumflex}{\9036\253} +\DeclareTextCompositeCommand{\'}{PU}{e}{\80\351} +\DeclareTextCompositeCommand{\d}{PU}{e}{\9036\271} +\DeclareTextCompositeCommand{\`}{PU}{e}{\80\350} +\DeclareTextCompositeCommand{\h}{PU}{e}{\9036\273} +\DeclareTextCompositeCommand{\~}{PU}{e}{\9036\275} +\DeclareTextCompositeCommand{\'}{PU}{\ecircumflex}{\9036\277} +\DeclareTextCompositeCommand{\d}{PU}{\ecircumflex}{\9036\307} +\DeclareTextCompositeCommand{\`}{PU}{\ecircumflex}{\9036\301} +\DeclareTextCompositeCommand{\h}{PU}{\ecircumflex}{\9036\303} +\DeclareTextCompositeCommand{\~}{PU}{\ecircumflex}{\9036\305} +\DeclareTextCompositeCommand{\'}{PU}{i}{\80\355} +\DeclareTextCompositeCommand{\d}{PU}{i}{\9036\313} +\DeclareTextCompositeCommand{\`}{PU}{i}{\80\354} +\DeclareTextCompositeCommand{\h}{PU}{i}{\9036\311} +\DeclareTextCompositeCommand{\~}{PU}{i}{\81\051} +\DeclareTextCompositeCommand{\'}{PU}{o}{\80\363} +\DeclareTextCompositeCommand{\d}{PU}{o}{\9036\315} +\DeclareTextCompositeCommand{\`}{PU}{o}{\80\362} +\DeclareTextCompositeCommand{\h}{PU}{o}{\9036\317} +\DeclareTextCompositeCommand{\~}{PU}{o}{\80\365} +\DeclareTextCompositeCommand{\'}{PU}{\ocircumflex}{\9036\321} +\DeclareTextCompositeCommand{\d}{PU}{\ocircumflex}{\9036\331} +\DeclareTextCompositeCommand{\`}{PU}{\ocircumflex}{\9036\323} +\DeclareTextCompositeCommand{\h}{PU}{\ocircumflex}{\9036\325} +\DeclareTextCompositeCommand{\~}{PU}{\ocircumflex}{\9036\327} +\DeclareTextCompositeCommand{\'}{PU}{\ohorn}{\9036\333} +\DeclareTextCompositeCommand{\d}{PU}{\ohorn}{\9036\343} +\DeclareTextCompositeCommand{\`}{PU}{\ohorn}{\9036\335} +\DeclareTextCompositeCommand{\h}{PU}{\ohorn}{\9036\337} +\DeclareTextCompositeCommand{\~}{PU}{\ohorn}{\9036\341} +\DeclareTextCompositeCommand{\'}{PU}{u}{\80\372} +\DeclareTextCompositeCommand{\d}{PU}{u}{\9036\345} +\DeclareTextCompositeCommand{\`}{PU}{u}{\80\371} +\DeclareTextCompositeCommand{\h}{PU}{u}{\9036\347} +\DeclareTextCompositeCommand{\~}{PU}{u}{\81\151} +\DeclareTextCompositeCommand{\'}{PU}{\uhorn}{\9036\351} +\DeclareTextCompositeCommand{\d}{PU}{\uhorn}{\9036\361} +\DeclareTextCompositeCommand{\`}{PU}{\uhorn}{\9036\353} +\DeclareTextCompositeCommand{\h}{PU}{\uhorn}{\9036\355} +\DeclareTextCompositeCommand{\~}{PU}{\uhorn}{\9036\357} +\DeclareTextCompositeCommand{\'}{PU}{y}{\80\375} +\DeclareTextCompositeCommand{\d}{PU}{y}{\9036\365} +\DeclareTextCompositeCommand{\`}{PU}{y}{\9036\363} +\DeclareTextCompositeCommand{\h}{PU}{y}{\9036\367} +\DeclareTextCompositeCommand{\~}{PU}{y}{\9036\371} +\DeclareTextCompositeCommand{\'}{PU}{A}{\80\301} +\DeclareTextCompositeCommand{\d}{PU}{A}{\9036\240} +\DeclareTextCompositeCommand{\`}{PU}{A}{\80\300} +\DeclareTextCompositeCommand{\h}{PU}{A}{\9036\242} +\DeclareTextCompositeCommand{\~}{PU}{A}{\80\303} +\DeclareTextCompositeCommand{\'}{PU}{\ABREVE}{\9036\256} +\DeclareTextCompositeCommand{\d}{PU}{\ABREVE}{\9036\266} +\DeclareTextCompositeCommand{\`}{PU}{\ABREVE}{\9036\260} +\DeclareTextCompositeCommand{\h}{PU}{\ABREVE}{\9036\262} +\DeclareTextCompositeCommand{\~}{PU}{\ABREVE}{\9036\264} +\DeclareTextCompositeCommand{\'}{PU}{\ACIRCUMFLEX}{\9036\244} +\DeclareTextCompositeCommand{\d}{PU}{\ACIRCUMFLEX}{\9036\254} +\DeclareTextCompositeCommand{\`}{PU}{\ACIRCUMFLEX}{\9036\246} +\DeclareTextCompositeCommand{\h}{PU}{\ACIRCUMFLEX}{\9036\250} +\DeclareTextCompositeCommand{\~}{PU}{\ACIRCUMFLEX}{\9036\252} +\DeclareTextCompositeCommand{\'}{PU}{E}{\80\311} +\DeclareTextCompositeCommand{\d}{PU}{E}{\9036\270} +\DeclareTextCompositeCommand{\`}{PU}{E}{\80\310} +\DeclareTextCompositeCommand{\h}{PU}{E}{\9036\272} +\DeclareTextCompositeCommand{\~}{PU}{E}{\9036\274} +\DeclareTextCompositeCommand{\'}{PU}{\ECIRCUMFLEX}{\9036\276} +\DeclareTextCompositeCommand{\d}{PU}{\ECIRCUMFLEX}{\9036\306} +\DeclareTextCompositeCommand{\`}{PU}{\ECIRCUMFLEX}{\9036\300} +\DeclareTextCompositeCommand{\h}{PU}{\ECIRCUMFLEX}{\9036\302} +\DeclareTextCompositeCommand{\~}{PU}{\ECIRCUMFLEX}{\9036\304} +\DeclareTextCompositeCommand{\'}{PU}{I}{\80\315} +\DeclareTextCompositeCommand{\d}{PU}{I}{\9036\312} +\DeclareTextCompositeCommand{\`}{PU}{I}{\80\314} +\DeclareTextCompositeCommand{\h}{PU}{I}{\9036\310} +\DeclareTextCompositeCommand{\~}{PU}{I}{\81\050} +\DeclareTextCompositeCommand{\'}{PU}{O}{\80\323} +\DeclareTextCompositeCommand{\d}{PU}{O}{\9036\314} +\DeclareTextCompositeCommand{\`}{PU}{O}{\80\322} +\DeclareTextCompositeCommand{\h}{PU}{O}{\9036\316} +\DeclareTextCompositeCommand{\~}{PU}{O}{\80\325} +\DeclareTextCompositeCommand{\'}{PU}{\OCIRCUMFLEX}{\9036\320} +\DeclareTextCompositeCommand{\d}{PU}{\OCIRCUMFLEX}{\9036\330} +\DeclareTextCompositeCommand{\`}{PU}{\OCIRCUMFLEX}{\9036\322} +\DeclareTextCompositeCommand{\h}{PU}{\OCIRCUMFLEX}{\9036\324} +\DeclareTextCompositeCommand{\~}{PU}{\OCIRCUMFLEX}{\9036\326} +\DeclareTextCompositeCommand{\'}{PU}{\OHORN}{\9036\332} +\DeclareTextCompositeCommand{\d}{PU}{\OHORN}{\9036\342} +\DeclareTextCompositeCommand{\`}{PU}{\OHORN}{\9036\334} +\DeclareTextCompositeCommand{\h}{PU}{\OHORN}{\9036\336} +\DeclareTextCompositeCommand{\~}{PU}{\OHORN}{\9036\340} +\DeclareTextCompositeCommand{\'}{PU}{U}{\80\332} +\DeclareTextCompositeCommand{\d}{PU}{U}{\9036\344} +\DeclareTextCompositeCommand{\`}{PU}{U}{\80\331} +\DeclareTextCompositeCommand{\h}{PU}{U}{\9036\346} +\DeclareTextCompositeCommand{\~}{PU}{U}{\81\150} +\DeclareTextCompositeCommand{\'}{PU}{\UHORN}{\9036\350} +\DeclareTextCompositeCommand{\d}{PU}{\UHORN}{\9036\360} +\DeclareTextCompositeCommand{\`}{PU}{\UHORN}{\9036\352} +\DeclareTextCompositeCommand{\h}{PU}{\UHORN}{\9036\354} +\DeclareTextCompositeCommand{\~}{PU}{\UHORN}{\9036\356} +\DeclareTextCompositeCommand{\'}{PU}{Y}{\80\335} +\DeclareTextCompositeCommand{\d}{PU}{Y}{\9036\364} +\DeclareTextCompositeCommand{\`}{PU}{Y}{\9036\362} +\DeclareTextCompositeCommand{\h}{PU}{Y}{\9036\366} +\DeclareTextCompositeCommand{\~}{PU}{Y}{\9036\370} +% \end{macrocode} +% \begin{macrocode} +%</puvnenc> +% \end{macrocode} +% % \section{End of file hycheck.tex} % % \begin{macrocode} |