diff options
Diffstat (limited to 'macros/jptex/latex/pxjahyper/pxjahyper.sty')
-rw-r--r-- | macros/jptex/latex/pxjahyper/pxjahyper.sty | 1871 |
1 files changed, 1871 insertions, 0 deletions
diff --git a/macros/jptex/latex/pxjahyper/pxjahyper.sty b/macros/jptex/latex/pxjahyper/pxjahyper.sty new file mode 100644 index 0000000000..f2ebcd4571 --- /dev/null +++ b/macros/jptex/latex/pxjahyper/pxjahyper.sty @@ -0,0 +1,1871 @@ +%% +%% This is file 'pxjahyper.sty'. +%% +%% Copyright (c) 2012-2022 Takayuki YATO (aka. "ZR") +%% GitHub: https://github.com/zr-tex8r +%% Twitter: @zr_tex8r +%% +%% This package is distributed under the MIT License. +%% + +%% package declaration +\NeedsTeXFormat{pLaTeX2e} +\ProvidesPackage{pxjahyper}[2022/05/27 v1.2] +\def\pxhy@pkgname{pxjahyper} +\providecommand{\bxDebug}[1]{} + +%--------------------------------------- Preparations + +%% error messages +\def\pxhy@error{\PackageError\pxhy@pkgname} +\@onlypreamble\pxhy@eh@fatal +\def\pxhy@eh@fatal{% + Package loading is aborted right now.\MessageBreak\@ehc +} + +%% packages +\RequirePackage{keyval}\relax +\RequirePackage{ltxcmds}[2011/08/22]% v1.21 + +%% variables +\newif\ifpxhy@ptex +\newif\ifpxhy@uptex +\newif\ifpxhy@etex +\newif\ifpxhy@etoolbox +\chardef\pxhy@hook@system=0 +\newif\ifpxhy@tounicode +\newif\ifpxhy@uniescape +\newif\ifpxhy@bigcode +\let\pxhy@bigcode@given\relax +\newif\ifpxhy@papersize +\newif\ifpxhy@charcmds +\chardef\pxhy@driver@none=0 +\chardef\pxhy@driver@dvipdfmx=1 +\chardef\pxhy@driver@dvips=2 +\let\pxhy@driver\@undefined +\newif\ifpxhy@hy@unicode +\newif\ifpxhy@jacommentline +\newif\ifpxhy@disablecmds +\newif\ifpxhy@otfutf +\newif\ifpxhy@otfcid +\newif\ifpxhy@otfmacros +\newif\ifpxhy@Uchar@avail +\newif\ifpxhy@ucs@avail +\let\pxhy@jsclasses@name\relax +\newif\ifpxhy@jlreq@cls +\newif\ifpxhy@fallback@geta +\newif\ifpxhy@extjis@map +\newif\ifpxhy@extjis@use +\newif\ifpxhy@ajhankaku@chars + +%%<*> \pxjahypersetup{<key>=<value>,...} +\newcommand*\pxjahypersetup{% + \setkeys{\pxhy@pkgname}% +} +%% \pxhy@handle@key{<key>}{<value>}{<name>} +\def\pxhy@handle@key#1#2#3{% + \expandafter\let\expandafter\pxhy@tmpa\csname pxhy@#3\endcsname + \ifx\pxhy@tmpa\relax + \PackageError\pxhy@pkgname + {Invalid value for key '#1':\MessageBreak\@spaces#2}% + {\@eha}% + \else \pxhy@tmpa + \fi +} + +%--------------------------------------- Package options + +%% DVI drivers +\DeclareOption{dvipdfmx}{% + \let\pxhy@driver\pxhy@driver@dvipdfmx +} +\DeclareOption{dvipdfm}{% + \let\pxhy@driver\pxhy@driver@dvipdfmx +} +\DeclareOption{dvips}{% + \let\pxhy@driver\pxhy@driver@dvips +} +\DeclareOption{nodvidriver}{% + \let\pxhy@driver\pxhy@driver@none +} +\DeclareOption{resetdvidriver}{% + \let\pxhy@driver\@undefined +} +\DeclareOption{autodvidriver}{% + \let\pxhy@driver\@undefined +} +\DeclareOption{auto}{% DEPRECATED + \let\pxhy@driver\@undefined +} +%% operation modes +\DeclareOption{tounicode}{% + \pxhy@tounicodetrue +} +\DeclareOption{notounicode}{% + \pxhy@tounicodefalse +} +\DeclareOption{out2uni}{% + \pxhy@uniescapetrue +} +\DeclareOption{noout2uni}{% + \pxhy@uniescapefalse + \let\pxhy@nouniescape@given=t +} +\DeclareOption{convbkmk}{% + \pxhy@uniescapetrue +} +\DeclareOption{noconvbkmk}{% + \pxhy@uniescapefalse + \let\pxhy@nouniescape@given=t +} +%% others +\DeclareOption{papersize}{% + \pxhy@papersizetrue +} +\DeclareOption{nopapersize}{% + \pxhy@papersizefalse +} +\DeclareOption{charcmds}{% + \pxhy@charcmdstrue +} +\DeclareOption{nocharcmds}{% + \pxhy@charcmdsfalse +} +\pxhy@bigcodetrue +\DeclareOption{bigcode}{% + \pxhy@bigcodetrue + \let\pxhy@bigcode@given=t +} +\DeclareOption{nobigcode}{% + \pxhy@bigcodefalse +} +\DeclareOption{jacommentline}{% + \pxhy@jacommentlinetrue +} +\DeclareOption{nojacommentline}{% + \pxhy@jacommentlinefalse +} +\DeclareOption{disablecmds}{% + \pxhy@disablecmdstrue +} +\DeclareOption{nodisablecmds}{% + \pxhy@disablecmdsfalse +} +\DeclareOption{otfutf}{% + \pxhy@otfutftrue +} +\DeclareOption{nootfutf}{% + \pxhy@otfutffalse +} +\DeclareOption{otfcid}{% + \pxhy@otfcidtrue +} +\DeclareOption{nootfcid}{% + \pxhy@otfcidfalse +} +\pxhy@otfmacrostrue +\DeclareOption{otfmacros}{% + \pxhy@otfmacrostrue + \let\pxhy@otfmacros@given=t +} +\DeclareOption{nootfmacros}{% + \pxhy@otfmacrosfalse +} +\DeclareOption{fallback-geta}{% + \pxjahypersetup{fallback=geta}% +} +\DeclareOption{fallback-delete}{% + \pxjahypersetup{fallback=delete}% +} +\DeclareOption{force-unicode}{% + \let\pxhy@force@unicode=t +} +\DeclareOption{disable-Ux}{% for debug + \let\pxhy@disable@Ux=t +} +%% key-value options +\DeclareOption*{% + \expandafter\pxjahypersetup\expandafter{\CurrentOption}% +} +% 'fallback=geta|delete' +\pxhy@fallback@getatrue +\define@key{\pxhy@pkgname}{fallback}{% + \pxhy@handle@key{fallback}{#1}{kv@fallback@@#1}% +} +\let\pxhy@kv@fallback@@geta\pxhy@fallback@getatrue +\let\pxhy@kv@fallback@@delete\pxhy@fallback@getafalse +% 'extjis=<bool>' +\pxhy@extjis@usetrue +\define@key{\pxhy@pkgname}{extjis}[true]{% + \pxhy@handle@key{extjis}{#1}{extjis@use#1}% +} +% 'ajhankaku-chars=<bool>' +\define@key{\pxhy@pkgname}{ajhankaku-chars}[true]{% + \pxhy@handle@key{ajhankaku-chars}{#1}{ajhankaku@chars#1}% +} +%% dispatch +\ExecuteOptions{% + resetdvidriver,tounicode,papersize,charcmds,jacommentline,% + disablecmds,otfutf,otfcid% +} +\ProcessOptions* + +%--------------------------------------- Environment check + +%% The hyperref package must be loaded in advance. +\@ifpackageloaded{hyperref}{}{%else + \pxhy@error{Package 'hyperref' is not yet loaded} + {\pxhy@eh@fatal}% + \endinput +} + +%% Check for the hyperref option 'unicode'. +\expandafter\ifx\csname ifHy@unicode\expandafter\endcsname + \csname iftrue\endcsname + \pxhy@hy@unicodetrue +\fi +\AtBeginDocument{% + \@tempswafalse + \expandafter\ifx\csname ifHy@unicode\expandafter\endcsname + \csname iftrue\endcsname + \@tempswatrue + \fi + \ifnum0\ifpxhy@hy@unicode1\fi\if@tempswa1\fi=1 + \PackageError\pxhy@pkgname + {You must not change the encoding setting of hyperref\MessageBreak + (e.g. 'unicode') after pxjahyper is loaded}% + {\@ehc}% + \fi +} + +%% Check hyperref driver. +\ifx\pxhy@driver\@undefined + \let\pxhy@driver\pxhy@driver@none + \def\pxhy@tmpa{hdvipdfm} + \ifx\Hy@driver\pxhy@tmpa + \let\pxhy@driver\pxhy@driver@dvipdfmx + \fi + \def\pxhy@tmpa{hdvips} + \ifx\Hy@driver\pxhy@tmpa + \let\pxhy@driver\pxhy@driver@dvips + \fi + \ifnum\pxhy@driver=\pxhy@driver@none \ifx\Hy@driver\@undefined\else + \PackageWarningNoLine\pxhy@pkgname + {Unknown hyperref driver: \Hy@driver} + \fi\fi +\fi + +%% Check the engine. +\@onlypreamble\pxhy@check +\def\pxhy@check#1#2{% + \edef\pxhy@tmpa{\string#1}% + \edef\pxhy@tmpb{\meaning#1}% + \ifx\pxhy@tmpa\pxhy@tmpb #2\fi +} +\pxhy@check\eTeXversion{% + \pxhy@etextrue + \IfFileExists{etoolbox.sty}{\pxhy@etoolboxtrue}{}% +} +\pxhy@check\kanjiskip{% + \pxhy@ptextrue + \pxhy@check\ucs{% + \pxhy@check\ptexversion{\pxhy@uptextrue} + \pxhy@check\kchardef{\pxhy@uptextrue} + \ifpxhy@uptex\else % upTeX v<0.10 + \pxhy@error{This upTeX engine is too old} + {\pxhy@eh@fatal} + \endinput + \fi % only upTeX in Unicode is seen as upTeX + \ifnum\ucs"3000="3000 \else \pxhy@uptexfalse \fi + } +} +\ifpxhy@ptex\else + \pxhy@error{Unknown engine used}% + {\pxhy@eh@fatal} + \expandafter\endinput +\fi + +%% pxhy@Uchar@avail switch +\pxhy@check\Uchar{\pxhy@Uchar@availtrue} +%% pxhy@ucs@avail switch +\pxhy@check\ucs{\pxhy@ucs@availtrue} + +%% pxhy@extjis@map switch +% Note that 'tounicode' is necessary. +\ifpxhy@etex \ifpxhy@uptex\else \ifpxhy@tounicode + \pxhy@extjis@maptrue +\fi\fi\fi + +%% Check the document class. +% jlreq +\ifpxhy@etex + \ifx\jlreqsetup\@undefined\else \pxhy@jlreq@clstrue \fi +\fi +% jsclasses +\@ifclassloaded{jsarticle}{\def\pxhy@jsclasses@name{jsarticle}}{} +\@ifclassloaded{jsbook}{\def\pxhy@jsclasses@name{jsbook}}{} +\ifx\bxjs@clsname\@undefined\else \let\pxhy@jsclasses@name\relax \fi +\ifx\jsc@clsname\@undefined\else \let\pxhy@jsclasses@name\jsc@clsname \fi + +%% Check for the new hook system. +\@ifl@t@r\fmtversion{2021/11/15}{% + \chardef\pxhy@hook@system=2 +}{\@ifl@t@r\fmtversion{2020/02/02}{% + \chardef\pxhy@hook@system=1 +}{}} + +%% adjustment +% bigcode cannot be used without upTeX. +\ifpxhy@bigcode \ifpxhy@uptex\else + \pxhy@bigcodefalse + \ifx t\pxhy@bigcode@given + \PackageWarningNoLine\pxhy@pkgname + {bigcode is invalid without upTeX} + \fi +\fi\fi +%% pxhy@uniescape switch +\ifnum\pxhy@driver=\pxhy@driver@dvips \ifx t\pxhy@nouniescape@given\else + \pxhy@uniescapetrue +\fi\fi + +% hyperref 'unicode' is allowed only on upLaTeX. +\ifnum0\ifpxhy@hy@unicode\ifpxhy@uptex\else + \ifx t\pxhy@force@unicode\else1\fi\fi\fi>\z@ + \PackageWarningNoLine\pxhy@pkgname + {The support for the hyperref 'unicode' mode\MessageBreak + on the pTeX engine is currently experimental}% +\fi +\ifpxhy@hy@unicode + \pxhy@uniescapefalse + %\pxhy@otfutftrue +\fi +% otfcid requrires otfutf. +\ifpxhy@otfutf \else \ifpxhy@otfcid + \PackageInfo\pxhy@pkgname + {Option 'nootfcid' is assumed\MessageBreak + because 'nootfutf' is effective\@gobble} + \pxhy@otfcidfalse +\fi\fi +% otfmacros requrires otfcid. +\ifpxhy@otfcid \else \ifpxhy@otfmacros + \PackageInfo\pxhy@pkgname + {Option 'nootfmacros' is assumed\MessageBreak + because 'nootfcid' is effective\@gobble} + \pxhy@otfmacrosfalse +\fi\fi + +%% in nodvidriver mode +\ifnum\pxhy@driver=\pxhy@driver@none + \pxhy@papersizefalse + \pxhy@charcmdsfalse +\fi + +\bxDebug{****pxjahyper env^^J% +pxhy@ptex = \ifpxhy@ptex true\else false\fi^^J% +pxhy@uptex = \ifpxhy@uptex true\else false\fi^^J% +pxhy@etex = \ifpxhy@etex true\else false\fi^^J% +pxhy@etoolbox = \ifpxhy@etoolbox true\else false\fi^^J% +pxhy@hook@system = \the\pxhy@hook@system^^J% +pxhy@tounicode = \ifpxhy@tounicode true\else false\fi^^J% +pxhy@uniescape = \ifpxhy@uniescape true\else false\fi^^J% +pxhy@bigcode = \ifpxhy@bigcode true\else false\fi^^J% +pxhy@papersize = \ifpxhy@papersize true\else false\fi^^J% +pxhy@charcmds = \ifpxhy@charcmds true\else false\fi^^J% +pxhy@driver = \the\pxhy@driver^^J% +ifpxhy@hy@unicode = \ifpxhy@hy@unicode true\else false\fi^^J% +pxhy@jacommentline = \ifpxhy@jacommentline true\else false\fi^^J% +pxhy@disablecmds = \ifpxhy@disablecmds true\else false\fi^^J% +pxhy@otfutf = \ifpxhy@otfutf true\else false\fi^^J% +pxhy@otfcid = \ifpxhy@otfcid true\else false\fi^^J% +pxhy@otfmacros = \ifpxhy@otfmacros true\else false\fi^^J% +pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J% +} + +%--------------------------------------- Helpers + +%% unique tokens +\def\pxhy@end{\pxhy@end@} +\def\pxhy@mt{\pxhy@mt@} +\let\pxhy@mk\indent % unexpandable + +%% \pxhy@begin@dvi@hook{<text>} +\ifnum\pxhy@hook@system>0 + \def\pxhy@begin@dvi@hook#1{% + \AddToHook{shipout/firstpage}{#1}% + } + \DeclareHookRule{shipout/firstpage}{.}{>}{hyperref} +\else + \RequirePackage{atbegshi}[2011/10/05]% v1.16 + \def\pxhy@begin@dvi@hook#1{% + \AtBeginShipoutFirst{#1}% + } +\fi + +%% \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{#1}% + \kansujichar\@ne=#1\relax + \xdef\pxhy@jchar{\kansuji\@ne}% + \endgroup +} + +%% \pxhy@let@jchar@jc\CS{<jis-code>} +\def\pxhy@let@jchar@jc#1#2{% + \pxhy@get@jchar{\jis"#2}% + \let#1\pxhy@jchar +} + +%% \pxhy@forcecjktoken{<code>} +\ifpxhy@uptex + \ifx\forcecjktoken\@undefined + \def\pxhy@forcecjktoken#1{\kcatcode#1=18 } + \else \def\pxhy@forcecjktoken#1{\forcecjktoken} + \fi +\else + \def\pxhy@forcecjktoken#1{\relax} +\fi + +%% \pxhy@geta : GETA MARK +\pxhy@get@jchar{\jis"222E} +\let\pxhy@geta\pxhy@jchar + +%% \pxhy@print@geta +\def\pxhy@print@geta{% + \ifpxhy@fallback@geta \pxhy@geta \fi +} + +%% \pxhy@hook@after@package{<package-name>}{<code>} +\@onlypreamble\pxhy@hook@after@package +\def\pxhy@hook@after@package#1#2{% + \ifcase\pxhy@hook@system + \AtBeginDocument{% + \@ifpackageloaded{#1}{#2}{}% + }% + \or + \@ifpackageloaded{#1}{#2}{% + \AddToHook{package/after/#1}{#2}% + }% + \or + \@ifpackageloaded{#1}{#2}{% + \AddToHook{package/#1/after}{#2}% + }% + \fi +} + +%% \pxhy@triexpandafter +\def\pxhy@triexpandafter{% + \expandafter\expandafter\expandafter +} + +%% \pxhy@csletcs{<csname1>}{<csname2>} +\def\pxhy@csletcs#1#2{% + \expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname +} + +%% \pxhy@cond\ifXXX<arg>\fi{<true>}{<false>} +% Does the test "\ifXXX<arg>", with immediate exit from the +% induced if-level. +\@gobbletwo\if\if \def\pxhy@cond#1\fi{% + #1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi +} + +%--------------------------------------- Helpers (e-TeX) +\ifpxhy@etex + +%% packages +\ifpxhy@etoolbox + \RequirePackage{etoolbox}[2011/01/03]%v2.1 +\fi + +%% \pxhy@if@star{<varient>}{<normal>} +% Expands to <varient> if followed by *, otherwise to <normal>. +\def\pxhy@if@star#1#2#3{% #3=next-arg + \expandafter\pxhy@if@star@a\expandafter @\detokenize{#3}@% + {#1}@*@{#2{#3}}\pxhy@mk +} +\def\pxhy@if@star@a#1@*@#2#3\pxhy@mk{#2} + +%% \pxhy@if@opt{<true>}{<false>} +% Expands to <true>{<opt>} if followed by [<opt>], otherwise to <false>. +\def\pxhy@if@opt#1#2#3{% #3=next-arg + \expandafter\pxhy@if@opt@a\expandafter @\detokenize{#3}@% + {\pxhy@if@opt@b{#1}}@[@{#2{#3}}\pxhy@mk%] +} +\def\pxhy@if@opt@a#1@[@#2#3\pxhy@mk{#2} +\def\pxhy@if@opt@b#1#2]{#1{#2}} + +%% \pxhy@xdetokenize{<text>} +\let\pxhy@xdetokenize\detokenize +\pxhy@check\expanded{% + \def\pxhy@xdetokenize#1{\detokenize\expandafter{\expanded{#1}}}% +} + +\fi +%--------------------------------------- Load bxjatoucs + +%% \pxhy@bxjatoucs@failure +% Holds the reason message if bxjatoucs is unavailable; +% otherwise equals to \relax. +\@onlypreamble\pxhy@bxjatoucs@failure +\let\pxhy@bxjatoucs@failure\relax + +%% \pxhy@try@load@bxjatoucs +% Tries to load bxjatoucs. If that fails, then it sets the reason +% message to \pxhy@bxjatoucs@failure. +\@onlypreamble\pxhy@try@load@bxjatoucs +\def\pxhy@try@load@bxjatoucs{% + \global\let\pxhy@try@load@bxjatoucs\relax + \ifpxhy@etoolbox + % load bxjatoucs in "check mode" + \IfFileExists{bxjatoucs.sty}{% + \let\bxjatoucsCheckAvail=t + \RequirePackage{bxjatoucs}[] + \undef\bxjatoucsCheckAvail + }{} + % and judge availability + \ifundef\bxjaCidToUcs{% + \def\pxhy@bxjatoucs@failure{% + package 'bxjatoucs' is unavailable% + }% + }{} + \else\ifpxhy@etex + \def\pxhy@bxjatoucs@failure{% + package 'etoolbox' is unavailable% + } + \else + \def\pxhy@bxjatoucs@failure{% + e-TeX extension is unavailable% + } + \fi\fi +} + +\@tempswafalse +\ifpxhy@uptex\else\ifpxhy@hy@unicode + \pxhy@try@load@bxjatoucs + \ifx\pxhy@bxjatoucs@failure\relax\else + \@tempswatrue + \fi +\fi\fi +\if@tempswa + \PackageError\pxhy@pkgname + {The hyperref 'unicode' mode is not supported\MessageBreak + because \pxhy@bxjatoucs@failure}% + {\pxhy@eh@fatal}% + \expandafter\endinput +\fi + +%--------------------------------------- Output 'tounicode' special +\ifpxhy@tounicode + + \ifnum\pxhy@driver=\pxhy@driver@dvipdfmx %<*dvipdfmx> + %% dvipdfmx + \RequirePackage{pxjahyper-enc}[]% + \ifpxhy@bigcode\else \suppressbigcode \fi + \fi %</dvipdfmx> + +\fi +%--------------------------------------- Papersize special adjustment +\ifpxhy@papersize %<*papersize> + +% 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' lengths.) 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 + \edef\pxhy@tmpa{% + \noexpand\pxhy@begin@dvi@hook{% + \special{papersize=\the\paperwidth,\the\paperheight}}% + }\pxhy@tmpa + \endgroup + \fi\fi + \fi +\fi + +\fi %</papersize> +%--------------------------------------- Code input processor + +%% constants +\def\pxhy@uc@REPL{FFFD} +\def\pxhy@uc@XNAC{FDD1} % not-a-char codepoint used as marker + +%% switch 'pxhy@utfXVI' +% Whether or not to convert to UTF-16. +\newif\ifpxhy@utfXVI + +%% Generate tables +% - \pxhy@qh/XY -> Z ; \pxhy@hq/Z -> XY +% means XY (base-4) = Z (base-16) +% - \pxhy@lhq/ZW -> XY +% ZW (base-16) - 1 = XY (base-4) +% - \pxhy@hd/X +% uppercase of X if X is a (lower/uppercase) hexadecimal +% digit; otherwise undefined +\def\pxhy@next#1#2#3#4#5{% + \@namedef{pxhy@qh/#1#2}{#3}% + \@namedef{pxhy@hq/#3}{#1#2}% + \@namedef{pxhy@lhq/#4#5}{#1#2}% +} +\@for\pxhy@tmpa:={% + 00001,01102,02203,03304,10405,11506,12607,13708,% + 20809,2190A,22A0B,23B0C,30C0D,31D0E,32E0F,33F10}\do{% + \expandafter\pxhy@next\pxhy@tmpa +} +\def\pxhy@next#1{% + \lowercase{\def\pxhy@tmpb{#1}}% + \@namedef{pxhy@hd/#1}{#1}% + \@namedef{pxhy@hd/\pxhy@tmpb}{#1}% +} +\@tfor\pxhy@tmpa:=0123456789ABCDEF\do{% + \expandafter\pxhy@next\pxhy@tmpa +} + +%% \pxhy@burst-`>... +\let\pxhy@burst\romannumeral + +%% \pxhy@uchex{<hex>} +% "Distills" the code-value input. If the input is a hex notation of +% a valid code point of Unicode, then it passes the value to +% \pxhy@uchex@out in zero-padded 4-6 digits; otherwise passes FFFD +% to \pxhy@uchex@out. +% Moreover, when the switch pxhy@utfXVI is true, then conversion into +% UTF-16 is performed and each unit is passed to \pxhy@uchex@out +% in zero-padded 4 digits. +\def\pxhy@uchex#1{% + \pxhy@uchex@pre@a#1\relax{}\pxhy@mk\pxhy@end +} +\def\pxhy@uchex@pre@a{% + \expandafter\pxhy@uchex@pre@b\pxhy@burst-`>% +} +\def\pxhy@uchex@pre@b#1#{% + \pxhy@cond \ifx\pxhy@mt#1\pxhy@mt \fi{% + \pxhy@uchex@bombout + }{%else + \pxhy@uchex@pre@c#1% + }% +} +\def\pxhy@uchex@pre@c#1{% + \pxhy@cond \ifx#1\relax \fi{% + \pxhy@uchex@pre@end + }{%else + \pxhy@triexpandafter\pxhy@uchex@pre@d + \csname pxhy@hd/\string#1\endcsname + }% +} +\def\pxhy@uchex@pre@d#1{% + \pxhy@cond \ifx#1\relax \fi{% + \pxhy@uchex@bombout + }{%else + \pxhy@uchex@pre@e#1% + }% +} +\def\pxhy@uchex@pre@e#1#2\pxhy@mk#3\pxhy@end{% + \pxhy@cond \if 0#1\fi{% + \pxhy@cond \ifx\pxhy@mt#3\pxhy@mt \fi{% + \pxhy@uchex@pre@a#2\pxhy@mk#3\pxhy@end + }{%else + \pxhy@uchex@pre@a#2\pxhy@mk#3#1\pxhy@end + }% + }{%else + \pxhy@uchex@pre@a#2\pxhy@mk#3#1\pxhy@end + }% +} +\def\pxhy@uchex@pre@end#1\pxhy@mk#2\pxhy@end{% + \pxhy@cond \ifx\pxhy@mt#1\pxhy@mt \fi{% + \pxhy@uchex@sw{#2}% + }{%else + \pxhy@uchex@error + }% +} +\def\pxhy@uchex@bombout#1\pxhy@end{% + \pxhy@uchex@error +} + +\def\pxhy@uchex@sw#1{% + \pxhy@cond \ifnum"0#1>"10FFFF \fi{% + \pxhy@uchex@error + }{\pxhy@cond \ifnum"0#1>"FFFF \fi{% + \pxhy@cond \ifpxhy@utfXVI \fi{% + \pxhy@uchex@big#1"000000\pxhy@end + }{%else + \pxhy@uchex@out{#1}% + }% + }{%else + \pxhy@uchex@small#1"0000\pxhy@end + }}% +} +\def\pxhy@uchex@small#1#2#3#4#5#6\pxhy@end{% + \pxhy@uchex@small@a#1#2#3#4#5\pxhy@end +} +\def\pxhy@uchex@small@a#1"#2\pxhy@end{% + \pxhy@uchex@out{#2#1}% +} +\def\pxhy@uchex@big#1#2#3#4#5#6#7#8\pxhy@end{% + \pxhy@uchex@big@a#1#2#3#4#5#6#7\pxhy@end +} +\def\pxhy@uchex@big@a#1"#2\pxhy@end{% + \pxhy@uchex@big@b#2#1\pxhy@end +} +\def\pxhy@uchex@big@b#1#2#3#4{% + \pxhy@triexpandafter\pxhy@uchex@big@c + \csname pxhy@lhq/#1#2\pxhy@triexpandafter\endcsname + \csname pxhy@hq/#3\pxhy@triexpandafter\endcsname + \csname pxhy@hq/#4\endcsname +} +\def\pxhy@uchex@big@c#1#2#3#4#5#6{% + \pxhy@triexpandafter\pxhy@uchex@big@d + \csname pxhy@qh/2#1\pxhy@triexpandafter\endcsname + \csname pxhy@qh/#2#3\pxhy@triexpandafter\endcsname + \csname pxhy@qh/#4#5\pxhy@triexpandafter\endcsname + \csname pxhy@qh/3#6\endcsname +} +\def\pxhy@uchex@big@d#1#2#3#4#5\pxhy@end{% + \pxhy@uchex@out{D#1#2#3}% + \pxhy@uchex@out{D#4#5}% +} +\edef\pxhy@uchex@error{% + \noexpand\pxhy@uchex@out{\pxhy@uc@REPL}% +} + +%--------------------------------------- Hooks to pdfstringdef + +%% variables +\let\pxhy@str\relax + +%% \pxhy@Ux +% The definition of \Ux in PDF strings. +\let\pxhy@Ux\@undefined + +\ifpxhy@hy@unicode %<*unicode> + + %% \pxhy@Ux + \def\pxhy@Ux{\pxhy@uchex}% + \pxhy@utfXVIfalse + \def\pxhy@uchex@out#1{% + \unichar{"#1}% + } + +\else\ifpxhy@Uchar@avail %<*Uchar> + \ifpxhy@uptex + + %% \pxhy@Ux + \def\pxhy@Ux{\pxhy@uchex} + \pxhy@utfXVIfalse + \def\pxhy@uchex@out#1{\Uchar"#1 } + + \else\ifpxhy@ucs@avail + + %% \pxhy@Ux + \def\pxhy@Ux{\pxhy@uchex} + \pxhy@utfXVIfalse + \def\pxhy@uchex@out#1{% + \expandafter\pxhy@uchex@out@a\ucs"#1\pxhy@mk{#1}% + } + \chardef\pxhy@max@asc="7F + \def\pxhy@uchex@out@a#1\pxhy@mk#2{% + \ifnum#1<\z@ + \ifnum"#2>\pxhy@max@asc + \ifpxhy@extjis@use + \expandafter\pxhy@uchex@out@b\csname + pxhy@uc/\number"#2\endcsname{#2}% + \else \pxhy@uchex@out@b\relax{#2}% + \fi + \else \Uchar"#2 + \fi + \else \Uchar#1 + \fi + } + \def\pxhy@uchex@out@b#1#2{% + \ifx#1\relax + \@nameuse{U+#2}% + \pxhy@print@geta + \else #1% + \fi + } + + \fi\fi +\else\ifpxhy@uptex %<*upTeX> + + %% \pxhy@Ux + \def\pxhy@Ux{\pxhy@uchex}% + \pxhy@utfXVIfalse + + %% \pxhy@marker: a not-a-char U+FDD1 + \pxhy@get@jchar{\ucs"\pxhy@uc@XNAC} + \edef\pxhy@marker{\pxhy@jchar} + + %BEGIN-- in the following block #1 means the marker + \def\pxhy@next#1{% #1=marker + %% \pxhy@uchex@out + % Expands to a tag string which will later be converted to + % a real character in the postprocess. + \def\pxhy@uchex@out##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@mt##2\pxhy@mt + \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@mt##2\pxhy@mt + \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-- + +\fi\fi\fi %</> + +\AtEndOfPackage{% +\ifx\pxhy@posthook\@undefined\else + \bxDebug{add to \string\pdfstringdefPostHook}% + % 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 +\fi +} + +\ifpxhy@uniescape %<*uniescape> + + \let\pxhy@posthook\@undefined + %% \pxhy@Ux + \def\pxhy@Ux{\pxhy@uchex}% + % \pxhy@uchex converts to UTF-16 + \pxhy@utfXVItrue + \def\pxhy@uchex@out#1{% + % Expands to \0x form. + \0x#1% + } + +\fi %</uniescape> + +%% 'disable-Ux' (for debug) +\ifx t\pxhy@disable@Ux + \let\pxhy@Ux\@undefined + \let\pxhy@posthook\@undefined +\fi + +%% Makes \Ux be the code input command in PDF strings. +\ifx\pxhy@Ux\@undefined\else + \pdfstringdefDisableCommands{% + \let\Ux\pxhy@Ux + % bxbase + \let\bxUx\pxhy@Ux + \let\bxUI\pxhy@Ux + } +\fi + +%% \pxhy@let@jchar@uc\CS{<num>} +\ifx\pxhy@Ux\@undefined + \def\pxhy@let@jchar@uc#1#2{% + \let#1\noindent % issue a warning + } +\else + \def\pxhy@let@jchar@uc#1#2{% + \def#1{\pxhy@Ux{#2}}% + } +\fi + +%--------------------------------------- Fix for high-byte protection +\ifpxhy@etex +\begingroup +% Check for high-byte protection. +\catcode"EF=\active \catcode`\^=7 +\global\let\pxhy@std@EF=^^ef +\def\pxhy@next#1 #2\pxhy@end{% + \@tempswafalse + \def\pxhy@tmpa{#1}\edef\pxhy@tmpb{\string\protected}% + \ifx\pxhy@tmpa\pxhy@tmpb \@tempswatrue \fi +}\expandafter\pxhy@next\meaning\pxhy@std@EF. \pxhy@end +% Add a hook if protected. +\if@tempswa + + %% \pxhy@unprotect@high@bytes + \let\pxhy@unprotect@high@bytes\@empty + \def\pxhy@next#1#2{% + \expandafter\gdef\expandafter#1\expandafter{#2}% + \edef\pxhy@unprotect@high@bytes{% + \unexpanded\expandafter{\pxhy@unprotect@high@bytes}% + \unexpanded{\let#2#1}}% + \advance\@tempcnta\@ne + } + \@tempcnta="C2 + \@whilenum{\@tempcnta<"F5}\do{% + \lccode"EF=\@tempcnta + \lowercase{\expandafter\pxhy@next\csname + pxhy@uhb/\string^^ef\endcsname^^ef}% + } + \xdef\pxhy@unprotect@high@bytes{% + \unexpanded{\ifx^^ef\pxhy@std@EF}% + \unexpanded\expandafter{\pxhy@unprotect@high@bytes}% + \unexpanded{\fi}% + } + \ltx@GlobalPrependToMacro\pdfstringdefPreHook{\pxhy@unprotect@high@bytes} + +\fi +\endgroup +\fi +%--------------------------------------- Support for 'otfutf' +\ifpxhy@otfutf + +%% \pxhy@UTF +% The definition of \UTF in PDF strings. +\ifx\pxhy@Ux\@undefined + % Use a fallback definition. + \def\pxhy@UTF{\pxhy@uchex} + \pxhy@utfXVIfalse + \def\pxhy@uchex@out#1{% + \@nameuse{U+#1}% issue a warning + \pxhy@print@geta + } +\else + \let\pxhy@UTF\pxhy@Ux +\fi + +%% \pxhy@dispatch@otfutf +\@onlypreamble\pxhy@dispatch@otfutf +\def\pxhy@dispatch@otfutf{% + \global\let\pxhy@dispatch@otfutf\relax + \pdfstringdefDisableCommands{% + \let\UTF\pxhy@UTF + \let\UTFM\pxhy@UTF + \let\UTFK\pxhy@UTF + \let\UTFC\pxhy@UTF + \let\UTFT\pxhy@UTF + % pxbabel + \let\pxUTFJ\pxhy@UTF + } +} + +%% enable hooks +\pxhy@hook@after@package{otf}{\pxhy@dispatch@otfutf} + +\fi +%--------------------------------------- Support for 'otfcid' +\ifpxhy@otfcid + +%% packages +\pxhy@try@load@bxjatoucs + +%% annihilate the ajmacros's own pdfstring process +\ifpxhy@otfmacros\ifx\pxhy@bxjatoucs@failure\relax + \let\ajRedefine@ajCommands\relax +\fi\fi + +%% \pxhy@CID{<cid>} +\def\pxhy@CID#1{% + \expandafter\expandafter\expandafter\pxhy@cid@aux + \bxjaCidToUcsHex{#1}\pxhy@mk{\pxhy@xdetokenize{#1}}% +} +%% \pxhy@fast@CID{<cid>} +\def\pxhy@fast@CID#1{% + \expandafter\expandafter\expandafter\pxhy@cid@aux + \bxjaFastCidToUcsHex{#1}\pxhy@mk{\number#1}% +} +\ifx\pxhy@Ux\@undefined + \def\pxhy@cid@aux#1\pxhy@mk#2{% + \@nameuse{CID+#2}% issue a warning + \pxhy@print@geta + } +\else +\def\pxhy@cid@aux#1\pxhy@mk#2{% + \ifnum"#1>\z@ + \pxhy@Ux{#1}% + \else + \@nameuse{CID+#2}% + \pxhy@print@geta + \fi +} +\fi + +%% \pxhy@dispatch@otfcid +\@onlypreamble\pxhy@dispatch@otfcid +\def\pxhy@dispatch@otfcid{% + \global\let\pxhy@dispatch@otfcid\relax + \ifx\pxhy@bxjatoucs@failure\relax % available! + \pdfstringdefDisableCommands{% + \let\CID\pxhy@CID + }% + \else + \PackageWarningNoLine\pxhy@pkgname + {Option 'otfcid'/'otfmacros' is disabled, because\MessageBreak + \pxhy@bxjatoucs@failure}% + \pxhy@otfcidfalse + \fi +} + +%% \pxhy@dispatch@otfmacros +\@onlypreamble\pxhy@dispatch@otfmacros +\def\pxhy@dispatch@otfmacros{% + \global\let\pxhy@dispatch@otfmacros\relax + \ifx\pxhy@bxjatoucs@failure\relax % available! + \let\ajRedefine@ajCommands\relax + \chardef\pxhy@tmp@orgcc=\catcode`\@ + \makeatletter + \InputIfFileExists{pxjahyper-ajm.def}{% + \PackageInfo\pxhy@pkgname + {Loaded 'pxjahyper-ajm.def'\@gobble}% + }{% + \PackageWarning\pxhy@pkgname + {File 'pxjahyper-ajm.def' not found\@gobble}% + }% + \catcode`\@=\pxhy@tmp@orgcc + \else \pxhy@otfmacrosfalse + \fi +} + +%% enable hooks +\pxhy@hook@after@package{otf}{\pxhy@dispatch@otfcid} +\ifpxhy@otfmacros + \pxhy@hook@after@package{ajmacros}{\pxhy@dispatch@otfmacros} +\fi + +\fi +%--------------------------------------- Extended JIS mapping +\ifpxhy@extjis@map %<*extjis-map> +\begingroup + +\def\pxhy@next#1#2#3#4{% + \@tempcnta"#1\relax\@tempcntb#3\relax + \chardef\pxhy@tmpa\numexpr#4+1\relax + \@whilenum{\@tempcntb<\pxhy@tmpa}\do{% + \expandafter\xdef\csname pxhy@uc/\the\@tempcnta\endcsname{% + \unexpanded{#2}\the\@tempcntb}% + \advance\@tempcnta\@ne \advance\@tempcntb\@ne}% +} + +%% add special mapping +\ifnum \jis"2121="8140 % sjis + \pxhy@next{2460}{\207\10}{0}{7} + \pxhy@next{2468}{\207\11}{0}{7} + \pxhy@next{2470}{\207\12}{0}{3} + \pxhy@next{2160}{\207\12}{4}{7} + \pxhy@next{2164}{\207\13}{0}{5} + \pxhy@next{3349}{\207\13}{7}{7} + \pxhy@next{3314}{\207\14}{0}{0} + \pxhy@next{3322}{\207\14}{1}{1} + \pxhy@next{334D}{\207\14}{2}{2} + \pxhy@next{3318}{\207\14}{3}{3} + \pxhy@next{3327}{\207\14}{4}{4} + \pxhy@next{3303}{\207\14}{5}{5} + \pxhy@next{3336}{\207\14}{6}{6} + \pxhy@next{3351}{\207\14}{7}{7} + \pxhy@next{3357}{\207\15}{0}{0} + \pxhy@next{330D}{\207\15}{1}{1} + \pxhy@next{3326}{\207\15}{2}{2} + \pxhy@next{3323}{\207\15}{3}{3} + \pxhy@next{332B}{\207\15}{4}{4} + \pxhy@next{334A}{\207\15}{5}{5} + \pxhy@next{333B}{\207\15}{6}{6} + \pxhy@next{339C}{\207\15}{7}{7} + \pxhy@next{339D}{\207\16}{0}{1} + \pxhy@next{338E}{\207\16}{2}{3} + \pxhy@next{33C4}{\207\16}{4}{4} + \pxhy@next{33A1}{\207\16}{5}{5} + \pxhy@next{337B}{\207\17}{6}{6} + \pxhy@next{301D}{\207\20}{0}{0} + \pxhy@next{301F}{\207\20}{1}{1} + \pxhy@next{2116}{\207\20}{2}{2} + \pxhy@next{33CD}{\207\20}{3}{3} + \pxhy@next{2121}{\207\20}{4}{4} + \pxhy@next{32A4}{\207\20}{5}{7} + \pxhy@next{32A7}{\207\21}{0}{1} + \pxhy@next{3231}{\207\21}{2}{3} + \pxhy@next{3239}{\207\21}{4}{4} + \pxhy@next{337E}{\207\21}{5}{5} + \pxhy@next{337D}{\207\21}{6}{6} + \pxhy@next{337C}{\207\21}{7}{7} + \pxhy@next{222E}{\207\22}{3}{3} + \pxhy@next{2211}{\207\22}{4}{4} + \pxhy@next{221F}{\207\23}{0}{0} + \pxhy@next{22BF}{\207\23}{1}{1} + \pxhy@next{FF61}{\24}{1}{7} + \pxhy@next{FF68}{\25}{0}{7} + \pxhy@next{FF70}{\26}{0}{7} + \pxhy@next{FF78}{\27}{0}{7} + \pxhy@next{FF80}{\30}{0}{7} + \pxhy@next{FF88}{\31}{0}{7} + \pxhy@next{FF90}{\32}{0}{7} + \pxhy@next{FF98}{\33}{0}{7} +\else\ifnum\jis"2121="A1A1 % euc + \pxhy@next{FF61}{\216\24}{1}{7} + \pxhy@next{FF68}{\216\25}{0}{7} + \pxhy@next{FF70}{\216\26}{0}{7} + \pxhy@next{FF78}{\216\27}{0}{7} + \pxhy@next{FF80}{\216\30}{0}{7} + \pxhy@next{FF88}{\216\31}{0}{7} + \pxhy@next{FF90}{\216\32}{0}{7} + \pxhy@next{FF98}{\216\33}{0}{7} +\fi\fi + +%% \pxhy@hkcdot +\global\pxhy@csletcs{pxhy@hkcdot}{pxhy@uc/\number"FF65} + +\endgroup +\fi %</extjis-map> +%--------------------------------------- Redefine text commands for PD1 +\ifpxhy@charcmds %<*charcmds> + +%% \pxhy@cc@jis@only +\chardef\pxhy@cc@jis@only=0 +%% \pxhy@pdfenc +\edef\pxhy@pdfenc{% + \ifpxhy@hy@unicode PU\else PD1\fi +} + +%%<+> \pxDeclarePdfTextCommand{\CS}{<jis>}{<ucs>} +\@onlypreamble\pxDeclarePdfTextCommand +\newcommand*\pxDeclarePdfTextCommand[3]{% + \pxhy@decl@pdf@tc{#2}{#3}% + {\DeclareTextCommand{#1}{\pxhy@pdfenc}}% + {\pxhy@revoke@pdf@tc{#1}}% +} + +%%<+> \pxDeclarePdfTextComposite{\CS}{<arg>}{<jis>}{<ucs>} +\@onlypreamble\pxDeclarePdfTextComposite +\newcommand*\pxDeclarePdfTextComposite[4]{% + \pxhy@decl@pdf@tc{#3}{#4}% + {\DeclareTextCompositeCommand{#1}{\pxhy@pdfenc}{#2}}% + {\pxhy@revoke@pdf@tcc{#1}{#2}}% +} + +%% \pxhy@revoke@pdf@tc +\@onlypreamble\pxhy@revoke@pdf@tc +\def\pxhy@revoke@pdf@tc#1{% + \expandafter\let\csname\pxhy@pdfenc\string#1\endcsname\@undefined + \pxhy@make@txtcmd\pxhy@tmpa{\pxhy@pdfenc}#1% + \ifx#1\pxhy@tmpa + \pxhy@make@txtcmd#1?#1% + \fi +} +\@onlypreamble\pxhy@make@txtcmd +\def\pxhy@make@txtcmd#1#2#3{% + \expandafter\def\expandafter#1\expandafter{% + \csname#2-cmd\expandafter\endcsname\expandafter#3% + \csname#2\string#3\endcsname + }% +} + +%% \pxhy@revoke@pdf@tcc +\@onlypreamble\pxhy@revoke@pdf@tc +\def\pxhy@revoke@pdf@tcc#1#2{% + \expandafter\let\csname\@backslashchar\pxhy@pdfenc + \string#1-\string#2\endcsname\@undefined +} + +%% \pxhy@decl@pdf@tc +\@onlypreamble\pxhy@decl@pdf@tc +\def\pxhy@decl@pdf@tc#1#2{% + \edef\pxhy@next{{#1}{\ifx\pxhy@mt#2\pxhy@mt FFFD\else#2\fi}}% + \expandafter\pxhy@get@body\pxhy@next + \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\ifpxhy@hy@unicode %<*unicode> + \def\pxhy@get@body#1#2{% + \def\pxhy@body{\unichar{"#2}}% + }% +\else\ifpxhy@uniescape %<*uniescape> + \def\pxhy@get@body#1#2{% + \ifx\pxhy@mt#1\pxhy@mt + \def\pxhy@body{\0x#2}% + \else + \pxhy@get@jchar{\jis"#1}% + \let\pxhy@body\pxhy@jchar + \fi + }% +\else %<*!> + \chardef\pxhy@cc@jis@only=1 + \def\pxhy@get@body#1#2{% + \ifx\pxhy@mt#1\pxhy@mt + \let\pxhy@body\@undefined + \else + \pxhy@get@jchar{\jis"#1}% + \let\pxhy@body\pxhy@jchar + \fi + }% +\fi\fi\fi %</> + +%%%%%%%%%%%%%%%%%%%% the definitions +\ifpxhy@hy@unicode %<*unicode> + +% The PU encoding has already done the job. +% I supplement some definitions. +\def\pxhy@next#1#2{% + \expandafter\ifx\csname PU\string#1\endcsname\relax + \DeclareTextCommand{#1}{PU}{#2}\fi} +\pxhy@next{\guillemetleft}{\80\253}%00AB +\pxhy@next{\guillemetright}{\80\273}%00BB +\pxhy@next{\textborn}{\9046\005}%2605 +\pxhy@next{\textfinalsigma}{\83\302}%03C2 +\pxhy@next{\textxgeq}{\9042\145}%2265 +\pxhy@next{\textxleq}{\9042\144}%2264 + +\else %<!*unicode> + +% 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}% needed? +\DeclareTextCommand{\ij}{PD1}{ij}% needed? +\DeclareTextCommand{\textspace}{PD1}{\040} +\DeclareTextCommand{\textquotesingle}{PD1}{\047} +\DeclareTextCommand{\textasteriskcentered}{PD1}{*} +\DeclareTextCommand{\textanoteleia}{PD1}{\textperiodcentered} +\DeclareTextCommand{\texterotimatiko}{PD1}{;} + +%% Some adjustments on accents. +\DeclareTextAccent{\H}{PD1}{\texthungarumlaut} +\DeclareTextCompositeCommand{\H}{PD1}{\@empty}{\texthungarumlaut} +\DeclareTextCompositeCommand{\H}{PD1}{\ }{\texthungarumlaut} +\DeclareTextAccent{\u}{PD1}{\textasciibreve} +\DeclareTextCompositeCommand{\u}{PD1}{\@empty}{\textasciibreve} +\DeclareTextCompositeCommand{\u}{PD1}{\ }{\textasciibreve} +\DeclareTextAccent{\U}{PD1}{\textasciibreve} +\DeclareTextCompositeCommand{\U}{PD1}{\@empty}{\textasciibreve} +\DeclareTextCompositeCommand{\U}{PD1}{\ }{\textasciibreve} +\DeclareTextAccent{\k}{PD1}{\textogonek} +\DeclareTextCompositeCommand{\k}{PD1}{\@empty}{\textogonek} +\DeclareTextCompositeCommand{\k}{PD1}{\ }{\textogonek} + +%%[A] The characters in PdfDocEncoding (except ASCII). +\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}{216F}{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} +\pxDeclarePdfTextCommand{\textcelsius}{216E}{2103} +%% + +%%[B] Aliases to [A]. +\pxDeclarePdfTextCommand{\textflqq}{}{00AB} +\pxDeclarePdfTextCommand{\textneg}{224C}{00AC} +\pxDeclarePdfTextCommand{\textpm}{215E}{00B1} +\pxDeclarePdfTextCommand{\textcdot}{}{00B7} +\pxDeclarePdfTextCommand{\textfrqq}{}{00BB} +\pxDeclarePdfTextCommand{\texttimes}{215F}{00D7} +\pxDeclarePdfTextCommand{\textdiv}{2160}{00F7} +\pxDeclarePdfTextCommand{\textgrq}{2146}{2018} +\pxDeclarePdfTextCommand{\textglq}{}{201A} +\pxDeclarePdfTextCommand{\textgrqq}{2148}{201C} +\pxDeclarePdfTextCommand{\textglqq}{}{201E} +\pxDeclarePdfTextCommand{\textflq}{}{2039} +\pxDeclarePdfTextCommand{\textfrq}{}{203A} +\pxDeclarePdfTextCommand{\guillemetleft}{}{00AB} +\pxDeclarePdfTextCommand{\guillemetright}{}{00BB} +%% + +%%[C] The characters that are included both in JIS X 0213 +% and some of the TeX encodings. +% Note: The entries marked with (*) involves non-standard mappings. +\pxDeclarePdfTextCommand{\textbardbl}{2142}{2016} +\pxDeclarePdfTextCommand{\textlangle}{2152}{3008}%(*)2329 +\pxDeclarePdfTextCommand{\textrangle}{2153}{3009}%(*)232A +\pxDeclarePdfTextCommand{\textxleq}{2165}{2266}%(*)2264 +\pxDeclarePdfTextCommand{\textxgeq}{2166}{2267}%(*)2265 +\pxDeclarePdfTextCommand{\textinfty}{2167}{221E} +\pxDeclarePdfTextCommand{\textborn}{217A}{2605} +\pxDeclarePdfTextCommand{\textreferencemark}{2228}{203B} +\pxDeclarePdfTextCommand{\textrightarrow}{222A}{2192} +\pxDeclarePdfTextCommand{\textleftarrow}{222B}{2190} +\pxDeclarePdfTextCommand{\textuparrow}{222C}{2191} +\pxDeclarePdfTextCommand{\textdownarrow}{222D}{2193} +\pxDeclarePdfTextCommand{\textsurd}{2265}{221A} +\pxDeclarePdfTextCommand{\textapprox}{}{2245} +\pxDeclarePdfTextCommand{\textmusicalnote}{2276}{266A} +\pxDeclarePdfTextCommand{\textbigcircle}{227E}{25EF} +\pxDeclarePdfTextCommand{\textopenbullet}{}{25E6} +\pxDeclarePdfTextCommand{\textell}{}{2113} +\pxDeclarePdfTextCommand{\textmho}{}{2127} +\pxDeclarePdfTextCommand{\textAlpha}{2621}{0391} +\pxDeclarePdfTextCommand{\textBeta}{2622}{0392} +\pxDeclarePdfTextCommand{\textGamma}{2623}{0393} +\pxDeclarePdfTextCommand{\textDelta}{2624}{0394} +\pxDeclarePdfTextCommand{\textEpsilon}{2625}{0395} +\pxDeclarePdfTextCommand{\textZeta}{2626}{0396} +\pxDeclarePdfTextCommand{\textEta}{2627}{0397} +\pxDeclarePdfTextCommand{\textTheta}{2628}{0398} +\pxDeclarePdfTextCommand{\textIota}{2629}{0399} +\pxDeclarePdfTextCommand{\textKappa}{262A}{039A} +\pxDeclarePdfTextCommand{\textLambda}{262B}{039B} +\pxDeclarePdfTextCommand{\textMu}{262C}{039C} +\pxDeclarePdfTextCommand{\textNu}{262D}{039D} +\pxDeclarePdfTextCommand{\textXi}{262E}{039E} +\pxDeclarePdfTextCommand{\textOmicron}{262F}{039F} +\pxDeclarePdfTextCommand{\textPi}{2630}{03A0} +\pxDeclarePdfTextCommand{\textRho}{2631}{03A1} +\pxDeclarePdfTextCommand{\textSigma}{2632}{03A3} +\pxDeclarePdfTextCommand{\textTau}{2633}{03A4} +\pxDeclarePdfTextCommand{\textUpsilon}{2634}{03A5} +\pxDeclarePdfTextCommand{\textPhi}{2635}{03A6} +\pxDeclarePdfTextCommand{\textChi}{2636}{03A7} +\pxDeclarePdfTextCommand{\textPsi}{2637}{03A8} +\pxDeclarePdfTextCommand{\textOmega}{2638}{03A9} +\pxDeclarePdfTextCommand{\textohm}{2638}{03A9}%(*)2126 +\pxDeclarePdfTextCommand{\textalpha}{2641}{03B1} +\pxDeclarePdfTextCommand{\textbeta}{2642}{03B2} +\pxDeclarePdfTextCommand{\textgamma}{2643}{03B3} +\pxDeclarePdfTextCommand{\textdelta}{2644}{03B4} +\pxDeclarePdfTextCommand{\textepsilon}{2645}{03B5} +\pxDeclarePdfTextCommand{\textzeta}{2646}{03B6} +\pxDeclarePdfTextCommand{\texteta}{2647}{03B7} +\pxDeclarePdfTextCommand{\texttheta}{2648}{03B8} +\pxDeclarePdfTextCommand{\textiota}{2649}{03B9} +\pxDeclarePdfTextCommand{\textkappa}{264A}{03BA} +\pxDeclarePdfTextCommand{\textlambda}{264B}{03BB} +\pxDeclarePdfTextCommand{\textmu}{264C}{03BC} +\pxDeclarePdfTextCommand{\textnu}{264D}{03BD} +\pxDeclarePdfTextCommand{\textxi}{264E}{03BE} +\pxDeclarePdfTextCommand{\textomicron}{264F}{03BF} +\pxDeclarePdfTextCommand{\textpi}{2650}{03C0} +\pxDeclarePdfTextCommand{\textrho}{2651}{03C1} +\pxDeclarePdfTextCommand{\textsigma}{2652}{03C3} +\pxDeclarePdfTextCommand{\texttau}{2653}{03C4} +\pxDeclarePdfTextCommand{\textupsilon}{2654}{03C5} +\pxDeclarePdfTextCommand{\textphi}{2655}{03C6} +\pxDeclarePdfTextCommand{\textchi}{2656}{03C7} +\pxDeclarePdfTextCommand{\textpsi}{2657}{03C8} +\pxDeclarePdfTextCommand{\textomega}{2658}{03C9} +\pxDeclarePdfTextCommand{\textvarsigma}{}{03C2} +\pxDeclarePdfTextCommand{\textfinalsigma}{}{03C2} +\pxDeclarePdfTextCommand{\CYRA}{2721}{0410} +\pxDeclarePdfTextCommand{\CYRB}{2722}{0411} +\pxDeclarePdfTextCommand{\CYRV}{2723}{0412} +\pxDeclarePdfTextCommand{\CYRG}{2724}{0413} +\pxDeclarePdfTextCommand{\CYRD}{2725}{0414} +\pxDeclarePdfTextCommand{\CYRE}{2726}{0415} +\pxDeclarePdfTextCommand{\CYRYO}{2727}{0401} +\pxDeclarePdfTextComposite{\"}{\CYRE}{2727}{0401} +\pxDeclarePdfTextCommand{\CYRZH}{2728}{0416} +\pxDeclarePdfTextCommand{\CYRZ}{2729}{0417} +\pxDeclarePdfTextCommand{\CYRI}{272A}{0418} +\pxDeclarePdfTextCommand{\CYRISHRT}{272B}{0419} +\pxDeclarePdfTextComposite{\U}{\CYRI}{272B}{0419} +\pxDeclarePdfTextCommand{\CYRK}{272C}{041A} +\pxDeclarePdfTextCommand{\CYRL}{272D}{041B} +\pxDeclarePdfTextCommand{\CYRM}{272E}{041C} +\pxDeclarePdfTextCommand{\CYRN}{272F}{041D} +\pxDeclarePdfTextCommand{\CYRO}{2730}{041E} +\pxDeclarePdfTextCommand{\CYRP}{2731}{041F} +\pxDeclarePdfTextCommand{\CYRR}{2732}{0420} +\pxDeclarePdfTextCommand{\CYRS}{2733}{0421} +\pxDeclarePdfTextCommand{\CYRT}{2734}{0422} +\pxDeclarePdfTextCommand{\CYRU}{2735}{0423} +\pxDeclarePdfTextCommand{\CYRF}{2736}{0424} +\pxDeclarePdfTextCommand{\CYRH}{2737}{0425} +\pxDeclarePdfTextCommand{\CYRC}{2738}{0426} +\pxDeclarePdfTextCommand{\CYRCH}{2739}{0427} +\pxDeclarePdfTextCommand{\CYRSH}{273A}{0428} +\pxDeclarePdfTextCommand{\CYRSHCH}{273B}{0429} +\pxDeclarePdfTextCommand{\CYRHRDSN}{273C}{042A} +\pxDeclarePdfTextCommand{\CYRERY}{273D}{042B} +\pxDeclarePdfTextCommand{\CYRSFTSN}{273E}{042C} +\pxDeclarePdfTextCommand{\CYREREV}{273F}{042D} +\pxDeclarePdfTextCommand{\CYRYU}{2740}{042E} +\pxDeclarePdfTextCommand{\CYRYA}{2741}{042F} +\pxDeclarePdfTextCommand{\cyra}{2751}{0430} +\pxDeclarePdfTextCommand{\cyrb}{2752}{0431} +\pxDeclarePdfTextCommand{\cyrv}{2753}{0432} +\pxDeclarePdfTextCommand{\cyrg}{2754}{0433} +\pxDeclarePdfTextCommand{\cyrd}{2755}{0434} +\pxDeclarePdfTextCommand{\cyre}{2756}{0435} +\pxDeclarePdfTextCommand{\cyryo}{2757}{0451} +\pxDeclarePdfTextComposite{\"}{\cyre}{2757}{0451} +\pxDeclarePdfTextCommand{\cyrzh}{2758}{0436} +\pxDeclarePdfTextCommand{\cyrz}{2759}{0437} +\pxDeclarePdfTextCommand{\cyri}{275A}{0438} +\pxDeclarePdfTextCommand{\cyrishrt}{275B}{0439} +\pxDeclarePdfTextComposite{\U}{\cyri}{275B}{0439} +\pxDeclarePdfTextCommand{\cyrk}{275C}{043A} +\pxDeclarePdfTextCommand{\cyrl}{275D}{043B} +\pxDeclarePdfTextCommand{\cyrm}{275E}{043C} +\pxDeclarePdfTextCommand{\cyrn}{275F}{043D} +\pxDeclarePdfTextCommand{\cyro}{2760}{043E} +\pxDeclarePdfTextCommand{\cyrp}{2761}{043F} +\pxDeclarePdfTextCommand{\cyrr}{2762}{0440} +\pxDeclarePdfTextCommand{\cyrs}{2763}{0441} +\pxDeclarePdfTextCommand{\cyrt}{2764}{0442} +\pxDeclarePdfTextCommand{\cyru}{2765}{0443} +\pxDeclarePdfTextCommand{\cyrf}{2766}{0444} +\pxDeclarePdfTextCommand{\cyrh}{2767}{0445} +\pxDeclarePdfTextCommand{\cyrc}{2768}{0446} +\pxDeclarePdfTextCommand{\cyrch}{2769}{0447} +\pxDeclarePdfTextCommand{\cyrsh}{276A}{0448} +\pxDeclarePdfTextCommand{\cyrshch}{276B}{0449} +\pxDeclarePdfTextCommand{\cyrhrdsn}{276C}{044A} +\pxDeclarePdfTextCommand{\cyrery}{276D}{044B} +\pxDeclarePdfTextCommand{\cyrsftsn}{276E}{044C} +\pxDeclarePdfTextCommand{\cyrerev}{276F}{044D} +\pxDeclarePdfTextCommand{\cyryu}{2770}{044E} +\pxDeclarePdfTextCommand{\cyrya}{2771}{044F} +\pxDeclarePdfTextCommand{\textvisiblespace}{}{2423} +\pxDeclarePdfTextComposite{\=}{A}{}{0100} +\pxDeclarePdfTextComposite{\=}{I}{}{012A} +\pxDeclarePdfTextComposite{\=}{U}{}{016A} +\pxDeclarePdfTextComposite{\=}{E}{}{0112} +\pxDeclarePdfTextComposite{\=}{O}{}{014C} +\pxDeclarePdfTextComposite{\=}{a}{}{0101} +\pxDeclarePdfTextComposite{\=}{i}{}{012B} +\pxDeclarePdfTextComposite{\=}{\i}{}{012B} +\pxDeclarePdfTextComposite{\=}{u}{}{016B} +\pxDeclarePdfTextComposite{\=}{e}{}{0113} +\pxDeclarePdfTextComposite{\=}{o}{}{014D} +\pxDeclarePdfTextComposite{\k}{A}{}{0104} +\pxDeclarePdfTextComposite{\v}{L}{}{013D} +\pxDeclarePdfTextComposite{\'}{S}{}{015A} +\pxDeclarePdfTextComposite{\c}{S}{}{015E} +\pxDeclarePdfTextComposite{\v}{T}{}{0164} +\pxDeclarePdfTextComposite{\'}{Z}{}{0179} +\pxDeclarePdfTextComposite{\.}{Z}{}{017B} +\pxDeclarePdfTextComposite{\k}{a}{}{0105} +\pxDeclarePdfTextComposite{\v}{l}{}{013E} +\pxDeclarePdfTextComposite{\'}{s}{}{015B} +\pxDeclarePdfTextComposite{\c}{s}{}{015F} +\pxDeclarePdfTextComposite{\v}{t}{}{0165} +\pxDeclarePdfTextComposite{\'}{z}{}{017A} +\pxDeclarePdfTextComposite{\.}{z}{}{017C} +\pxDeclarePdfTextComposite{\'}{R}{}{0154} +\pxDeclarePdfTextComposite{\u}{A}{}{0102} +\pxDeclarePdfTextComposite{\'}{L}{}{0139} +\pxDeclarePdfTextComposite{\'}{C}{}{0106} +\pxDeclarePdfTextComposite{\v}{C}{}{010C} +\pxDeclarePdfTextComposite{\k}{E}{}{0118} +\pxDeclarePdfTextComposite{\v}{E}{}{011A} +\pxDeclarePdfTextComposite{\v}{D}{}{010E} +\pxDeclarePdfTextComposite{\'}{N}{}{0143} +\pxDeclarePdfTextComposite{\v}{N}{}{0147} +\pxDeclarePdfTextComposite{\H}{O}{}{0150} +\pxDeclarePdfTextComposite{\v}{R}{}{0158} +\pxDeclarePdfTextComposite{\r}{U}{}{016E} +\pxDeclarePdfTextComposite{\H}{U}{}{0170} +\pxDeclarePdfTextComposite{\c}{T}{}{0162} +\pxDeclarePdfTextComposite{\'}{r}{}{0155} +\pxDeclarePdfTextComposite{\u}{a}{}{0103} +\pxDeclarePdfTextComposite{\'}{l}{}{013A} +\pxDeclarePdfTextComposite{\'}{c}{}{0107} +\pxDeclarePdfTextComposite{\v}{c}{}{010D} +\pxDeclarePdfTextComposite{\k}{e}{}{0119} +\pxDeclarePdfTextComposite{\v}{e}{}{011B} +\pxDeclarePdfTextComposite{\v}{d}{}{010F} +\pxDeclarePdfTextCommand{\dj}{}{0111} +\pxDeclarePdfTextComposite{\'}{n}{}{0144} +\pxDeclarePdfTextComposite{\v}{n}{}{0148} +\pxDeclarePdfTextComposite{\H}{o}{}{0151} +\pxDeclarePdfTextComposite{\v}{r}{}{0159} +\pxDeclarePdfTextComposite{\r}{u}{}{016F} +\pxDeclarePdfTextComposite{\H}{u}{}{0171} +\pxDeclarePdfTextComposite{\c}{t}{}{0163} +\pxDeclarePdfTextCommand{\ng}{}{014B} +\pxDeclarePdfTextCommand{\textnumero}{}{2116} +%% + +% Give a substitute definition to characters that appear as +% ligatures, since otherwise hyperref leaves some garbage in +% output pdf-strings when such ligatures appear. +\ifnum\pxhy@cc@jis@only>\z@ + \DeclareTextCommand{\textendash}{PD1}{--} + \DeclareTextCommand{\textquestiondown}{PD1}{}% empty + \DeclareTextCommand{\textexclamdown}{PD1}{}% empty +\fi +\ifnum\pxhy@cc@jis@only>\z@ + \ifx\pxhy@hkcdot\@undefined\else + \DeclareTextCommand{\textperiodcentered}{PD1}{\pxhy@hkcdot} + \fi +\fi + +\fi %</unicode> +%%%%%%%%%%%%%%%%%%%% done + + %% \pxhy@disable@tc@commands + \def\pxhy@disable@tc@commands{% + \let\yen\textyen + \let\copyright\textcopyright + \let\flqq\textflqq + \let\frqq\textfrqq + \let\textquotesinglbase\quotesinglbase + \let\crqq\textglqq + \let\clqq\textgrqq + \let\textquotedblbase\quotedblbase + \let\textEuro\texteuro + } + %% register to 'disable' list + \ltx@GlobalPrependToMacro\pdfstringdefPreHook{\pxhy@disable@tc@commands} + +\else %<*!textcmd> + +\@onlypreamble\pxDeclarePdfTextCommand +\newcommand*\pxDeclarePdfTextCommand[3]{} +\@onlypreamble\pxDeclarePdfTextComposite +\newcommand*\pxDeclarePdfTextComposite[4]{} + +\fi %</textcmd> +%--------------------------------------- Enable hyperref unicode +\ifpxhy@hy@unicode + +%% load the submodule +\input{pxjahyper-uni.def} +\ifx t\pxHyperrefUnicodePatched + \PackageInfo\pxhy@pkgname + {The setup for hyperref 'unicode' is applied.\@gobbletwo} +\else + \PackageInfo\pxhy@pkgname + {The setup for hyperref 'unicode' is NOT applied!\MessageBreak + The package might not work properly.\@gobbletwo} +\fi + +\fi +%--------------------------------------- 'jacommentline' +\ifpxhy@jacommentline + +% The 'jacommentline' feature outputs at the top of the +% hyperref outline file (*.out) a comment line including +% some Japanese characters. + +%% \pxhy@jacomment +\let\pxhy@jacomment\@empty +\begingroup + \@for\pxhy@x:={% + 2433,244E,2555,2521,2524,256B,244F,467C,4B5C,386C,% + 4A38,3B7A,2472,345E,245F,245E,2439% + }\do{% + \kansujichar1=\jis"\pxhy@x\relax + \xdef\pxhy@jacomment{\pxhy@jacomment\kansuji1}% + } +\endgroup + +%% attach a hook +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname ReadBookmarks\endcsname\relax\else + \g@addto@macro\ReadBookmarks{% + \if@filesw + \ifx\@outlinefile\@undefined\else + \immediate\write\@outlinefile{% + \@percentchar\pxhy@jacomment.}% + \fi + \fi + } +\fi + +\fi +%--------------------------------------- 'disablecmds' +\ifpxhy@disablecmds + +%% \pxhy@rensuji +\ifpxhy@etex + \def\pxhy@rensuji{% + \pxhy@if@star\pxhy@rensuji@a\pxhy@rensuji@a + } + \def\pxhy@rensuji@a{% + \pxhy@if@opt\@secondoftwo\@firstofone + } +\else + \let\pxhy@rensuji\relax % freeze +\fi + +%% \pxhy@ifdef@let\CSa\CSb +\def\pxhy@ifdef@let#1#2{% + \ifx#1\@undefined\else + \let#1#2% + \fi +} + +%% \pxhy@disable@commands +\def\pxhy@disable@commands{% + % pTeX primitives + \let\autospacing\@empty + \let\autoxspacing\@empty + \let\inhibitglue\@empty + \let\noautospacing\@empty + \let\noautoxspacing\@empty + \let\disinhibitglue\@empty + % pLaTeX core + \let\romanencoding\@gobble + \let\kanjiencoding\@gobble + \let\romanfamily\@gobble + \let\kanjifamily\@gobble + \let\romanseries\@gobble + \let\kanjiseries\@gobble + \let\romanshape\@gobble + \let\kanjishape\@gobble + \let\useroman\@gobblefour + \let\usekanji\@gobblefour + \let\textmc\@firstofone + \let\textgt\@firstofone + \let\mcfamily\@empty + \let\gtfamily\@empty + \let\userelfont\@empty + \let\<\@empty + % plext + \pxhy@ifdef@let\bou\@firstofone + \pxhy@ifdef@let\kasen\@firstofone + \pxhy@ifdef@let\rensuji\pxhy@rensuji + \pxhy@ifdef@let\prensuji\pxhy@rensuji + \pxhy@ifdef@let\Rensuji\pxhy@rensuji + % japanese-otf + \pxhy@ifdef@let\textmg\@firstofone + \pxhy@ifdef@let\mgfamily\@empty + \pxhy@ifdef@let\ltseries\@empty + \pxhy@ifdef@let\ebseries\@empty + \pxhy@ifdef@let\propshape\@empty +} + +%% register to 'disable' list +% This registration should be of lower priority than others, +% and thus is prepended to pdfstringdefPreHook. +\ltx@GlobalPrependToMacro\pdfstringdefPreHook{\pxhy@disable@commands} + +%% additions for jsclasses +\ifx\pxhy@jsclasses@name\relax\else + \g@addto@macro\pxhy@disable@commands{% + \let\HUGE\@empty + \pxhy@ifdef@let\maybeblue\@empty + } +\fi + +%% additions for jlreq +\ifpxhy@jlreq@cls + % characters + \pxhy@let@jchar@jc\pxhy@C@ZWSP{2121} + \pxhy@let@jchar@jc\pxhy@C@ZWQM{2129} + \pxhy@let@jchar@jc\pxhy@C@ZWEM{212A} + %% \pxhy@P@tatechuyoko*{<text>} + \def\pxhy@P@tatechuyoko{\pxhy@if@star\@firstofone\@firstofone} + %% \pxhy@P@jaspace{<name>} + \def\pxhy@P@jaspace#1{\@nameuse{jaspace(arg=#1)}} + \@namedef{jaspace(arg=zenkaku)}{\pxhy@C@ZWSP} + \@namedef{jaspace(arg=nibu)}{ } + \@namedef{jaspace(arg=shibu)}{} + % addition + \def\pxhy@next#1{% + \let\expandafter\noexpand\csname#1\endcsname\noexpand#1} + \edef\pxhy@disable@commands{% + \unexpanded\expandafter{\pxhy@disable@commands}% + \pxhy@next\pxhy@C@ZWSP + \pxhy@next\pxhy@C@ZWQM + \pxhy@next\pxhy@C@ZWEM + \unexpanded{% + \let\jafontsize\@gobbletwo + \let\jaspace\pxhy@P@jaspace + \let\tatechuyoko\pxhy@P@tatechuyoko + \let\jidori\@secondoftwo + \let\akigumi\@secondoftwo}% + } +\fi + +%% additions for ascmac (experimental) +\@onlypreamble\pxhy@dispatch@dc@ascmac +\def\pxhy@dispatch@dc@ascmac{% + \pxhy@let@jchar@jc\pxhy@P@yen{216F} + \pxhy@let@jchar@uc\pxhy@P@return{23CE} + \g@addto@macro\pxhy@disable@commands{% + \let\keytop\@firstofone + \let\yen\pxhy@P@yen + \let\return\pxhy@P@return + \let\Return\pxhy@P@return + }% +} +\pxhy@hook@after@package{ascmac}{\pxhy@dispatch@dc@ascmac} + +\fi +%--------------------------------------- All done +\endinput +%% EOF |