2 %% This is file `hyperref.sty',
3 %% generated with the docstrip utility.
5 %% The original source files were:
7 %% hyperref.dtx (with options: `package')
9 %% File: hyperref.dtx Copyright 1995-2001 Sebastian Rahtz,
10 %% with portions written by David Carlisle and Heiko Oberdiek,
11 %% 2001-2012 Heiko Oberdiek.
13 %% This file is part of the `Hyperref Bundle'.
14 %% -------------------------------------------
16 %% This work may be distributed and/or modified under the
17 %% conditions of the LaTeX Project Public License, either version 1.3
18 %% of this license or (at your option) any later version.
19 %% The latest version of this license is in
20 %% http://www.latex-project.org/lppl.txt
21 %% and version 1.3 or later is part of all distributions of LaTeX
22 %% version 2005/12/01 or later.
24 %% This work has the LPPL maintenance status `maintained'.
26 %% The Current Maintainer of this work is Heiko Oberdiek.
28 %% The list of all files belonging to the `Hyperref Bundle' is
29 %% given in the file `manifest.txt'.
31 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
32 \ProvidesPackage{hyperref}
34 Hypertext links for LaTeX]
42 \catcode 96=\noexpand\the\catcode`\noexpand\`\relax
43 \catcode 61=\noexpand\the\catcode`\noexpand\=\relax
76 \def\x#1{\catcode`\noexpand#1=\the\catcode`#1\relax}%
77 \xdef\Hy@RestoreCatcodes{%
102 \IfFileExists{hobsub-hyperref.sty}{%
103 \RequirePackage{hobsub-hyperref}[2011/01/30]%
105 \RequirePackage{ltxcmds}[2010/10/25]
106 \RequirePackage{ifpdf}[2006/02/20]
107 \RequirePackage{pdftexcmds}[2009/04/10]
108 \@ifpackagelater{pdftexcmds}{2010/11/04}{}{%
109 \ltx@IfUndefined{pdfdraftmode}{%
110 \let\pdf@ifdraftmode\ltx@secondoftwo
113 \def\pdf@ifdraftmode{%
114 \ifnum\pdfdraftmode=\ltx@one
115 \expandafter\ltx@firstoftwo
117 \expandafter\ltx@secondoftwo
121 \let\pdf@ifdraftmode\ltx@secondoftwo
125 \RequirePackage{infwarerr}[2010/04/08]
126 \RequirePackage{keyval}[1997/11/10]
127 \RequirePackage{kvsetkeys}[2007/09/29]
128 \RequirePackage{pdfescape}[2007/11/11]
129 \RequirePackage{ifvtex}
130 \RequirePackage{ifxetex}[2006/08/21]
131 \RequirePackage{hycolor}
132 \RequirePackage{letltxmacro}[2008/06/13]
133 \def\Hy@Error{\@PackageError{hyperref}}
134 \def\Hy@Warning{\@PackageWarning{hyperref}}
135 \def\Hy@WarningNoLine{\@PackageWarningNoLine{hyperref}}
136 \def\Hy@Info{\@PackageInfo{hyperref}}
137 \def\Hy@InfoNoLine{\@PackageInfoNoLine{hyperref}}
140 (hyperref)\@spaces\@spaces\@spaces\@spaces
142 Package hyperref Message: #1\ltx@gobble
145 \chardef\Hy@VersionChecked=0 %
146 \def\Hy@VersionCheck#1{%
148 \ltx@IfUndefined{ver@hyperref.sty}{%
150 This should not happen!\MessageBreak
151 Missing hyperref version%
154 \ltx@IfUndefined{ver@#1}{%
156 This should not happen!\MessageBreak
157 Missing version of `#1'%
161 \expandafter\expandafter\expandafter\Hy@@VersionCheck
162 \expandafter\expandafter\expandafter##2%
163 \csname ver@##3\endcsname##1##1\@nil
165 \x{ }\y{hyperref.sty}%
170 Version mismatch!\MessageBreak
171 * \y: hyperref.sty\MessageBreak
178 \chardef\Hy@VersionChecked=1 %
180 \def\Hy@@VersionCheck #1#2 #3 #4\@nil{%
183 \ltx@IfUndefined{pdfmatch}{%
184 \let\Hy@Match\ltx@gobblefour
188 \edef\^{\ltx@backslashchar\string^}%
189 \edef\.{\ltx@backslashchar.}%
190 \edef\[{\ltx@backslashchar[}% ]]
191 \edef\${\ltx@backslashchar$}%
192 \edef\({\ltx@backslashchar(}%
193 \edef\){\ltx@backslashchar)}%
194 \edef\|{\ltx@backslashchar|}%
195 \edef\*{\ltx@backslashchar*}%
196 \edef\+{\ltx@backslashchar+}%
197 \edef\?{\ltx@backslashchar?}%
198 \edef\{{\ltx@backslashchar\ltx@leftbracechar}%
199 \edef\}{\ltx@rightbracechar}%
200 \edef\\{\ltx@backslashchar\ltx@backslashchar}%
202 \ifcase\pdfmatch{#2}{#1} %
204 \expandafter\ltx@secondoftwo
207 \expandafter\ltx@firstoftwo
210 Internal error: Wrong pattern!\MessageBreak
211 --> #2 <--\MessageBreak
212 Pattern check ignored%
215 \expandafter\ltx@firstoftwo
218 \ltx@ifpackagelater{ltxcmds}{2010/09/11}{}{%
222 \def\ltx@leftbracechar{0}%
227 \def\ltx@rightbracechar{0}%
231 \@ifundefined{AfterBeginDocument}{%
232 \def\AfterBeginDocument{\AtBeginDocument}%
234 \def\Hy@AtBeginDocument{%
235 \ltx@LocalAppendToMacro\Hy@AtBeginDocumentHook
237 \def\Hy@AtEndOfPackage{%
238 \ltx@LocalAppendToMacro\Hy@AtEndOfPackageHook
240 \let\Hy@AtBeginDocumentHook\ltx@empty
241 \let\Hy@AtEndOfPackageHook\ltx@empty
243 \Hy@AtEndOfPackageHook
244 \let\Hy@AtEndOfPackageHook\@undefined
245 \AfterBeginDocument{%
246 \Hy@AtBeginDocumentHook{}%
247 \let\Hy@AtBeginDocumentHook\@undefined
250 \RequirePackage{kvoptions}[2009/07/21]
251 \newif\ifHy@stoppedearly
253 \newif\ifHy@activeanchor
255 \newif\ifHy@bookmarks
256 \newif\ifHy@bookmarksnumbered
257 \newif\ifHy@bookmarksopen
258 \newif\ifHy@breaklinks
259 \newif\ifHy@pdfcenterwindow
260 \newif\ifHy@CJKbookmarks
261 \newif\ifHy@colorlinks
263 \let\Hy@finaltrue\Hy@draftfalse
264 \let\Hy@finalfalse\Hy@drafttrue
265 \newif\ifHy@pdfescapeform
266 \newif\ifHy@hyperfigures
267 \newif\ifHy@pdffitwindow
268 \newif\ifHy@frenchlinks
269 \newif\ifHy@hyperfootnotes
270 \newif\ifHy@hyperindex
271 \newif\ifHy@hypertexnames
273 \newif\ifHy@linktocpage
274 \newif\ifHy@localanchorname
275 \newif\ifHy@pdfmenubar
276 \newif\ifHy@naturalnames
278 \newif\ifHy@pdfnewwindowset
279 \newif\ifHy@pdfnewwindow
280 \newif\ifHy@ocgcolorlinks
281 \newif\ifHy@pageanchor
282 \newif\ifHy@pdfpagelabels
283 \newif\ifHy@pdfpagehidden
284 \newif\ifHy@pdfstring
285 \newif\ifHy@plainpages
287 \newif\ifHy@raiselinks
288 \newif\ifHy@seminarslides
289 \newif\ifHy@setpagesize
291 \newif\ifHy@pdftoolbar
293 \newif\ifHy@pdfusetitle
295 \let\Hy@debugtrue\Hy@verbosetrue
296 \let\Hy@debugfalse\Hy@verbosefalse
297 \newif\ifHy@pdfwindowui
298 \newif\ifHy@pdfdisplaydoctitle
301 \Hy@bookmarksnumberedfalse
302 \Hy@bookmarksopenfalse
305 \Hy@pdfcenterwindowfalse
306 \Hy@CJKbookmarksfalse
307 \Hy@pdfescapeformfalse
308 \Hy@hyperfiguresfalse
309 \Hy@pdffitwindowfalse
310 \Hy@hyperfootnotestrue
312 \Hy@hypertexnamestrue
315 \Hy@localanchornamefalse
317 \Hy@naturalnamesfalse
319 \Hy@pdfnewwindowsetfalse
320 \Hy@pdfnewwindowfalse
322 \Hy@pdfpagelabelstrue
323 \Hy@pdfpagehiddenfalse
335 \Hy@pdfdisplaydoctitlefalse
337 \def\Hy@StepCount#1{\advance#1 by 1 }%
338 \def\Hy@GlobalStepCount#1{\global\advance#1 by 1 }%
340 \let\Hy@driver\ltx@empty
341 \let\MaybeStopEarly\relax
342 \newcount\Hy@linkcounter
343 \newcount\Hy@pagecounter
346 \let\Hy@ReturnEnd\@empty
347 \long\def\Hy@ReturnAfterFiFiEnd#1\fi#2\Hy@ReturnEnd{\fi\fi#1}
348 \long\def\Hy@ReturnAfterElseFiFiEnd#1\else#2\Hy@ReturnEnd{\fi\fi#1}
349 \def\Hy@safe@activestrue{\csname @safe@activestrue\endcsname}
350 \def\Hy@safe@activesfalse{\csname @safe@activesfalse\endcsname}
351 \begingroup\expandafter\expandafter\expandafter\endgroup
352 \expandafter\ifx\csname dimexpr\endcsname\relax
353 \def\hypercalcbpdef#1#2{%
356 \HyCal@scan#2\hypercalcbp\@nil
357 \expandafter\endgroup
358 \expandafter\def\expandafter#1\expandafter{\the\toks@}%
360 \def\HyCal@scan#1\hypercalcbp#2\@nil{%
361 \toks@\expandafter{\the\toks@ #1}%
369 \def\HyCal@do#1#2\@nil{%
370 \@ifpackageloaded{calc}{}{%
372 For calculations \string\hypercalcbp\space needs\MessageBreak
373 package calc or e-TeX%
376 \setlength{\dimen@}{#1}%
377 \setlength{\dimen@}{0.99626401\dimen@}%
388 \strip@pt\dimexpr 0.99626401\dimexpr(#1)\relax\relax
390 \def\hypercalcbpdef{\def}%
392 \def\pdfstringdef#1#2{%
404 \def\ifpdfstringunicode##1##2{##1}%
407 \def\ifpdfstringunicode##1##2{##2}%
409 \let\utf@viii@undeferr\HyPsd@utf@viii@undeferr
411 \@inmathwarn\pdfstringdef
412 \let\@inmathwarn\HyPsd@inmathwarn
413 \let\add@accent\HyPsd@add@accent
415 \let\}\textbraceright
417 \let\#\textnumbersign
421 \let\_\textunderscore
423 \let\ldots\textellipsis
424 \let\dots\textellipsis
425 \def\\{\pdfstringdefWarn\\}%
426 \def\newline{\pdfstringdefWarn\newline}%
431 \ifHy@unicode\textepsilon\else e\fi
434 \ifHy@unicode\textepsilon\else e\fi
437 \def\SliTeX{Sli\TeX}%
440 \let\fontencoding\@gobble
441 \let\fontfamily\@gobble
442 \let\fontseries\@gobble
443 \let\fontshape\@gobble
444 \let\fontsize\@gobbletwo
445 \let\selectfont\@empty
446 \let\usefont\@gobblefour
447 \let\emph\@firstofone
448 \let\textnormal\@firstofone
449 \let\textrm\@firstofone
450 \let\textsf\@firstofone
451 \let\texttt\@firstofone
452 \let\textbf\@firstofone
453 \let\textmd\@firstofone
454 \let\textit\@firstofone
455 \let\textsc\@firstofone
456 \let\textsl\@firstofone
457 \let\textup\@firstofone
458 \let\normalfont\@empty
473 \let\footnotesize\@empty
476 \let\normalsize\@empty
477 \let\scriptsize\@empty
480 \let\mathversion\@gobble
482 \let\vphantom\@gobble
483 \let\hphantom\@gobble
484 \def\begin#1{\csname#1\endcsname}%
485 \def\end#1{\csname end#1\endcsname}%
486 \def\textcolor##1##{\@secondoftwo}%
487 \def\MakeUppercase{\MakeUppercaseUnsupportedInPdfStrings}%
488 \def\MakeLowercase{\MakeLowercaseUnsupportedInPdfStrings}%
489 \let\foreignlanguage\@secondoftwo
490 \let\textlatin\@firstofone
491 \ltx@IfUndefined{language@group}{}{%
492 \csname HyPsd@babel@\language@group\endcsname
498 \let\@safe@activestrue\relax
499 \let\@safe@activesfalse\relax
510 \let\if@mid@expandable\@firstoftwo
512 \let\hspace\HyPsd@hspace
515 \let\glossary\@gobble
517 \let\@mkboth\@gobbletwo
519 \let\pageref\HyPsd@pageref
520 \let\nameref\HyPsd@nameref
521 \let\autoref\HyPsd@autoref
522 \let\leavevmode\@empty
524 \def\halign{\pdfstringdefWarn\halign\@gobble}%
525 \let\ignorespaces\HyPsd@ignorespaces
526 \let\Hy@SectionAnchorHref\@gobble
530 \HyPsd@LetUnexpandableSpace\space
531 \HyPsd@LetUnexpandableSpace\ %
532 \HyPsd@LetUnexpandableSpace~%
533 \HyPsd@LetUnexpandableSpace\nobreakspace
534 \ltx@IfUndefined{@xspace}{%
535 \let\xspace\HyPsd@ITALCORR
537 \let\xspace\HyPsd@XSPACE
539 \let\/\HyPsd@ITALCORR
542 \let\discretionary\@gobbletwo
543 \def\@ifnextchar{\HyPsd@ifnextchar\@ifnextchar}%
544 \def\kernel@ifnextchar{\HyPsd@ifnextchar\kernel@ifnextchar}%
545 \def\new@ifnextchar{\HyPsd@ifnextchar\new@ifnextchar}%
546 \let\@protected@testopt\HyPsd@protected@testopt
547 \let\@protected@testopt@xargs\HyPsd@protected@testopt
549 \let\GenericError\@gobblefour
550 \let\GenericWarning\@gobbletwo
551 \let\GenericInfo\@gobbletwo
552 \ifx\nofrenchguillemets\@undefined
557 \let\def\HyPsd@DefCommand
558 \let\gdef\HyPsd@DefCommand
559 \let\edef\HyPsd@DefCommand
560 \let\xdef\HyPsd@DefCommand
561 \let\futurelet\HyPsd@LetCommand
562 \let\let\HyPsd@LetCommand
567 \HyPsd@ProtectSpaces#1%
568 \let\HyPsd@String\@empty
569 \expandafter\HyPsd@RemoveBraces\expandafter{#1|}%
570 \global\let#1\HyPsd@String
571 \let\HyPsd@SPACEOPTI\relax
573 \let\HyPsd@String\@empty
574 \expandafter\HyPsd@CheckCatcodes#1\HyPsd@End
575 \global\let#1\HyPsd@String
577 \expandafter\HyPsd@RemoveMask\expandafter
578 |\expandafter\@empty#1\HyPsd@End#1%
579 \expandafter\HyPsd@Subst\expandafter{\HyPsd@GLYPHERR}{\relax}#1%
580 \let\HyPsd@String\@empty
581 \expandafter\HyPsd@GlyphProcess#1\relax\@empty
582 \global\let#1\HyPsd@String
583 \HyPsd@StringSubst{\\}{\textbackslash}#1%
585 \expandafter\HyPsd@StringSubst\csname 80\040\endcsname
587 \edef\Hy@temp@A{\HyPsd@SPACEOPTI\HyPsd@SPACEOPTI\80\273}%
588 \expandafter\HyPsd@Subst\expandafter{\Hy@temp@A}%
589 {\HyPsd@SPACEOPTI\80\273}#1%
591 \HyPsd@StringSubst{\040}\HyPsd@SPACEOPTI#1%
592 \expandafter\HyPsd@Subst\expandafter{%
593 \expandafter\HyPsd@SPACEOPTI\expandafter\HyPsd@SPACEOPTI
594 \string\273}{\HyPsd@SPACEOPTI\273}#1%
597 \HyPsd@StringSubst{\)}{\80\051}#1%
598 \HyPsd@Subst){\80\051}#1%
599 \let\HyPsd@empty\relax
600 \expandafter\HyPsd@StringSubst\csname 80\051\endcsname
601 {\HyPsd@empty\80\051}#1%
603 \HyPsd@StringSubst{\)}{\051}#1%
604 \HyPsd@Subst){\051}#1%
605 \let\HyPsd@empty\relax
606 \HyPsd@StringSubst{\051}{\HyPsd@empty\string\)}#1%
608 \expandafter\HyPsd@Subst\expandafter{\/}\HyPsd@empty#1%
609 \ltx@IfUndefined{@xspace}{%
611 \let\HyPsd@xspace\relax
612 \expandafter\HyPsd@Subst\expandafter
613 {\HyPsd@XSPACE}\HyPsd@xspace#1%
614 \let\HyPsd@xspace\HyPsd@doxspace
616 \xdef#1{#1\HyPsd@empty}%
617 \HyPsd@Subst{---}\textemdash#1%
618 \HyPsd@Subst{--}\textendash#1%
619 \HyPsd@Subst{!`}\textexclamdown#1%
620 \HyPsd@Subst{?`}\textquestiondown#1%
621 \let\HyPsd@empty\@empty
623 \HyPsd@StringSubst\(\textparenleft#1%
624 \HyPsd@Subst(\textparenleft#1%
626 \HyPsd@StringSubst\({\050}#1%
627 \HyPsd@Subst({\050}#1%
628 \HyPsd@StringSubst{\050}{\string\(}#1%
631 \edef\HyPsd@SPACEOPTI{\80\040}%
633 \let\HyPsd@SPACEOPTI\HyPsd@spaceopti
640 \HyPsd@ConvertToUnicode#1%
641 \ifx\HyPsd@pdfencoding\HyPsd@pdfencoding@auto
642 \ltx@IfUndefined{StringEncodingConvertTest}{%
644 \EdefUnescapeString\HyPsd@temp#1%
646 \let\HyPsd@UnescapedString\HyPsd@temp
647 \StringEncodingConvertTest\HyPsd@temp\HyPsd@temp
648 {utf16be}{ascii-print}{%
649 \EdefEscapeString\HyPsd@temp\HyPsd@temp
650 \global\let#1\HyPsd@temp
657 \StringEncodingConvertTest\HyPsd@temp\HyPsd@temp
659 \EdefEscapeString\HyPsd@temp\HyPsd@temp
660 \global\let#1\HyPsd@temp
668 \HyPsd@XeTeXBigCharsfalse
669 \pdfstringdefPostHook#1%
672 \def\Hy@pdfstringdef#1#2{%
673 \pdfstringdef\Hy@gtemp{#2}%
676 \edef\Hy@temp{\catcode0=\the\catcode0\relax}
679 \expandafter\@firstofone
681 \let\HyPsd@XeTeXBigCharstrue\@empty
682 \let\HyPsd@XeTeXBigCharsfalse\@empty
686 \newif\ifHyPsd@XeTeXBigChars
687 \def\HyPsd@XeTeXBigCharsfalse{%
688 \global\let\ifHyPsd@XeTeXBigChars\iffalse
690 \def\HyPsd@XeTeXBigCharstrue{%
691 \global\let\ifHyPsd@XeTeXBigChars\iftrue
693 \def\HyPsd@ToBigChars#1{%
694 \ifHyPsd@XeTeXBigChars
695 \EdefEscapeHex\HyPsd@UnescapedString{%
696 \expandafter\@gobbletwo\HyPsd@UnescapedString
701 \let\x\HyPsd@ToBigChar
702 \expandafter\HyPsd@ToBigChar\HyPsd@UnescapedString
703 \relax\relax\relax\relax\relax\relax\relax
706 \gdef\noexpand#1{\the\toks@}%
711 \def\HyPsd@ToBigChar#1#2#3#4{%
715 \count@="#1#2#3#4\relax
719 \let\y\@backslashchar
722 \let\y\@backslashchar
724 \ifnum\count@=92 % backslash
725 \let\y\@backslashchar
727 \ifnum\count@=10 % newline
728 \edef\y##1{\string\n}%
730 \ifnum\count@=13 % carriage return
731 \edef\y##1{\string\r}%
739 \the\expandafter\toks@
749 \@ifpackageloaded{linguex}{%
750 \let\HyLinguex@OrgB\b
751 \let\HyLinguex@OrgC\c
752 \let\HyLinguex@OrgD\d
753 \def\HyLinguex@Restore{%
754 \let\b\HyLinguex@OrgB
755 \let\c\HyLinguex@OrgC
756 \let\d\HyLinguex@OrgD
759 \pdfstringdefDisableCommands{%
760 \ltx@IfUndefined{oldb}{}{\let\b\oldb}%
761 \ltx@IfUndefined{oldc}{}{\let\c\oldc}%
762 \ltx@IfUndefined{oldd}{}{\let\d\oldd}%
766 \let\HyLinguex@Restore\relax
768 \@ifundefined{T@PD1}{%
772 \DeclareFontFamily{PD1}{pdf}{}
773 \DeclareFontShape{PD1}{pdf}{m}{n}{ <-> cmr10 }{}
774 \DeclareFontSubstitution{PD1}{pdf}{m}{n}
775 \def\HyPsd@InitUnicode{%
776 \@ifundefined{T@PU}{%
780 \DeclareFontFamily{PU}{pdf}{}%
781 \DeclareFontShape{PU}{pdf}{m}{n}{ <-> cmr10 }{}%
782 \DeclareFontSubstitution{PU}{pdf}{m}{n}%
783 \let\HyPsd@InitUnicode\relax
785 \def\texorpdfstring{%
787 \expandafter\@secondoftwo
789 \expandafter\@firstoftwo
792 \@ifundefined{pdfstringdefPreHook}{%
793 \let\pdfstringdefPreHook\@empty
795 \@ifundefined{pdfstringdefPostHook}{%
796 \let\pdfstringdefPostHook\@gobble
798 \def\pdfstringdefDisableCommands{%
801 \HyPsd@DisableCommands
803 \long\def\HyPsd@DisableCommands#1{%
804 \ltx@GlobalAppendToMacro\pdfstringdefPreHook{#1}%
807 \def\pdfstringdefWarn#1{%
808 \expandafter\noexpand\csname<>-\string#1\endcsname
813 \def\HyPsd@ignorespaces{%
814 \romannumeral\expandafter`\expandafter^^@%
819 \def\HyPsd@BabelPatch{%
820 \let\HyOrg@languageshorthands\languageshorthands
821 \let\languageshorthands\HyPsd@LanguageShorthands
823 \begingroup\expandafter\expandafter\expandafter\endgroup
824 \expandafter\ifx\csname pdf@strcmp\endcsname\relax
825 \let\HyPsd@langshort@system\@empty
826 \def\HyPsd@LanguageShorthands#1{%
827 \expandafter\ifx\csname HyPsd@langshort@#1\endcsname
828 \HyPsd@langshort@system
831 \expandafter\@firstofone
834 \HyOrg@languageshorthands{#1}%
838 \def\HyPsd@LanguageShorthands#1{%
839 \ifnum\pdf@strcmp{#1}{system}=\z@
842 \expandafter\@firstofone
845 \HyOrg@languageshorthands{#1}%
850 \@ifpackageloaded{babel}{%
851 \@ifpackagelater{babel}{2008/03/16}{%
854 \def\HyPsd@BabelPatch{%
855 \let\HyOrg@languageshorthands\languageshorthands
861 \expandafter\Hy@AtBeginDocument\expandafter{\Hy@temp}
863 \ltx@IfUndefined{danish@sh@"@sel}{}{%
864 \def\HyPsd@babel@danish{%
865 \declare@shorthand{danish}{"|}{}%
866 \declare@shorthand{danish}{"~}{-}%
869 \ltx@IfUndefined{dutch@sh@"@sel}{}{%
870 \def\HyPsd@babel@dutch{%
871 \declare@shorthand{dutch}{"|}{}%
872 \declare@shorthand{dutch}{"~}{-}%
875 \ltx@IfUndefined{finnish@sh@"@sel}{}{%
876 \def\HyPsd@babel@finnish{%
877 \declare@shorthand{finnish}{"|}{}%
880 \ltx@IfUndefined{french@sh@:@sel}{}{%
881 \def\HyPsd@babel@frenchb{%
882 \def\guill@spacing{ }%
885 \ltx@IfUndefined{german@sh@"@sel}{}{%
886 \def\HyPsd@babel@german{%
887 \declare@shorthand{german}{"f}{f}%
888 \declare@shorthand{german}{"|}{}%
889 \declare@shorthand{german}{"~}{-}%
892 \ltx@IfUndefined{macedonian@sh@"@sel}{}{%
893 \def\HyPsd@babel@macedonian{%
894 \declare@shorthand{macedonian}{"|}{}%
895 \declare@shorthand{macedonian}{"~}{-}%
898 \ltx@IfUndefined{ngerman@sh@"@sel}{}{%
899 \def\HyPsd@babel@ngerman{%
900 \declare@shorthand{ngerman}{"|}{}%
901 \declare@shorthand{ngerman}{"~}{-}%
904 \ltx@IfUndefined{portuges@sh@"@sel}{}{%
905 \def\HyPsd@babel@portuges{%
906 \declare@shorthand{portuges}{"|}{}%
909 \ltx@IfUndefined{russian@sh@"@sel}{}{%
910 \def\HyPsd@babel@russian{%
911 \declare@shorthand{russian}{"|}{}%
912 \declare@shorthand{russian}{"~}{-}%
915 \ltx@IfUndefined{slovene@sh@"@sel}{}{%
916 \def\HyPsd@babel@slovene{%
917 \declare@shorthand{slovene}{"|}{}%
920 \ltx@IfUndefined{spanish@sh@>@sel}{}{%
921 \def\HyPsd@babel@spanish{%
922 \declare@shorthand{spanish}{<<}{\guillemotleft}%
923 \declare@shorthand{spanish}{>>}{\guillemotright}%
924 \declare@shorthand{spanish}{"=}{-}%
925 \declare@shorthand{spanish}{"~}{-}%
926 \declare@shorthand{spanish}{"!}{\textexclamdown}%
927 \declare@shorthand{spanish}{"?}{\textquestiondown}%
930 \ltx@IfUndefined{swedish@sh@"@sel}{}{%
931 \def\HyPsd@babel@swedish{%
932 \declare@shorthand{swedish}{"|}{}%
933 \declare@shorthand{swedish}{"~}{-}%
936 \ltx@IfUndefined{ukrainian@sh@"@sel}{}{%
937 \def\HyPsd@babel@ukrainian{%
938 \declare@shorthand{ukrainian}{"|}{}%
939 \declare@shorthand{ukrainian}{"~}{-}%
942 \ltx@IfUndefined{usorbian@sh@"@sel}{}{%
943 \def\HyPsd@babel@usorbian{%
944 \declare@shorthand{usorbian}{"f}{f}%
945 \declare@shorthand{usorbian}{"|}{}%
948 \ltx@IfUndefined{greek@sh@\string~@sel}{%
949 \let\HyPsd@GreekPatch\@empty
951 \def\HyPsd@GreekPatch{%
952 \let\greeknumeral\HyPsd@greeknumeral
953 \let\Greeknumeral\HyPsd@Greeknumeral
956 \def\HyPsd@greeknumeral#1{%
957 \HyPsd@GreekNum\@firstoftwo{#1}%
959 \def\HyPsd@Greeknumeral#1{%
960 \HyPsd@GreekNum\@secondoftwo{#1}%
962 \def\HyPsd@GreekNum#1#2{%
968 \HyPsd@@GreekNum#1{#2}%
977 \def\HyPsd@@GreekNum#1#2{%
980 \expandafter\HyPsd@GreekNumI
981 \expandafter\@gobble\expandafter#1\number#2%
984 \expandafter\HyPsd@GreekNumII
985 \expandafter\@gobble\expandafter#1\number#2%
987 \expandafter\HyPsd@GreekNumIII
988 \expandafter\@gobble\expandafter#1\number#2%
992 \textnumeralsigngreek
996 \expandafter\HyPsd@GreekNumIV\expandafter#1\number#2%
999 \expandafter\HyPsd@GreekNumV\expandafter#1\number#2%
1001 \expandafter\HyPsd@GreekNumVI\expandafter#1\number#2%
1006 \def\HyPsd@GreekNumI#1#2#3{%
1009 \textnumeralsignlowergreek
1015 \or\textalpha\textAlpha
1016 \or\textbeta\textBeta
1017 \or\textgamma\textGamma
1018 \or\textdelta\textDelta
1019 \or\textepsilon\textEpsilon
1020 \or\textstigmagreek\textStigmagreek
1021 \or\textzeta\textZeta
1023 \or\texttheta\textTheta
1028 \def\HyPsd@GreekNumII#1#2#3#4{%
1031 \textnumeralsignlowergreek
1037 \or\textiota\textIota
1038 \or\textkappa\textKappa
1039 \or\textlambda\textLambda
1043 \or\textomicron\textOmicron
1045 \or\textkoppagreek\textKoppagreek
1049 \HyPsd@GreekNumI#1#2#4%
1051 \def\HyPsd@GreekNumIII#1#2#3#4#5{%
1054 \textnumeralsignlowergreek
1061 \or\textsigma\textSigma
1063 \or\textupsilon\textUpsilon
1067 \or\textomega\textOmega
1068 \or\textsampigreek\textSampigreek
1072 \HyPsd@GreekNumII#1#2#4#5%
1074 \def\HyPsd@GreekNumIV#1#2#3#4#5{%
1075 \HyPsd@GreekNumI\@firstofone#1#2%
1076 \HyPsd@@GreekNum#1{#3#4#5}%
1078 \def\HyPsd@GreekNumV#1#2#3#4#5#6{%
1079 \HyPsd@GreekNumII\@firstofone#1#2#3%
1080 \HyPsd@@GreekNum#1{#4#5#6}%
1082 \def\HyPsd@GreekNumVI#1#2#3#4#5#6#7{%
1083 \HyPsd@GreekNumIII\@firstofone#1#2#3#4%
1084 \HyPsd@@GreekNum#1{#5#6#7}%
1086 \def\HyPsd@SpanishPatch{%
1087 \ltx@IfUndefined{es@save@dot}{%
1092 \def\HyPsd@RussianPatch{%
1093 \ltx@IfUndefined{russian@sh@"@-@}{%
1095 \@namedef{russian@sh@"@-@}{-}%
1098 \RequirePackage{intcalc}[2007/09/27]
1099 \def\HyPsd@CJKhook{%
1100 \ltx@ifpackageloaded{CJK}{%
1105 \HyPsd@CJKhook@bookmarks
1107 \HyPsd@CJKhook@unicode
1113 \let\CJK@ignorespaces\empty
1114 \def\CJK@char#1{\@gobbletwo}%
1115 \let\CJK@charx\@gobblefour
1116 \let\CJK@punctchar\@gobblefour
1117 \def\CJK@punctcharx#1{\@gobblefour}%
1119 \def^^7f#1^^7f#2^^7f{%
1120 \string #1\HyPsd@DecimalToOctal{#2}%
1126 \let\Hy@cjkpu\@empty
1128 \HyPsd@CJKActiveChars
1131 \@whilenum\count@<255 \do{%
1132 \advance\count@ by 1 %
1135 \toks@\expandafter{\the\toks@ ~}%
1138 \toks@\expandafter{\the\toks@ !}%
1139 \xdef\HyPsd@CJKhook@bookmarks{%
1143 \def\HyPsd@CJKActiveChars#1{%
1145 \let\HyPsd@CJKActiveChars\relax
1147 \edef#1{\noexpand\Hy@cjkpu\string#1}%
1149 \HyPsd@CJKActiveChars
1151 \def\HyPsd@DecimalToOctal#1{%
1153 \000\or \001\or \002\or \003\or \004\or \005\or \006\or \007%
1154 \or \010\or \011\or \012\or \013\or \014\or \015\or \016\or \017%
1155 \or \020\or \021\or \022\or \023\or \024\or \025\or \026\or \027%
1156 \or \030\or \031\or \032\or \033\or \034\or \035\or \036\or \037%
1157 \or \040\or \041\or \042\or \043\or \044\or \045\or \046\or \047%
1158 \or \050\or \051\or \052\or \053\or \054\or \055\or \056\or \057%
1159 \or 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7%
1160 \or 8\or 9\or \072\or \073\or \074\or \075\or \076\or \077%
1161 \or @\or A\or B\or C\or D\or E\or F\or G%
1162 \or H\or I\or J\or K\or L\or M\or N\or O%
1163 \or P\or Q\or R\or S\or T\or U\or V\or W%
1164 \or X\or Y\or Z\or \133\or \134\or \135\or \136\or \137%
1165 \or \140\or a\or b\or c\or d\or e\or f\or g%
1166 \or h\or i\or j\or k\or l\or m\or n\or o%
1167 \or p\or q\or r\or s\or t\or u\or v\or w%
1168 \or x\or y\or z\or \173\or \174\or \175\or \176\or \177%
1169 \or \200\or \201\or \202\or \203\or \204\or \205\or \206\or \207%
1170 \or \210\or \211\or \212\or \213\or \214\or \215\or \216\or \217%
1171 \or \220\or \221\or \222\or \223\or \224\or \225\or \226\or \227%
1172 \or \230\or \231\or \232\or \233\or \234\or \235\or \236\or \237%
1173 \or \240\or \241\or \242\or \243\or \244\or \245\or \246\or \247%
1174 \or \250\or \251\or \252\or \253\or \254\or \255\or \256\or \257%
1175 \or \260\or \261\or \262\or \263\or \264\or \265\or \266\or \267%
1176 \or \270\or \271\or \272\or \273\or \274\or \275\or \276\or \277%
1177 \or \300\or \301\or \302\or \303\or \304\or \305\or \306\or \307%
1178 \or \310\or \311\or \312\or \313\or \314\or \315\or \316\or \317%
1179 \or \320\or \321\or \322\or \323\or \324\or \325\or \326\or \327%
1180 \or \330\or \331\or \332\or \333\or \334\or \335\or \336\or \337%
1181 \or \340\or \341\or \342\or \343\or \344\or \345\or \346\or \347%
1182 \or \350\or \351\or \352\or \353\or \354\or \355\or \356\or \357%
1183 \or \360\or \361\or \362\or \363\or \364\or \365\or \366\or \367%
1184 \or \370\or \371\or \372\or \373\or \374\or \375\or \376\or \377%
1187 \def\HyPsd@CJKhook@unicode{%
1188 \let\Unicode\HyPsd@CJK@Unicode
1189 \let\CJKnumber\HyPsd@CJKnumber
1190 \let\CJKdigits\HyPsd@CJKdigits
1192 \def\HyPsd@CJK@Unicode#1#2{%
1194 \HyPsd@DecimalToOctalFirst{#1}%
1195 \HyPsd@DecimalToOctalSecond{#2}%
1198 \expandafter\expandafter\expandafter\HyPsd@HighA
1199 \intcalcDiv{#1}{4}!%
1201 \ifcase\intcalcMod{#1}{4} %
1204 \HyPsd@DecimalToOctalSecond{#2}%
1207 \def\HyPsd@HighA#1!{%
1208 \expandafter\expandafter\expandafter\HyPsd@HighB
1210 \expandafter\expandafter\expandafter\HyPsd@HighD
1213 \def\HyPsd@HighB#1!{%
1214 \expandafter\expandafter\expandafter\HyPsd@HighC
1217 \def\HyPsd@HighC#1!{%
1222 \def\HyPsd@HighD#1!{%
1223 \ifcase\IntCalcDiv#1!8! %
1224 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7%
1226 \ifcase\IntCalcMod#1!8! %
1227 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7%
1230 \def\HyPsd@DecimalToOctalFirst#1{%
1233 000\or 001\or 002\or 003\or 004\or 005\or 006\or 007%
1234 \or 010\or 011\or 012\or 013\or 014\or 015\or 016\or 017%
1235 \or 020\or 021\or 022\or 023\or 024\or 025\or 026\or 027%
1236 \or 030\or 031\or 032\or 033\or 034\or 035\or 036\or 037%
1237 \or 040\or 041\or 042\or 043\or 044\or 045\or 046\or 047%
1238 \or 050\or 051\or 052\or 053\or 054\or 055\or 056\or 057%
1239 \or 060\or 061\or 062\or 063\or 064\or 065\or 066\or 067%
1240 \or 070\or 071\or 072\or 073\or 074\or 075\or 076\or 077%
1241 \or 100\or 101\or 102\or 103\or 104\or 105\or 106\or 107%
1242 \or 120\or 111\or 112\or 113\or 114\or 115\or 116\or 117%
1243 \or 120\or 121\or 122\or 123\or 124\or 125\or 126\or 127%
1244 \or 130\or 131\or 132\or 133\or 134\or 135\or 136\or 137%
1245 \or 140\or 141\or 142\or 143\or 144\or 145\or 146\or 147%
1246 \or 150\or 151\or 152\or 153\or 154\or 155\or 156\or 157%
1247 \or 160\or 161\or 162\or 163\or 164\or 165\or 166\or 167%
1248 \or 170\or 171\or 172\or 173\or 174\or 175\or 176\or 177%
1249 \or 200\or 201\or 202\or 203\or 204\or 205\or 206\or 207%
1250 \or 210\or 211\or 212\or 213\or 214\or 215\or 216\or 217%
1251 \or 220\or 221\or 222\or 223\or 224\or 225\or 226\or 227%
1252 \or 230\or 231\or 232\or 233\or 234\or 235\or 236\or 237%
1253 \or 240\or 241\or 242\or 243\or 244\or 245\or 246\or 247%
1254 \or 250\or 251\or 252\or 253\or 254\or 255\or 256\or 257%
1255 \or 260\or 261\or 262\or 263\or 264\or 265\or 266\or 267%
1256 \or 270\or 271\or 272\or 273\or 274\or 275\or 276\or 277%
1257 \or 300\or 301\or 302\or 303\or 304\or 305\or 306\or 307%
1258 \or 310\or 311\or 312\or 313\or 314\or 315\or 316\or 317%
1259 \or 320\or 321\or 322\or 323\or 324\or 325\or 326\or 327%
1260 \or 330\or 331\or 332\or 333\or 334\or 335\or 336\or 337%
1261 \or 340\or 341\or 342\or 343\or 344\or 345\or 346\or 347%
1262 \or 350\or 351\or 352\or 353\or 354\or 355\or 356\or 357%
1263 \or 360\or 361\or 362\or 363\or 364\or 365\or 366\or 367%
1264 \or 370\or 371\or 372\or 373\or 374\or 375\or 376\or 377%
1267 \def\HyPsd@DecimalToOctalSecond#1{%
1269 \000\or \001\or \002\or \003\or \004\or \005\or \006\or \007%
1270 \or \010\or \011\or \012\or \013\or \014\or \015\or \016\or \017%
1271 \or \020\or \021\or \022\or \023\or \024\or \025\or \026\or \027%
1272 \or \030\or \031\or \032\or \033\or \034\or \035\or \036\or \037%
1273 \or \040\or \041\or \042\or \043\or \044\or \045\or \046\or \047%
1274 \or \050\or \051\or \052\or \053\or \054\or \055\or \056\or \057%
1275 \or \060\or \061\or \062\or \063\or \064\or \065\or \066\or \067%
1276 \or \070\or \071\or \072\or \073\or \074\or \075\or \076\or \077%
1277 \or \100\or \101\or \102\or \103\or \104\or \105\or \106\or \107%
1278 \or \110\or \111\or \112\or \113\or \114\or \115\or \116\or \117%
1279 \or \120\or \121\or \122\or \123\or \124\or \125\or \126\or \127%
1280 \or \130\or \131\or \132\or \133\or \134\or \135\or \136\or \137%
1281 \or \140\or \141\or \142\or \143\or \144\or \145\or \146\or \147%
1282 \or \150\or \151\or \152\or \153\or \154\or \155\or \156\or \157%
1283 \or \160\or \161\or \162\or \163\or \164\or \165\or \166\or \167%
1284 \or \170\or \171\or \172\or \173\or \174\or \175\or \176\or \177%
1285 \or \200\or \201\or \202\or \203\or \204\or \205\or \206\or \207%
1286 \or \210\or \211\or \212\or \213\or \214\or \215\or \216\or \217%
1287 \or \220\or \221\or \222\or \223\or \224\or \225\or \226\or \227%
1288 \or \230\or \231\or \232\or \233\or \234\or \235\or \236\or \237%
1289 \or \240\or \241\or \242\or \243\or \244\or \245\or \246\or \247%
1290 \or \250\or \251\or \252\or \253\or \254\or \255\or \256\or \257%
1291 \or \260\or \261\or \262\or \263\or \264\or \265\or \266\or \267%
1292 \or \270\or \271\or \272\or \273\or \274\or \275\or \276\or \277%
1293 \or \300\or \301\or \302\or \303\or \304\or \305\or \306\or \307%
1294 \or \310\or \311\or \312\or \313\or \314\or \315\or \316\or \317%
1295 \or \320\or \321\or \322\or \323\or \324\or \325\or \326\or \327%
1296 \or \330\or \331\or \332\or \333\or \334\or \335\or \336\or \337%
1297 \or \340\or \341\or \342\or \343\or \344\or \345\or \346\or \347%
1298 \or \350\or \351\or \352\or \353\or \354\or \355\or \356\or \357%
1299 \or \360\or \361\or \362\or \363\or \364\or \365\or \366\or \367%
1300 \or \370\or \371\or \372\or \373\or \374\or \375\or \376\or \377%
1303 \def\HyPsd@CJKnumber#1{%
1306 \expandafter\HyPsd@@CJKnumber\expandafter{\number-\number#1}%
1308 \expandafter\HyPsd@@CJKnumber\expandafter{\number#1}%
1311 \def\HyPsd@@CJKnumber#1{%
1313 \CJK@zero\or\CJK@one\or\CJK@two\or\CJK@three\or\CJK@four\or
1314 \CJK@five\or\CJK@six\or\CJK@seven\or\CJK@eight\or\CJK@nine\or
1315 \CJK@ten\or\CJK@ten\CJK@one\or\CJK@ten\CJK@two\or
1316 \CJK@ten\CJK@three\or\CJK@ten\CJK@four\or\CJK@ten\CJK@five\or
1317 \CJK@ten\CJK@six\or\CJK@ten\CJK@seven\or\CJK@ten\CJK@eight\or
1321 \HyPsd@CJKnumberFour#1!\@empty{20}%
1324 \ifnum#1<100000000 %
1325 \expandafter\expandafter\expandafter\HyPsd@CJKnumberFour
1326 \IntCalcDiv#1!10000!%
1329 \expandafter\expandafter\expandafter\HyPsd@CJKnumberFour
1330 \IntCalcMod#1!10000!%
1334 \expandafter\HyPsd@CJKnumberLarge
1335 \number\IntCalcDiv#1!100000000!\expandafter!%
1336 \number\IntCalcMod#1!100000000!!%
1341 \def\HyPsd@CJKnumberLarge#1!#2!{%
1342 \HyPsd@CJKnumberFour#1!{}{20}%
1346 \expandafter\expandafter\expandafter\HyPsd@CJKnumberFour
1347 \IntCalcDiv#2!10000!%
1350 \expandafter\expandafter\expandafter\HyPsd@CJKnumberFour
1351 \IntCalcMod#2!10000!%
1356 \def\HyPsd@CJKnumberFour#1!#2#3{%
1358 \expandafter\@gobble
1362 \HyPsd@CJKnumberThree#1!{}{#3}%
1364 \HyPsd@@CJKnumber{\IntCalcDiv#1!1000!}%
1366 \expandafter\expandafter\expandafter\HyPsd@CJKnumberThree
1367 \IntCalcMod#1!1000!%
1372 \def\HyPsd@CJKnumberThree#1!#2#3{%
1377 \HyPsd@CJKnumberTwo#1!{}{#3}%
1379 \HyPsd@@CJKnumber{\IntCalcDiv#1!100!}%
1381 \expandafter\expandafter\expandafter\HyPsd@CJKnumberTwo
1387 \def\HyPsd@CJKnumberTwo#1!#2#3{%
1392 \HyPsd@@CJKnumber{#1}%
1394 \HyPsd@@CJKnumber{\IntCalcDiv#1!10!}%
1396 \ifnum\IntCalcMod#1!10!=\z@
1398 \HyPsd@@CJKnumber{\IntCalcMod#1!10!}%
1403 \def\HyPsd@CJKdigits#1{%
1405 \expandafter\HyPsd@@CJKdigits\expandafter\CJK@zero
1407 \HyPsd@@CJKdigits\CJK@null{#1}%
1410 \def\HyPsd@@CJKdigits#1#2{%
1413 \HyPsd@@@CJKdigits#1#2\@nil
1416 \def\HyPsd@@@CJKdigits#1#2#3\@nil{%
1417 \HyPsd@CJKdigit#1{#2}%
1419 \expandafter\@gobble
1421 \expandafter\@firstofone
1424 \HyPsd@@@CJKdigits#1#3\@nil
1427 \def\HyPsd@CJKdigit#1#2{%
1430 \CJK@one\or\CJK@two\or\CJK@three\or\CJK@four\or
1431 \CJK@five\or\CJK@six\or\CJK@seven\or\CJK@eight\or\CJK@nine
1434 \def\HyPsd@inmathwarn#1#2{%
1436 \expandafter\ifx\csname\cf@encoding\string#1\endcsname\relax
1438 \expandafter\@gobble\string#1%
1440 \expandafter\expandafter\expandafter\HyPsd@EndWithElse
1442 \expandafter\expandafter\expandafter\HyPsd@GobbleFiFi
1448 \def\HyPsd@GobbleFiFi#1\fi#2\fi{}
1449 \def\HyPsd@EndWithElse#1\else{\else}
1450 \def\HyPsd@add@accent#1#2{%
1451 \HyPsd@GLYPHERR\expandafter\@gobble\string#1+\string#2>%
1454 \def\HyPsd@LetUnexpandableSpace#1{%
1455 \expandafter\futurelet\expandafter#1\expandafter\@gobble\space\relax
1457 \HyPsd@LetUnexpandableSpace\HyPsd@UnexpandableSpace
1458 \edef\HyPsd@XSPACE{\string#\string X}
1459 \edef\HyPsd@ITALCORR{\string#\string I}
1460 \edef\HyPsd@GLYPHERR{\string#\string G}
1461 \def\HyPsd@hspace#1{\HyPsd@@hspace#1*\END}
1462 \def\HyPsd@@hspace#1*#2\END{%
1464 \HyPsd@hspacetest{#1}%
1466 \expandafter\HyPsd@hspacetest
1469 \def\HyPsd@hspacetest#1{\ifdim#1>\z@\space\fi}
1470 \ltx@IfUndefined{tocsection}{%
1471 \let\HyPsd@AMSclassfix\relax
1473 \def\HyPsd@AMSclassfix{%
1474 \let\tocpart\HyPsd@tocsection
1475 \let\tocchapter\HyPsd@tocsection
1476 \let\tocappendix\HyPsd@tocsection
1477 \let\tocsection\HyPsd@tocsection
1478 \let\tocsubsection\HyPsd@tocsection
1479 \let\tocsubsubsection\HyPsd@tocsection
1480 \let\tocparagraph\HyPsd@tocsection
1482 \def\HyPsd@tocsection#1#2#3{%
1483 \if @#2@\else\if @#1@\else#1 \fi#2. \fi
1487 \def\HyPsd@href#1#{\@secondoftwo}
1488 \def\HyPsd@ref#1{\HyPsd@@ref#1*\END}%
1489 \def\HyPsd@@ref#1*#2\END{%
1493 \expandafter\HyPsd@@@ref
1496 \def\HyPsd@@@ref#1{%
1497 \expandafter\ifx\csname r@#1\endcsname\relax
1500 \expandafter\expandafter\expandafter
1501 \@car\csname r@#1\endcsname\@nil
1504 \def\HyPsd@pageref#1{\HyPsd@@pageref#1*\END}
1505 \def\HyPsd@@pageref#1*#2\END{%
1507 \HyPsd@@@pageref{#1}%
1509 \expandafter\HyPsd@@@pageref
1512 \def\HyPsd@@@pageref#1{%
1513 \expandafter\ifx\csname r@#1\endcsname\relax
1516 \expandafter\expandafter\expandafter\expandafter
1517 \expandafter\expandafter\expandafter\@car
1518 \expandafter\expandafter\expandafter\@gobble
1519 \csname r@#1\endcsname{}\@nil
1522 \def\HyPsd@nameref#1{\HyPsd@@nameref#1*\END}
1523 \def\HyPsd@@nameref#1*#2\END{%
1525 \HyPsd@@@nameref{#1}%
1527 \expandafter\HyPsd@@@nameref
1530 \def\HyPsd@@@nameref#1{%
1531 \expandafter\ifx\csname r@#1\endcsname\relax
1534 \expandafter\expandafter\expandafter\expandafter
1535 \expandafter\expandafter\expandafter\@car
1536 \expandafter\expandafter\expandafter\@gobbletwo
1537 \csname r@#1\endcsname{}{}\@nil
1540 \def\HyPsd@autoref#1{\HyPsd@@autoref#1*\END}
1541 \def\HyPsd@@autoref#1*#2\END{%
1543 \HyPsd@@@autoref{#1}%
1545 \expandafter\HyPsd@@@autoref
1548 \def\HyPsd@@@autoref#1{%
1549 \expandafter\ifx\csname r@#1\endcsname\relax
1552 \expandafter\expandafter\expandafter\HyPsd@autorefname
1553 \csname r@#1\endcsname{}{}{}{}\@nil
1554 \expandafter\expandafter\expandafter
1555 \@car\csname r@#1\endcsname\@nil
1558 \def\HyPsd@autorefname#1#2#3#4#5\@nil{%
1561 \HyPsd@@autorefname#4.\@nil
1564 \def\HyPsd@@autorefname#1.#2\@nil{%
1565 \ltx@IfUndefined{#1autorefname}{%
1566 \ltx@IfUndefined{#1name}{%
1568 \csname#1name\endcsname\space
1571 \csname#1autorefname\endcsname\space
1578 \def\HyPsd@DefCommand##1##2##{%
1580 \expandafter\noexpand
1581 \csname\expandafter\@gobble\string##1\@empty\endcsname
1585 \def\HyPsd@@LetCommand##1{%
1586 \expandafter\ifx\csname##1\expandafter\endcsname
1587 \csname iftrue\endcsname
1588 \pdfstringdefWarn\let
1589 \expandafter\@gobble
1591 \expandafter\ifx\csname##1\expandafter\endcsname
1592 \csname iffalse\endcsname
1593 \pdfstringdefWarn\let
1594 \expandafter\expandafter\expandafter\@gobble
1597 \expandafter\noexpand
1598 \csname##1\expandafter\expandafter\expandafter\endcsname
1603 \expandafter\x\csname <def>-command\expandafter\endcsname
1604 \csname <let>-command\endcsname
1605 \def\HyPsd@LetCommand#1{%
1606 \expandafter\expandafter\expandafter\HyPsd@@LetCommand
1607 \expandafter\expandafter\expandafter{%
1608 \expandafter\@gobble\string#1\@empty
1611 \def\HyPsd@ifnextchar#1{%
1612 \pdfstringdefWarn#1%
1613 \expandafter\@gobbletwo\@gobble
1615 \def\HyPsd@protected@testopt#1{%
1616 \pdfstringdefWarn#1%
1619 \def\HyPsd@Warning#1{%
1621 \let\space\ltx@space
1625 \RequirePackage{etexcmds}[2007/09/09]
1627 \expandafter\@secondoftwo
1629 \expandafter\@firstoftwo
1632 \def\HyPsd@ProtectSpaces#1{%
1634 \expandafter\HyPsd@@ProtectSpacesFi
1635 \expandafter|\expandafter\@empty#1| \HyPsd@End#1%
1638 \def\HyPsd@@ProtectSpacesFi#1 #2\HyPsd@End#3\fi{%
1640 \ifx\scrollmode#2\scrollmode
1641 \HyPsd@RemoveMask#1\HyPsd@End#3%
1643 \gdef#3{#1\HyPsd@UnexpandableSpace#2}%
1644 \expandafter\HyPsd@@ProtectSpacesFi#3\HyPsd@End#3%
1647 \def\HyPsd@RemoveMask|#1|\HyPsd@End#2{%
1648 \toks@\expandafter{#1}%
1649 \xdef#2{\the\toks@}%
1653 \def\HyPsd@ProtectSpaces#1{%
1656 \expandafter\HyPsd@@ProtectSpacesFi
1657 \expandafter|\expandafter\@empty#1| %
1660 \expandafter\HyPsd@RemoveMask#1\HyPsd@End#1%
1662 \def\HyPsd@@ProtectSpacesFi#1 #2\HyPsd@fi{%
1664 \etex@unexpanded{#1}%
1665 \ifx\scrollmode#2\scrollmode
1667 \HyPsd@@ProtectSpacesFi\HyPsd@UnexpandableSpace#2%
1670 \def\HyPsd@RemoveMask|#1|\HyPsd@End#2{%
1671 \xdef#2{\etex@unexpanded\expandafter{#1}}%
1674 \def\HyPsd@RemoveBraces#1{%
1675 \ifx\scrollmode#1\scrollmode
1677 \HyPsd@@RemoveBracesFi#1\HyPsd@End{#1}%
1680 \def\HyPsd@@RemoveBracesFi#1#2\HyPsd@End#3\fi{%
1682 \def\Hy@temp@A{#1#2}%
1684 \ifx\Hy@temp@A\Hy@temp@B
1685 \expandafter\def\expandafter\HyPsd@String\expandafter{%
1688 \ifx\scrollmode#2\scrollmode
1690 \Hy@ReturnAfterFiFiEnd{%
1691 \HyPsd@RemoveBraces{#2}%
1696 \HyPsd@AppendItalcorr\HyPsd@String
1697 \ifx\Hy@temp@A\@empty
1698 \Hy@ReturnAfterElseFiFiEnd{%
1699 \HyPsd@RemoveBraces{#2}%
1702 \HyPsd@ProtectSpaces\Hy@temp@A
1703 \HyPsd@AppendItalcorr\Hy@temp@A
1704 \Hy@ReturnAfterFiFiEnd{%
1705 \expandafter\HyPsd@RemoveBraces\expandafter
1712 \def\HyPsd@AppendItalcorr#1{%
1713 \expandafter\HyPsd@@AppendItalcorr\expandafter{\/}#1%
1715 \def\HyPsd@@AppendItalcorr#1#2{%
1716 \expandafter\def\expandafter#2\expandafter{#2#1}%
1718 \def\HyPsd@CheckCatcodes#1#2\HyPsd@End{%
1719 \global\let\HyPsd@Rest\relax
1720 \ifcat\relax\noexpand#1\relax
1725 \afterassignment\HyPsd@AfterCountRemove
1726 \count@=#2\HyPsd@End
1731 \afterassignment\HyPsd@AfterDimenRemove
1732 \dimen@=#2\HyPsd@End
1737 \afterassignment\HyPsd@AfterSkipRemove
1741 \HyPsd@CatcodeWarning{#1}%
1748 \expandafter\def\expandafter\HyPsd@String\expandafter{%
1753 \expandafter\def\expandafter\HyPsd@String\expandafter{%
1754 \HyPsd@String\HyPsd@SPACEOPTI
1758 \HyPsd@CatcodeWarning{math shift}%
1761 \HyPsd@CatcodeWarning{alignment tab}%
1764 \HyPsd@CatcodeWarning{superscript}%
1767 \HyPsd@CatcodeWarning{subscript}%
1769 \expandafter\def\expandafter\HyPsd@String\expandafter{%
1779 \ifx\HyPsd@Rest\relax
1780 \ifx\scrollmode#2\scrollmode
1782 \Hy@ReturnAfterFiFiEnd{%
1783 \HyPsd@CheckCatcodes#2\HyPsd@End
1787 \ifx\HyPsd@Rest\@empty
1789 \Hy@ReturnAfterFiFiEnd{%
1790 \expandafter\HyPsd@CheckCatcodes\HyPsd@Rest\HyPsd@End
1796 \def\HyPsd@AfterCountRemove#1\HyPsd@End{%
1797 \gdef\HyPsd@Rest{#1}%
1799 \def\HyPsd@AfterDimenRemove#1\HyPsd@End{%
1800 \ifdim\ifx\HyPsd@String\@empty\z@\else\dimen@\fi>1ex %
1801 \HyPsd@ReplaceSpaceWarning{\string\kern\space\the\dimen@}%
1802 \gdef\HyPsd@Rest{\HyPsd@UnexpandableSpace #1}%
1806 \HyPsd@RemoveSpaceWarning{\string\kern\space\the\dimen@}%
1808 \gdef\HyPsd@Rest{#1}%
1811 \def\HyPsd@AfterSkipRemove#1\HyPsd@End{%
1812 \ifdim\ifx\HyPsd@String\@empty\z@\else\skip@\fi>1ex %
1813 \HyPsd@ReplaceSpaceWarning{\string\hskip\space\the\skip@}%
1814 \gdef\HyPsd@Rest{\HyPsd@UnexpandableSpace #1}%
1818 \HyPsd@RemoveSpaceWarning{\string\kern\space\the\skip@}%
1820 \gdef\HyPsd@Rest{#1}%
1823 \def\HyPsd@CatcodeWarning#1{%
1825 Token not allowed in a PDF string (%
1832 \MessageBreak removing `\HyPsd@RemoveCmdPrefix#1'%
1838 |gdef|HyPsd@RemoveCmdPrefix#1{%
1839 |expandafter|HyPsd@@RemoveCmdPrefix
1840 |string#1|@empty\<>-|@empty|@empty
1842 |gdef|HyPsd@@RemoveCmdPrefix#1\<>-#2|@empty#3|@empty{#1#2}%
1844 \def\HyPsd@RemoveSpaceWarning#1{%
1846 Token not allowed in a PDF string (%
1853 \MessageBreak #1\MessageBreak
1857 \def\HyPsd@ReplaceSpaceWarning#1{%
1859 Token not allowed in a PDF string (%
1866 \MessageBreak #1\MessageBreak
1870 \def\HyPsd@GlyphProcess#1\relax#2\@empty{%
1871 \expandafter\def\expandafter\HyPsd@String\expandafter{%
1876 \ltx@ReturnAfterFi{%
1877 \HyPsd@GlyphProcessWarning#2\@empty
1881 \def\HyPsd@GlyphProcessWarning#1>#2\@empty{%
1882 \HyPsd@@GlyphProcessWarning#1++>%
1883 \HyPsd@GlyphProcess#2\@empty
1885 \def\HyPsd@@GlyphProcessWarning#1+#2+#3>{%
1888 Glyph not defined in %
1889 P\ifHy@unicode U\else D1\fi\space encoding,\MessageBreak
1890 removing `\@backslashchar#1'%
1894 Composite letter `\@backslashchar#1+#2'\MessageBreak
1895 not defined in P\ifHy@unicode U\else D1\fi\space encoding,%
1897 removing `\@backslashchar#1'%
1901 \def\HyPsd@spaceopti#1{ % first space
1902 \ifx\HyPsd@spaceopti#1%
1908 \def\HyPsd@Subst#1#2#3{%
1909 \def\HyPsd@@ReplaceFi##1#1##2\END\fi{%
1912 \ifx\scrollmode##2\scrollmode
1915 \HyPsd@@ReplaceFi##2\END
1920 \expandafter\HyPsd@@ReplaceFi#3#1\END
1924 \def\HyPsd@StringSubst#1{%
1925 \expandafter\HyPsd@Subst\expandafter{\string#1}%
1938 \lowercase{\endgroup
1939 \def\HyPsd@EscapeTeX#1{%
1940 \HyPsd@Subst!{|045}#1%
1941 \HyPsd@Subst({|173}#1%
1942 \HyPsd@Subst){|175}#1%
1945 \def\HyPsd@doxspace#1{%
1972 |gdef|HyPsd@ConvertToUnicode#1{%
1974 |expandafter|HyPsd@DoConvert#1|@empty|@empty|@empty
1984 |gdef|HyPsd@DoConvert#1{%
1987 |ltx@ReturnAfterFi{%
1990 |expandafter|HyPsd@DoEscape
1993 |expandafter|HyPsd@DoConvert
1998 |gdef|HyPsd@DoEscape#1{%
2000 |expandafter|HyPsd@GetTwoBytes
2002 |ltx@ReturnAfterFi{%
2005 |expandafter|HyPsd@GetTwoBytes
2008 |expandafter|HyPsd@GetOneByte
2013 |gdef|HyPsd@GetTwoBytes#1\#2#3#4{%
2017 |gdef|HyPsd@GetOneByte#1#2{%
2022 \def\HyPsd@GetNextTwoTokens#1#2#3\END#4{%
2024 \HyPsd@@ConvertToUnicode#3\END#4%
2031 \expandafter\endgroup
2035 \@backslashchar 000#1%
2038 \expandafter\HyPsd@CharTwoByte\number`#1!%
2040 \expandafter\expandafter\expandafter\HyPsd@CharSurrogate
2041 \intcalcSub{`#1}{65536}!%
2045 \def\HyPsd@CharTwoByte#1!{%
2046 \expandafter\expandafter\expandafter\HyPsd@CharOctByte
2047 \IntCalcDiv#1!256!!%
2048 \expandafter\expandafter\expandafter\HyPsd@CharOctByte
2049 \IntCalcMod#1!256!!%
2051 \def\HyPsd@CharOctByte#1!{%
2054 \intcalcDiv{\IntCalcMod#1!64!}{8}%
2057 \def\HyPsd@CharSurrogate#1!{%
2059 \IntCalcDiv#1!262144!%
2060 \expandafter\expandafter\expandafter\HyPsd@CharOctByte
2061 \intcalcDiv{\IntCalcMod#1!262144!}{1024}!%
2063 \expandafter\expandafter\expandafter\IntCalcAdd
2064 \intcalcDiv{\IntCalcMod#1!1024!}{256}!4!%
2065 \expandafter\expandafter\expandafter\HyPsd@CharOctByte
2066 \IntCalcMod#1!256!!%
2070 \@backslashchar 000#1%
2073 \begingroup\expandafter\expandafter\expandafter\endgroup
2074 \expandafter\ifx\csname numexpr\endcsname\relax
2075 \let\HyPsd@UTFviii\relax
2078 \lccode`\~=`^^f4\relax
2079 \lowercase{\endgroup
2080 \def\HyPsd@UTFviii{%
2081 \let\UTFviii@two@octets\HyPsd@UTFviii@two
2082 \let\UTFviii@three@octets\HyPsd@UTFviii@three
2083 \let\UTFviii@four@octets\HyPsd@UTFviii@four
2084 \ifx~\HyPsd@UTFviii@ccxliv@undef
2085 \let~\HyPsd@UTFviii@ccxliv@def
2087 \let\unichar\HyPsd@unichar
2090 \def\HyPsd@UTFviii@ccxliv@undef{\@inpenc@undefined@{utf8}}%
2091 \edef\HyPsd@UTFviii@ccxliv@def{%
2092 \noexpand\UTFviii@four@octets\string ^^f4%
2094 \def\HyPsd@UTFviii@two#1#2{%
2095 \expandafter\HyPsd@UTFviii@@two
2096 \number\dimexpr.25\dimexpr`#1sp\expandafter\relax\expandafter|%
2097 \number`#1\expandafter|%
2098 \number\dimexpr.125\dimexpr`#2sp\expandafter\relax\expandafter|%
2101 \def\HyPsd@UTFviii@@two#1|#2|#3|#4\@nil{%
2103 \number\numexpr #1-48\expandafter\relax
2104 \csname\number\numexpr #2-4*#1\relax\expandafter\endcsname
2105 \number\numexpr #3-8*%
2106 \number\dimexpr.125\dimexpr#3sp\relax\relax\expandafter\relax
2107 \number\numexpr #4-8*#3\relax
2109 \def\HyPsd@UTFviii@three#1#2#3{%
2110 \expandafter\HyPsd@UTFviii@@three
2111 \number\dimexpr.25\dimexpr`#1sp\expandafter\relax\expandafter|%
2112 \number`#1\expandafter|%
2113 \number\ifnum\numexpr`#2-128\relax <32 0\else 1\fi\expandafter|%
2114 \number\dimexpr.25\dimexpr`#2sp\expandafter\relax\expandafter|%
2115 \number`#2\expandafter|%
2116 \number\dimexpr.125\dimexpr`#3sp\expandafter\relax\expandafter|%
2119 \def\HyPsd@UTFviii@@three#1|#2|#3|#4|#5|#6|#7\@nil{%
2121 \number\numexpr #1-56\expandafter\relax
2122 \number\numexpr 2*(#2-4*#1)+#3\expandafter\relax
2123 \number\numexpr #4 - 32 -\ifcase#3 0\else 8\fi\expandafter\relax
2124 \csname\number\numexpr #5-4*#4\relax\expandafter\endcsname
2125 \number\numexpr #6-16\expandafter\relax
2126 \number\numexpr #7-8*#6\relax
2128 \def\HyPsd@UTFviii@four#1#2{%
2129 \expandafter\HyPsd@@UTFviii@four\number
2130 \numexpr-1+(`#1-240)*4+\dimexpr.0625\dimexpr`#2sp-128sp%
2131 \expandafter|\number
2132 \numexpr`#2-16*\dimexpr.0625\dimexpr`#2sp|%
2134 \def\HyPsd@@UTFviii@four#1|#2|#3{%
2135 \933\number\dimexpr.25\dimexpr#1sp\relax\relax
2136 \csname\number\numexpr#1-4*\dimexpr.25\dimexpr#1sp\endcsname
2138 \number\numexpr(#2-1)/2\relax
2140 \number\numexpr#2/2\relax
2142 \number\numexpr\ifodd#2 4+\fi
2143 \dimexpr.0625\dimexpr`#3sp-128sp\relax\relax\relax
2145 \expandafter\HyPsd@@@UTFviii@four\number
2146 \numexpr`#3-16*\dimexpr.0625\dimexpr`#3sp|%
2148 \def\HyPsd@@@UTFviii@four#1|#2{%
2149 \number\numexpr4+\dimexpr.25\dimexpr#1sp\relax\relax\relax
2150 \csname\number\numexpr#1-4*\dimexpr.25\dimexpr#1sp\endcsname
2151 \number\dimexpr.125\dimexpr`#2sp-128sp\relax\relax
2152 \number\numexpr`#2-8*\dimexpr.125\dimexpr`#2sp\relax\relax\relax
2154 \def\HyPsd@unichar#1{%
2157 \HyPsd@UnicodeReplacementCharacter % illegal
2160 \expandafter\HyPsd@unichar\expandafter{%
2161 \number\numexpr 55296+%
2162 \dimexpr.0009765625\dimexpr\number#1sp-\p@
2165 \expandafter\HyPsd@unichar\expandafter{%
2166 \number\numexpr#1-9216%
2167 -1024*\dimexpr.0009765625\dimexpr\number#1sp-\p@
2173 \expandafter\HyPsd@unichar@first@byte\expandafter{%
2175 \dimexpr.00390625\dimexpr\number#1sp\relax\relax
2179 \number\dimexpr.00390625\dimexpr\number#1sp\relax\relax
2181 \expandafter\HyPsd@unichar@second@byte\expandafter{%
2183 \numexpr#1-256*\number
2184 \dimexpr.00390625\dimexpr\number#1sp\relax\relax\relax
2189 .% unsupported (Unicode -> PDF Doc Encoding)
2192 \def\HyPsd@UnicodeReplacementCharacter{\9377\375}%
2193 \def\HyPsd@unichar@first@byte#1{%
2194 \number\dimexpr.015625\dimexpr#1sp\relax\relax
2195 \expandafter\HyPsd@unichar@octtwo\expandafter{%
2197 \numexpr#1-64*\number\dimexpr.015625\dimexpr#1sp%
2201 \def\HyPsd@unichar@second@byte#1{%
2202 \csname\number\dimexpr.015625\dimexpr#1sp\relax\relax\endcsname
2203 \expandafter\HyPsd@unichar@octtwo\expandafter{%
2205 \numexpr#1-64*\number\dimexpr.015625\dimexpr#1sp%
2209 \def\HyPsd@unichar@octtwo#1{%
2210 \number\dimexpr.125\dimexpr#1sp\relax\relax
2211 \number\numexpr#1-8*\number\dimexpr.125\dimexpr#1sp%
2215 \def\HyPsd@utf@viii@undeferr#1#2#3#4#5#6{%
2218 [Please insert \textbackslash PrerenderUnicode%
2219 \textbraceleft#1\textbraceright\space
2223 \@ifclassloaded{memoir}{%
2224 \Hy@AtEndOfPackage{\RequirePackage{memhfixc}}%
2226 \@ifpackageloaded{subfigure}{%
2227 \ltx@IfUndefined{sub@label}{%
2228 \Hy@hypertexnamesfalse
2230 \renewcommand*{\sub@label}[1]{%
2232 \subfig@oldlabel{#1}%
2235 \edef\@currentlabstr{%
2236 \expandafter\strip@prefix\meaning\@currentlabelname
2238 \protected@write\@auxout{}{%
2239 \string\newlabel{sub@#1}{%
2240 {\@nameuse{@@thesub\@captype}}%
2243 \expandafter\strip@period\@currentlabstr
2254 \@ifpackagelater{subfigure}{2002/03/26}{}{%
2255 \providecommand*{\toclevel@subfigure}{1}%
2256 \providecommand*{\toclevel@subtable}{1}%
2260 \ltx@IfUndefined{XR@addURL}{%
2262 \def\XR@addURL#1{\XR@@dURL#1{}{}{}{}\\}%
2263 \def\XR@@dURL#1#2#3#4#5\\{%
2272 \def\Hy@false{false}
2273 \let\literalps@out\@gobble
2274 \newcommand\pdfbookmark[3][]{}
2275 \def\Acrobatmenu#1#2{\leavevmode#2}
2276 \def\Hy@writebookmark#1#2#3#4#5{}%
2277 \let\HyperRaiseLinkHook\@empty
2278 \def\HyperRaiseLinkDefault{\baselineskip}
2279 \newcount\Hy@SavedSpaceFactor
2280 \def\Hy@SaveSpaceFactor{%
2281 \global\Hy@SavedSpaceFactor=\ifhmode\spacefactor\else\z@\fi
2283 \def\Hy@RestoreSpaceFactor{%
2286 \ifnum\Hy@SavedSpaceFactor>\z@
2287 \spacefactor=\Hy@SavedSpaceFactor
2291 \def\Hy@SaveSavedSpaceFactor{%
2292 \edef\Hy@RestoreSavedSpaceFactor{%
2293 \global\Hy@SavedSpaceFactor=\the\Hy@SavedSpaceFactor\relax
2296 \def\Hy@raisedlink#1{%
2304 \let\HyperRaiseLinkLength\@tempdima
2305 \setlength\HyperRaiseLinkLength\HyperRaiseLinkDefault
2307 \expandafter\endgroup
2308 \expandafter\raise\the\HyperRaiseLinkLength\hbox{%
2309 \Hy@RestoreSpaceFactor
2314 \Hy@RestoreSpaceFactor
2317 \def\Hy@SaveLastskip{%
2318 \let\Hy@RestoreLastskip\relax
2321 \let\Hy@RestoreLastskip\nobreak
2327 \def\noexpand\Hy@RestoreLastskip{%
2331 \vskip\the\lastskip\relax
2340 \let\Hy@RestoreLastskip\nobreak
2346 \def\noexpand\Hy@RestoreLastskip{%
2350 \hskip\the\lastskip\relax
2359 \SetupKeyvalOptions{%
2363 \def\IfHyperBooleanExists#1{%
2364 \ltx@ifundefined{Hy@#1false}\ltx@secondoftwo{%
2365 \ltx@ifundefined{KV@Hyp@#1@default}\ltx@secondoftwo\ltx@firstoftwo
2368 \@namedef{KV@Hyp@stoppedearly@default}{}
2369 \def\IfHyperBoolean#1{%
2370 \IfHyperBooleanExists{#1}{%
2371 \csname ifHy@#1\endcsname
2372 \expandafter\ltx@firstoftwo
2374 \expandafter\ltx@secondoftwo
2378 \def\Hy@boolkey#1#2{%
2380 \lowercase\expandafter{%
2381 \expandafter\def\expandafter\Hy@tempa\expandafter{\Hy@tempa}%
2383 \ifx\Hy@tempa\@empty
2384 \let\Hy@tempa\Hy@true
2386 \ifx\Hy@tempa\Hy@true
2388 \ifx\Hy@tempa\Hy@false
2394 \Hy@WarnOptionValue{#2}{#1}{`true' or 'false'}%
2396 \Hy@Info{Option `#1' set `\Hy@tempa'}%
2397 \csname Hy@#1\Hy@tempa\endcsname
2400 \def\Hy@WarnOptionValue#1#2#3{%
2402 Unexpected value `#1'\MessageBreak
2403 of option `#2' instead of\MessageBreak
2407 \def\Hy@DisableOption#1{%
2408 \ltx@ifundefined{KV@Hyp@#1@default}{%
2409 \define@key{Hyp}{#1}%
2411 \define@key{Hyp}{#1}[]%
2413 {\Hy@WarnOptionDisabled{#1}}%
2415 \def\Hy@WarnOptionDisabled#1{%
2417 Option `#1' has already been used,\MessageBreak
2418 setting the option has no effect%
2421 \def\Hy@CheckOptionValue#1#2#3{%
2424 \@onelevel@sanitize\x
2428 \@onelevel@sanitize\z
2438 \ifx\\##2\\\else\space(##2)\fi
2442 Values of option `#2':\MessageBreak
2444 * An empty value disables the option.\MessageBreak
2450 \def\Hy@DefNameKey#1{%
2451 \expandafter\Hy@@DefNameKey\csname @#1\endcsname{#1}%
2453 \def\Hy@@DefNameKey#1#2#3{%
2454 \define@key{Hyp}{#2}{%
2458 \Hy@CheckOptionValue{##1}{#2}{#3}%
2463 \def\Hy@UseNameKey#1#2{%
2469 \define@key{Hyp}{implicit}[true]{%
2470 \Hy@boolkey{implicit}{#1}%
2472 \define@key{Hyp}{draft}[true]{%
2473 \Hy@boolkey{draft}{#1}%
2475 \define@key{Hyp}{final}[true]{%
2476 \Hy@boolkey{final}{#1}%
2478 \let\KV@Hyp@nolinks\KV@Hyp@draft
2479 \def\Hy@ObsoletePaperOption#1{%
2481 Option `#1' is no longer used%
2483 \define@key{Hyp}{#1}[true]{}%
2486 \define@key{Hyp}{#1}[true]{%
2487 \Hy@ObsoletePaperOption{#1}%
2493 \Hy@temp{letterpaper}
2494 \Hy@temp{legalpaper}
2495 \Hy@temp{executivepaper}
2496 \define@key{Hyp}{setpagesize}[true]{%
2497 \Hy@boolkey{setpagesize}{#1}%
2499 \define@key{Hyp}{debug}[true]{%
2500 \Hy@boolkey{debug}{#1}%
2502 \define@key{Hyp}{linktocpage}[true]{%
2503 \Hy@boolkey{linktocpage}{#1}%
2505 \let\Hy@linktoc\Hy@linktoc@page
2507 \let\Hy@linktoc\Hy@linktoc@section
2510 \chardef\Hy@linktoc@none=0 %
2511 \chardef\Hy@linktoc@section=1 %
2512 \chardef\Hy@linktoc@page=2 %
2513 \chardef\Hy@linktoc@all=3 %
2515 \let\Hy@linktoc\Hy@linktoc@page
2517 \let\Hy@linktoc\Hy@linktoc@section
2519 \define@key{Hyp}{linktoc}{%
2520 \@ifundefined{Hy@linktoc@#1}{%
2522 Unexpected value `#1' of\MessageBreak
2523 option `linktoc' instead of `none',\MessageBreak
2524 `section', `page' or `all'%
2527 \expandafter\let\expandafter\Hy@linktoc
2528 \csname Hy@linktoc@#1\endcsname
2531 \define@key{Hyp}{extension}{\def\XR@ext{#1}}
2533 \define@key{Hyp}{verbose}[true]{%
2534 \Hy@boolkey{verbose}{#1}%
2536 \define@key{Hyp}{typexml}[true]{%
2537 \Hy@boolkey{typexml}{#1}%
2539 \define@key{Hyp}{raiselinks}[true]{%
2540 \Hy@boolkey{raiselinks}{#1}%
2542 \def\Hy@setbreaklinks#1{%
2543 \csname breaklinks#1\endcsname
2545 \def\Hy@breaklinks@unsupported{%
2546 \ifx\Hy@setbreaklinks\@gobble
2549 You have enabled option `breaklinks'.\MessageBreak
2550 But driver `\Hy@driver.def' does not suppport this.\MessageBreak
2551 Expect trouble with the link areas of broken links%
2556 \define@key{Hyp}{breaklinks}[true]{%
2557 \Hy@boolkey{breaklinks}{#1}%
2558 \let\Hy@setbreaklinks\@gobble
2560 \define@key{Hyp}{localanchorname}[true]{%
2561 \Hy@boolkey{localanchorname}{#1}%
2563 \define@key{Hyp}{pageanchor}[true]{%
2564 \Hy@boolkey{pageanchor}{#1}%
2566 \define@key{Hyp}{plainpages}[true]{%
2567 \Hy@boolkey{plainpages}{#1}%
2569 \define@key{Hyp}{naturalnames}[true]{%
2570 \Hy@boolkey{naturalnames}{#1}%
2572 \define@key{Hyp}{hypertexnames}[true]{%
2573 \Hy@boolkey{hypertexnames}{#1}%
2575 \define@key{Hyp}{nesting}[true]{%
2576 \Hy@boolkey{nesting}{#1}%
2578 \define@key{Hyp}{unicode}[true]{%
2579 \Hy@boolkey{unicode}{#1}%
2581 \def\HyPsd@pdfencoding{unicode}%
2584 \def\HyPsd@pdfencoding{pdfdoc}%
2587 \def\HyPsd@LoadUnicode{%
2588 \@ifundefined{T@PU}{%
2592 \DeclareFontFamily{PU}{pdf}{}%
2593 \DeclareFontShape{PU}{pdf}{m}{n}{ <-> cmr10 }{}%
2594 \DeclareFontSubstitution{PU}{pdf}{m}{n}%
2595 \global\let\HyPsd@LoadUnicode\relax
2597 \Hy@AtBeginDocument{%
2598 \ifx\HyPsd@LoadUnicode\relax
2600 \def\HyPsd@LoadUnicode{%
2602 Unicode support for bookmarks is not available.\MessageBreak
2603 Activate unicode support by using one of the options\MessageBreak
2604 `unicode', `pdfencoding=unicode', `pdfencoding=auto'\MessageBreak
2607 \global\let\HyPsd@LoadUnicode\relax
2608 \global\Hy@unicodefalse
2609 \global\let\Hy@unicodetrue\Hy@unicodefalse
2613 \define@key{Hyp}{pdfencoding}{%
2614 \edef\HyPsd@temp{#1}%
2615 \ifx\HyPsd@temp\HyPsd@pdfencoding@pdfdoc
2616 \let\HyPsd@pdfencoding\HyPsd@temp
2619 \ifcase\ifx\HyPsd@temp\HyPsd@pdfencoding@unicode
2622 \ifx\HyPsd@temp\HyPsd@pdfencoding@auto
2628 \let\HyPsd@pdfencoding\HyPsd@temp
2629 \hypersetup{unicode}%
2631 \def\HyPsd@pdfencoding{#1}%
2632 \ifx\HyPsd@pdfencoding\HyPsd@pdfencoding@auto
2633 \HyPsd@LoadStringEnc
2636 \Hy@Warning{Cannot switch to unicode bookmarks}%
2637 \let\HyPsd@pdfencoding\HyPsd@pdfencoding@pdfdoc
2640 \@onelevel@sanitize\HyPsd@temp
2642 Values of option `pdfencoding':\MessageBreak
2643 `pdfdoc', `unicode', `auto'.\MessageBreak
2644 Ignoring unknown value `\HyPsd@temp'%
2649 \def\HyPsd@pdfencoding@auto{auto}
2650 \def\HyPsd@pdfencoding@pdfdoc{pdfdoc}
2651 \def\HyPsd@pdfencoding@unicode{unicode}
2652 \let\HyPsd@pdfencoding\Hy@pdfencoding@pdfdoc
2653 \def\HyPsd@LoadStringEnc{%
2654 \RequirePackage{stringenc}[2009/12/15]%
2655 \let\HyPsd@LoadStringEnc\relax
2657 \Hy@AtBeginDocument{%
2658 \@ifpackageloaded{stringenc}{%
2659 \let\HyPsd@LoadStringEnc\relax
2661 \def\HyPsd@LoadStringEnc{%
2663 Missing package `stringenc'. Use `pdfencoding=auto'\MessageBreak
2664 in the preamble or load the package there%
2669 \def\hypersetup{\kvsetkeys{Hyp}}
2670 \newif\ifHy@setpdfversion
2671 \define@key{Hyp}{pdfversion}{%
2672 \@ifundefined{Hy@pdfversion@#1}{%
2673 \PackageWarning{hyperref}{%
2674 Unsupported PDF version `#1'.\MessageBreak
2675 Valid values: 1.2 until 1.9%
2678 \Hy@setpdfversiontrue
2679 \edef\Hy@pdfversion{\@nameuse{Hy@pdfversion@#1}}%
2682 \@namedef{Hy@pdfversion@1.2}{2}%
2683 \@namedef{Hy@pdfversion@1.3}{3}%
2684 \@namedef{Hy@pdfversion@1.4}{4}%
2685 \@namedef{Hy@pdfversion@1.5}{5}%
2686 \@namedef{Hy@pdfversion@1.6}{6}%
2687 \@namedef{Hy@pdfversion@1.7}{7}%
2688 \@namedef{Hy@pdfversion@1.8}{8}%
2689 \@namedef{Hy@pdfversion@1.9}{9}%
2690 \def\Hy@pdfversion{2}
2692 \let\Hy@DviErrMsg\ltx@empty
2694 \def\Hy@DviErrMsg{pdfTeX or LuaTeX is running in PDF mode}%
2697 \def\Hy@DviErrMsg{XeTeX is running}%
2703 \def\Hy@DviErrMsg{VTeX is running, but not in DVI mode}%
2710 \def\HyOpt@CheckDvi#1{%
2712 \expandafter\ltx@firstofone
2715 Wrong DVI mode driver option `#1',\MessageBreak
2716 because \Hy@DviErrMsg
2718 \expandafter\ltx@gobble
2721 \DeclareVoidOption{tex4ht}{%
2723 \kvsetkeys{Hyp}{colorlinks=true}%
2724 \def\BeforeTeXIVht{\RequirePackage{color}}%
2725 \def\Hy@driver{htex4ht}%
2726 \def\MaybeStopEarly{%
2727 \Hy@Message{Stopped early}%
2728 \Hy@AtBeginDocument{%
2730 \gdef\PDF@FinishDoc{}%
2735 \DeclareVoidOption{pdftex}{%
2737 \def\Hy@driver{hpdftex}%
2740 Wrong driver option `pdftex',\MessageBreak
2741 because pdfTeX in PDF mode is not detected%
2745 \DeclareVoidOption{nativepdf}{%
2746 \HyOpt@CheckDvi{nativepdf}{%
2747 \def\Hy@driver{hdvips}%
2750 \DeclareVoidOption{dvipdfm}{%
2751 \HyOpt@CheckDvi{dvipdfm}{%
2752 \def\Hy@driver{hdvipdfm}%
2755 \DeclareVoidOption{dvipdfmx}{%
2756 \HyOpt@CheckDvi{dvipdfmx}{%
2757 \def\Hy@driver{hdvipdfm}%
2760 \define@key{Hyp}{dvipdfmx-outline-open}[true]{%
2761 \expandafter\ifx\csname if#1\expandafter\endcsname
2762 \csname iftrue\endcsname
2763 \chardef\SpecialDvipdfmxOutlineOpen\@ne
2765 \chardef\SpecialDvipdfmxOutlineOpen\z@
2768 \DeclareVoidOption{xetex}{%
2770 \def\Hy@driver{hxetex}%
2773 Wrong driver option `xetex',\MessageBreak
2774 because XeTeX is not detected%
2778 \DeclareVoidOption{pdfmark}{%
2779 \HyOpt@CheckDvi{pdfmark}{%
2780 \def\Hy@driver{hdvips}%
2783 \DeclareVoidOption{dvips}{%
2784 \HyOpt@CheckDvi{dvips}{%
2785 \def\Hy@driver{hdvips}%
2788 \DeclareVoidOption{hypertex}{%
2789 \HyOpt@CheckDvi{hypertex}{%
2790 \def\Hy@driver{hypertex}%
2793 \let\Hy@MaybeStopNow\relax
2794 \DeclareVoidOption{vtex}{%
2796 \ifnum 0\ifnum\OpMode<1 1\fi \ifnum\OpMode>3 1\fi =0 %
2797 \def\Hy@driver{hvtex}%
2799 \ifnum\OpMode=10\relax
2800 \def\Hy@driver{hvtexhtm}%
2801 \def\MaybeStopEarly{%
2802 \Hy@Message{Stopped early}%
2803 \Hy@AtBeginDocument{%
2805 \gdef\PDF@FinishDoc{}%
2811 Wrong driver option `vtex',\MessageBreak
2812 because of wrong OpMode (\the\OpMode)%
2818 Wrong driver option `vtex',\MessageBreak
2819 because VTeX is not running%
2823 \DeclareVoidOption{vtexpdfmark}{%
2825 \ifnum 0\ifnum\OpMode<1 1\fi \ifnum\OpMode>3 1\fi =0 %
2826 \def\Hy@driver{hvtexmrk}%
2829 Wrong driver option `vtexpdfmark',\MessageBreak
2830 because of wrong OpMode (\the\OpMode)%
2835 Wrong driver option `vtexpdfmark,\MessageBreak
2836 because VTeX is not running%
2840 \DeclareVoidOption{dviwindo}{%
2841 \HyOpt@CheckDvi{dviwindo}{%
2842 \def\Hy@driver{hdviwind}%
2843 \kvsetkeys{Hyp}{colorlinks}%
2844 \PassOptionsToPackage{dviwindo}{color}%
2847 \DeclareVoidOption{dvipsone}{%
2848 \HyOpt@CheckDvi{dvipsone}{%
2849 \def\Hy@driver{hdvipson}%
2852 \DeclareVoidOption{textures}{%
2853 \HyOpt@CheckDvi{textures}{%
2854 \def\Hy@driver{htexture}%
2857 \DeclareVoidOption{latex2html}{%
2858 \HyOpt@CheckDvi{latex2html}{%
2859 \Hy@AtBeginDocument{\@@latextohtmlX}%
2862 \DeclareVoidOption{ps2pdf}{%
2863 \HyOpt@CheckDvi{ps2pdf}{%
2864 \def\Hy@driver{hdvips}%
2867 \let\HyOpt@DriverFallback\ltx@empty
2868 \define@key{Hyp}{driverfallback}{%
2870 \def\HyOpt@DriverFallback{#1}%
2871 \Hy@Match\HyOpt@DriverFallback{%
2872 ^(|dvipdfm|dvipdfmx|dvips|dvipsone|dviwindo|hypertex|ps2pdf|%
2873 latex2html|tex4ht)$%
2875 \let\HyOpt@DriverFallback\ltx@empty
2879 \define@key{Hyp}{hyperfigures}[true]{%
2880 \Hy@boolkey{hyperfigures}{#1}%
2882 \define@key{Hyp}{hyperfootnotes}[true]{%
2883 \Hy@boolkey{hyperfootnotes}{#1}%
2885 \def\back@none{none}
2886 \def\back@section{section}
2887 \def\back@page{page}
2888 \def\back@slide{slide}
2889 \define@key{Hyp}{backref}[section]{%
2890 \lowercase{\def\Hy@tempa{#1}}%
2891 \ifx\Hy@tempa\@empty
2892 \let\Hy@tempa\back@section
2894 \ifx\Hy@tempa\Hy@false
2895 \let\Hy@tempa\back@none
2897 \ifx\Hy@tempa\back@slide
2898 \let\Hy@tempa\back@section
2900 \ifx\Hy@tempa\back@page
2901 \PassOptionsToPackage{hyperpageref}{backref}%
2904 \ifx\Hy@tempa\back@section
2905 \PassOptionsToPackage{hyperref}{backref}%
2908 \ifx\Hy@tempa\back@none
2911 \Hy@WarnOptionValue{#1}{backref}{%
2912 `section', `slide', `page', `none',\MessageBreak
2918 \define@key{Hyp}{pagebackref}[true]{%
2920 \lowercase\expandafter{%
2921 \expandafter\def\expandafter\Hy@tempa\expandafter{\Hy@tempa}%
2923 \ifx\Hy@tempa\@empty
2924 \let\Hy@tempa\Hy@true
2926 \ifx\Hy@tempa\Hy@true
2927 \PassOptionsToPackage{hyperpageref}{backref}%
2930 \ifx\Hy@tempa\Hy@false
2933 \Hy@WarnOptionValue{#1}{pagebackref}{`true' or `false'}%
2937 \define@key{Hyp}{hyperindex}[true]{%
2938 \Hy@boolkey{hyperindex}{#1}%
2940 \define@key{Hyp}{encap}[\|]{%
2941 \def\HyInd@EncapChar{#1}%
2943 \def\HyLang@afrikaans{%
2944 \def\equationautorefname{Vergelyking}%
2945 \def\footnoteautorefname{Voetnota}%
2946 \def\itemautorefname{Item}%
2947 \def\figureautorefname{Figuur}%
2948 \def\tableautorefname{Tabel}%
2949 \def\partautorefname{Deel}%
2950 \def\appendixautorefname{Bylae}%
2951 \def\chapterautorefname{Hoofstuk}%
2952 \def\sectionautorefname{Afdeling}%
2953 \def\subsectionautorefname{Subafdeling}%
2954 \def\subsubsectionautorefname{Subsubafdeling}%
2955 \def\paragraphautorefname{Paragraaf}%
2956 \def\subparagraphautorefname{Subparagraaf}%
2957 \def\FancyVerbLineautorefname{Lyn}%
2958 \def\theoremautorefname{Teorema}%
2959 \def\pageautorefname{Bladsy}%
2961 \def\HyLang@english{%
2962 \def\equationautorefname{Equation}%
2963 \def\footnoteautorefname{footnote}%
2964 \def\itemautorefname{item}%
2965 \def\figureautorefname{Figure}%
2966 \def\tableautorefname{Table}%
2967 \def\partautorefname{Part}%
2968 \def\appendixautorefname{Appendix}%
2969 \def\chapterautorefname{chapter}%
2970 \def\sectionautorefname{section}%
2971 \def\subsectionautorefname{subsection}%
2972 \def\subsubsectionautorefname{subsubsection}%
2973 \def\paragraphautorefname{paragraph}%
2974 \def\subparagraphautorefname{subparagraph}%
2975 \def\FancyVerbLineautorefname{line}%
2976 \def\theoremautorefname{Theorem}%
2977 \def\pageautorefname{page}%
2979 \def\HyLang@french{%
2980 \def\equationautorefname{\'Equation}%
2981 \def\footnoteautorefname{note}%
2982 \def\itemautorefname{item}%
2983 \def\figureautorefname{Figure}%
2984 \def\tableautorefname{Tableau}%
2985 \def\partautorefname{Partie}%
2986 \def\appendixautorefname{Appendice}%
2987 \def\chapterautorefname{chapitre}%
2988 \def\sectionautorefname{section}%
2989 \def\subsectionautorefname{sous-section}%
2990 \def\subsubsectionautorefname{sous-sous-section}%
2991 \def\paragraphautorefname{paragraphe}%
2992 \def\subparagraphautorefname{sous-paragraphe}%
2993 \def\FancyVerbLineautorefname{ligne}%
2994 \def\theoremautorefname{Th\'eor\`eme}%
2995 \def\pageautorefname{page}%
2997 \def\HyLang@german{%
2998 \def\equationautorefname{Gleichung}%
2999 \def\footnoteautorefname{Fu\ss note}%
3000 \def\itemautorefname{Punkt}%
3001 \def\figureautorefname{Abbildung}%
3002 \def\tableautorefname{Tabelle}%
3003 \def\partautorefname{Teil}%
3004 \def\appendixautorefname{Anhang}%
3005 \def\chapterautorefname{Kapitel}%
3006 \def\sectionautorefname{Abschnitt}%
3007 \def\subsectionautorefname{Unterabschnitt}%
3008 \def\subsubsectionautorefname{Unterunterabschnitt}%
3009 \def\paragraphautorefname{Absatz}%
3010 \def\subparagraphautorefname{Unterabsatz}%
3011 \def\FancyVerbLineautorefname{Zeile}%
3012 \def\theoremautorefname{Theorem}%
3013 \def\pageautorefname{Seite}%
3015 \def\HyLang@italian{%
3016 \def\equationautorefname{Equazione}%
3017 \def\footnoteautorefname{nota}%
3018 \def\itemautorefname{punto}%
3019 \def\figureautorefname{Figura}%
3020 \def\tableautorefname{Tabella}%
3021 \def\partautorefname{Parte}%
3022 \def\appendixautorefname{Appendice}%
3023 \def\chapterautorefname{Capitolo}%
3024 \def\sectionautorefname{sezione}%
3025 \def\subsectionautorefname{sottosezione}%
3026 \def\subsubsectionautorefname{sottosottosezione}%
3027 \def\paragraphautorefname{paragrafo}%
3028 \def\subparagraphautorefname{sottoparagrafo}%
3029 \def\FancyVerbLineautorefname{linea}%
3030 \def\theoremautorefname{Teorema}%
3031 \def\pageautorefname{Pag.\@}%
3033 \def\HyLang@magyar{%
3034 \def\equationautorefname{Egyenlet}%
3035 \def\footnoteautorefname{l\'abjegyzet}%
3036 \def\itemautorefname{Elem}%
3037 \def\figureautorefname{\'Abra}%
3038 \def\tableautorefname{T\'abl\'azat}%
3039 \def\partautorefname{R\'esz}%
3040 \def\appendixautorefname{F\"uggel\'ek}%
3041 \def\chapterautorefname{fejezet}%
3042 \def\sectionautorefname{szakasz}%
3043 \def\subsectionautorefname{alszakasz}%
3044 \def\subsubsectionautorefname{alalszakasz}%
3045 \def\paragraphautorefname{bekezd\'es}%
3046 \def\subparagraphautorefname{albekezd\'es}%
3047 \def\FancyVerbLineautorefname{sor}%
3048 \def\theoremautorefname{T\'etel}%
3049 \def\pageautorefname{oldal}%
3051 \def\HyLang@portuges{%
3052 \def\equationautorefname{Equa\c c\~ao}%
3053 \def\footnoteautorefname{Nota de rodap\'e}%
3054 \def\itemautorefname{Item}%
3055 \def\figureautorefname{Figura}%
3056 \def\tableautorefname{Tabela}%
3057 \def\partautorefname{Parte}%
3058 \def\appendixautorefname{Ap\^endice}%
3059 \def\chapterautorefname{Cap\'itulo}%
3060 \def\sectionautorefname{Se\c c\~ao}%
3061 \def\subsectionautorefname{Subse\c c\~ao}%
3062 \def\subsubsectionautorefname{Subsubse\c c\~ao}%
3063 \def\paragraphautorefname{par\'agrafo}%
3064 \def\subparagraphautorefname{subpar\'agrafo}%
3065 \def\FancyVerbLineautorefname{linha}%
3066 \def\theoremautorefname{Teorema}%
3067 \def\pageautorefname{P\'agina}%
3069 \def\HyLang@russian{%
3070 \def\equationautorefname{\cyr\cyrv\cyrery\cyrr.}%
3071 \def\footnoteautorefname{%
3072 \cyr\cyrp\cyro\cyrd\cyrs\cyrt\cyrr.\ \cyrp\cyrr\cyri\cyrm.%
3074 \def\itemautorefname{\cyr\cyrp.}%
3075 \def\figureautorefname{\cyr\cyrr\cyri\cyrs.}%
3076 \def\tableautorefname{\cyr\cyrt\cyra\cyrb\cyrl.}%
3077 \def\partautorefname{\cyr\cyrch.}%
3078 \def\chapterautorefname{\cyr\cyrg\cyrl.}%
3079 \def\sectionautorefname{\cyr\cyrr\cyra\cyrz\cyrd.}%
3080 \def\appendixautorefname{\cyr\cyrp\cyrr\cyri\cyrl.}%
3081 \def\subsectionautorefname{\cyr\cyrr\cyra\cyrz\cyrd.}%
3082 \def\subsubsectionautorefname{\cyr\cyrr\cyra\cyrz\cyrd.}%
3083 \def\paragraphautorefname{\cyr\cyrp.}%
3084 \def\subparagraphautorefname{\cyr\cyrp.}%
3085 \def\FancyVerbLineautorefname{\cyr\cyrs\cyrt\cyrr.}%
3086 \def\theoremautorefname{\cyr\cyrt\cyre\cyro\cyrr.}%
3087 \def\pageautorefname{\cyr\cyrs.}%
3089 \def\HyLang@spanish{%
3090 \def\equationautorefname{Ecuaci\'on}%
3091 \def\footnoteautorefname{Nota a pie de p\'agina}%
3092 \def\itemautorefname{Elemento}%
3093 \def\figureautorefname{Figura}%
3094 \def\tableautorefname{Tabla}%
3095 \def\partautorefname{Parte}%
3096 \def\appendixautorefname{Ap\'endice}%
3097 \def\chapterautorefname{Cap\'itulo}%
3098 \def\sectionautorefname{Secci\'on}%
3099 \def\subsectionautorefname{Subsecci\'on}%
3100 \def\subsubsectionautorefname{Subsubsecci\'on}%
3101 \def\paragraphautorefname{P\'arrafo}%
3102 \def\subparagraphautorefname{Subp\'arrafo}%
3103 \def\FancyVerbLineautorefname{L\'inea}%
3104 \def\theoremautorefname{Teorema}%
3105 \def\pageautorefname{P\'agina}%
3107 \def\HyLang@vietnamese{%
3108 \def\equationautorefname{Ph\uhorn{}\ohorn{}ng tr\`inh}%
3109 \def\footnoteautorefname{Ch\'u th\'ich}%
3110 \def\itemautorefname{m\d{u}c}%
3111 \def\figureautorefname{H\`inh}%
3112 \def\tableautorefname{B\h{a}ng}%
3113 \def\partautorefname{Ph\`\acircumflex{}n}%
3114 \def\appendixautorefname{Ph\d{u} l\d{u}c}%
3115 \def\chapterautorefname{ch\uhorn{}\ohorn{}ng}%
3116 \def\sectionautorefname{m\d{u}c}%
3117 \def\subsectionautorefname{m\d{u}c}%
3118 \def\subsubsectionautorefname{m\d{u}c}%
3119 \def\paragraphautorefname{\dj{}o\d{a}n}%
3120 \def\subparagraphautorefname{\dj{}o\d{a}n}%
3121 \def\FancyVerbLineautorefname{d\`ong}%
3122 \def\theoremautorefname{\DJ{}\d{i}nh l\'y}%
3123 \def\pageautorefname{Trang}%
3125 \def\HyLang@addto#1#2{%
3132 \edef#1{\the\@temptokena}%
3134 \toks@\expandafter{#1}%
3135 \edef#1{\the\toks@\the\@temptokena}%
3137 \@temptokena{}\toks@\@temptokena
3139 \def\HyLang@DeclareLang#1#2#3{%
3140 \@ifpackagewith{babel}{#1}{%
3141 \expandafter\HyLang@addto
3142 \csname extras#1\expandafter\endcsname
3143 \csname HyLang@#2\endcsname
3149 \@namedef{HyLang@#1@done}{}%
3153 \noexpand\ifx##2\relax
3154 \errmessage{No definitions for language #2' found!}%
3157 \noexpand\define@key{Hyp}{#1}[]{%
3158 \noexpand\@ifundefined{HyLang@#1@done}{%
3159 \noexpand\HyLang@addto{\noexpand##1}{\noexpand##2}%
3161 \noexpand\@namedef{HyLang@#1@done}{}%
3165 \expandafter\x\csname extras#1\expandafter\endcsname
3166 \csname HyLang@#2\endcsname
3168 \HyLang@DeclareLang{english}{english}{}
3169 \HyLang@DeclareLang{UKenglish}{english}{}
3170 \HyLang@DeclareLang{british}{english}{}
3171 \HyLang@DeclareLang{USenglish}{english}{}
3172 \HyLang@DeclareLang{american}{english}{}
3173 \HyLang@DeclareLang{german}{german}{}
3174 \HyLang@DeclareLang{austrian}{german}{}
3175 \HyLang@DeclareLang{ngerman}{german}{}
3176 \HyLang@DeclareLang{naustrian}{german}{}
3177 \HyLang@DeclareLang{russian}{russian}{\noexpand\hypersetup{unicode}}
3178 \HyLang@DeclareLang{brazil}{portuges}{}
3179 \HyLang@DeclareLang{brazilian}{portuges}{}
3180 \HyLang@DeclareLang{portuguese}{portuges}{}
3181 \HyLang@DeclareLang{spanish}{spanish}{}
3182 \HyLang@DeclareLang{afrikaans}{afrikaans}{}
3183 \HyLang@DeclareLang{french}{french}{}
3184 \HyLang@DeclareLang{frenchb}{french}{}
3185 \HyLang@DeclareLang{francais}{french}{}
3186 \HyLang@DeclareLang{acadian}{french}{}
3187 \HyLang@DeclareLang{canadien}{french}{}
3188 \HyLang@DeclareLang{italian}{italian}{}
3189 \HyLang@DeclareLang{magyar}{magyar}{}
3190 \HyLang@DeclareLang{hungarian}{magyar}{}
3191 \DeclareVoidOption{vietnamese}{%
3192 \HyLang@addto\extrasvietnamese\HyLang@vietnamese
3193 \Hy@AtEndOfPackage{%
3194 \@ifundefined{T@PU}{}{%
3195 \input{puvnenc.def}%
3199 \DeclareVoidOption{vietnam}{%
3200 \HyLang@addto\extrasvietnam\HyLang@vietnamese
3201 \Hy@AtEndOfPackage{%
3202 \@ifundefined{T@PU}{}{%
3203 \input{puvnenc.def}%
3207 \DeclareVoidOption{arabic}{%
3208 \Hy@AtEndOfPackage{%
3209 \@ifundefined{T@PU}{}{%
3210 \input{puarenc.def}%
3214 \define@key{Hyp}{colorlinks}[true]{%
3215 \Hy@boolkey{colorlinks}{#1}%
3217 \DeclareVoidOption{hidelinks}{%
3219 \Hy@ocgcolorlinksfalse
3220 \Hy@frenchlinksfalse
3221 \def\Hy@colorlink##1{\begingroup}%
3222 \def\Hy@endcolorlink{\endgroup}%
3223 \def\@pdfborder{0 0 0}%
3224 \let\@pdfborderstyle\ltx@empty
3226 \define@key{Hyp}{ocgcolorlinks}[true]{%
3227 \Hy@boolkey{ocgcolorlinks}{#1}%
3229 \Hy@AtBeginDocument{%
3231 \@ifundefined{OBJ@OCG@view}{%
3234 Driver does not support `ocgcolorlinks',\MessageBreak
3235 using `colorlinks' instead%
3241 \define@key{Hyp}{frenchlinks}[true]{%
3242 \Hy@boolkey{frenchlinks}{#1}%
3244 \begingroup\expandafter\expandafter\expandafter\endgroup
3245 \expandafter\ifx\csname chapter\endcsname\relax
3246 \def\toclevel@part{0}%
3248 \def\toclevel@part{-1}%
3250 \def\toclevel@chapter{0}
3251 \def\toclevel@section{1}
3252 \def\toclevel@subsection{2}
3253 \def\toclevel@subsubsection{3}
3254 \def\toclevel@paragraph{4}
3255 \def\toclevel@subparagraph{5}
3256 \def\toclevel@figure{0}
3257 \def\toclevel@table{0}
3258 \@ifpackageloaded{listings}{%
3259 \providecommand*\theHlstlisting{\thelstlisting}%
3260 \providecommand*\toclevel@lstlisting{0}%
3262 \@ifpackageloaded{listing}{%
3263 \providecommand*\theHlisting{\thelisting}%
3264 \providecommand*\toclevel@listing{0}%
3266 \define@key{Hyp}{bookmarks}[true]{%
3267 \Hy@boolkey{bookmarks}{#1}%
3269 \define@key{Hyp}{bookmarksopen}[true]{%
3270 \Hy@boolkey{bookmarksopen}{#1}%
3272 \let\Hy@bookmarksdepth\c@tocdepth
3273 \define@key{Hyp}{bookmarksdepth}[]{%
3277 \global\let\Hy@bookmarksdepth\c@tocdepth
3279 \@ifundefined{toclevel@\x}{%
3280 \@onelevel@sanitize\x
3281 \edef\y{\expandafter\@car\x\@nil}%
3282 \ifcase 0\expandafter\ifx\y-1\fi
3283 \expandafter\ifnum\expandafter`\y>47 %
3284 \expandafter\ifnum\expandafter`\y<58 1\fi\fi\relax
3285 \Hy@Warning{Unknown document division name (\x)}%
3289 \xdef\Hy@bookmarksdepth{\the\count@}%
3294 \count@=\csname toclevel@\x\endcsname
3295 \xdef\Hy@bookmarksdepth{\the\count@}%
3301 \define@key{Hyp}{bookmarksopenlevel}{%
3302 \def\@bookmarksopenlevel{#1}%
3304 \def\@bookmarksopenlevel{\maxdimen}
3305 \define@key{Hyp}{bookmarkstype}{%
3306 \def\Hy@bookmarkstype{#1}%
3308 \def\Hy@bookmarkstype{toc}
3309 \define@key{Hyp}{bookmarksnumbered}[true]{%
3310 \Hy@boolkey{bookmarksnumbered}{#1}%
3312 \define@key{Hyp}{CJKbookmarks}[true]{%
3313 \Hy@boolkey{CJKbookmarks}{#1}%
3316 \expandafter\Hy@@temp\csname @#1color\endcsname{#1}%
3318 \def\Hy@@temp#1#2#3{%
3319 \define@key{Hyp}{#2color}{%
3320 \HyColor@HyperrefColor{##1}#1%
3325 \Hy@temp{anchor}{black}
3326 \Hy@temp{cite}{green}
3327 \Hy@temp{file}{cyan}
3328 \Hy@temp{url}{magenta}
3330 \Hy@temp{run}{\@filecolor}
3331 \define@key{Hyp}{pagecolor}{%
3332 \Hy@WarningPageColor
3334 \def\Hy@WarningPageColor{%
3335 \Hy@WarningNoLine{Option `pagecolor' is not available anymore}%
3336 \global\let\Hy@WarningPageColor\relax
3338 \define@key{Hyp}{allcolors}{%
3339 \HyColor@HyperrefColor{#1}\@linkcolor
3340 \HyColor@HyperrefColor{#1}\@anchorcolor
3341 \HyColor@HyperrefColor{#1}\@citecolor
3342 \HyColor@HyperrefColor{#1}\@filecolor
3343 \HyColor@HyperrefColor{#1}\@urlcolor
3344 \HyColor@HyperrefColor{#1}\@menucolor
3345 \HyColor@HyperrefColor{#1}\@runcolor
3347 \def\hyperbaseurl#1{\def\@baseurl{#1}}
3348 \define@key{Hyp}{baseurl}{\hyperbaseurl{#1}}
3349 \let\@baseurl\@empty
3350 \def\hyperlinkfileprefix#1{\def\Hy@linkfileprefix{#1}}
3351 \define@key{Hyp}{linkfileprefix}{\hyperlinkfileprefix{#1}}
3352 \hyperlinkfileprefix{file:}
3353 \let\@pdfpagetransition\relax
3354 \define@key{Hyp}{pdfpagetransition}{%
3355 \def\@pdfpagetransition{#1}%
3357 \let\@pdfpageduration\relax
3358 \define@key{Hyp}{pdfpageduration}{%
3359 \def\@pdfpageduration{#1}%
3360 \Hy@Match\@pdfpageduration{%
3361 ^(|[0-9]+\.?[0-9]*|[0-9]*\.?[0-9]+)$%
3364 Invalid value `\@pdfpageduration'\MessageBreak
3365 of option `pdfpageduration'\MessageBreak
3366 is replaced by an empty value%
3368 \let\@pdfpageduration\ltx@empty
3371 \newif\ifHy@useHidKey
3373 \define@key{Hyp}{pdfpagehidden}[true]{%
3374 \Hy@boolkey{pdfpagehidden}{#1}%
3376 \global\Hy@useHidKeytrue
3379 \def\Hy@ColorList{cite,file,link,menu,run,url}
3380 \@for\Hy@temp:=\Hy@ColorList\do{%
3382 \noexpand\define@key{Hyp}{\Hy@temp bordercolor}{%
3383 \noexpand\HyColor@HyperrefBorderColor
3385 \expandafter\noexpand\csname @\Hy@temp bordercolor\endcsname
3387 {\Hy@temp bordercolor}%
3392 \define@key{Hyp}{pagebordercolor}{%
3393 \Hy@WarningPageBorderColor
3395 \def\Hy@WarningPageBorderColor{%
3396 \Hy@WarningNoLine{Option `pagebordercolor' is not available anymore}%
3397 \global\let\Hy@WarningPageBorderColor\relax
3399 \define@key{Hyp}{allbordercolors}{%
3400 \def\Hy@temp##1##2{%
3401 \HyColor@HyperrefBorderColor{#1}##1{hyperref}{##2bordercolor}%
3403 \Hy@temp\@citebordercolor{cite}%
3404 \Hy@temp\@filebordercolor{file}%
3405 \Hy@temp\@linkbordercolor{link}%
3406 \Hy@temp\@menubordercolor{menu}%
3407 \Hy@temp\@runbordercolor{run}%
3408 \Hy@temp\@urlbordercolor{url}%
3410 \define@key{Hyp}{pdfhighlight}{\def\@pdfhighlight{#1}}
3411 \Hy@DefNameKey{pdfhighlight}{%
3417 \define@key{Hyp}{pdfborder}{%
3418 \let\Hy@temp\@pdfborder
3419 \def\@pdfborder{#1}%
3420 \Hy@Match\@pdfborder{%
3421 ^\HyPat@NonNegativeReal/ %
3422 \HyPat@NonNegativeReal/ %
3423 \HyPat@NonNegativeReal/%
3424 ( ?\[\HyPat@NonNegativeReal/( \HyPat@NonNegativeReal/)*])?$%
3427 Invalid value `\@pdfborder'\MessageBreak
3428 for option `pdfborder'.\MessageBreak
3429 Option setting is ignored%
3431 \let\@pdfborder\Hy@temp
3434 \define@key{Hyp}{pdfborderstyle}{%
3435 \let\Hy@temp\@pdfborderstyle
3436 \def\@pdfborderstyle{#1}%
3437 \Hy@Match\@pdfborderstyle{%
3440 | */W +\HyPat@NonNegativeReal/%
3442 | */D *\[ *(\HyPat@NonNegativeReal/( \HyPat@NonNegativeReal/)?)?]%
3446 Invalid value `\@pdfborderstyle'\MessageBreak
3447 for option `pdfborderstyle'.\MessageBreak
3448 Option setting is ignored%
3450 \let\@pdfborderstyle\Hy@temp
3453 \def\Hy@setpdfborder{%
3454 \ifx\@pdfborder\@empty
3456 /Border[\@pdfborder]%
3458 \ifx\@pdfborderstyle\@empty
3460 /BS<<\@pdfborderstyle>>%
3463 \Hy@DefNameKey{pdfpagemode}{%
3468 \do{UseOC}{PDF 1.5}%
3469 \do{UseAttachments}{PDF 1.6}%
3471 \Hy@DefNameKey{pdfnonfullscreenpagemode}{%
3476 \do{UseOC}{PDF 1.5}%
3477 \do{UseAttachments}{PDF 1.6}%
3479 \Hy@DefNameKey{pdfdirection}{%
3480 \do{L2R}{Left to right}%
3481 \do{R2L}{Right to left}%
3483 \Hy@DefNameKey{pdfviewarea}{%
3490 \Hy@DefNameKey{pdfviewclip}{%
3497 \Hy@DefNameKey{pdfprintarea}{%
3504 \Hy@DefNameKey{pdfprintclip}{%
3511 \Hy@DefNameKey{pdfprintscaling}{%
3515 \Hy@DefNameKey{pdfduplex}{%
3517 \do{DuplexFlipShortEdge}{}%
3518 \do{DuplexFlipLongEdge}{}%
3520 \Hy@DefNameKey{pdfpicktraybypdfsize}{%
3524 \define@key{Hyp}{pdfprintpagerange}{%
3525 \def\@pdfprintpagerange{#1}%
3527 \Hy@DefNameKey{pdfnumcopies}{%
3529 \do{3}{three copies}%
3530 \do{4}{four copies}%
3531 \do{5}{five copies}%
3533 \define@key{Hyp}{pdfusetitle}[true]{%
3534 \Hy@boolkey{pdfusetitle}{#1}%
3536 \def\HyXeTeX@CheckUnicode{%
3541 XeTeX driver only supports unicode.\MessageBreak
3542 Enabling option `unicode'%
3544 \kvsetkeys{Hyp}{unicode}%
3547 \let\HyXeTeX@CheckUnicode\relax
3550 \def\HyPsd@PrerenderUnicode#1{%
3552 \expandafter\ifx\csname PrerenderUnicode\endcsname\relax
3555 \let\GenericInfo\@gobbletwo
3556 \let\GenericWarning\@gobbletwo
3557 \let\GenericError\@gobblefour
3558 \PrerenderUnicode{#1}%
3563 \define@key{Hyp}{pdftitle}{%
3564 \HyXeTeX@CheckUnicode
3565 \HyPsd@XeTeXBigCharstrue
3566 \HyPsd@PrerenderUnicode{#1}%
3567 \pdfstringdef\@pdftitle{#1}%
3569 \define@key{Hyp}{pdfauthor}{%
3570 \HyXeTeX@CheckUnicode
3571 \HyPsd@XeTeXBigCharstrue
3572 \HyPsd@PrerenderUnicode{#1}%
3573 \pdfstringdef\@pdfauthor{#1}%
3575 \define@key{Hyp}{pdfproducer}{%
3576 \HyXeTeX@CheckUnicode
3577 \HyPsd@XeTeXBigCharstrue
3578 \HyPsd@PrerenderUnicode{#1}%
3579 \pdfstringdef\@pdfproducer{#1}%
3581 \define@key{Hyp}{pdfcreator}{%
3582 \HyXeTeX@CheckUnicode
3583 \HyPsd@XeTeXBigCharstrue
3584 \HyPsd@PrerenderUnicode{#1}%
3585 \pdfstringdef\@pdfcreator{#1}%
3587 \define@key{Hyp}{pdfcreationdate}{%
3590 \pdfstringdef\@pdfcreationdate{#1}%
3593 \define@key{Hyp}{pdfmoddate}{%
3596 \pdfstringdef\@pdfmoddate{#1}%
3599 \define@key{Hyp}{pdfsubject}{%
3600 \HyXeTeX@CheckUnicode
3601 \HyPsd@XeTeXBigCharstrue
3602 \HyPsd@PrerenderUnicode{#1}%
3603 \pdfstringdef\@pdfsubject{#1}%
3605 \define@key{Hyp}{pdfkeywords}{%
3606 \HyXeTeX@CheckUnicode
3607 \HyPsd@XeTeXBigCharstrue
3608 \HyPsd@PrerenderUnicode{#1}%
3609 \pdfstringdef\@pdfkeywords{#1}%
3611 \define@key{Hyp}{pdftrapped}{%
3612 \lowercase{\edef\Hy@temp{#1}}%
3613 \ifx\Hy@temp\HyInfo@trapped@true
3614 \def\@pdftrapped{True}%
3616 \ifx\Hy@temp\HyInfo@trapped@false
3617 \def\@pdftrapped{False}%
3619 \ifx\Hy@temp\HyInfo@trapped@unknown
3620 \def\@pdftrapped{Unknown}%
3625 Unsupported value `#1'\MessageBreak
3626 for option `pdftrapped'%
3634 \def\HyInfo@trapped@true{true}
3635 \def\HyInfo@trapped@false{false}
3636 \def\HyInfo@trapped@unknown{unknown}
3637 \def\HyInfo@TrappedUnsupported{%
3638 \ifx\@pdftrapped\@empty
3640 \Hy@WarningNoLine{`pdftrapped' is not supported by this driver}%
3641 \gdef\HyInfo@TrappedUnsupported{}%
3644 \define@key{Hyp}{pdfinfo}{%
3645 \kvsetkeys{pdfinfo}{#1}%
3648 \lowercase{\Hy@temp@A{#1}}{#1}%
3650 \def\Hy@temp@A#1#2{%
3651 \define@key{pdfinfo}{#2}{%
3652 \hypersetup{pdf#1={##1}}%
3661 \Hy@temp{CreationDate}
3664 \newif\ifHyInfo@AddonUnsupported
3665 \kv@set@family@handler{pdfinfo}{%
3666 \HyInfo@AddonHandler{#1}{#2}%
3668 \let\HyInfo@do\relax
3669 \def\HyInfo@AddonHandler#1#2{%
3672 Option `pdfinfo': ignoring key `\kv@key' without value%
3675 \EdefEscapeName\HyInfo@KeyEscaped{\kv@key}%
3676 \EdefUnescapeName\HyInfo@Key{\HyInfo@KeyEscaped}%
3677 \expandafter\ifx\csname KV@pdfinfo@\HyInfo@Key\endcsname\relax
3678 \ifHyInfo@AddonUnsupported
3680 This driver does not support additional\MessageBreak
3681 information entries, therefore\MessageBreak
3682 `\kv@key' is ignored%
3685 \define@key{pdfinfo}{\HyInfo@Key}{%
3686 \HyXeTeX@CheckUnicode
3687 \HyPsd@XeTeXBigCharstrue
3688 \HyPsd@PrerenderUnicode{##1}%
3689 \pdfstringdef\HyInfo@Value{##1}%
3690 \expandafter\let\csname HyInfo@Value@\HyInfo@Key\endcsname
3693 \edef\HyInfo@AddonList{%
3695 \HyInfo@do{\HyInfo@Key}%
3697 \kv@parse@normalized{%
3700 \kv@processor@default{pdfinfo}%
3704 \kv@parse@normalized{%
3707 \kv@processor@default{pdfinfo}%
3712 \def\HyInfo@GenerateAddons{%
3713 \ifHyInfo@AddonUnsupported
3714 \def\HyInfo@Addons{}%
3719 \EdefEscapeName\HyInfo@Key{##1}%
3723 /\HyInfo@Key(\csname HyInfo@Value@##1\endcsname)%
3730 \def\noexpand\HyInfo@Addons{\the\toks@}%
3735 \let\HyInfo@AddonList\ltx@empty
3736 \define@key{Hyp}{pdfview}{\calculate@pdfview#1 \\}
3737 \define@key{Hyp}{pdflinkmargin}{\setpdflinkmargin{#1}}
3738 \let\setpdflinkmargin\@gobble
3739 \def\calculate@pdfview#1 #2\\{%
3742 \def\@pdfviewparams{ -32768}%
3744 \def\@pdfviewparams{ #2}%
3747 \begingroup\expandafter\expandafter\expandafter\endgroup
3748 \expandafter\ifx\csname numexpr\endcsname\relax
3750 \expandafter\@firstofone\expandafter{\number#1}%
3754 \the\numexpr#1\relax
3757 \define@key{Hyp}{pdfstartpage}{%
3759 \let\@pdfstartpage\ltx@empty
3761 \edef\@pdfstartpage{\Hy@number{#1}}%
3764 \define@key{Hyp}{pdfstartview}{%
3766 \let\@pdfstartview\ltx@empty
3768 \hypercalcbpdef\@pdfstartview{/#1}%
3771 \def\HyPat@NonNegativeReal/{%
3772 \ *([0-9]+\.?[0-9]*|[0-9]*\.?[0-9]+) *%
3774 \define@key{Hyp}{pdfremotestartview}{%
3776 \def\@pdfremotestartview{/Fit}%
3778 \hypercalcbpdef\@pdfremotestartview{#1}%
3779 \edef\@pdfremotestartview{\@pdfremotestartview}%
3780 \Hy@Match\@pdfremotestartview{%
3781 ^(XYZ -?(null|\HyPat@NonNegativeReal/) %
3782 -?(null|\HyPat@NonNegativeReal/) %
3783 (null|\HyPat@NonNegativeReal/)|%
3785 (H|V|BH|BV) (null|\HyPat@NonNegativeReal/)|%
3786 R \HyPat@NonNegativeReal/ \HyPat@NonNegativeReal/ %
3787 \HyPat@NonNegativeReal/ \HyPat@NonNegativeReal/%
3791 Invalid value `\@pdfremotestartview'\MessageBreak
3792 of `pdfremotestartview'\MessageBreak
3793 is replaced by `Fit'%
3795 \let\@pdfremotestartview\@empty
3797 \ifx\@pdfremotestartview\@empty
3798 \def\@pdfremotestartview{/Fit}%
3800 \edef\@pdfremotestartview{/\@pdfremotestartview}%
3804 \define@key{Hyp}{pdfpagescrop}{\edef\@pdfpagescrop{#1}}
3805 \define@key{Hyp}{pdftoolbar}[true]{%
3806 \Hy@boolkey{pdftoolbar}{#1}%
3808 \define@key{Hyp}{pdfmenubar}[true]{%
3809 \Hy@boolkey{pdfmenubar}{#1}%
3811 \define@key{Hyp}{pdfwindowui}[true]{%
3812 \Hy@boolkey{pdfwindowui}{#1}%
3814 \define@key{Hyp}{pdffitwindow}[true]{%
3815 \Hy@boolkey{pdffitwindow}{#1}%
3817 \define@key{Hyp}{pdfcenterwindow}[true]{%
3818 \Hy@boolkey{pdfcenterwindow}{#1}%
3820 \define@key{Hyp}{pdfdisplaydoctitle}[true]{%
3821 \Hy@boolkey{pdfdisplaydoctitle}{#1}%
3823 \define@key{Hyp}{pdfa}[true]{%
3824 \Hy@boolkey{pdfa}{#1}%
3826 \define@key{Hyp}{pdfnewwindow}[true]{%
3829 \Hy@pdfnewwindowsetfalse
3831 \Hy@pdfnewwindowsettrue
3832 \Hy@boolkey{pdfnewwindow}{#1}%
3835 \def\Hy@SetNewWindow{%
3836 \ifHy@pdfnewwindowset
3838 \ifHy@pdfnewwindow true\else false\fi
3841 \Hy@DefNameKey{pdfpagelayout}{%
3844 \do{TwoColumnLeft}{}%
3845 \do{TwoColumnRight}{}%
3846 \do{TwoPageLeft}{PDF 1.5}%
3847 \do{TwoPageRight}{PDF 1.5}%
3849 \define@key{Hyp}{pdflang}{%
3852 \define@key{Hyp}{pdfpagelabels}[true]{%
3853 \Hy@boolkey{pdfpagelabels}{#1}%
3855 \define@key{Hyp}{pdfescapeform}[true]{%
3856 \Hy@boolkey{pdfescapeform}{#1}%
3858 \def\@linkbordercolor{1 0 0}
3859 \def\@urlbordercolor{0 1 1}
3860 \def\@menubordercolor{1 0 0}
3861 \def\@filebordercolor{0 .5 .5}
3862 \def\@runbordercolor{0 .7 .7}
3863 \def\@citebordercolor{0 1 0}
3864 \def\@pdfhighlight{/I}
3865 \let\@pdftitle\ltx@empty
3866 \let\@pdfauthor\ltx@empty
3867 \let\@pdfproducer\relax
3868 \def\@pdfcreator{LaTeX with hyperref package}
3869 \let\@pdfcreationdate\ltx@empty
3870 \let\@pdfmoddate\ltx@empty
3871 \let\@pdfsubject\ltx@empty
3872 \let\@pdfkeywords\ltx@empty
3873 \let\@pdftrapped\ltx@empty
3874 \let\@pdfpagescrop\ltx@empty
3875 \def\@pdfstartview{/Fit}
3876 \def\@pdfremotestartview{/Fit}
3877 \def\@pdfstartpage{1}
3878 \let\@pdfprintpagerange\ltx@empty
3879 \let\@pdflang\ltx@empty
3880 \let\PDF@SetupDoc\@empty
3881 \let\PDF@FinishDoc\@empty
3882 \let\phantomsection\@empty
3883 \let\special@paper\@empty
3884 \def\HyperDestNameFilter#1{#1}
3885 \Hy@AtBeginDocument{%
3887 \edef\x{\@ifundefined{stockheight}\paperheight\stockheight}%
3893 Height of page (\expandafter\string\x) %
3894 is invalid (\the\x),\MessageBreak
3898 \dimen@=0.99626401\dimen@
3899 \xdef\Hy@pageheight{\strip@pt\dimen@}%
3902 \def\HyInd@EncapChar{\|}
3903 \let\hyper@normalise\ExecuteOptions
3904 \let\ExecuteOptions\hypersetup
3906 \InputIfFileExists{hyperref.cfg}{}{}
3908 \let\ExecuteOptions\hyper@normalise
3909 \ifx\Hy@MaybeStopNow\relax
3911 \Hy@stoppedearlytrue
3912 \expandafter\Hy@MaybeStopNow
3914 \Hy@stoppedearlyfalse
3915 \SetupKeyvalOptions{family=Hyp}
3916 \DeclareLocalOptions{%
3917 a4paper,a5paper,b5paper,letterpaper,legalpaper,executivepaper%
3919 \@ifpackageloaded{tex4ht}{%
3920 \@ifpackagewith{hyperref}{tex4ht}{}{%
3921 \PassOptionsToPackage{tex4ht}{hyperref}%
3924 \let\ReadBookmarks\relax
3925 \ProcessKeyvalOptions{Hyp}
3926 \def\Hy@xspace@end{}
3927 \ltx@IfUndefined{xspaceaddexceptions}{%
3928 \Hy@AtBeginDocument{%
3929 \ltx@IfUndefined{xspaceaddexceptions}{%
3931 \def\Hy@xspace@end{%
3932 \ltx@gobble{end for xspace}%
3934 \xspaceaddexceptions{\Hy@xspace@end,\hyper@linkend,\hyper@anchorend}%
3938 \def\Hy@xspace@end{%
3939 \ltx@gobble{end for xspace}%
3941 \xspaceaddexceptions{\Hy@xspace@end,\hyper@linkend,\hyper@anchorend}%
3943 \Hy@AtBeginDocument{%
3945 \let\hyper@@anchor\@gobble
3946 \gdef\hyper@link#1#2#3{#3\Hy@xspace@end}%
3947 \def\hyper@anchorstart#1#2{#2\Hy@xspace@end}%
3948 \def\hyper@anchorend{\Hy@xspace@end}%
3949 \let\hyper@linkstart\@gobbletwo
3950 \def\hyper@linkend{\Hy@xspace@end}%
3951 \def\hyper@linkurl#1#2{#1\Hy@xspace@end}%
3952 \def\hyper@linkfile#1#2#3{#1\Hy@xspace@end}%
3953 \def\hyper@link@[#1]#2#3#4{#4\Hy@xspace@end}%
3954 \def\Acrobatmenu#1#2{\leavevmode#2\Hy@xspace@end}%
3955 \let\PDF@SetupDoc\@empty
3956 \let\PDF@FinishDoc\@empty
3957 \let\@fifthoffive\@secondoftwo
3958 \let\@secondoffive\@secondoftwo
3959 \let\ReadBookmarks\relax
3960 \let\WriteBookmarks\relax
3961 \Hy@WarningNoLine{Draft mode on}%
3963 \Hy@DisableOption{draft}%
3964 \Hy@DisableOption{nolinks}%
3965 \Hy@DisableOption{final}%
3967 \Hy@DisableOption{pdfa}
3969 \kvsetkeys{Hyp}{pdfversion=1.4}%
3970 \def\Hy@Acrobatmenu#1#2{%
3974 \@onelevel@sanitize\x
3992 \expandafter\endgroup
3996 PDF/A: Named action `#1' is not permitted%
3999 \expandafter\@gobble
4003 \expandafter\def\csname Hy@#1\endcsname{#1}%
4004 \expandafter\@onelevel@sanitize\csname Hy@#1\endcsname
4008 \Hy@temp{FirstPage}%
4011 \def\Hy@Acrobatmenu#1#2{\leavevmode}%
4014 \ltx@IfUndefined{spanish@sh@"@sel}{}{\Hy@nexttrue}
4015 \ltx@IfUndefined{galician@sh@"@sel}{}{\Hy@nexttrue}
4016 \ltx@IfUndefined{estonian@sh@"@sel}{}{\Hy@nexttrue}
4020 \def\Hy@wrapper@babel#1#2{%
4022 \Hy@safe@activestrue
4023 \set@display@protect
4025 \@onelevel@sanitize\x
4027 \edef\x{\endgroup\the\toks@{\x}}%
4030 \def\Hy@WrapperDef#1{%
4034 \expandafter\noexpand\csname HyWrap@\string#1\endcsname
4038 \noexpand\Hy@wrapper@babel
4039 \expandafter\noexpand\Hy@gtemp
4041 \expandafter\def\Hy@gtemp
4044 \Hy@Info{Hyper figures ON}%
4046 \Hy@Info{Hyper figures OFF}%
4049 \Hy@Info{Link nesting ON}%
4051 \Hy@Info{Link nesting OFF}%
4054 \Hy@Info{Hyper index ON}%
4056 \Hy@Info{Hyper index OFF}%
4059 \Hy@Info{Plain pages ON}%
4061 \Hy@Info{Plain pages OFF}%
4064 \Hy@Info{Backreferencing ON}%
4066 \Hy@Info{Backreferencing OFF}%
4069 \Hy@AtEndOfPackage{%
4070 \RequirePackage{color}%
4071 \RequirePackage{nameref}%
4074 \Hy@DisableOption{typexml}
4076 \Hy@InfoNoLine{Implicit mode ON; LaTeX internals redefined}%
4078 \Hy@InfoNoLine{Implicit mode OFF; no redefinition of LaTeX internals}%
4079 \def\MaybeStopEarly{%
4080 \Hy@Message{Stopped early}%
4081 \Hy@AtBeginDocument{%
4083 \gdef\PDF@FinishDoc{}%
4087 \Hy@AtBeginDocument{%
4089 \let\autopageref\pageref
4090 \ifx\@pdfpagemode\@empty
4091 \gdef\@pdfpagemode{UseNone}%
4093 \global\Hy@backreffalse
4095 \Hy@AtEndOfPackage{%
4096 \global\let\ReadBookmarks\relax
4097 \global\let\WriteBookmarks\relax
4100 \Hy@DisableOption{implicit}
4101 \Hy@AtEndOfPackage{%
4102 \@ifpackageloaded{tex4ht}{%
4103 \def\Hy@driver{htex4ht}%
4106 \ifx\Hy@driver\@empty
4108 \def\Hy@temp{hpdftex}%
4110 \ifx\Hy@driver\Hy@temp
4113 Wrong driver `\Hy@driver.def';\MessageBreak
4114 pdfTeX is running in PDF mode.\MessageBreak
4115 Forcing driver `\Hy@temp.def'%
4117 \let\Hy@driver\Hy@temp
4120 \ifx\Hy@driver\Hy@temp
4122 Wrong driver `\Hy@driver.def';\MessageBreak
4123 pdfTeX is not running in PDF mode.\MessageBreak
4124 Using default driver%
4126 \let\Hy@driver\@empty
4132 \ifx\Hy@driver\@empty
4134 \def\Hy@temp{hxetex}%
4136 \ifx\Hy@driver\Hy@temp
4139 Wrong driver `\Hy@driver.def';\MessageBreak
4140 XeTeX is running.\MessageBreak
4141 Forcing driver `\Hy@temp.def' for XeTeX%
4143 \let\Hy@driver\Hy@temp
4148 \ifx\Hy@driver\@empty
4150 \def\Hy@temp{hvtexhtm}%
4152 \ifx\Hy@driver\Hy@temp
4155 Wrong driver `\Hy@driver.def';\MessageBreak
4156 VTeX is running in HTML mode.\MessageBreak
4157 Forcing driver `\Hy@temp.def'%
4159 \let\Hy@driver\Hy@temp
4162 \ifx\Hy@driver\Hy@temp
4164 Wrong driver `\Hy@driver.def';\MessageBreak
4165 VTeX is not running in HTML mode.\MessageBreak
4166 Using default driver%
4168 \let\Hy@driver\@empty
4172 \def\HyOpt@DriverType{}%
4173 \ifx\Hy@driver\@empty
4174 \def\HyOpt@DriverType{ (autodetected)}%
4175 \providecommand*{\Hy@defaultdriver}{hypertex}%
4177 \def\Hy@driver{hpdftex}%
4180 \def\Hy@driver{hxetex}%
4183 \def\Hy@driver{hvtexhtm}%
4184 \def\MaybeStopEarly{%
4185 \Hy@Message{Stopped early}%
4186 \Hy@AtBeginDocument{%
4188 \gdef\PDF@FinishDoc{}%
4194 \def\Hy@driver{hvtex}%
4197 \def\Hy@driver{hvtex}%
4199 \ifx\HyOpt@DriverFallback\ltx@empty
4200 \let\Hy@driver\Hy@defaultdriver
4201 \def\HyOpt@DriverType{ (default)}%
4204 \toks@\expandafter{\HyOpt@DriverFallback}%
4206 \noexpand\kvsetkeys{Hyp}{\the\toks@}%
4209 \ifx\Hy@driver\ltx@empty
4210 \let\Hy@driver\Hy@defaultdriver
4211 \def\HyOpt@DriverType{ (default)}%
4213 \def\HyOpt@DriverType{ (fallback)}%
4221 \ifx\Hy@driver\Hy@defaultdriver
4222 \def\Hy@temp{hdviwind}%
4223 \ifx\Hy@temp\Hy@driver
4224 \kvsetkeys{Hyp}{colorlinks}%
4225 \PassOptionsToPackage{dviwindo}{color}%
4229 \Hy@Message{Driver\HyOpt@DriverType: \Hy@driver}%
4230 \chardef\Hy@VersionChecked=0 %
4231 \input{\Hy@driver.def}%
4232 \ifcase\Hy@VersionChecked
4233 \Hy@VersionCheck{\Hy@driver.def}%
4235 \let\@unprocessedoptions\relax
4237 \Hy@DisableOption{tex4ht}%
4238 \Hy@DisableOption{pdftex}%
4239 \Hy@DisableOption{nativepdf}%
4240 \Hy@DisableOption{dvipdfm}%
4241 \Hy@DisableOption{dvipdfmx}%
4242 \Hy@DisableOption{dvipdfmx-outline-open}%
4243 \Hy@DisableOption{pdfmark}%
4244 \Hy@DisableOption{dvips}%
4245 \Hy@DisableOption{hypertex}%
4246 \Hy@DisableOption{vtex}%
4247 \Hy@DisableOption{vtexpdfmark}%
4248 \Hy@DisableOption{dviwindo}%
4249 \Hy@DisableOption{dvipsone}%
4250 \Hy@DisableOption{textures}%
4251 \Hy@DisableOption{latex2html}%
4252 \Hy@DisableOption{ps2pdf}%
4253 \Hy@DisableOption{xetex}%
4254 \Hy@DisableOption{pdfversion}%
4256 \newif\ifHy@DvipdfmxOutlineOpen
4258 \ifdim\number\XeTeXversion\XeTeXrevision in<0.9995in %
4260 \chardef\SpecialDvipdfmxOutlineOpen\@ne
4261 \Hy@DvipdfmxOutlineOpentrue
4264 \begingroup\expandafter\expandafter\expandafter\endgroup
4265 \expandafter\ifx\csname SpecialDvipdfmxOutlineOpen\endcsname\relax
4267 \ifnum\SpecialDvipdfmxOutlineOpen>\z@
4268 \Hy@DvipdfmxOutlineOpentrue
4271 \def\WriteBookmarks{0}
4272 \def\@bookmarkopenstatus#1{%
4274 \ifnum#1<\expandafter\@firstofone\expandafter
4275 {\number\@bookmarksopenlevel} % explicit space
4284 \Hy@Info{Bookmarks ON}%
4285 \ifx\@pdfpagemode\@empty
4286 \def\@pdfpagemode{UseOutlines}%
4289 \let\@bookmarkopenstatus\ltx@gobble
4290 \Hy@Info{Bookmarks OFF}%
4291 \Hy@AtEndOfPackage{%
4292 \global\let\ReadBookmarks\relax
4293 \global\let\WriteBookmarks\relax
4295 \ifx\@pdfpagemode\@empty
4296 \def\@pdfpagemode{UseNone}%
4299 \Hy@DisableOption{bookmarks}
4300 \def\Hy@CatcodeWrapper#1{%
4301 \let\Hy@EndWrap\ltx@empty
4302 \def\TMP@EnsureCode##1##2{%
4305 \catcode##1 \the\catcode##1\relax
4307 \catcode##1 ##2\relax
4309 \TMP@EnsureCode{10}{12}% ^^J
4310 \TMP@EnsureCode{33}{12}% !
4311 \TMP@EnsureCode{34}{12}% "
4312 \TMP@EnsureCode{36}{3}% $ (math)
4313 \TMP@EnsureCode{38}{4}% & (alignment)
4314 \TMP@EnsureCode{39}{12}% '
4315 \TMP@EnsureCode{40}{12}% (
4316 \TMP@EnsureCode{41}{12}% )
4317 \TMP@EnsureCode{42}{12}% *
4318 \TMP@EnsureCode{43}{12}% +
4319 \TMP@EnsureCode{44}{12}% ,
4320 \TMP@EnsureCode{45}{12}% -
4321 \TMP@EnsureCode{46}{12}% .
4322 \TMP@EnsureCode{47}{12}% /
4323 \TMP@EnsureCode{58}{12}% :
4324 \TMP@EnsureCode{59}{12}% ;
4325 \TMP@EnsureCode{60}{12}% <
4326 \TMP@EnsureCode{61}{12}% =
4327 \TMP@EnsureCode{62}{12}% >
4328 \TMP@EnsureCode{63}{12}% ?
4329 \TMP@EnsureCode{91}{12}% [
4330 \TMP@EnsureCode{93}{12}% ]
4331 \TMP@EnsureCode{94}{7}% ^ (superscript)
4332 \TMP@EnsureCode{95}{8}% _ (subscript)
4333 \TMP@EnsureCode{96}{12}% `
4334 \TMP@EnsureCode{124}{12}% |
4335 \TMP@EnsureCode{126}{13}% ~ (active)
4339 \Hy@AtBeginDocument{%
4341 \kvsetkeys{Hyp}{colorlinks}%
4344 PDF/A: Optional Content Groups are prohibited,\MessageBreak
4345 using `colorlinks' instead of `ocgcolorlinks'%
4347 \Hy@ocgcolorlinksfalse
4352 \Hy@DisableOption{ocgcolorlinks}%
4355 \def\@pdfborder{0 0 0}%
4356 \let\@pdfborderstyle\@empty
4359 \Hy@CatcodeWrapper{%
4360 \RequirePackage{color}%
4363 \def\Hy@colorlink#1{%
4365 \HyColor@UseColor#1%
4367 \def\Hy@endcolorlink{\endgroup}%
4368 \Hy@Info{Link coloring ON}%
4371 \def\Hy@colorlink#1{\begingroup\fontshape{sc}\selectfont}%
4372 \def\Hy@endcolorlink{\endgroup}%
4373 \Hy@Info{French linking ON}%
4375 \def\Hy@colorlink#1{\begingroup}%
4376 \def\Hy@endcolorlink{\endgroup}%
4377 \Hy@Info{Link coloring OFF}%
4380 \Hy@DisableOption{colorlinks}%
4381 \Hy@DisableOption{frenchlinks}%
4383 \long\def\@firstoffive#1#2#3#4#5{#1}%
4384 \long\def\@secondoffive#1#2#3#4#5{#2}%
4385 \long\def\@thirdoffive#1#2#3#4#5{#3}%
4386 \long\def\@fourthoffive#1#2#3#4#5{#4}%
4387 \long\def\@fifthoffive#1#2#3#4#5{#5}%
4388 \providecommand*\@safe@activestrue{}%
4389 \providecommand*\@safe@activesfalse{}%
4391 \Hy@safe@activestrue
4392 \expandafter\@setref\csname r@#1\endcsname\@firstoffive{#1}%
4393 \Hy@safe@activesfalse
4396 \Hy@safe@activestrue
4397 \expandafter\@setref\csname r@#1\endcsname\@secondoffive{#1}%
4398 \Hy@safe@activesfalse
4403 \Hy@CatcodeWrapper{%
4404 \RequirePackage{nameref}%
4408 \DeclareRobustCommand\ref{%
4409 \@ifstar\@refstar\T@ref
4411 \DeclareRobustCommand\pageref{%
4412 \@ifstar\@pagerefstar\T@pageref
4414 \DeclareRobustCommand*{\nameref}{%
4415 \@ifstar\@namerefstar\T@nameref
4418 \Hy@AtBeginDocument{%
4421 \Hy@CatcodeWrapper\ReadBookmarks
4425 \RequirePackage{backref}%
4427 \let\Hy@backout\@gobble
4429 \Hy@DisableOption{backref}
4430 \Hy@DisableOption{pagebackref}
4431 \Hy@activeanchorfalse
4435 \catcode`\^^M\active
4441 \gdef\hyper@normalise{^^A
4443 \catcode`\^^M\active
4449 \def#{\hyper@hash}^^A
4450 \def\#{\hyper@hash}^^A
4453 \edef\&{\string&}^^A
4454 \edef\textunderscore{\string_}^^A
4455 \let\_\textunderscore
4457 \let_\textunderscore
4460 \let\textasciitilde\hyper@tilde
4461 \let\\\@backslashchar
4463 \Hy@safe@activestrue
4467 \gdef\Hy@ActiveCarriageReturn{^^M}^^A
4468 \gdef\hyper@n@rmalise#1#2{^^A
4469 \def\Hy@tempa{#2}^^A
4470 \ifx\Hy@tempa\Hy@ActiveCarriageReturn
4471 \ltx@ReturnAfterElseFi{^^A
4472 \hyper@@normalise{#1}^^A
4475 \ltx@ReturnAfterFi{^^A
4476 \hyper@@normalise{#1}{#2}^^A
4480 \gdef\hyper@@normalise#1#2{^^A
4483 \noexpand#1{\Hy@RemovePercentCr#2%^^M\@nil}^^A
4487 \gdef\Hy@RemovePercentCr#1%^^M#2\@nil{^^A
4489 \ifx\limits#2\limits
4491 \ltx@ReturnAfterFi{^^A
4492 \Hy@RemovePercentCr #2\@nil
4497 \providecommand*\hyper@chars{%
4500 \Hy@safe@activestrue
4502 \def\hyperlink#1#2{%
4503 \hyper@@link{}{#1}{#2}%
4505 \def\Hy@VerboseLinkStart#1#2{%
4508 \Hy@safe@activestrue
4509 \xdef\Hy@VerboseGlobalTemp{(#1) `#2'}%
4510 \Hy@Info{Reference \Hy@VerboseGlobalTemp}%
4511 \xdef\Hy@VerboseGlobalTemp{%
4512 \Hy@VerboseGlobalTemp, %
4513 line \the\inputlineno
4516 \let\Hy@VerboseLinkInfo\Hy@VerboseGlobalTemp
4517 \@onelevel@sanitize\Hy@VerboseLinkInfo
4520 \def\Hy@VerboseLinkInfo{<VerboseLinkInfo>}
4521 \def\Hy@VerboseLinkStop{%
4526 Package `hyperref' Info: %
4527 End of reference \Hy@VerboseLinkInfo.%
4533 \def\Hy@VerboseAnchor#1{%
4536 \Hy@safe@activestrue
4537 \Hy@Info{Anchor `\HyperDestNameFilter{#1}'}%
4541 \def\Hy@AllowHyphens{%
4548 \DeclareRobustCommand*{\href}[1][]{%
4551 \@ifnextchar\bgroup\Hy@href{\hyper@normalise\href@}%
4554 \hyper@normalise\href@
4559 \gdef\href@$1{\expandafter\href@split$1##\\}%
4560 \gdef\href@split$1#$2#$3\\$4{%
4561 \hyper@@link{$1}{$2}{$4}%
4565 \define@key{href}{page}{%
4566 \def\Hy@href@page{#1}%
4568 \let\Hy@href@page\@empty
4569 \newcount\c@Hy@tempcnt
4570 \def\theHy@tempcnt{\the\c@Hy@tempcnt}
4571 \def\Hy@MakeRemoteAction{%
4572 \ifx\Hy@href@page\@empty
4573 \def\Hy@href@page{0}%
4575 \setcounter{Hy@tempcnt}{\Hy@href@page}%
4576 \ifnum\c@Hy@tempcnt<\@ne
4578 Invalid page number (\theHy@tempcnt)\MessageBreak
4579 for remote PDF file.\MessageBreak
4582 \def\Hy@href@page{0}%
4584 \global\advance\c@Hy@tempcnt\m@ne
4585 \edef\Hy@href@page{\theHy@tempcnt}%
4588 \ifx\Hy@href@nextactionraw\@empty
4590 \Hy@pdfnewwindowsettrue
4591 \Hy@pdfnewwindowtrue
4594 \define@key{href}{pdfremotestartview}{%
4595 \setkeys{Hyp}{pdfremotestartview={#1}}%
4597 \let\KV@href@pdfnewwindow\KV@Hyp@pdfnewwindow
4598 \let\KV@href@pdfnewwindow@default\KV@Hyp@pdfnewwindow@default
4599 \newif\ifHy@href@ismap
4600 \define@key{href}{ismap}[true]{%
4601 \ltx@IfUndefined{Hy@href@ismap#1}{%
4603 Invalid value (#1) for key `ismap'.\MessageBreak
4604 Permitted values are `true' or `false'.\MessageBreak
4608 \csname Hy@href@ismap#1\endcsname
4611 \let\Hy@href@nextactionraw\@empty
4612 \define@key{href}{nextactionraw}{%
4613 \edef\Hy@href@nextactionraw{#1}%
4614 \ifx\Hy@href@nextactionraw\@empty
4616 \Hy@Match\Hy@href@nextactionraw{%
4617 ^(\HyPat@ObjRef/|<<.*/S[ /].+>>|%
4618 \[( ?\HyPat@ObjRef/|<<.*/S[ /].+>>)+ ?])$%
4620 \Hy@Warning{Invalid value for `nextactionraw':\MessageBreak
4621 \Hy@href@nextactionraw\MessageBreak
4622 The action is discarded%
4625 \ifx\Hy@href@nextactionraw\@empty
4627 \edef\Hy@href@nextactionraw{/Next \Hy@href@nextactionraw}%
4631 \def\HyPat@ObjRef/{.+}
4632 \RequirePackage{url}
4634 \def\Hurl{\begingroup \Url}
4635 \DeclareRobustCommand*{\nolinkurl}{\hyper@normalise\nolinkurl@}
4636 \def\nolinkurl@#1{\Hurl{#1}}
4637 \DeclareRobustCommand*{\url}{\hyper@normalise\url@}
4638 \def\url@#1{\hyper@linkurl{\Hurl{#1}}{#1}}
4639 \DeclareRobustCommand*{\hyperimage}{\hyper@normalise\hyper@image}
4640 \providecommand\hyper@image[2]{#2}
4641 \def\hypertarget#1#2{%
4643 \hyper@@anchor{#1}{#2}%
4645 \hyper@@anchor{#1}{\relax}#2%
4648 \DeclareRobustCommand*{\hyperref}{%
4649 \@ifnextchar[{\Hy@babelnormalise\label@hyperref}\@hyperref
4651 \def\Hy@babelnormalise#1[#2]{%
4653 \Hy@safe@activestrue
4660 \def\@hyperref{\hyper@normalise\@@hyperref}
4661 \def\@@hyperref#1#2#3{%
4662 \edef\ref@one{\ifx\\#2\\\else#2.\fi#3}%
4663 \expandafter\tryhyper@link\ref@one\\{#1}%
4665 \def\tryhyper@link#1\\#2{%
4666 \hyper@@link{#2}{#1}%
4668 \def\hyperdef{\@ifnextchar[{\label@hyperdef}{\@hyperdef}}
4669 \def\@hyperdef#1#2#3{%, category, name, text
4671 \def\Hy@AnchorName{#2}%
4673 \def\Hy@AnchorName{#1.#2}%
4676 \expandafter\hyper@@anchor\expandafter{\Hy@AnchorName}{#3}%
4678 \expandafter\hyper@@anchor\expandafter{\Hy@AnchorName}{\relax}#3%
4681 \def\label@hyperref[#1]{%
4682 \expandafter\label@@hyperref\csname r@#1\endcsname{#1}%
4684 \def\label@@hyperref#1#2#3{%
4686 \protect\G@refundefinedtrue
4688 Hyper reference `#2' on page \thepage \space undefined%
4694 \hyper@@link{\expandafter\@fifthoffive#1}%
4695 {\expandafter\@fourthoffive#1\@empty\@empty}{#3}%
4698 \def\label@hyperdef[#1]#2#3#4{% label name, category, name,
4702 \def\Hy@AnchorName{#3}%
4704 \def\Hy@AnchorName{#2.#3}%
4707 \protected@write\@auxout{}{%
4708 \string\newlabel{#1}{{}{}{}{\Hy@AnchorName}{}}%
4713 \expandafter\hyper@@anchor\expandafter{\Hy@AnchorName}{#4}%
4715 \expandafter\hyper@@anchor\expandafter{\Hy@AnchorName}{\relax}#4%
4718 \def\hyper@@link{\let\Hy@reserved@a\relax
4719 \@ifnextchar[{\hyper@link@}{\hyper@link@[link]}%
4721 \def\hyper@link@[#1]#2#3#4{%
4723 \protected@edef\Hy@tempa{#2}%
4724 \Hy@safe@activestrue
4726 \ifx\Hy@tempa\@empty
4727 \toks0{\hyper@link{#1}}%
4729 \toks0{\expandafter\hyper@readexternallink#2\\{#1}}%
4732 \Hy@safe@activesfalse
4735 \edef\Hy@tempa{\the\toks2}%
4737 \ifx\Hy@tempa\@empty
4738 \noexpand\Hy@Warning{Suppressing empty link}%
4740 \the\toks0 {\x}{\the\toks2}%%
4745 \def\hyper@readexternallink#1\\#2#3#4{%
4748 \expandafter\endgroup
4749 \expandafter\@@hyper@@readexternallink#1\\{#2}{#3}{#4}%
4751 \def\@@hyper@@readexternallink#1\\#2#3#4{%
4752 \@hyper@readexternallink{#2}{#3}{#4}#1::\\{#1}%
4754 \def\@pdftempwordfile{file}%
4755 \def\@pdftempwordrun{run}%
4756 \def\@hyper@readexternallink#1#2#3#4:#5:#6\\#7{%
4758 \@hyper@linkfile file:#7\\{#3}{#2}{#7}%
4761 \@hyper@linkfile file:#7\\{#3}{#2}{#7}%
4764 \ifx\@pdftempa\@pdftempwordfile
4765 \@hyper@linkfile#7\\{#3}{#2}{#7}%
4767 \ifx\@pdftempa\@pdftempwordrun
4770 PDF/A: Launch action is prohibited%
4777 \@hyper@launch#7\\{#3}{#2}%
4780 \hyper@linkurl{#3}{#7\ifx\\#2\\\else\hyper@hash#2\fi}%
4786 \def\@hyper@launch run:#1\\#2#3{% filename, anchor text, linkname
4787 \hyper@linkurl{#2}{%
4797 \def\@hyper@linkfile file:#1\\#2#3#4{%
4798 %file url,link string, name, original uri
4799 \filename@parse{#1}%
4800 \ifx\filename@ext\relax
4801 \edef\filename@ext{\XR@ext}%
4803 \def\use@file{\filename@area\filename@base.\filename@ext}%
4804 \Hy@IfStringEndsWith\filename@ext\XR@ext{%
4805 \hyper@linkfile{#2}{\use@file}{#3}%
4807 \ifx\@baseurl\@empty
4808 \hyper@linkurl{#2}{%
4809 #4\ifx\\#3\\\else\hyper@hash#3\fi
4812 \hyper@linkurl{#2}{\use@file\ifx\\#3\\\else\hyper@hash#3\fi}%
4816 \def\Hy@IfStringEndsWith#1#2{%
4819 \@onelevel@sanitize\x
4822 \@onelevel@sanitize\y
4824 \expandafter\def\expandafter\z\expandafter##\expandafter1\y##2\@nil{%
4827 \expandafter\ltx@secondoftwo
4829 \expandafter\ltx@firstoftwo
4832 \expandafter\expandafter\expandafter\z\expandafter\x\y\@nil
4834 \def\Hy@StringLocalhost{localhost}
4835 \@onelevel@sanitize\Hy@StringLocalhost
4836 \def\Hy@CleanupFile#1{%
4838 \expandafter\Hy@@CleanupFile#1\hbox///\hbox\@nil{#1}%
4840 \def\Hy@@CleanupFile#1//#2/#3\hbox#4\@nil#5{%
4847 \toks@{\endgroup\def#5{/#3}}%
4849 \@onelevel@sanitize\x
4850 \ifx\x\Hy@StringLocalhost
4851 \toks@{\endgroup\def#5{/#3}}%
4857 \long\def\hyper@@anchor#1#2{\@hyper@@anchor#1\relax#2\relax}
4858 \long\def\@hyper@@anchor#1\relax#2#3\relax{%
4860 #2\Hy@Warning{Ignoring empty anchor}%
4862 \def\anchor@spot{#2#3}%
4863 \let\put@me@back\@empty
4868 \ifcat a\noexpand#2\relax
4870 \ifcat 0\noexpand#2 \relax
4872 \let\anchor@spot\@empty
4873 \def\put@me@back{#2#3}%
4883 \expandafter\put@me@back
4885 \let\anchor@spot\@empty
4887 \let\anchor@spot\ltx@empty
4888 \let\htmladdimg\hyperimage
4889 \def\htmladdnormallink#1#2{\href{#2}{#1}}
4890 \def\htmladdnormallinkfoot#1#2{\href{#2}{#1}\footnote{#2}}
4891 \def\htmlref#1#2{% anchor text, label
4892 \label@hyperref[{#2}]{#1}%
4894 \def\@@latextohtmlX{%
4895 \let\hhyperref\hyperref
4896 \def\hyperref##1##2##3##4{% anchor text for HTML
4897 % text to print before label in print
4899 % post-label text in print
4903 \RequirePackage{bitset}
4904 \def\HyField@NewFlag#1#2{%
4905 \lowercase{\HyField@NewOption{#2}}%
4906 \lowercase{\HyField@NewBitsetFlag{#2}}{#2}{#1}%
4908 \def\HyField@NewFlagOnly#1#2{%
4909 \lowercase{\HyField@NewBitsetFlag{#2}}{#2}{#1}%
4911 \def\HyField@NewOption#1{%
4912 \expandafter\newif\csname ifFld@#1\endcsname
4913 \define@key{Field}{#1}[true]{%
4914 \lowercase{\Field@boolkey{##1}}{#1}%
4917 \def\HyField@NewBitsetFlag#1#2#3#4{%
4920 \advance\count@\m@ne
4923 \expandafter\def\csname HyField@#3@#1\endcsname{##1}%
4924 \expandafter\ifx\csname HyField@#3@##1\endcsname\relax
4925 \expandafter\edef\csname HyField@#3@##1\endcsname{%
4929 \expandafter\edef\csname HyField@#3@##1\endcsname{%
4930 \csname HyField@#3@##1\endcsname
4935 \expandafter\x\expandafter{\the\count@}%
4937 \def\HyField@UseFlag#1#2{%
4938 \lowercase{\HyField@@UseFlag{#2}}{#1}%
4940 \def\HyField@@UseFlag#1#2{%
4941 \bitsetSetValue{HyField@#2}{%
4942 \csname HyField@#2@#1\endcsname
4944 \csname ifFld@#1\endcsname 1\else 0\fi
4947 \def\HyField@SetFlag#1#2{%
4948 \lowercase{\HyField@@SetFlag{#2}}{#1}%
4950 \def\HyField@@SetFlag#1#2{%
4951 \bitsetSetValue{HyField@#2}{%
4952 \csname HyField@#2@#1\endcsname
4955 \def\HyField@PrintFlags#1#2{%
4959 \let\MessageBreak\relax
4960 \expandafter\@for\expandafter\x\expandafter:\expandafter=%
4961 \bitsetGetSetBitList{HyField@#1}\do{%
4964 \csname HyField@#1@\x\endcsname\MessageBreak
4970 \expandafter\ifx\@car#1\@nil S\else/\fi
4972 \bitsetGetDec{HyField@#1} %
4973 (0x\bitsetGetHex{HyField@#1}{32})\MessageBreak
4980 \HyField@NewFlag{Ff}{ReadOnly}{1}
4981 \HyField@NewFlag{Ff}{Required}{2}
4982 \HyField@NewFlag{Ff}{NoExport}{3}
4983 \HyField@NewFlag{Ff}{NoToggleToOff}{15}
4984 \HyField@NewFlag{Ff}{Radio}{16}
4985 \HyField@NewFlag{Ff}{Pushbutton}{17}
4986 \HyField@NewFlag{Ff}{RadiosInUnison}{26}
4987 \HyField@NewFlag{Ff}{Multiline}{13}
4988 \HyField@NewFlag{Ff}{Password}{14}
4989 \HyField@NewFlag{Ff}{FileSelect}{21}% PDF 1.4
4990 \HyField@NewFlag{Ff}{DoNotSpellCheck}{23}% PDF 1.4
4991 \HyField@NewFlag{Ff}{DoNotScroll}{24}% PDF 1.4
4992 \HyField@NewFlag{Ff}{Comb}{25}% PDF 1.4