summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/hyperref/hyperref.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/hyperref/hyperref.dtx')
-rw-r--r--Master/texmf-dist/source/latex/hyperref/hyperref.dtx809
1 files changed, 528 insertions, 281 deletions
diff --git a/Master/texmf-dist/source/latex/hyperref/hyperref.dtx b/Master/texmf-dist/source/latex/hyperref/hyperref.dtx
index 3fcb559f2f3..f38a70fe03c 100644
--- a/Master/texmf-dist/source/latex/hyperref/hyperref.dtx
+++ b/Master/texmf-dist/source/latex/hyperref/hyperref.dtx
@@ -39,7 +39,7 @@
%<puenc>\ProvidesFile{puenc.def}
%<puvnenc>\ProvidesFile{puvnenc.def}
%<puarenc>\ProvidesFile{puarenc.def}
-%<!none> [2008/04/12 v6.77m
+%<!none> [2008/04/17 v6.77q
%<package> Hypertext links for LaTeX]
%<nohyperref> Dummy hyperref (SR)]
%<driver> Hyperref documentation driver file]
@@ -116,7 +116,7 @@
\end{document}
%</driver>
% \fi
-% \CheckSum{22290}
+% \CheckSum{22578}
%
% \MakeShortVerb{|}
% \StopEventually{}
@@ -625,6 +625,7 @@
\newif\ifHy@verbose
\newif\ifHy@windowui
\newif\ifHy@displaydoctitle
+\newif\ifHy@pdfa
% \end{macrocode}
% Defaults for the switches are now set.
% \begin{macrocode}
@@ -663,6 +664,7 @@
\Hy@verbosefalse
\Hy@windowuitrue
\Hy@displaydoctitlefalse
+\Hy@pdfafalse
% \end{macrocode}
%
% \section{Common help macros}
@@ -3186,7 +3188,9 @@
}%
}%
\def\HyPsd@UTFviii@ccxliv@undef{\@inpenc@undefined@{utf8}}%
- \edef\HyPsd@UTFviii@ccxliv@def{\noexpand\UTFviii@four@octets\string^^f4}%
+ \edef\HyPsd@UTFviii@ccxliv@def{%
+ \noexpand\UTFviii@four@octets\string ^^f4%
+ }%
% \end{macrocode}
%
% The two octet form of UTF-8 |110aaabb| (A) and |10cccddd| (B)
@@ -3453,7 +3457,7 @@
% \begin{macrocode}
\let\literalps@out\@gobble
\newcommand\pdfbookmark[3][]{}
-\let\Acrobatmenu\@gobble
+\def\Acrobatmenu#1#2{\leavevmode#2}
\def\Hy@writebookmark#1#2#3#4#5{}%
% \end{macrocode}
%
@@ -3733,6 +3737,32 @@
}
\define@key{Hyp}{linktocpage}[true]{%
\Hy@boolkey{linktocpage}{#1}%
+ \ifHy@linktocpage
+ \let\Hy@linktoc\Hy@linktoc@page
+ \else
+ \let\Hy@linktoc\Hy@linktoc@section
+ \fi
+}
+\chardef\Hy@linktoc@none=0 %
+\chardef\Hy@linktoc@section=1 %
+\chardef\Hy@linktoc@page=2 %
+\chardef\Hy@linktoc@all=3 %
+\ifHy@linktocpage
+ \let\Hy@linktoc\Hy@linktoc@page
+\else
+ \let\Hy@linktoc\Hy@linktoc@section
+\fi
+\define@key{Hyp}{linktoc}{%
+ \@ifundefined{Hy@linktoc@#1}{%
+ \Hy@Warning{%
+ Unexpected value `#1' of\MessageBreak
+ option `linktoc' instead of `none',\MessageBreak
+ `section', `page' or `all'%
+ }%
+ }{%
+ \expandafter\let\expandafter\Hy@linktoc
+ \csname Hy@linktoc@#1\endcsname
+ }%
}
\define@key{Hyp}{extension}{\def\XR@ext{#1}}
\def\XR@ext{dvi}
@@ -4934,6 +4964,9 @@
\define@key{Hyp}{pdfdisplaydoctitle}[true]{%
\Hy@boolkey[pdfdisplaydoctitle]{displaydoctitle}{#1}%
}
+\define@key{Hyp}{pdfa}[true]{%
+ \Hy@boolkey{pdfa}{#1}%
+}
\define@key{Hyp}{pdfnewwindow}[true]{%
\def\Hy@temp{#1}%
\ifx\Hy@temp\@empty
@@ -5081,7 +5114,7 @@
\def\hyper@linkurl#1#2{#1}%
\def\hyper@linkfile#1#2#3{#1}%
\def\hyper@link@[#1]#2#3{}%
- \def\Acrobatmenu#1#2{#2}%
+ \def\Acrobatmenu#1#2{\leavevmode#2}%
\let\PDF@SetupDoc\@empty
\let\PDF@FinishDoc\@empty
\let\@fifthoffive\@secondoftwo
@@ -5097,6 +5130,59 @@
\Hy@DisableOption{pdfversion}%
% \end{macrocode}
%
+% \subsection{PDF/A}
+%
+% \begin{macrocode}
+\Hy@DisableOption{pdfa}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ifHy@pdfa
+ \def\Hy@Acrobatmenu#1#2{%
+ \leavevmode
+ \begingroup
+ \edef\x{#1}%
+ \@onelevel@sanitize\x
+ \ifx\x\Hy@NextPage
+ \let\y=Y%
+ \else
+ \ifx\x\Hy@PrevPage
+ \let\y=Y%
+ \else
+ \ifx\x\Hy@FirstPage
+ \let\y=Y%
+ \else
+ \ifx\x\Hy@LastPage
+ \let\y=Y%
+ \else
+ \let\y=N%
+ \fi
+ \fi
+ \fi
+ \fi
+ \expandafter\endgroup
+ \ifx\y Y%
+ \else
+ \PackageError{hyperref}{%
+ PDF/A: Named action `#1' is not permitted%
+ }\@ehc
+ {#2}%
+ \expandafter\@gobble
+ \fi
+ }%
+ \def\Hy@temp#1{%
+ \expandafter\def\csname Hy@#1\endcsname{#1}%
+ \expandafter\@onelevel@sanitize\csname Hy@#1\endcsname
+ }%
+ \Hy@temp{NextPage}%
+ \Hy@temp{PrevPage}%
+ \Hy@temp{FirstPage}%
+ \Hy@temp{LastPage}%
+\else
+ \def\Hy@Acrobatmenu#1#2{\leavevmode}%
+\fi
+% \end{macrocode}
+%
% \subsection{Patch for babel's
% \texorpdfstring{\cs{texttilde}}{\\texttilde}}
% Babel does not define \cmd{\texttilde} in NFSS2 manner,
@@ -5113,6 +5199,43 @@
\fi
% \end{macrocode}
%
+% \subsection{Patch for babel 3.8j}
+% Babel 2008/03/16 v3.8j adds a patch to disable shorthands
+% for bookmarks. That reduces warnings, but the bookmarks
+% are ugly. Therefore the following patch tries to undo this.
+% \begin{macrocode}
+\@ifpackageloaded{babel}{%
+ \@ifpackagelater{babel}{2008/03/16}{%
+ \def\Hy@PatchLanguageShorthands#1{%
+ \begingroup
+ \edef\x{#1}%
+ \@onelevel@sanitize\x
+ \def\y{system}%
+ \@onelevel@sanitize\y
+ \expandafter\endgroup
+ \ifx\x\y
+ \else
+ \HyOrg@languageshorthands{#1}%
+ \fi
+ }%
+ \AtBeginDocument{%
+ \begingroup
+ \toks0=\expandafter{\pdfstringdefPreHook}%
+ \xdef\pdfstringdefPreHook{%
+ \let\noexpand\HyOrg@languageshorthands
+ \noexpand\languageshorthands
+ \let\noexpand\languageshorthands
+ \noexpand\Hy@PatchLanguageShorthands
+ \the\toks0 %
+ \let\noexpand\languageshorthands
+ \noexpand\HyOrg@languageshorthands
+ }%
+ \endgroup
+ }%
+ }{}%
+}{}
+% \end{macrocode}
+%
% \begin{macrocode}
\ifHy@figures
\Hy@Info{Hyper figures ON}%
@@ -5698,7 +5821,17 @@
% if it starts `run:', its to launch an application.
% \begin{macrocode}
\ifx\@pdftempa\@pdftempwordrun
- \expandafter\@hyper@launch#7\\{#3}{#2}%
+ \ifHy@pdfa
+ \PackageError{hyperref}{%
+ PDF/A: Launch action is prohibited%
+ }\@ehc
+ \begingroup
+ \leavevmode
+ #2%
+ \endgroup
+ \else
+ \expandafter\@hyper@launch#7\\{#3}{#2}%
+ \fi
\else
% \end{macrocode}
% otherwise its a URL
@@ -6041,6 +6174,41 @@
\HyField@NewFlag{F}{LockedContents}{10}% PDF 1.7
% \end{macrocode}
%
+% \begin{macrocode}
+\ifHy@pdfa
+ \def\HyField@PDFAFlagWarning#1#2{%
+ \Hy@Warning{%
+ PDF/A: Annotation flag `#1' must\MessageBreak
+ be set to `#2'%
+ }%
+ }%
+ \Fld@invisiblefalse
+ \def\Fld@invisibletrue{%
+ \HyField@PDFAFlagWarning{invisible}{false}%
+ }%
+ \Fld@hiddenfalse
+ \def\Fld@hiddentrue{%
+ \HyField@PDFAFlagWarning{hidden}{false}%
+ }%
+ \Fld@printtrue
+ \def\Fld@printfalse{%
+ \HyField@PDFAFlagWarning{print}{true}%
+ }%
+ \Fld@nozoomtrue
+ \def\Fld@nozoomfalse{%
+ \HyField@PDFAFlagWarning{nozoom}{true}%
+ }%
+ \Fld@norotatetrue
+ \def\Fld@norotatefalse{%
+ \HyField@PDFAFlagWarning{norotate}{true}%
+ }%
+ \Fld@noviewfalse
+ \def\Fld@noviewtrue{%
+ \HyField@PDFAFlagWarning{noview}{false}%
+ }%
+\fi
+% \end{macrocode}
+%
% Submit flags. Flag 1 Include/Exclude is not supported,
% use option noexport instead.
% \begin{macrocode}
@@ -6573,67 +6741,42 @@
\def\Fld@onmouseup@code{}
\def\Fld@onenter@code{}
\def\Fld@onexit@code{}
-\define@key{Field}{keystroke}{%
- \def\Fld@keystroke@code{#1}%
-}
-\define@key{Field}{format}{%
- \def\Fld@format@code{#1}%
-}
-\define@key{Field}{validate}{%
- \def\Fld@validate@code{#1}%
-}
-\define@key{Field}{calculate}{%
- \def\Fld@calculate@code{#1}%
-}
-\define@key{Field}{onfocus}{%
- \def\Fld@onfocus@code{#1}%
-}
-\define@key{Field}{onblur}{%
- \def\Fld@onblur@code{#1}%
-}
-\define@key{Field}{onenter}{%
- \def\Fld@onenter@code{#1}%
-}
-\define@key{Field}{onexit}{%
- \def\Fld@onexit@code{#1}%
-}
-\define@key{Field}{onselect}{%
- \Field@addtoks{onselect}{#1}%
-}
-\define@key{Field}{onchange}{%
- \Field@addtoks{onchange}{#1}%
-}
-\define@key{Field}{onclick}{%
- \def\Fld@onclick{#1}%
- \Field@addtoks{onclick}{#1}%
-}
-\define@key{Field}{ondblclick}{%
- \Field@addtoks{ondblclick}{#1}%
-}
-\define@key{Field}{onmousedown}{%
- \Field@addtoks{onmousedown}{#1}%
-}
-\define@key{Field}{onmouseup}{%
- \Field@addtoks{onmouseup}{#1}%
-}
-\define@key{Field}{onmouseover}{%
- \Field@addtoks{onmouseover}{#1}%
-}
-\define@key{Field}{onmousemove}{%
- \Field@addtoks{onmousemove}{#1}%
-}
-\define@key{Field}{onmouseout}{%
- \Field@addtoks{onmouseout}{#1}%
-}
-\define@key{Field}{onkeypress}{%
- \Field@addtoks{onkeypress}{#1}%
-}
-\define@key{Field}{onkeydown}{%
- \Field@addtoks{onkeydown}{#1}%
+\def\Hy@temp#1{%
+ \expandafter\Hy@@temp\csname Fld@#1@code\endcsname{#1}%
}
-\define@key{Field}{onkeyup}{%
- \Field@addtoks{onkeyup}{#1}%
+\def\Hy@@temp#1#2{%
+ \ifHy@pdfa
+ \define@key{Field}{#2}{%
+ \PackageError{hyperref}{%
+ PDF/A: Additional action #2 is prohibited%
+ }\@ehc
+ }%
+ \else
+ \define@key{Field}{#2}{%
+ \def#1{##1}%
+ }%
+ \fi
}
+\Hy@temp{keystroke}
+\Hy@temp{format}
+\Hy@temp{validate}
+\Hy@temp{calculate}
+\Hy@temp{onfocus}
+\Hy@temp{onblur}
+\Hy@temp{onenter}
+\Hy@temp{onexit}
+\Hy@temp{onselect}
+\Hy@temp{onchange}
+\Hy@temp{onclick}
+\Hy@temp{ondblclick}
+\Hy@temp{onmousedown}
+\Hy@temp{onmouseup}
+\Hy@temp{onmouseover}
+\Hy@temp{onmousemove}
+\Hy@temp{onmouseout}
+\Hy@temp{onkeypress}
+\Hy@temp{onkeydown}
+\Hy@temp{onkeyup}
%
\DeclareRobustCommand\TextField{%
\@ifnextchar[{\@TextField}{\@TextField[]}%
@@ -6853,7 +6996,7 @@
% \end{macrocode}
% Some top-level commands:
% \begin{macrocode}
-\let\Acrobatmenu\@gobble
+\def\Acrobatmenu#1#2{\leavevmode#2}
\let\pdfstringdefDisableCommands\@gobbletwo
\let\texorpdfstring\@firstoftwo
\let\pdfbookmark\@undefined
@@ -7718,6 +7861,12 @@
\def\@Alph{Alph\@arabic}%
\fi
}%
+ \ifx\@Alph\@Alph@bul
+ \def\@Alph{Alph\@arabic}%
+ \fi
+ \ifx\@alph\@alph@bul
+ \def\@alph{alph\@arabic}%
+ \fi
\ifHy@naturalnames
\let\textlatin\@firstofone
\xdef\@currentHlabel{\csname the#1\endcsname}%
@@ -8960,14 +9109,22 @@
\ifx\\#4\\%
\csname l@#1\endcsname{#2}{#3}%
\else
- \ifHy@linktocpage
+ \ifcase\Hy@linktoc % none
+ \csname l@#1\endcsname{#2}{#3}%
+ \or % section
+ \csname l@#1\endcsname{%
+ \hyper@linkstart{link}{#4}{#2}\hyper@linkend
+ }{#3}%
+ \or % page
\csname l@#1\endcsname{{#2}}{%
\hyper@linkstart{link}{#4}{#3}\hyper@linkend
}%
- \else
+ \else % all
\csname l@#1\endcsname{%
\hyper@linkstart{link}{#4}{#2}\hyper@linkend
- }{#3}%
+ }{%
+ \hyper@linkstart{link}{#4}{#3}\hyper@linkend
+ }%
\fi
\fi
}
@@ -9013,22 +9170,34 @@
% of theirs. Damned if we are going to try and work out what
% they get up to. Just stick a label of `AMS' on the front, and use the
% label \emph{they} worked out. If that produces something invalid, I give
-% up. They'll change all the code again anyway, I expect.
+% up. They'll change all the code again anyway, I expect (SR).
+%
+% Version 6.77p uses a patch by Ross Moore.
% \begin{macrocode}
-\let\Hmake@df@tag@@\make@df@tag@@
-\def\make@df@tag@@#1{%
- \Hmake@df@tag@@{#1}%
- \Hy@GlobalStepCount\Hy@linkcounter
- \xdef\@currentHref{AMS.\the\Hy@linkcounter}%
- \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
-}
-\let\Hmake@df@tag@@@\make@df@tag@@@
-\def\make@df@tag@@@#1{%
- \Hmake@df@tag@@@{#1}%
- \Hy@GlobalStepCount\Hy@linkcounter
- \xdef\@currentHref{AMS.\the\Hy@linkcounter}%
- \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
-}
+\@ifpackageloaded{amsmath}{%
+ \def\Hy@make@anchor{%
+ \Hy@GlobalStepCount\Hy@linkcounter
+ \xdef\@currentHref{AMS.\the\Hy@linkcounter}%
+ \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
+ }%
+ \def\Hy@make@df@tag@@#1{%
+ \gdef\df@tag{%
+ \maketag@@@{\Hy@make@anchor#1}%
+ \def\@currentlabel{#1}%
+ }%
+ }%
+ \def\Hy@make@df@tag@@@#1{%
+ \gdef\df@tag{%
+ \tagform@{\Hy@make@anchor#1}%
+ \toks@\@xp{\p@equation{#1}}%
+ \edef\@currentlabel{\the\toks@}%
+ }%
+ }%
+ \let\HyOrg@make@df@tag@@\make@df@tag@@
+ \let\HyOrg@make@df@tag@@@\make@df@tag@@@
+ \let\make@df@tag@@\Hy@make@df@tag@@
+ \let\make@df@tag@@@\Hy@make@df@tag@@@
+}{}
% \end{macrocode}
% Only play with |\seteqlebal| if we are using pdftex. Other drivers
% cause problems; requested by Michael Downes (AMS).
@@ -9924,6 +10093,7 @@
\Hy@pstringdef\Hy@testname\Hy@testname
\fi
\Hy@StartlinkName{%
+ \ifHy@pdfa /F 4\fi
\Hy@setpdfborder
\ifx\@pdfhighlight\@empty
\else
@@ -9980,6 +10150,7 @@
}%
user{%
/Subtype/Link%
+ \ifHy@pdfa /F 4\fi
/A<<%
/Type/Action%
/S/URI%
@@ -9993,8 +10164,8 @@
}
\def\hyper@linkfile#1#2#3{% anchor text, filename, linkname
\begingroup
- \Hy@pstringdef\Hy@pstringF{#2}%
- \Hy@pstringdef\Hy@pstringD{#3}%
+ \Hy@pstringdef\Hy@pstringF{#2}%
+ \Hy@pstringdef\Hy@pstringD{#3}%
\leavevmode
\pdfstartlink
attr{%
@@ -10010,6 +10181,7 @@
}%
user {%
/Subtype/Link%
+ \ifHy@pdfa /F 4\fi
/A<<%
/F(\Hy@pstringF)%
/S/GoToR%
@@ -10059,6 +10231,7 @@
}%
user {%
/Subtype/Link%
+ \ifHy@pdfa /F 4\fi
/A<<%
/F(\Hy@pstringF)%
/S/Launch%
@@ -10441,27 +10614,29 @@
\Hy@DisableOption{setpagesize}%
}
\def\Acrobatmenu#1#2{%
- \leavevmode
- \pdfstartlink
- attr{%
- \Hy@setpdfborder
- \ifx\@pdfhighlight\@empty
- \else
- /H\@pdfhighlight
- \fi
- \ifx\@menubordercolor\relax
- \else
- /C[\@menubordercolor]%
- \fi
- }%
- user{%
- /Subtype/Link%
- /A<<%
- /S/Named/N/#1%
- >>%
- }%
- \relax
- \Hy@colorlink\@menucolor#2\close@pdflink
+ \Hy@Acrobatmenu{#1}{#2}{%
+ \pdfstartlink
+ attr{%
+ \Hy@setpdfborder
+ \ifx\@pdfhighlight\@empty
+ \else
+ /H\@pdfhighlight
+ \fi
+ \ifx\@menubordercolor\relax
+ \else
+ /C[\@menubordercolor]%
+ \fi
+ }%
+ user{%
+ /Subtype/Link%
+ \ifHy@pdfa /F 4\fi
+ /A<<%
+ /S/Named/N/#1%
+ >>%
+ }%
+ \relax
+ \Hy@colorlink\@menucolor#2\close@pdflink
+ }%
}
%</pdftex>
%<*hypertex>
@@ -10938,6 +11113,7 @@
bann<<%
/Type/Annot%
/Subtype/Link%
+ \ifHy@pdfa /F 4\fi
\Hy@setpdfborder
\expandafter\ifx\csname @#1bordercolor\endcsname\relax
\else
@@ -10966,6 +11142,7 @@
bann<<%
/Type/Annot%
/Subtype/Link%
+ \ifHy@pdfa /F 4\fi
\Hy@setpdfborder
\ifx\@filebordercolor\relax
\else
@@ -10982,33 +11159,6 @@
\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}%
- \leavevmode
- \@pdfm@mark{%
- bann<<%
- /Type/Annot%
- /Subtype/Link%
- \Hy@setpdfborder
- \ifx\@runbordercolor\relax
- \else
- /C[\@runbordercolor]%
- \fi
- /A<<%
- /S/Launch%
- /F(\Hy@pstringF)%
- \Hy@SetNewWindow
- \ifx\\#3\\%
- \else
- /Win<</P(\Hy@pstringP)/F(\Hy@pstringF)>>%
- \fi
- >>%
- >>%
- }%
- \Hy@colorlink\@runcolor#2\Hy@endcolorlink
- \@pdfm@mark{eann}%
-}
\def\hyper@linkurl#1#2{%
\Hy@pstringdef\Hy@pstringURI{#2}%
\leavevmode
@@ -11016,6 +11166,7 @@
bann<<%
/Type/Annot%
/Subtype/Link%
+ \ifHy@pdfa /F 4\fi
\Hy@setpdfborder
\ifx\@urlbordercolor\relax
\else
@@ -11031,24 +11182,26 @@
\@pdfm@mark{eann}%
}
\def\Acrobatmenu#1#2{%
- \leavevmode
- \@pdfm@mark{%
- bann<<%
- /Type/Annot%
- /Subtype/Link%
- /A<<%
- /S/Named%
- /N/#1%
+ \Hy@Acrobatmenu{#1}{#2}{%
+ \@pdfm@mark{%
+ bann<<%
+ /Type/Annot%
+ /Subtype/Link%
+ \ifHy@pdfa /F 4\fi
+ /A<<%
+ /S/Named%
+ /N/#1%
+ >>%
+ \Hy@setpdfborder
+ \ifx\@menubordercolor\relax
+ \relax
+ /C[\@menubordercolor]%
+ \fi
>>%
- \Hy@setpdfborder
- \ifx\@menubordercolor\relax
- \relax
- /C[\@menubordercolor]%
- \fi
- >>%
+ }%
+ \Hy@colorlink\@menucolor#2\Hy@endcolorlink
+ \@pdfm@mark{eann}%
}%
- \Hy@colorlink\@menucolor#2\Hy@endcolorlink
- \@pdfm@mark{eann}%
}
\ifx\@pdfproducer\relax
\def\@pdfproducer{dvipdfm}%
@@ -11349,6 +11502,7 @@
\special{!%
aref <u=/Type /Action /S /URI /URI (\Hy@pstringURI)>;%
a=<%
+ \ifHy@pdfa /F 4\fi
\Hy@setpdfborder
\ifx\CurrentBorderColor\relax
\else
@@ -11364,6 +11518,7 @@
\special{!%
aref \Hy@testname;%
a=<%
+ \ifHy@pdfa /F 4\fi
\Hy@setpdfborder
\ifx\CurrentBorderColor\relax
\else
@@ -11384,6 +11539,7 @@
\ifnum\Hy@VTeXversion>753 \ifHy@newwindow n\fi\fi
f=#2>#3;%
a=<%
+ \ifHy@pdfa /F 4\fi
\Hy@setpdfborder
\ifx\@filebordercolor\relax
\else
@@ -11402,6 +11558,7 @@
\special{!%
aref <u=/Type /Action /S /URI /URI (\Hy@pstringURI)>;%
a=<%
+ \ifHy@pdfa /F 4\fi
\Hy@setpdfborder
\ifx\@urlbordercolor\relax
\else
@@ -11427,6 +11584,7 @@
\special{!%
aref \Hy@testname;%
a=<%
+ \ifHy@pdfa /F 4\fi
\Hy@setpdfborder
\ifx\CurrentBorderColor\relax
\else
@@ -11453,6 +11611,7 @@
\ifx\\#3\\\else /Win<</F(\Hy@pstringF)/P(\Hy@pstringP)>>\fi%
>;%
a=<%
+ \ifHy@pdfa /F 4\fi
\Hy@setpdfborder
\ifx\@runbordercolor\relax
\else
@@ -11464,19 +11623,21 @@
\special{!endaref}%
}
\def\Acrobatmenu#1#2{%
- \leavevmode
- \special{!%
- aref <u=/S /Named /N /#1>;%
- a=<%
- \Hy@setpdfborder
- \ifx\@menubordercolor\relax
- \else
- /C[\@menubordercolor]%
- \fi
- >%
+ \Hy@Acrobatmenu{#1}{#2}{%
+ \special{!%
+ aref <u=/S /Named /N /#1>;%
+ a=<%
+ \ifHy@pdfa /F 4\fi
+ \Hy@setpdfborder
+ \ifx\@menubordercolor\relax
+ \else
+ /C[\@menubordercolor]%
+ \fi
+ >%
+ }%
+ \Hy@colorlink\@menucolor#2\Hy@endcolorlink
+ \special{!endaref}%
}%
- \Hy@colorlink\@menucolor#2\Hy@endcolorlink
- \special{!endaref}%
}
% \end{macrocode}
%
@@ -12006,6 +12167,7 @@
pdfmark=/ANN,%
linktype=link,%
Subtype=/Link,%
+ PDFAFlags=4,%
Dest=\hyper@currentanchor,%
AcroHighlight=\@pdfhighlight,%
Border=\@pdfborder,%
@@ -12141,6 +12303,7 @@
BorderStyle=\@pdfborderstyle,%
pdfmark=/ANN,%
Subtype=/Link,%
+ PDFAFlags=4,%
Dest=\Hy@testname
}%
%</pdfmarkbase>
@@ -12472,6 +12635,11 @@
\define@key{PDF}{File}{\pdf@addtoks{(#1)}{File}}
% parameter is a int
\define@key{PDF}{Flags}{\pdf@addtoks{#1}{Flags}}
+\define@key{PDF}{PDFAFlags}{%
+ \ifHy@pdfa
+ \pdf@addtoks{#1}{F}%
+ \fi
+}
% parameter is a name
\define@key{PDF}{AcroHighlight}{%
\begingroup
@@ -12530,14 +12698,17 @@
%</pdfmarkbase|dvipdf>
%<*pdfmark|dvipdf>
\def\Acrobatmenu#1#2{%
- \pdfmark[{#2}]{%
- linktype=menu,%
- pdfmark=/ANN,%
- AcroHighlight=\@pdfhighlight,%
- Border=\@pdfborder,%
- BorderStyle=\@pdfborderstyle,%
- Action={<< /Subtype /Named /N /#1 >>},%
- Subtype=/Link%
+ \Hy@Acrobatmenu{#1}{#2}{%
+ \pdfmark[{#2}]{%
+ linktype=menu,%
+ pdfmark=/ANN,%
+ AcroHighlight=\@pdfhighlight,%
+ Border=\@pdfborder,%
+ BorderStyle=\@pdfborderstyle,%
+ Action={<< /Subtype /Named /N /#1 >>},%
+ Subtype=/Link,%
+ PDFAFlags=4%
+ }%
}%
}
% \end{macrocode}
@@ -12552,6 +12723,7 @@
Color=.2 .1 .5,%
pdfmark=/ANN,%
Subtype=/Link,%
+ PDFAFlags=4,%
Page=/Next%
}%
}
@@ -12566,6 +12738,7 @@
Color=.4 .4 .1,%
pdfmark=/ANN,%
Subtype=/Link,%
+ PDFAFlags=4,%
Page=/Prev%
}%
}
@@ -12589,7 +12762,8 @@
BorderStyle=\@pdfborderstyle,%
Color=\@urlbordercolor,%
Action={<< /Subtype /URI /URI (\Hy@pstringURI) >>},%
- Subtype=/Link%
+ Subtype=/Link,%
+ PDFAFlags=4%
}%
%</pdfmarkbase>
%<*dvipdf>
@@ -12614,6 +12788,7 @@
\pdfmark[{#1}]{%
pdfmark=/ANN,%
Subtype=/Link,%
+ PDFAFlags=4,%
AcroHighlight=\@pdfhighlight,%
Border=\@pdfborder,%
BorderStyle=\@pdfborderstyle,%
@@ -12658,6 +12833,7 @@
\pdfmark[{#2}]{%
pdfmark=/ANN,%
Subtype=/Link,%
+ PDFAFlags=4,%
AcroHighlight=\@pdfhighlight,%
Border=\@pdfborder,%
BorderStyle=\@pdfborderstyle,%
@@ -13673,7 +13849,10 @@
>>%
/DA(/Helv 10 Tf 0 g)%
/CO{corder}%
- /NeedAppearances true%
+ \ifHy@pdfa
+ \else
+ /NeedAppearances true%
+ \fi
>>%
/PUT pdfmark%
[%
@@ -13818,14 +13997,25 @@
\expandafter\HyField@SetKeys\expandafter{%
\DefaultOptionsofPushButton,#1%
}%
- \HyField@FlagsPushButton
- \ifFld@hidden\def\Fld@width{1sp}\fi
- \LayoutPushButtonField{%
- \Hy@escapeform\PDFForm@Push
- \pdfmark[\MakeButtonField{#2}]{%
- pdfmark=/ANN,Raw={\PDFForm@Push}%
+ \ifHy@pdfa
+ \PackageError{hyperref}{%
+ PDF/A: Push button with JavaScript is prohibited%
+ }\@ehc
+ \LayoutPushButtonField{%
+ \leavevmode
+ \MakeButtonField{#2}%
}%
- }%
+ \else
+ \HyField@FlagsPushButton
+ \ifFld@hidden\def\Fld@width{1sp}\fi
+ \LayoutPushButtonField{%
+ \leavevmode
+ \Hy@escapeform\PDFForm@Push
+ \pdfmark[\MakeButtonField{#2}]{%
+ pdfmark=/ANN,Raw={\PDFForm@Push}%
+ }%
+ }%
+ \fi
\endgroup
}
\def\@Submit[#1]#2{%
@@ -13854,14 +14044,22 @@
\expandafter\HyField@SetKeys\expandafter{%
\DefaultOptionsofReset,#1%
}%
- \HyField@FlagsPushButton
- \ifFld@hidden\def\Fld@width{1sp}\fi
- \Hy@escapeform\PDFForm@Reset
- \pdfmark[\MakeButtonField{#2}]{%
- pdfmark=/ANN,Raw={\PDFForm@Reset}%
- }%
+ \leavevmode
+ \ifHy@pdfa
+ \PackageError{hyperref}{%
+ PDF/A: Reset action is prohibited%
+ }\@ehc
+ \MakeButtonField{#2}%
+ \else
+ \HyField@FlagsPushButton
+ \ifFld@hidden\def\Fld@width{1sp}\fi
+ \Hy@escapeform\PDFForm@Reset
+ \pdfmark[\MakeButtonField{#2}]{%
+ pdfmark=/ANN,Raw={\PDFForm@Reset}%
+ }%
+ \fi
\endgroup
-}
+}%
\def\@CheckBox[#1]#2{% parameters, label
\def\Fld@name{#2}%
\def\Fld@default{0}%
@@ -14264,15 +14462,25 @@
\DefaultOptionsofPushButton,#1%
}%
\PDFForm@Name
- \HyField@FlagsPushButton
- \ifFld@hidden\def\Fld@width{1sp}\fi
- \LayoutPushButtonField{%
- \leavevmode
- \Hy@escapeform\PDFForm@Push
- \pdfstartlink user {\PDFForm@Push}\relax
- \MakeButtonField{#2}%
- \pdfendlink
- }%
+ \ifHy@pdfa
+ \PackageError{hyperref}{%
+ PDF/A: Push button with JavaScript is prohibited%
+ }\@ehc
+ \LayoutPushButtonField{%
+ \leavevmode
+ \MakeButtonField{#2}%
+ }%
+ \else
+ \HyField@FlagsPushButton
+ \ifFld@hidden\def\Fld@width{1sp}\fi
+ \LayoutPushButtonField{%
+ \leavevmode
+ \Hy@escapeform\PDFForm@Push
+ \pdfstartlink user {\PDFForm@Push}\relax
+ \MakeButtonField{#2}%
+ \pdfendlink
+ }%
+ \fi
\endgroup
}
\def\@Submit[#1]#2{%
@@ -14305,13 +14513,20 @@
\expandafter\HyField@SetKeys\expandafter{%
\DefaultOptionsofReset,#1%
}%
- \HyField@FlagsPushButton
- \ifFld@hidden\def\Fld@width{1sp}\fi
\leavevmode
- \Hy@escapeform\PDFForm@Reset
- \pdfstartlink user {\PDFForm@Reset}\relax
- \MakeButtonField{#2}%
- \pdfendlink
+ \ifHy@pdfa
+ \PackageError{hyperref}{%
+ PDF/A: Reset action is prohibited%
+ }\@ehc
+ \MakeButtonField{#2}%
+ \else
+ \HyField@FlagsPushButton
+ \ifFld@hidden\def\Fld@width{1sp}\fi
+ \Hy@escapeform\PDFForm@Reset
+ \pdfstartlink user {\PDFForm@Reset}\relax
+ \MakeButtonField{#2}%
+ \pdfendlink
+ \fi
\endgroup
}
\def\@CheckBox[#1]#2{% parameters, label
@@ -14398,7 +14613,10 @@
>>%
>>%
/DA(/Helv 10 Tf 0 g)%
- /NeedAppearances true%
+ \ifHy@pdfa
+ \else
+ /NeedAppearances true%
+ \fi
>>%
}
\edef\OBJ@acroform{\the\pdflastobj}
@@ -14438,7 +14656,10 @@
>>%
/DA(/Helv 10 Tf 0 g)%
/CO @corder%
- /NeedAppearances true%
+ \ifHy@pdfa
+ \else
+ /NeedAppearances true%
+ \fi
>>%
}%
\@pdfm@mark{put @catalog <</AcroForm @aform>>}%
@@ -14666,21 +14887,31 @@
\DefaultOptionsofPushButton,#1%
}%
\PDFForm@Name
- \HyField@FlagsPushButton
- \ifFld@hidden\def\Fld@width{1sp}\fi
- \setbox\pdfm@box=\hbox{\MakeButtonField{#2}}%
- \HyField@AdvanceAnnotCount
- \LayoutPushButtonField{%
- \leavevmode
- \Hy@escapeform\PDFForm@Push
- \@pdfm@mark{%
- ann @push\HyField@TheAnnotCount\space
- \dvipdfm@setdim
- <<\PDFForm@Push>>%
+ \ifHy@pdfa
+ \PackageError{hyperref}{%
+ PDF/A: Push button with JavaScript is prohibited%
+ }\@ehc
+ \LayoutPushButtonField{%
+ \leavevmode
+ \MakeButtonField{#2}%
}%
- }%
- \unhbox\pdfm@box
- \@pdfm@mark{put @afields @push\HyField@TheAnnotCount}%
+ \else
+ \setbox\pdfm@box=\hbox{\MakeButtonField{#2}}%
+ \HyField@FlagsPushButton
+ \ifFld@hidden\def\Fld@width{1sp}\fi
+ \HyField@AdvanceAnnotCount
+ \LayoutPushButtonField{%
+ \leavevmode
+ \Hy@escapeform\PDFForm@Push
+ \@pdfm@mark{%
+ ann @push\HyField@TheAnnotCount\space
+ \dvipdfm@setdim
+ <<\PDFForm@Push>>%
+ }%
+ }%
+ \unhbox\pdfm@box
+ \@pdfm@mark{put @afields @push\HyField@TheAnnotCount}%
+ \fi
\endgroup
}
% \end{macrocode}
@@ -14725,19 +14956,26 @@
\expandafter\HyField@SetKeys\expandafter{%
\DefaultOptionsofReset,#1%
}%
- \HyField@FlagsPushButton
- \ifFld@hidden\def\Fld@width{1sp}\fi
- \setbox\pdfm@box=\hbox{\MakeButtonField{#2}}%
\leavevmode
- \Hy@escapeform\PDFForm@Reset
- \HyField@AdvanceAnnotCount
- \@pdfm@mark{%
- ann @reset\HyField@TheAnnotCount\space
- \dvipdfm@setdim
- <<\PDFForm@Reset>>%
- }%
- \unhbox\pdfm@box
- \@pdfm@mark{put @afields @reset\HyField@TheAnnotCount}%
+ \ifHy@pdfa
+ \PackageError{hyperref}{%
+ PDF/A: Reset action is prohibited%
+ }\@ehc
+ \MakeButtonField{#2}%
+ \else
+ \HyField@FlagsPushButton
+ \ifFld@hidden\def\Fld@width{1sp}\fi
+ \setbox\pdfm@box=\hbox{\MakeButtonField{#2}}%
+ \Hy@escapeform\PDFForm@Reset
+ \HyField@AdvanceAnnotCount
+ \@pdfm@mark{%
+ ann @reset\HyField@TheAnnotCount\space
+ \dvipdfm@setdim
+ <<\PDFForm@Reset>>%
+ }%
+ \unhbox\pdfm@box
+ \@pdfm@mark{put @afields @reset\HyField@TheAnnotCount}%
+ \fi
\endgroup
}
% \end{macrocode}
@@ -14929,31 +15167,34 @@
% \end{macro}
% \begin{macro}{\PDFForm@Push}
% \begin{macrocode}
-\def\PDFForm@Push{%
- /Subtype/Widget%
- \Fld@annotflags
- /T(\Fld@name)%
- /FT/Btn%
- \Fld@flags
- /H/P%
- /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
- \ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi
- \ifx\Fld@bordercolor\relax\else 1\fi
- \space
- \else
- /MK<<%
- \ifnum\Fld@rotation=\z@
- \else
- /R \Fld@rotation
- \fi
- \ifx\Fld@bordercolor\relax
- \else
- /BC[\Fld@bordercolor]%
- \fi
- >>%
- \fi
- /A<</S/JavaScript/JS(\Hy@escapestring{\Fld@onclick})>>%
-}
+\ifHy@pdfa
+\else
+ \def\PDFForm@Push{%
+ /Subtype/Widget%
+ \Fld@annotflags
+ /T(\Fld@name)%
+ /FT/Btn%
+ \Fld@flags
+ /H/P%
+ /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
+ \ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi
+ \ifx\Fld@bordercolor\relax\else 1\fi
+ \space
+ \else
+ /MK<<%
+ \ifnum\Fld@rotation=\z@
+ \else
+ /R \Fld@rotation
+ \fi
+ \ifx\Fld@bordercolor\relax
+ \else
+ /BC[\Fld@bordercolor]%
+ \fi
+ >>%
+ \fi
+ /A<</S/JavaScript/JS(\Hy@escapestring{\Fld@onclick})>>%
+ }%
+\fi
% \end{macrocode}
% \end{macro}
%
@@ -15034,7 +15275,10 @@
\def\Fld@additionalactions{%
\if-\Fld@@additionalactions-%
\else
- /AA<<\Fld@@additionalactions>>%
+ \ifHy@pdfa
+ \else
+ /AA<<\Fld@@additionalactions>>%
+ \fi
\fi
}
% \end{macrocode}
@@ -15190,34 +15434,37 @@
% \end{macro}
% \begin{macro}{\PDFForm@Reset}
% \begin{macrocode}
-\def\PDFForm@Reset{%
- /Subtype/Widget%
- \Fld@annotflags
- /T(\Fld@name)%
- /FT/Btn%
- \Fld@flags
- /H/P%
- /DA(/Helv \strip@pt\Fld@charsize\space Tf 0 0 1 rg)%
- \ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi
- \ifx\Fld@bordercolor\relax\else 1\fi
- \space
- \else
- /MK<<%
- \ifnum\Fld@rotation=\z@
- \else
- /R \Fld@rotation
- \fi
- \ifx\Fld@bordercolor\relax
- \else
- /BC[\Fld@bordercolor]%
- \fi
+\ifHy@pdfa
+\else
+ \def\PDFForm@Reset{%
+ /Subtype/Widget%
+ \Fld@annotflags
+ /T(\Fld@name)%
+ /FT/Btn%
+ \Fld@flags
+ /H/P%
+ /DA(/Helv \strip@pt\Fld@charsize\space Tf 0 0 1 rg)%
+ \ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi
+ \ifx\Fld@bordercolor\relax\else 1\fi
+ \space
+ \else
+ /MK<<%
+ \ifnum\Fld@rotation=\z@
+ \else
+ /R \Fld@rotation
+ \fi
+ \ifx\Fld@bordercolor\relax
+ \else
+ /BC[\Fld@bordercolor]%
+ \fi
% /CA (Clear)
% /AC (Done)
- >>%
- \fi
- /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
- /A<</S/ResetForm>>%
-}
+ >>%
+ \fi
+ /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
+ /A<</S/ResetForm>>%
+ }%
+\fi
% \end{macrocode}
% \end{macro}
% \begin{macrocode}