%
% pxjahyper.sty
%

%% package declaration
\NeedsTeXFormat{pLaTeX2e}
\ProvidesPackage{pxjahyper}[2012/05/27 v0.2]

%% error messages
\def\pxhy@pkgname{pxjahyper}
\def\pxhy@warn{\PackageWarningNoLine\pxhy@pkgname}
\def\pxhy@error{\PackageError\pxhy@pkgname}
\@onlypreamble\pxhy@fatal
\def\pxhy@fatal#1#2{%
  \pxhy@error{#1}{#2Package loading is aborted right now.}%
}

%% packages
\RequirePackage{atbegshi}

%% globals
\newif\ifpxhy@ptex
\newif\ifpxhy@uptex
\let\pxhy@jcode\@undefined
\newif\ifpxhy@tounicode
\newif\ifpxhy@zerox
\newif\ifpxhy@bigcode
\chardef\pxhy@driver@none=0
\chardef\pxhy@driver@dvipdfmx=1
\let\pxhy@driver\@undefined

%------------------- option handling

\DeclareOption{dvipdfmx}{%
  \let\pxhy@driver\pxhy@driver@dvipdfmx
}
\DeclareOption{dvipdfm}{%
  \let\pxhy@driver\pxhy@driver@dvipdfmx
}
\DeclareOption{none}{%
  \let\pxhy@driver\pxhy@driver@none
}
\DeclareOption{auto}{%
  \let\pxhy@driver\@undefined
}
\DeclareOption{tounicode}{%
  \pxhy@tounicodetrue
}
\DeclareOption{notounicode}{%
  \pxhy@tounicodefalse
}
\DeclareOption{out2uni}{%
  \pxhy@zeroxtrue
}
\DeclareOption{noout2uni}{%
  \pxhy@zeroxfalse
}
\DeclareOption{bigcode}{%
  \pxhy@bigcodetrue
}
\DeclareOption{nobigcode}{%
  \pxhy@bigcodefalse
}
\ExecuteOptions{%
  auto,tounicode,noout2uni,nobigcode%
}
\ProcessOptions*

%------------------- environment check

%% The hyperref package must be loaded in advance.
\@ifpackageloaded{hyperref}{}{%else
  \pxhy@fatal{'hyperref' not yet loaded}{}%
  \endinput
}
%% hyperref option 'unicode' must not be set.
\expandafter\ifx\csname ifHy@unicode\expandafter\endcsname
 \csname iftrue\endcsname
  \pxhy@fatal{hyperref 'unicode' mode is not supported}{}%
  \expandafter\endinput
\fi

%% Check hyperref driver.
\ifx\pxhy@driver\@undefined
  \def\pxhy@tmpa{hdvipdfm}
  \ifx\Hy@driver\pxhy@tmpa
    \let\pxhy@driver\pxhy@driver@dvipdfmx
  \else
    \let\pxhy@driver\pxhy@driver@none
  \fi
\fi

%% Check the engine.
\def\pxhy@check#1#2{%
  \edef\pxhy@tmpa{\string#1}%
  \edef\pxhy@tmpb{\meaning#1}%
  \ifx\pxhy@tmpa\pxhy@tmpb #2\fi
}
\pxhy@check\kanjiskip{\pxhy@ptextrue}
\pxhy@check\forcecjktoken{\pxhy@uptextrue}
\ifpxhy@ptex\else
  \pxhy@fatal{Unknown engine used!!!}{}
  \expandafter\endinput
\fi

%% Check the internal jcode.
\ifnum     \jis"2121="8140
  \let\pxhy@jcode=s\relax
\else\ifnum\jis"2121="A1A1
  \let\pxhy@jcode=e\relax
\else\ifnum\jis"2121="3000
  \let\pxhy@jcode=u\relax
\fi\fi\fi
\ifx\pxhy@jcode\@undefined
  \pxhy@fatal{Unknown internal kanji code!!!}{}
  \expandafter\endinput
\fi

%% adjustment
% upTeX not in unicode is not seen as upTeX.
\if u\pxhy@jcode\else
  \pxhy@uptexfalse
\fi
% out2uni cannot be used with upTeX.
\ifpxhy@uptex \ifpxhy@zerox
  \pxhy@warn{out2uni is invalid in upTeX}
  \pxhy@zeroxfalse
\fi\fi
% bigcode cannot be used without upTeX.
\ifpxhy@uptex\else \ifpxhy@bigcode
  \pxhy@warn{bigcode is invalid without upTeX}
  \pxhy@bigcodefalse
\fi\fi
% out2uni disables tounicode.
\ifpxhy@zerox
  \pxhy@tounicodefalse
\fi

\iffalse
\typeout{%
pxhy@ptex = \ifpxhy@ptex true\else false\fi^^J%
pxhy@uptex = \ifpxhy@uptex true\else false\fi^^J%
pxhy@jcode = \meaning\pxhy@jcode^^J%
pxhy@tounicode = \ifpxhy@tounicode true\else false\fi^^J%
pxhy@zerox = \ifpxhy@zerox true\else false\fi^^J%
pxhy@driver = \the\pxhy@driver^^J%
}
\fi

%------------------- helpers

%% pxhy@end
\def\pxhy@end{\pxhy@end@}

%% \pxhy@out@special{<text>}
\def\pxhy@out@special#1{%
  \begingroup
    \toks\z@{\special{#1}}%
    \toks\tw@\expandafter{\AtBegShi@HookFirst}%
    \xdef\AtBegShi@HookFirst{\the\toks@\the\toks\tw@}%
  \endgroup
}

%% \pxhy@get@jchar{<num>}
% Let \pxhy@jchar a macro expanding to a single jchar token
% of the char code <num>.
\def\pxhy@get@jchar#1{%
  \begingroup
    \pxhy@forcecjktoken
    \kansujichar\@ne=#1\relax
    \xdef\pxhy@jchar{\kansuji\@ne}%
  \endgroup
}

%% \pxhy@forcecjktoken
\ifpxhy@uptex
  \let\pxhy@forcecjktoken\forcecjktoken
\else
  \let\pxhy@forcecjktoken\relax
\fi

%------------------- output 'tounicode' special
\ifpxhy@tounicode

  \ifnum\pxhy@driver=\pxhy@driver@dvipdfmx %<*dvipdfmx>
    %% dvipdfmx
    \if e\pxhy@jcode % euc
      \pxhy@out@special{pdf:tounicode EUC-UCS2}
    \else\if s\pxhy@jcode % sjis
      \pxhy@out@special{pdf:tounicode 90ms-RKSJ-UCS2}
    \else\ifpxhy@bigcode % ucs, bigcode
      \pxhy@out@special{pdf:tounicode UTF8-UTF16}
    \else
      \pxhy@out@special{pdf:tounicode UTF8-UCS2}
    \fi\fi\fi
  \fi                           %</dvipdfmx>

\fi
%------------------- papersize special adjustment

% When the magnification is in effect (i.e. \mag<>1000), hyperref
% emits a papersize special with wrong value. (dvipdfmx interprets
% the lengths in the special as 'true' length.) So here a papersize
% special with adjusted values will be output.
\ifnum\mag=1000 \else
  \expandafter\ifx\csname ifHy@setpagesize\expandafter\endcsname
   \csname iftrue\endcsname % hyperref setpagesize is on
    \ifnum0<\mag \ifnum32768>\mag % \mag is in valid range
      \begingroup
        \@ifundefined{stockwidth}{}{%else
          \paperwidth=\stockwidth
          \paperheight=\stockheight
        }%
        \@tempcnta=\mag \advance\@tempcnta100000
        \def\pxhy@next1#1#2#3#4#5\relax{%
          \def\pxhy@tmpa{#1#2.#3#4#5}%
        }%
        \expandafter\pxhy@next\the\@tempcnta\relax
        \paperwidth=\pxhy@tmpa\paperwidth
        \paperheight=\pxhy@tmpa\paperheight
        \xdef\pxhy@spec@papersize{%
          papersize=\the\paperwidth,\the\paperheight
        }%
        \AtBeginShipoutFirst{%
          \special{\pxhy@spec@papersize}%
        }
      \endgroup
    \fi\fi
  \fi
\fi

%------------------- 


\def\pxhy@uc@REPL{FFFD}
\def\pxhy@uc@XNAC{FDD1} % not-a-char codepoint used as marker
\let\pxhy@burst\romannumeral
\let\pxhy@nxend\indent

%% \pxhy@uchex{<hex>}
% The entity of the code-value input function. If the input
% is a valid code value in hex then it passes the value to
% \pxhy@uchex@res in 4-6 digits; otherwise passes FFFD to
% \pxhy@uchex@res.
\def\pxhy@uchex#1{%
  \expandafter\pxhy@uchex@a\pxhy@burst-`>#1\pxhy@nxend
}
\edef\pxhy@uchex@err{%
  \noexpand\pxhy@uchex@res{\pxhy@uc@REPL}%
}
\def\pxhy@uchex@a#1#2\pxhy@nxend{%
  \ifnum2<"1#1
    \expandafter\pxhy@uchex@b\romannumeral-"#1#2\pxhy@nxend{#1#2}%
  \else \pxhy@uchex@err
  \fi
}
\def\pxhy@uchex@b#1\pxhy@nxend#2{%
  \ifx\pxhy@empty#1\pxhy@empty
    \ifnum"#2>"10FFFF
      \pxhy@uchex@err
    \else\ifnum"#2>"FFF
      \pxhy@uchex@res{#2}%
    \else
      \pxhy@uchex@c#2"000\pxhy@end
    \fi\fi
  \else \pxhy@uchex@err
  \fi
}
\def\pxhy@uchex@c#1#2#3#4#5#6\pxhy@end{%
  \pxhy@uchex@d#1#2#3#4#5\pxhy@end
}
\def\pxhy@uchex@d#1"#2\pxhy@end{%
  \pxhy@uchex@res{#2#1}%
}

\ifpxhy@uptex                   %<*upTeX>

  %% \pxhy@marker: a not-a-char U+FDD1
  \pxhy@get@jchar{\ucs"\pxhy@uc@XNAC}
  \edef\pxhy@marker{\pxhy@jchar}

  %% Makes \Ux and \UTF be the code input command in PDF strings.
  \pdfstringdefDisableCommands{%
    \let\Ux\pxhy@uchex
    \let\UTF\pxhy@uchex
    \let\UTFM\pxhy@uchex
    \let\UTFK\pxhy@uchex
    \let\UTFC\pxhy@uchex
    \let\UTFT\pxhy@uchex
  }

  %BEGIN-- in the following block #1 means the marker
  \def\pxhy@next#1{% #1=marker
    %% \pxhy@uchex@res
    % Expands to a tag string which will later be converted to
    % a real character in the postprocess.
    \def\pxhy@uchex@res##1{#1##1>}%
    %% \pxhy@posthook
    % The postprocess of this package. It is registered to
    % \pdfstringdefPostHook.
    \def\pxhy@posthook##1{%
      \expandafter\pxhy@posthook@a##1#1\pxhy@end
      \pxhy@posthook@b##1%
    }%
    \def\pxhy@posthook@a##1#1##2\pxhy@end{%
      \ifx\pxhy@empty##2\pxhy@empty
        \expandafter\@gobbletwo
      \fi
    }%
    \def\pxhy@posthook@b##1{%
      \let\pxhy@str\@empty
      \expandafter\pxhy@posthook@c##1#1>%
      \global\let##1=\pxhy@str
    }%
    \def\pxhy@posthook@c##1#1##2>{%
      \ifx\pxhy@empty##2\pxhy@empty
        \edef\pxhy@str{\pxhy@str##1}%
      \else
        \pxhy@get@jchar{"##2}%
        \edef\pxhy@str{\pxhy@str##1\pxhy@jchar}%
        \expandafter\pxhy@posthook@c
      \fi
    }%
  }
  \expandafter\pxhy@next\pxhy@marker
  %END--

  % Add \pxhy@posthook to \pdfstringdefPostHook.
  \begingroup
    \toks@\expandafter{\pdfstringdefPostHook{#1}}
    \edef\pxhy@next{%
      \gdef\noexpand\pdfstringdefPostHook##1{%
        \the\toks@
        \noexpand\pxhy@posthook{##1}%
      }%
    }%
    \pxhy@next
  \endgroup

\else\ifpxhy@zerox              %<*!upTeX>

  %% \pxhy@uchex@res
  % Expands to \0x form.
  \def\pxhy@uchex@res#1{%
    \0x#1%
  }

  %% Makes \Ux be the code input command in PDF strings.
  % (If the otf package is loaded, then \UTF already does
  % the same thing.)
  \pdfstringdefDisableCommands{%
    \let\Ux\pxhy@uchex
  }

  %Note: if out2uni is off then \Ux remains undefined.
\fi\fi                          %</upTeX>

%------------------- Redefine text commands for PD1

\ifnum\pxhy@driver=\pxhy@driver@dvipdfmx %<*dvipdfmx>

%%<+> \pxDeclarePdfTextCommand{\CS}{<jis>}{<ucs>}
\@onlypreamble\pxDeclarePdfTextCommand
\newcommand*\pxDeclarePdfTextCommand[3]{%
  \pxhy@decl@pdf@tc{#2}{#3}%
   {\DeclareTextCommand{#1}{PD1}}%
   {\pxhy@revoke@pdf@tc{#1}}%
}

%%<+> \pxDeclarePdfTextComposite{\CS}{<arg>}{<jis>}{<ucs>}
\@onlypreamble\pxDeclarePdfTextComposite
\newcommand*\pxDeclarePdfTextComposite[4]{%
  \pxhy@decl@pdf@tc{#3}{#4}%
   {\DeclareTextCompositeCommand{#1}{PD1}{#2}}%
   {\pxhy@revoke@pdf@tcc{#1}{#2}}%
}

\else                           %<*!dvipdfmx>

\@onlypreamble\pxDeclarePdfTextCommand
\newcommand*\pxDeclarePdfTextCommand[3]{}
\@onlypreamble\pxDeclarePdfTextComposite
\newcommand*\pxDeclarePdfTextComposite[4]{}

\fi                             %</dvipdfmx>

%% \pxhy@revoke@pdf@tc
\@onlypreamble\pxhy@revoke@pdf@tc
\def\pxhy@revoke@pdf@tc#1{%
  \expandafter\let\csname PD1\string#1\endcsname\@undefined
}

%% \pxhy@revoke@pdf@tcc
\@onlypreamble\pxhy@revoke@pdf@tc
\def\pxhy@revoke@pdf@tcc#1#2{%
  \expandafter\let\csname\string\PD1\string#1-\string#2%
   \endcsname\@undefined
}

%% \pxhy@decl@pdf@tc
\@onlypreamble\pxhy@decl@pdf@tc
\def\pxhy@decl@pdf@tc#1#2{%
  \pxhy@get@body{#1}{#2}%
  \ifx\pxhy@body\@undefined
    \let\pxhy@next\@secondoftwo
  \else
    \def\pxhy@next{%
      \expandafter\pxhy@decl@pdf@tc@a\pxhy@body\pxhy@end}%
  \fi
  \pxhy@next
}
\@onlypreamble\pxhy@decl@pdf@tc@a
\def\pxhy@decl@pdf@tc@a#1\pxhy@end#2#3{%
  #2{#1}%
}

%% \pxhy@get@body{<jis>}{<ucs>}
\@onlypreamble\pxhy@get@body
\ifpxhy@uptex                   %<*upTeX>
  \def\pxhy@get@body#1#2{%
    \pxhy@get@jchar{\ucs"#2}%
    \let\pxhy@body\pxhy@jchar
  }%
\else                           %<*!upTeX>
  \ifpxhy@zerox
    \def\pxhy@get@body#1#2{%
      \ifx\pxhy@end#1\pxhy@end
        \def\pxhy@body{\0x#2}%
      \else
        \pxhy@get@jchar{\jis"#1}%
        \let\pxhy@body\pxhy@jchar
      \fi
    }%
  \else
    \def\pxhy@get@body#1#2{%
      \ifx\pxhy@end#1\pxhy@end
        \let\pxhy@body\@undefined
      \else
        \pxhy@get@jchar{\jis"#1}%
        \let\pxhy@body\pxhy@jchar
      \fi
    }%
  \fi
\fi                             %</upTeX>

%-------------------

% JIS X 0213 does not distinguish the following pairs:
%  - circumflex(U+02C6) and asciicircum(U+005E)
%  - tilde(U+02DC) and asciitilde(U+007E)
% Here I use ASCII characters as done in JIS.
\DeclareTextCommand{\textcircumflex}{PD1}{\136}
\DeclareTextCommand{\textasciicircum}{PD1}{\136}
\DeclareTextCommand{\texttilde}{PD1}{\176}
\DeclareTextCommand{\textasciitilde}{PD1}{\176}

% Some ad-hoc redefinitions.
\DeclareTextCommand{\textfi}{PD1}{fi}
\DeclareTextCommand{\textfl}{PD1}{fl}
\DeclareTextCommand{\IJ}{PD1}{IJ}
\DeclareTextCommand{\ij}{PD1}{ij}
\pxDeclarePdfTextCommand{\textcelsius}{216E}{2103}

%%%%%%%%
\pxDeclarePdfTextCommand{\textasciibreve}{}{02D8}
\pxDeclarePdfTextCommand{\textasciicaron}{}{02C7}
\pxDeclarePdfTextCommand{\textdotaccent}{}{02D9}
\pxDeclarePdfTextCommand{\texthungarumlaut}{}{02DD}
\pxDeclarePdfTextCommand{\textogonek}{}{02DB}
\pxDeclarePdfTextCommand{\textring}{}{02DA}
\pxDeclarePdfTextCommand{\texttilde}{}{02DC}
\pxDeclarePdfTextCommand{\textbullet}{}{2022}
\pxDeclarePdfTextCommand{\textdagger}{2277}{2020}
\pxDeclarePdfTextCommand{\textdaggerdbl}{2278}{2021}
\pxDeclarePdfTextCommand{\textellipsis}{2144}{2026}
\pxDeclarePdfTextCommand{\textemdash}{213D}{2014}
\pxDeclarePdfTextCommand{\textendash}{}{2013}
\pxDeclarePdfTextCommand{\textflorin}{}{0192}
\pxDeclarePdfTextCommand{\textfractionsolidus}{}{2044}
\pxDeclarePdfTextCommand{\guilsinglleft}{}{2039}
\pxDeclarePdfTextCommand{\guilsinglright}{}{203A}
\pxDeclarePdfTextCommand{\textminus}{215D}{2212}
\pxDeclarePdfTextCommand{\textperthousand}{2273}{2030}
\pxDeclarePdfTextCommand{\quotedblbase}{}{201E}
\pxDeclarePdfTextCommand{\textquotedblleft}{2148}{201C}
\pxDeclarePdfTextCommand{\textquotedblright}{2149}{201D}
\pxDeclarePdfTextCommand{\textquoteleft}{2146}{2018}
\pxDeclarePdfTextCommand{\textquoteright}{2147}{2019}
\pxDeclarePdfTextCommand{\quotesinglbase}{}{201A}
\pxDeclarePdfTextCommand{\texttrademark}{}{2122}
\pxDeclarePdfTextCommand{\L}{}{0141}
\pxDeclarePdfTextCommand{\OE}{}{0152}
\pxDeclarePdfTextComposite{\v}{S}{}{0160}
\pxDeclarePdfTextComposite{\"}{Y}{}{0178}
\pxDeclarePdfTextComposite{\v}{Z}{}{017D}
\pxDeclarePdfTextCommand{\i}{}{0131}
\pxDeclarePdfTextCommand{\l}{}{0142}
\pxDeclarePdfTextCommand{\oe}{}{0153}
\pxDeclarePdfTextComposite{\v}{s}{}{0161}
\pxDeclarePdfTextComposite{\v}{z}{}{017E}
\pxDeclarePdfTextCommand{\texteuro}{}{20AC}
\pxDeclarePdfTextCommand{\textexclamdown}{}{00A1}
\pxDeclarePdfTextCommand{\textcent}{2171}{00A2}
\pxDeclarePdfTextCommand{\textsterling}{2172}{00A3}
\pxDeclarePdfTextCommand{\textcurrency}{}{00A4}
\pxDeclarePdfTextCommand{\textyen}{}{00A5}
\pxDeclarePdfTextCommand{\textbrokenbar}{}{00A6}
\pxDeclarePdfTextCommand{\textsection}{2178}{00A7}
\pxDeclarePdfTextCommand{\textasciidieresis}{212F}{00A8}
\pxDeclarePdfTextCommand{\textcopyright}{}{00A9}
\pxDeclarePdfTextCommand{\textordfeminine}{}{00AA}
\pxDeclarePdfTextCommand{\guillemotleft}{}{00AB}
\pxDeclarePdfTextCommand{\textlogicalnot}{224C}{00AC}
\pxDeclarePdfTextCommand{\textlnot}{224C}{00AC}
\pxDeclarePdfTextCommand{\textregistered}{}{00AE}
\pxDeclarePdfTextCommand{\textasciimacron}{}{00AF}
\pxDeclarePdfTextCommand{\textdegree}{216B}{00B0}
\pxDeclarePdfTextCommand{\textplusminus}{215E}{00B1}
\pxDeclarePdfTextCommand{\texttwosuperior}{}{00B2}
\pxDeclarePdfTextCommand{\textthreesuperior}{}{00B3}
\pxDeclarePdfTextCommand{\textacute}{212D}{00B4}
\pxDeclarePdfTextCommand{\textmu}{}{00B5}
\pxDeclarePdfTextCommand{\textparagraph}{2279}{00B6}
\pxDeclarePdfTextCommand{\textperiodcentered}{}{00B7}
\pxDeclarePdfTextCommand{\textcedilla}{}{00B8}
\pxDeclarePdfTextCommand{\textonesuperior}{}{00B9}
\pxDeclarePdfTextCommand{\textordmasculine}{}{00BA}
\pxDeclarePdfTextCommand{\guillemotright}{}{00BB}
\pxDeclarePdfTextCommand{\textonequarter}{}{00BC}
\pxDeclarePdfTextCommand{\textonehalf}{}{00BD}
\pxDeclarePdfTextCommand{\textthreequarters}{}{00BE}
\pxDeclarePdfTextCommand{\textquestiondown}{}{00BF}
\pxDeclarePdfTextComposite{\`}{A}{}{00C0}
\pxDeclarePdfTextComposite{\'}{A}{}{00C1}
\pxDeclarePdfTextComposite{\^}{A}{}{00C2}
\pxDeclarePdfTextComposite{\~}{A}{}{00C3}
\pxDeclarePdfTextComposite{\"}{A}{}{00C4}
\pxDeclarePdfTextComposite{\r}{A}{}{00C5}
\pxDeclarePdfTextCommand{\AE}{}{00C6}
\pxDeclarePdfTextComposite{\c}{C}{}{00C7}
\pxDeclarePdfTextComposite{\`}{E}{}{00C8}
\pxDeclarePdfTextComposite{\'}{E}{}{00C9}
\pxDeclarePdfTextComposite{\^}{E}{}{00CA}
\pxDeclarePdfTextComposite{\"}{E}{}{00CB}
\pxDeclarePdfTextComposite{\`}{I}{}{00CC}
\pxDeclarePdfTextComposite{\'}{I}{}{00CD}
\pxDeclarePdfTextComposite{\^}{I}{}{00CE}
\pxDeclarePdfTextComposite{\"}{I}{}{00CF}
\pxDeclarePdfTextCommand{\DH}{}{00D0}
\pxDeclarePdfTextCommand{\DJ}{}{00D0}
\pxDeclarePdfTextComposite{\~}{N}{}{00D1}
\pxDeclarePdfTextComposite{\`}{O}{}{00D2}
\pxDeclarePdfTextComposite{\'}{O}{}{00D3}
\pxDeclarePdfTextComposite{\^}{O}{}{00D4}
\pxDeclarePdfTextComposite{\~}{O}{}{00D5}
\pxDeclarePdfTextComposite{\"}{O}{}{00D6}
\pxDeclarePdfTextCommand{\textmultiply}{215F}{00D7}
\pxDeclarePdfTextCommand{\O}{}{00D8}
\pxDeclarePdfTextComposite{\`}{U}{}{00D9}
\pxDeclarePdfTextComposite{\'}{U}{}{00DA}
\pxDeclarePdfTextComposite{\^}{U}{}{00DB}
\pxDeclarePdfTextComposite{\"}{U}{}{00DC}
\pxDeclarePdfTextComposite{\'}{Y}{}{00DD}
\pxDeclarePdfTextCommand{\TH}{}{00DE}
\pxDeclarePdfTextCommand{\ss}{}{00DF}
\pxDeclarePdfTextComposite{\`}{a}{}{00E0}
\pxDeclarePdfTextComposite{\'}{a}{}{00E1}
\pxDeclarePdfTextComposite{\^}{a}{}{00E2}
\pxDeclarePdfTextComposite{\~}{a}{}{00E3}
\pxDeclarePdfTextComposite{\"}{a}{}{00E4}
\pxDeclarePdfTextComposite{\r}{a}{}{00E5}
\pxDeclarePdfTextCommand{\ae}{}{00E6}
\pxDeclarePdfTextComposite{\c}{c}{}{00E7}
\pxDeclarePdfTextComposite{\`}{e}{}{00E8}
\pxDeclarePdfTextComposite{\'}{e}{}{00E9}
\pxDeclarePdfTextComposite{\^}{e}{}{00EA}
\pxDeclarePdfTextComposite{\"}{e}{}{00EB}
\pxDeclarePdfTextComposite{\`}{i}{}{00EC}
\pxDeclarePdfTextComposite{\`}{\i}{}{00EC}
\pxDeclarePdfTextComposite{\'}{i}{}{00ED}
\pxDeclarePdfTextComposite{\'}{\i}{}{00ED}
\pxDeclarePdfTextComposite{\^}{i}{}{00EE}
\pxDeclarePdfTextComposite{\^}{\i}{}{00EE}
\pxDeclarePdfTextComposite{\"}{i}{}{00EF}
\pxDeclarePdfTextComposite{\"}{\i}{}{00EF}
\pxDeclarePdfTextCommand{\dh}{}{00F0}
\pxDeclarePdfTextComposite{\~}{n}{}{00F1}
\pxDeclarePdfTextComposite{\`}{o}{}{00F2}
\pxDeclarePdfTextComposite{\'}{o}{}{00F3}
\pxDeclarePdfTextComposite{\^}{o}{}{00F4}
\pxDeclarePdfTextComposite{\~}{o}{}{00F5}
\pxDeclarePdfTextComposite{\"}{o}{}{00F6}
\pxDeclarePdfTextCommand{\textdivide}{2160}{00F7}
\pxDeclarePdfTextCommand{\o}{}{00F8}
\pxDeclarePdfTextComposite{\`}{u}{}{00F9}
\pxDeclarePdfTextComposite{\'}{u}{}{00FA}
\pxDeclarePdfTextComposite{\^}{u}{}{00FB}
\pxDeclarePdfTextComposite{\"}{u}{}{00FC}
\pxDeclarePdfTextComposite{\'}{y}{}{00FD}
\pxDeclarePdfTextCommand{\th}{}{00FE}
\pxDeclarePdfTextComposite{\"}{y}{}{00FF}
%%%%%%%%

% Give a substitute definition to characters that appear as
% ligatures, since otherwise hyperref leaves some garbage in
% output pdf-strings when such ligatures appear.
\ifpxhy@uptex\else
  \ifpxhy@zerox\else
    \DeclareTextCommand{\textendash}{PD1}{--}
    \DeclareTextCommand{\textquestiondown}{PD1}{}% empty
    \DeclareTextCommand{\textexclamdown}{PD1}{}% empty
  \fi
\fi

%------------------- all done
\endinput
%% EOF
