summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/platex/pxjahyper
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/platex/pxjahyper')
-rw-r--r--Master/texmf-dist/tex/platex/pxjahyper/pxjahyper-ajm.def165
-rw-r--r--Master/texmf-dist/tex/platex/pxjahyper/pxjahyper-enc.sty4
-rw-r--r--Master/texmf-dist/tex/platex/pxjahyper/pxjahyper-uni.def4
-rw-r--r--Master/texmf-dist/tex/platex/pxjahyper/pxjahyper.sty331
4 files changed, 375 insertions, 129 deletions
diff --git a/Master/texmf-dist/tex/platex/pxjahyper/pxjahyper-ajm.def b/Master/texmf-dist/tex/platex/pxjahyper/pxjahyper-ajm.def
index 331dcd32f22..803a78c2cd5 100644
--- a/Master/texmf-dist/tex/platex/pxjahyper/pxjahyper-ajm.def
+++ b/Master/texmf-dist/tex/platex/pxjahyper/pxjahyper-ajm.def
@@ -1,7 +1,7 @@
%%
%% This is file 'pxjahyper-ajm.def'.
%%
-%% Copyright (c) 2012-2023 Takayuki YATO (aka. "ZR")
+%% Copyright (c) 2012-2024 Takayuki YATO (aka. "ZR")
%% GitHub: https://github.com/zr-tex8r
%% Twitter: @zr_tex8r
%%
@@ -11,7 +11,7 @@
%% package declaration
\NeedsTeXFormat{pLaTeX2e}
-\ProvidesFile{pxjahyper-ajm.def}[2023/03/01 v1.3]
+\ProvidesFile{pxjahyper-ajm.def}[2024/08/25 v1.5]
%% avoid multiple loading
\csname pxjahyperajmLoaded\endcsname
@@ -104,6 +104,12 @@
\fi
}
+%% \pxhy@cc@anchor@string{<macro-name>}{<number>}
+% Expands to "anchor-string form" of a CC macro.
+\def\pxhy@cc@anchor@string#1#2{%
+ \pxjahyperBadCharacter{aj#1+\number#2}%
+}
+
%--------------------------------------- \pdfstringdef hook
\pdfstringdefDisableCommands{%
@@ -209,6 +215,45 @@
\let\pxhy@two@digits\relax
\let\pxhy@knumeral\relax
+%--------------------------------------- for counter commands
+
+%% \pxhy@cc@macro@name@list
+\let\pxhy@cc@macro@name@list\@empty
+
+%% \pxhy@DeclareCCMacro{<macro-name>}...{<body>}
+\def\pxhy@DeclareCCMacro#1{%
+ \eappto\pxhy@cc@macro@name@list{`\do{#1}}%
+ \pxhy@DeclareMacro{#1}%
+}
+
+%% \pxhy@DeclareCCMacroVar{<macro-name>}...{<body-n>}{<body-v>}
+% Variant of \pxhy@DeclareMacro, where the *-variant of the macro
+% is declared. The parameter '...' will be shared with both forms.
+\def\pxhy@DeclareCCMacroVar#1{%
+ \eappto\pxhy@cc@macro@name@list{`\do{#1@N}`\do{#1@V}}%
+ \pxhy@DeclareMacroVar{#1}%
+}
+
+%% \pxhy@finish@declare@cc@macros
+% Must be invoked after all CC macros are defined.
+\def\pxhy@finish@declare@cc@macros{%
+ \let\do\pxhy@amend@cc@macro
+ \pxhy@cc@macro@name@list
+ \let\pxhy@cc@macro@name@list\@empty
+}
+
+%% \pxhy@amend@cc@macro{<macro-name>}
+\def\pxhy@amend@cc@macro#1{%
+ \expandafter\pxhy@amend@cc@macro@a
+ \csname\pxhy@#1\expandafter\endcsname
+ \csname\pxhy@#1@A\expandafter\endcsname
+ \csname\pxhy@#1@D\endcsname{#1}%
+}
+\def\pxhy@amend@cc@macro@a#1#2#3#4{%
+ \gdef#2{\pxhy@cc@anchor@string{#4}}%
+ \global\let#3#1%
+ \gdef#1{\pxhy@if@in@anchor#2#3}%
+}
%--------------------------------------- the redefinitions
% A text command invoked in PDF-sttings must be "string-OK".
@@ -242,7 +287,7 @@
% used as fallback (e.g. \ajKuroMaru{21}→“㉑)”.
%%<!> \ajMaru[*]{<number>}
-\pxhy@DeclareMacroVar{Maru}#1{%N
+\pxhy@DeclareCCMacroVar{Maru}#1{%N
\pxhy@fallback{0}{51}{100}{%
\pxhy@rshift{0/8224,1/7554,21/8070,22/8080,32/10212,101}%
}{\pxhy@numeral{#1}}%
@@ -252,7 +297,7 @@
}{`\ajMaru{#1}}%
}
%%<!> \ajKuroMaru[*]{<number>}
-\pxhy@DeclareMacroVar{KuroMaru}#1{%N
+\pxhy@DeclareCCMacroVar{KuroMaru}#1{%N
\pxhy@fallback{0}{21}{100}{%
\pxhy@rshift{0/10503,1/8285,10/10504,101}%
}{`\ajMaru{#1}}%
@@ -262,7 +307,7 @@
}{`\ajKuroMaru{#1}}%
}
%%<!> \ajKaku[*]{<number>}
-\pxhy@DeclareMacroVar{Kaku}#1{%N
+\pxhy@DeclareCCMacroVar{Kaku}#1{%N
\pxhy@fallback{0}{0}{100}{%
\pxhy@twirange{10764}{10774}%
}{`\ajMaru{#1}}%
@@ -272,7 +317,7 @@
}{`\ajMaru{#1}}%
}
%%<!> \ajKuroKaku[*]{<number>}
-\pxhy@DeclareMacroVar{KuroKaku}#1{%N
+\pxhy@DeclareCCMacroVar{KuroKaku}#1{%N
\pxhy@fallback{0}{0}{100}{%
\pxhy@twirange{11037}{11047}%
}{`\ajMaru{#1}}%
@@ -282,7 +327,7 @@
}{`\ajMaru{#1}}%
}
%%<!> \ajMaruKaku[*]{<number>}
-\pxhy@DeclareMacroVar{MaruKaku}#1{%N
+\pxhy@DeclareCCMacroVar{MaruKaku}#1{%N
\pxhy@fallback{0}{0}{100}{%
\pxhy@twirange{11307}{11317}%
}{`\ajMaru{#1}}%
@@ -293,7 +338,7 @@
}{`\ajMaru{#1}}%
}
%%<!> \ajKuroMaruKaku[*]{<number>}
-\pxhy@DeclareMacroVar{KuroMaruKaku}#1{%N
+\pxhy@DeclareCCMacroVar{KuroMaruKaku}#1{%N
\pxhy@fallback{0}{0}{100}{%
\pxhy@twirange{11576}{11586}%
}{`\ajMaru{#1}}%
@@ -303,7 +348,7 @@
}{`\ajMaru{#1}}%
}
%%<!> \ajKakko[*]{<number>}
-\pxhy@DeclareMacroVar{Kakko}#1{%N
+\pxhy@DeclareCCMacroVar{Kakko}#1{%N
\pxhy@fallback{0}{21}{100}{%
\pxhy@rshift{0/8227,1/8070,21/9873,101}%
}{(\pxhy@numeral{#1})}%
@@ -313,7 +358,7 @@
}{`\ajKakko{#1}}%
}
%%<!> \ajRoman[*]{<number>}
-\pxhy@DeclareMacroVar{Roman}#1{%N
+\pxhy@DeclareCCMacroVar{Roman}#1{%N
\pxhy@fallback{1}{13}{15}{%
\pxhy@rshift{1/7574,11/8214,13/8282,16}%
}{`\@Roman{#1}}%
@@ -323,132 +368,132 @@
}{`\ifnum#1=\#{4}IIII`\else`\ajRoman{#1}`\fi}%
}
%%<!> \ajroman{<number>}
-\pxhy@DeclareMacro{roman}#1{%
+\pxhy@DeclareCCMacro{roman}#1{%
\pxhy@fallback{1}{13}{15}{%
\pxhy@rshift{1/8091,11/8287,16}%
}{`\@roman{#1}}%
}
%%<!> \ajPeriod{<number>}
-\pxhy@DeclareMacro{Period}#1{%
+\pxhy@DeclareCCMacro{Period}#1{%
\pxhy@fallback{0}{1}{11}{%
0.%
}{\pxhy@rshift{0/8061,10/20577,12}}%
}
%%<!> \ajKakkoYobi{<number>}
-\pxhy@DeclareMacro{KakkoYobi}#1{\pxhy@rshift{1/8196,10}}
+\pxhy@DeclareCCMacro{KakkoYobi}#1{\pxhy@rshift{1/8196,10}}
%%<!> \ajKakkoroman{<number>}
-\pxhy@DeclareMacro{Kakkoroman}#1{%
+\pxhy@DeclareCCMacro{Kakkoroman}#1{%
\pxhy@fallback{1}{1}{15}{%
\pxhy@rshift{1/9973,16}%
}{(`\ajroman{#1})}%
}
%%<!> \ajKakkoRoman{<number>}
-\pxhy@DeclareMacro{KakkoRoman}#1{%
+\pxhy@DeclareCCMacro{KakkoRoman}#1{%
\pxhy@fallback{1}{1}{15}{%
\pxhy@rshift{1/9988,16}%
}{(`\ajRoman{#1})}%
}
%%<!> \ajKakkoalph{<number>}
-\pxhy@DeclareMacro{Kakkoalph}#1{\pxhy@rshift{1/8111,27}}
+\pxhy@DeclareCCMacro{Kakkoalph}#1{\pxhy@rshift{1/8111,27}}
%%<!> \ajKakkoAlph{<number>}
-\pxhy@DeclareMacro{KakkoAlph}#1{\pxhy@rshift{1/10003,27}}
+\pxhy@DeclareCCMacro{KakkoAlph}#1{\pxhy@rshift{1/10003,27}}
%%<!> \ajKakkoHira{<number>}
-\pxhy@DeclareMacro{KakkoHira}#1{%
+\pxhy@DeclareCCMacro{KakkoHira}#1{%
\pxhy@fallback{1}{1}{48}{%
\pxhy@rshift{1/10029,49}%
}{(\pxhy@rshift{1/10029,49})}% with parens
}
%%<!> \ajKakkoKata{<number>}
-\pxhy@DeclareMacro{KakkoKata}#1{%
+\pxhy@DeclareCCMacro{KakkoKata}#1{%
\pxhy@fallback{1}{1}{48}{%
\pxhy@rshift{1/10077,49}%
}{(\pxhy@rshift{1/10077,49})}% with parens
}
%%<!> \ajKakkoKansuji{<number>}
-\pxhy@DeclareMacro{KakkoKansuji}#1{%
+\pxhy@DeclareCCMacro{KakkoKansuji}#1{%
\pxhy@fallback{1}{11}{20}{%
\pxhy@rshift{1/10125,21}%
}{(\pxhy@knumeral{#1})}%
}
%%<!> \ajMaruKansuji{<number>}
-\pxhy@DeclareMacro{MaruKansuji}#1{\pxhy@rshift{1/10460,11}}
+\pxhy@DeclareCCMacro{MaruKansuji}#1{\pxhy@rshift{1/10460,11}}
%%<!> \ajMarualph{<number>}
-\pxhy@DeclareMacro{Marualph}#1{\pxhy@rshift{1/10312,27}}
+\pxhy@DeclareCCMacro{Marualph}#1{\pxhy@rshift{1/10312,27}}
%%<!> \ajMaruAlph{<number>}
-\pxhy@DeclareMacro{MaruAlph}#1{\pxhy@rshift{1/10338,27}}
+\pxhy@DeclareCCMacro{MaruAlph}#1{\pxhy@rshift{1/10338,27}}
%%<!> \ajMaruHira{<number>}
-\pxhy@DeclareMacro{MaruHira}#1{\pxhy@rshift{1/10364,49}}
+\pxhy@DeclareCCMacro{MaruHira}#1{\pxhy@rshift{1/10364,49}}
%%<!> \ajMaruKata{<number>}
-\pxhy@DeclareMacro{MaruKata}#1{\pxhy@rshift{1/10412,49}}
+\pxhy@DeclareCCMacro{MaruKata}#1{\pxhy@rshift{1/10412,49}}
%%<!> \ajMaruYobi{<number>}
-\pxhy@DeclareMacro{MaruYobi}#1{%
+\pxhy@DeclareCCMacro{MaruYobi}#1{%
\pxhy@rshift{1/10470,8/10484,9/10478,10}%
}
%%<!> \ajKuroMarualph{<number>} : Fallback.
-\pxhy@DeclareMacro{KuroMarualph}#1{`\ajMarualph{#1}}
+\pxhy@DeclareCCMacro{KuroMarualph}#1{`\ajMarualph{#1}}
%%<!> \ajKuroMaruAlph{<number>}
-\pxhy@DeclareMacro{KuroMaruAlph}#1{\pxhy@rshift{1/10630,27}}
+\pxhy@DeclareCCMacro{KuroMaruAlph}#1{\pxhy@rshift{1/10630,27}}
%%<!> \ajKuroMaruHira{<number>} : Fallback.
-\pxhy@DeclareMacro{KuroMaruHira}#1{`\ajMaruHira{#1}}
+\pxhy@DeclareCCMacro{KuroMaruHira}#1{`\ajMaruHira{#1}}
%%<!> \ajKuroMaruKata{<number>} : Fallback.
-\pxhy@DeclareMacro{KuroMaruKata}#1{`\ajMaruKata{#1}}
+\pxhy@DeclareCCMacro{KuroMaruKata}#1{`\ajMaruKata{#1}}
%%<!> \ajKuroMaruYobi{<number>} : Fallback.
% fallback to \ajKakuYobi, which is simpler.
-\pxhy@DeclareMacro{KuroMaruYobi}#1{`\ajKakuYobi{#1}}
+\pxhy@DeclareCCMacro{KuroMaruYobi}#1{`\ajKakuYobi{#1}}
%%<!> \ajKakualph{<number>} : Fallback.
-\pxhy@DeclareMacro{Kakualph}#1{`\ajMarualph{#1}}
+\pxhy@DeclareCCMacro{Kakualph}#1{`\ajMarualph{#1}}
%%<!> \ajKakuAlph{<number>}
-\pxhy@DeclareMacro{KakuAlph}#1{\pxhy@rshift{1/10900,27}}
+\pxhy@DeclareCCMacro{KakuAlph}#1{\pxhy@rshift{1/10900,27}}
%%<!> \ajKakuHira{<number>} : Fallback.
-\pxhy@DeclareMacro{KakuHira}#1{`\ajMaruHira{#1}}
+\pxhy@DeclareCCMacro{KakuHira}#1{`\ajMaruHira{#1}}
%%<!> \ajKakuKata{<number>} : Fallback.
-\pxhy@DeclareMacro{KakuKata}#1{`\ajMaruKata{#1}}
+\pxhy@DeclareCCMacro{KakuKata}#1{`\ajMaruKata{#1}}
%%<!> \ajKakuYobi{<number>}
-\pxhy@DeclareMacro{KakuYobi}#1{\pxhy@rshift{1/11022,8}}
+\pxhy@DeclareCCMacro{KakuYobi}#1{\pxhy@rshift{1/11022,8}}
%%<!> \ajKuroKakualph{<number>} : Fallback.
-\pxhy@DeclareMacro{KuroKakualph}#1{`\ajMarualph{#1}}
+\pxhy@DeclareCCMacro{KuroKakualph}#1{`\ajMarualph{#1}}
%%<!> \ajKuroKakuAlph{<number>}
-\pxhy@DeclareMacro{KuroKakuAlph}#1{\pxhy@rshift{1/11173,27}}
+\pxhy@DeclareCCMacro{KuroKakuAlph}#1{\pxhy@rshift{1/11173,27}}
%%<!> \ajKuroKakuHira{<number>} : Fallback.
-\pxhy@DeclareMacro{KuroKakuHira}#1{`\ajMaruHira{#1}}
+\pxhy@DeclareCCMacro{KuroKakuHira}#1{`\ajMaruHira{#1}}
%%<!> \ajKuroKakuKata{<number>} : Fallback.
-\pxhy@DeclareMacro{KuroKakuKata}#1{`\ajMaruKata{#1}}
+\pxhy@DeclareCCMacro{KuroKakuKata}#1{`\ajMaruKata{#1}}
%%<!> \ajKuroKakuYobi{<number>} : Fallback.
-\pxhy@DeclareMacro{KuroKakuYobi}#1{`\ajKakuYobi{#1}}
+\pxhy@DeclareCCMacro{KuroKakuYobi}#1{`\ajKakuYobi{#1}}
%%<!> \ajMaruKakualph{<number>} : Fallback.
-\pxhy@DeclareMacro{MaruKakualph}#1{`\ajMarualph{#1}}
+\pxhy@DeclareCCMacro{MaruKakualph}#1{`\ajMarualph{#1}}
%%<!> \ajMaruKakuAlph{<number>}
-\pxhy@DeclareMacro{MaruKakuAlph}#1{\pxhy@rshift{1/11443,27}}
+\pxhy@DeclareCCMacro{MaruKakuAlph}#1{\pxhy@rshift{1/11443,27}}
%%<!> \ajMaruKakuHira{<number>} : Fallback.
-\pxhy@DeclareMacro{MaruKakuHira}#1{`\ajMaruHira{#1}}
+\pxhy@DeclareCCMacro{MaruKakuHira}#1{`\ajMaruHira{#1}}
%%<!> \ajMaruKakuKata{<number>} : Fallback.
-\pxhy@DeclareMacro{MaruKakuKata}#1{`\ajMaruKata{#1}}
+\pxhy@DeclareCCMacro{MaruKakuKata}#1{`\ajMaruKata{#1}}
%%<!> \ajMaruKakuYobi{<number>} : Fallback.
-\pxhy@DeclareMacro{MaruKakuYobi}#1{`\ajKakuYobi{#1}}
+\pxhy@DeclareCCMacro{MaruKakuYobi}#1{`\ajKakuYobi{#1}}
%%<!> \ajKuroMaruKakualph{<number>} : Fallback.
-\pxhy@DeclareMacro{KuroMaruKakualph}#1{`\ajMarualph{#1}}
+\pxhy@DeclareCCMacro{KuroMaruKakualph}#1{`\ajMarualph{#1}}
%%<!> \ajKuroMaruKakuAlph{<number>}
-\pxhy@DeclareMacro{KuroMaruKakuAlph}#1{\pxhy@rshift{1/11712,27}}
+\pxhy@DeclareCCMacro{KuroMaruKakuAlph}#1{\pxhy@rshift{1/11712,27}}
%%<!> \ajKuroMaruKakuHira{<number>} : Fallback.
-\pxhy@DeclareMacro{KuroMaruKakuHira}#1{`\ajMaruHira{#1}}
+\pxhy@DeclareCCMacro{KuroMaruKakuHira}#1{`\ajMaruHira{#1}}
%%<!> \ajKuroMaruKakuKata{<number>} : Fallback.
-\pxhy@DeclareMacro{KuroMaruKakuKata}#1{`\ajMaruKata{#1}}
+\pxhy@DeclareCCMacro{KuroMaruKakuKata}#1{`\ajMaruKata{#1}}
%%<!> \ajKuroMaruKakuYobi{<number>} : Fallback.
-\pxhy@DeclareMacro{KuroMaruKakuYobi}#1{`\ajKakuYobi{#1}}
+\pxhy@DeclareCCMacro{KuroMaruKakuYobi}#1{`\ajKakuYobi{#1}}
%%<!> \ajNijuMaru{<number>}
-\pxhy@DeclareMacro{NijuMaru}#1{\pxhy@rshift{1/16222,11}}
+\pxhy@DeclareCCMacro{NijuMaru}#1{\pxhy@rshift{1/16222,11}}
%%<!> \ajRecycle{<number>}
-\pxhy@DeclareMacro{Recycle}#1{\pxhy@rshift{0/16314,12}}
+\pxhy@DeclareCCMacro{Recycle}#1{\pxhy@rshift{0/16314,12}}
%%<!> \ajHasenKakuAlph{<number>}
-\pxhy@DeclareMacro{HasenKakuAlph}#1{\pxhy@rshift{1/20496,7}}
+\pxhy@DeclareCCMacro{HasenKakuAlph}#1{\pxhy@rshift{1/20496,7}}
%%<!> \ajCross{<number>}
-\pxhy@DeclareMacro{Cross}#1{%
+\pxhy@DeclareCCMacro{Cross}#1{%
\pxhy@fallback{0}{0}{9}{%
\pxhy@rshift{0/20523,10}%
}{\pxhy@numeral{#1}\UTF{00D7}}%
}
%%<!> \ajSlanted[*]{<number>}
-\pxhy@DeclareMacroVar{Slanted}#1{%N
+\pxhy@DeclareCCMacroVar{Slanted}#1{%N
\pxhy@fallback{0}{0}{59}{%
\pxhy@rshift{0/9460,10/20589,60}%
}{\pxhy@numeral{#1}}%
@@ -459,7 +504,7 @@
}
%%<!> \ajApostrophe{<number>}
%%<!> \ajYear{<number>} (alias)
-\pxhy@DeclareMacro{Apostrophe}#1{%
+\pxhy@DeclareCCMacro{Apostrophe}#1{%
\pxhy@fallback{0}{0}{99}{%
\pxhy@rshift{0/20649,100}%
}{\UTF{2019}\pxhy@two@digits{#1}}%
@@ -467,13 +512,15 @@
\pxhy@DeclareAlias{Year}{Apostrophe}
%%<!> \ajSquareMark[*]{<number>}
% Note: +-variant is unsupported.
-\pxhy@DeclareMacroVar{SquareMark}#1{%N
+\pxhy@DeclareCCMacroVar{SquareMark}#1{%N
\pxhy@rshift{1/12229,13}%
}{%V
\pxhy@rshift{1/12241,10}%
}
%%<!> \ajHishi{<number>}
-\pxhy@DeclareMacro{Hishi}#1{\pxhy@rshift{1/12256,5}}
+\pxhy@DeclareCCMacro{Hishi}#1{\pxhy@rshift{1/12256,5}}
+
+\pxhy@finish@declare@cc@macros
%-----------------------
diff --git a/Master/texmf-dist/tex/platex/pxjahyper/pxjahyper-enc.sty b/Master/texmf-dist/tex/platex/pxjahyper/pxjahyper-enc.sty
index 2d730c51511..e64fa701cb4 100644
--- a/Master/texmf-dist/tex/platex/pxjahyper/pxjahyper-enc.sty
+++ b/Master/texmf-dist/tex/platex/pxjahyper/pxjahyper-enc.sty
@@ -1,7 +1,7 @@
%%
%% This is file 'pxjahyper-enc.sty'.
%%
-%% Copyright (c) 2012-2023 Takayuki YATO (aka. "ZR")
+%% Copyright (c) 2012-2024 Takayuki YATO (aka. "ZR")
%% GitHub: https://github.com/zr-tex8r
%% Twitter: @zr_tex8r
%%
@@ -10,7 +10,7 @@
%% package declaration
\NeedsTeXFormat{pLaTeX2e}
-\ProvidesPackage{pxjahyper-enc}[2023/03/01 v1.3]
+\ProvidesPackage{pxjahyper-enc}[2024/08/25 v1.5]
\def\pxhe@pkgname{pxjahyper-enc}
\providecommand{\bxDebug}[1]{}
diff --git a/Master/texmf-dist/tex/platex/pxjahyper/pxjahyper-uni.def b/Master/texmf-dist/tex/platex/pxjahyper/pxjahyper-uni.def
index 4ce0174a9e2..88ea2241c0c 100644
--- a/Master/texmf-dist/tex/platex/pxjahyper/pxjahyper-uni.def
+++ b/Master/texmf-dist/tex/platex/pxjahyper/pxjahyper-uni.def
@@ -1,7 +1,7 @@
%%
%% This is file 'pxjahyper-uni.def'.
%%
-%% Copyright (c) 2012-2023 Takayuki YATO (aka. "ZR")
+%% Copyright (c) 2012-2024 Takayuki YATO (aka. "ZR")
%% GitHub: https://github.com/zr-tex8r
%% Twitter: @zr_tex8r
%%
@@ -10,7 +10,7 @@
%% package declaration
\NeedsTeXFormat{pLaTeX2e}
-\ProvidesFile{pxjahyper-uni.def}[2023/03/01 v1.3]
+\ProvidesFile{pxjahyper-uni.def}[2024/08/25 v1.5]
\providecommand{\bxDebug}[1]{}
%--------------------------------------- environment check
diff --git a/Master/texmf-dist/tex/platex/pxjahyper/pxjahyper.sty b/Master/texmf-dist/tex/platex/pxjahyper/pxjahyper.sty
index 9c3652b29f1..8be4a409e80 100644
--- a/Master/texmf-dist/tex/platex/pxjahyper/pxjahyper.sty
+++ b/Master/texmf-dist/tex/platex/pxjahyper/pxjahyper.sty
@@ -1,7 +1,7 @@
%%
%% This is file 'pxjahyper.sty'.
%%
-%% Copyright (c) 2012-2023 Takayuki YATO (aka. "ZR")
+%% Copyright (c) 2012-2024 Takayuki YATO (aka. "ZR")
%% GitHub: https://github.com/zr-tex8r
%% Twitter: @zr_tex8r
%%
@@ -10,7 +10,7 @@
%% package declaration
\NeedsTeXFormat{pLaTeX2e}
-\ProvidesPackage{pxjahyper}[2023/03/01 v1.3]
+\ProvidesPackage{pxjahyper}[2024/08/25 v1.5]
\def\pxhy@pkgname{pxjahyper}
\providecommand{\bxDebug}[1]{}
@@ -51,16 +51,21 @@
\newif\ifpxhy@otfmacros
\newif\ifpxhy@Uchar@avail
\newif\ifpxhy@ucs@avail
+\newif\ifpxhy@toucs@avail
\let\pxhy@jsclasses@name\relax
\newif\ifpxhy@jlreq@cls
\newif\ifpxhy@fallback@geta
+\newif\ifpxhy@fallback@warn
+\newif\ifpxhy@fallback@cidm
\newif\ifpxhy@extjis@map
\newif\ifpxhy@extjis@use
\newif\ifpxhy@ajhankaku@chars
%%<*> \pxjahypersetup{<key>=<value>,...}
-\newcommand*\pxjahypersetup{%
- \setkeys{\pxhy@pkgname}%
+\@ifdefinable\pxjahypersetup{%
+ \DeclareRobustCommand*\pxjahypersetup{%
+ \setkeys{\pxhy@pkgname}%
+ }%
}
%% \pxhy@handle@key{<key>}{<value>}{<name>}
\def\pxhy@handle@key#1#2#3{%
@@ -91,7 +96,7 @@
\DeclareOption{resetdvidriver}{%
\let\pxhy@driver\@undefined
}
-\DeclareOption{autodvidriver}{%
+\DeclareOption{autodvidriver}{% DEPRECATED
\let\pxhy@driver\@undefined
}
\DeclareOption{auto}{% DEPRECATED
@@ -171,14 +176,15 @@
\DeclareOption{nootfmacros}{%
\pxhy@otfmacrosfalse
}
-\DeclareOption{fallback-geta}{%
+\DeclareOption{fallback-geta}{% DEPRECATED
\pxjahypersetup{fallback=geta}%
}
-\DeclareOption{fallback-delete}{%
+\DeclareOption{fallback-delete}{% DEPRECATED
\pxjahypersetup{fallback=delete}%
}
-\DeclareOption{force-unicode}{%
- \let\pxhy@force@unicode=t
+\DeclareOption{force-unicode}{% DEPRECATED
+ \PackageWarningNoLine\pxhy@pkgname
+ {'force-unicode' is DEPRECATED and ignored}%
}
\DeclareOption{disable-Ux}{% for debug
\let\pxhy@disable@Ux=t
@@ -194,6 +200,16 @@
}
\let\pxhy@kv@fallback@@geta\pxhy@fallback@getatrue
\let\pxhy@kv@fallback@@delete\pxhy@fallback@getafalse
+% 'fallback-warn=<bool>'
+\pxhy@fallback@warntrue
+\define@key{\pxhy@pkgname}{fallback-warn}[true]{%
+ \pxhy@handle@key{fallback-warn}{#1}{fallback@warn#1}%
+}
+% 'fallback-cidm=<bool>'
+\pxhy@fallback@cidmtrue
+\define@key{\pxhy@pkgname}{fallback-cidm}[true]{%
+ \pxhy@handle@key{fallback-cidm}{#1}{fallback@cidm#1}%
+}
% 'extjis=<bool>'
\pxhy@extjis@usetrue
\define@key{\pxhy@pkgname}{extjis}[true]{%
@@ -289,6 +305,8 @@
\pxhy@check\Uchar{\pxhy@Uchar@availtrue}
%% pxhy@ucs@avail switch
\pxhy@check\ucs{\pxhy@ucs@availtrue}
+%% pxhy@toucs@avail switch
+\pxhy@check\toucs{\pxhy@toucs@availtrue}
%% pxhy@extjis@map switch
% Note that 'tounicode' is necessary.
@@ -311,6 +329,8 @@
\@ifl@t@r\fmtversion{2021/11/15}{%
\chardef\pxhy@hook@system=2
}{\@ifl@t@r\fmtversion{2020/02/02}{%
+ % NB. We need to support this intermediate version, because
+ % the hook order matters here.
\chardef\pxhy@hook@system=1
}{}}
@@ -328,16 +348,25 @@
\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
+%% \pxhy@if@really@unicode{<true>}{<false>}
+% Tests if hyperref unicode-mode is *currently* in effect.
+% (Assuming unicode-mode is enabled by the settings.)
+\let\pxhy@if@really@unicode\@undefined
+
+% hyperref 'unicode' mode
\ifpxhy@hy@unicode
\pxhy@uniescapefalse
%\pxhy@otfutftrue
+ % placed at the top of the hook
+ \AtEndOfPackage{\ltx@GlobalPrependToMacro\pdfstringdefPreHook{%
+ \ifx\ifpdfstringunicode\@undefined
+ \ifHy@unicode \let\pxhy@if@really@unicode\@firstoftwo
+ \else \let\pxhy@if@really@unicode\@secondoftwo
+ \fi
+ \else % '\ifpdfstringunicode' is provided by hyperref
+ \let\pxhy@if@really@unicode\ifpdfstringunicode
+ \fi
+ }}
\fi
% otfcid requrires otfutf.
\ifpxhy@otfutf \else \ifpxhy@otfcid
@@ -429,8 +458,7 @@ pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J%
\fi
%% \pxhy@geta : GETA MARK
-\pxhy@get@jchar{\jis"222E}
-\let\pxhy@geta\pxhy@jchar
+\pxhy@let@jchar@jc\pxhy@geta{222E}
%% \pxhy@print@geta
\def\pxhy@print@geta{%
@@ -472,12 +500,42 @@ pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J%
#1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
}
+%% \pxhy@ifempty{<text>}{<true>}{<false>}
+\def\pxhy@ifempty#1{%
+ \pxhy@cond\ifx\pxhy@mt#1\pxhy@mt\fi
+}
+
+%% \pxhy@E\newrobustcmd*\CS...
+% Does \newrobustcmd* if etoolbox is available;
+% does \DeclareRobustCommand* otherwise.
+\def\pxhy@E\newrobustcmd*#1{%
+ \def\pxhy@next{\providecommand*\pxhy@next}%
+ \@ifdefinable#1{\def\pxhy@next{\DeclareRobustCommand*#1}}%
+ \pxhy@next
+}
+
+%% \pxhy@read@num{<text>}\CScont
+\def\pxhy@read@num#1{%
+ \expandafter\pxhy@read@num@a\number#1\pxhy@mk#1\pxhy@mk#1\pxhy@mk
+}
+\def\pxhy@read@num@a#1#2\pxhy@mk{%
+ \expandafter\pxhy@read@num@b\romannumeral\if-#1\else-\fi
+}
+\def\pxhy@read@num@b#1\pxhy@mk#2\pxhy@mk{%
+ \expandafter\pxhy@read@num@c\number\pxhy@ifempty{#1}{#2}{}\pxhy@mk
+}
+\def\pxhy@read@num@c#1\pxhy@mk#2{%
+ \pxhy@cond\ifnum#1<\z@\fi{#2{0}}{#2{#1}}%
+}
+
%--------------------------------------- Helpers (e-TeX)
\ifpxhy@etex
%% packages
\ifpxhy@etoolbox
\RequirePackage{etoolbox}[2011/01/03]%v2.1
+ \robustify\pxjahypersetup
+ \let\pxhy@E\relax
\fi
%% \pxhy@if@star{<varient>}{<normal>}
@@ -709,7 +767,7 @@ pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J%
\pxhy@cond \ifpxhy@utfXVI \fi{%
\pxhy@uchex@big#1"000000\pxhy@end
}{%else
- \pxhy@uchex@out{#1}%
+ \pxhy@uchex@out@pre{#1}%
}%
}{%else
\pxhy@uchex@small#1"0000\pxhy@end
@@ -719,7 +777,7 @@ pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J%
\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}%
+ \pxhy@uchex@out@pre{#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
@@ -741,18 +799,93 @@ pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J%
\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}%
+ \pxhy@uchex@out@pre{D#1#2#3}%
+ \pxhy@uchex@out@pre{D#4#5}%
}
\edef\pxhy@uchex@error{%
- \noexpand\pxhy@uchex@out{\pxhy@uc@REPL}%
+ \noexpand\pxhy@uchex@out@pre{\pxhy@uc@REPL}%
+}
+\def\pxhy@uchex@out@pre#1{%
+ \pxhy@if@in@anchor{% then Unicode does not work
+ \pxjahyperBadCharacter{U+#1}%
+ }{%else
+ \pxhy@uchex@out{#1}%
+ }%
+}
+
+%--------------------------------------- Unavailable characters
+
+%%<+> \pxjahyperBadCharacter{<label>}
+\newcommand*\pxjahyperBadCharacter[1]{%
+ \pxhy@if@in@anchor{%
+ #1;% label is output as-is
+ }{%else
+ \ifpxhy@fallback@warn
+ % issue a warning
+ \pxhy@bad@character@a{#1}%
+ \fi
+ \pxhy@print@geta
+ }%
+}
+\def\pxhy@bad@character@a#1{%
+ % Here the control sequence with name <label> is supposed to be
+ % undefined. This token is intentionally left in the stream.
+ % Then this unknown token will be detected by the hyperref process
+ % and cause it to issue an warning
+ % "Token not allowed in a PDF string (... removing `\<label>'".
+ \expandafter\ifx\csname<#1>\endcsname\relax
+ \csname<#1>\endcsname
+ % If the token should be defined, it is replaced for safety.
+ \else \csname pxhy@<#1>\endcsname
+ \fi
+}
+
+%% \pxhy@fallback@num{<prefix>}<fast>{<number>}
+% Makes a bad character with label '<prefix><number>', after parsing
+% the given number input.
+\def\pxhy@fallback@num#1#2#3{%
+ \if \ifpxhy@fallback@warn T\else \pxhy@if@in@anchor{T}{F}\fi T%
+ \if t#2%
+ \expandafter\pxhy@fallback@num@a\expandafter{\number#3}{#1}%
+ \else
+ \pxhy@read@num{#3}\pxhy@fallback@num@a{#1}%
+ \fi
+ \else
+ \pxjahyperBadCharacter{}%
+ \fi
}
+\def\pxhy@fallback@num@a#1#2{%
+ \pxjahyperBadCharacter{#2#1}%
+}
+
+%--------------------------------------- Stuffs for anchor strings
+
+% Sometimes \pdfstringdef is invoked to form anchor strings.
+% There "unicode-mode" of hyperref is temporarily disabled;
+% moreover, ToUnicode specials are not applied to such strings.
+% Consequently, only ASCII characters can be used there.
+% Anchor strings are for identification and not presentation;
+% so special fallback for special characters are needed.
+
+%% \pxhy@if@in@anchor{<true>}{<false>}
+% Tests if we are inside anchors.
+\let\pxhy@if@in@anchor\@secondoftwo
+\ifx\Hy@PageAnchorSlide\@undefined\else
+ % We resort to some heuristics....
+ \g@addto@macro\Hy@PageAnchorSlide{%
+ \let\pxhy@if@in@anchor\@firstoftwo
+ }
+\fi
%--------------------------------------- Hooks to pdfstringdef
%% variables
\let\pxhy@str\relax
+%%<+> \Ux{<hex>}
+% (This is a dummy declaration.)
+\ifodd\z@ \providecommand*\Ux[1]{} \fi
+
%% \pxhy@Ux
% The definition of \Ux in PDF strings.
\let\pxhy@Ux\@undefined
@@ -760,16 +893,22 @@ pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J%
\ifpxhy@hy@unicode %<*unicode>
%% \pxhy@Ux
+ % In hyperref "unicode" mode, \unichar is used.
\def\pxhy@Ux{\pxhy@uchex}%
\pxhy@utfXVIfalse
\def\pxhy@uchex@out#1{%
- \unichar{"#1}%
+ \pxhy@if@really@unicode{%
+ \unichar{"#1}%
+ }{%else % something wrong!
+ \pxjahyperBadCharacter{U+#1}%
+ }%
}
\else\ifpxhy@Uchar@avail %<*Uchar>
\ifpxhy@uptex
%% \pxhy@Ux
+ % On upTeX with \Uchar, \Uchar is used.
\def\pxhy@Ux{\pxhy@uchex}
\pxhy@utfXVIfalse
\def\pxhy@uchex@out#1{\Uchar"#1 }
@@ -777,29 +916,31 @@ pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J%
\else\ifpxhy@ucs@avail
%% \pxhy@Ux
+ % On pTeX with \Uchar and \ucs, we convert the Unicode value to
+ % an internal-code value (using \ucs) and apply \Uchar to it.
\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
+ \def\pxhy@uchex@out@a#1\pxhy@mk#2{% #1:internal #2:Unicode
+ \ifnum#1<\z@ % not in internal (or JIS)
+ \ifnum"#2>\pxhy@max@asc % not ASCII
\ifpxhy@extjis@use
+ % try special conversion
\expandafter\pxhy@uchex@out@b\csname
pxhy@uc/\number"#2\endcsname{#2}%
\else \pxhy@uchex@out@b\relax{#2}%
\fi
- \else \Uchar"#2
+ \else \Uchar"#2 % ASCII
\fi
- \else \Uchar#1
+ \else \Uchar#1 % in internal-code
\fi
}
- \def\pxhy@uchex@out@b#1#2{%
- \ifx#1\relax
- \@nameuse{U+#2}%
- \pxhy@print@geta
+ \def\pxhy@uchex@out@b#1#2{% #2:Unicode
+ \ifx#1\relax % not supported
+ \pxjahyperBadCharacter{U+#2}%
\else #1%
\fi
}
@@ -808,6 +949,9 @@ pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J%
\else\ifpxhy@uptex %<*upTeX>
%% \pxhy@Ux
+ % On upTeX without \Uchar, we convert the Unicode value to a ja-char
+ % token using \pxhy@get@jchar, which is not fully expandable.
+ % So we need \pdfstringdefPostHook.
\def\pxhy@Ux{\pxhy@uchex}%
\pxhy@utfXVIfalse
@@ -912,7 +1056,7 @@ pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J%
\fi
%--------------------------------------- Fix for high-byte protection
-\ifpxhy@etex
+\ifpxhy@hy@unicode\else \ifpxhy@etex
\begingroup
% Check for high-byte protection.
\catcode"EF=\active \catcode`\^=7
@@ -949,7 +1093,7 @@ pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J%
\fi
\endgroup
-\fi
+\fi\fi
%--------------------------------------- Support for 'otfutf'
\ifpxhy@otfutf
@@ -960,8 +1104,7 @@ pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J%
\def\pxhy@UTF{\pxhy@uchex}
\pxhy@utfXVIfalse
\def\pxhy@uchex@out#1{%
- \@nameuse{U+#1}% issue a warning
- \pxhy@print@geta
+ \pxjahyperBadCharacter{U+#1}%
}
\else
\let\pxhy@UTF\pxhy@Ux
@@ -999,26 +1142,22 @@ pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J%
%% \pxhy@CID{<cid>}
\def\pxhy@CID#1{%
- \expandafter\expandafter\expandafter\pxhy@cid@aux
- \bxjaCidToUcsHex{#1}\pxhy@mk{\pxhy@xdetokenize{#1}}%
+ \pxhy@triexpandafter\pxhy@cid@aux\bxjaCidToUcsHex{#1}@f{#1}%
}
%% \pxhy@fast@CID{<cid>}
\def\pxhy@fast@CID#1{%
- \expandafter\expandafter\expandafter\pxhy@cid@aux
- \bxjaFastCidToUcsHex{#1}\pxhy@mk{\number#1}%
+ \pxhy@triexpandafter\pxhy@cid@aux\bxjaFastCidToUcsHex{#1}@t{#1}%
}
\ifx\pxhy@Ux\@undefined
- \def\pxhy@cid@aux#1\pxhy@mk#2{%
- \@nameuse{CID+#2}% issue a warning
- \pxhy@print@geta
+ \def\pxhy@cid@aux#1@#2#3{%
+ \pxhy@fallback@num{CID+}#2{#3}%
}
\else
-\def\pxhy@cid@aux#1\pxhy@mk#2{%
+\def\pxhy@cid@aux#1@#2#3{%
\ifnum"#1>\z@
\pxhy@Ux{#1}%
\else
- \@nameuse{CID+#2}%
- \pxhy@print@geta
+ \pxhy@fallback@num{CID+}#2{#3}%
\fi
}
\fi
@@ -1059,11 +1198,30 @@ pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J%
\fi
}
+%% \pxhy@CIDC{<cid>} / \pxhy@CIDK{<cid>} / \pxhy@CIDT{<cid>}
+\def\pxhy@CIDC{\pxhy@fallback@num{CIDC+}f}
+\def\pxhy@CIDK{\pxhy@fallback@num{CIDK+}f}
+\def\pxhy@CIDT{\pxhy@fallback@num{CIDT+}f}
+
+%% \pxhy@dispatch@fallback@cidm
+\@onlypreamble\pxhy@dispatch@fallback@cidm
+\def\pxhy@dispatch@fallback@cidm{%
+ \global\let\pxhy@dispatch@fallback@cidm\relax
+ \ltx@GlobalPrependToMacro\pdfstringdefPreHook{%
+ \ifpxhy@fallback@cidm
+ \let\CIDC\pxhy@CIDC
+ \let\CIDK\pxhy@CIDK
+ \let\CIDT\pxhy@CIDT
+ \fi
+ }%
+}
+
%% enable hooks
\pxhy@hook@after@package{otf}{\pxhy@dispatch@otfcid}
\ifpxhy@otfmacros
\pxhy@hook@after@package{ajmacros}{\pxhy@dispatch@otfmacros}
\fi
+\pxhy@hook@after@package{mlcid}{\pxhy@dispatch@fallback@cidm}
\fi
%--------------------------------------- Extended JIS mapping
@@ -1160,7 +1318,8 @@ pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J%
%%<+> \pxDeclarePdfTextCommand{\CS}{<jis>}{<ucs>}
\@onlypreamble\pxDeclarePdfTextCommand
-\newcommand*\pxDeclarePdfTextCommand[3]{%
+\pxhy@E\newrobustcmd*\pxDeclarePdfTextCommand[3]{%
+ \pxhy@prepare@txtcmd#1%
\pxhy@decl@pdf@tc{#2}{#3}%
{\DeclareTextCommand{#1}{\pxhy@pdfenc}}%
{\pxhy@revoke@pdf@tc{#1}}%
@@ -1168,7 +1327,8 @@ pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J%
%%<+> \pxDeclarePdfTextComposite{\CS}{<arg>}{<jis>}{<ucs>}
\@onlypreamble\pxDeclarePdfTextComposite
-\newcommand*\pxDeclarePdfTextComposite[4]{%
+\pxhy@E\newrobustcmd*\pxDeclarePdfTextComposite[4]{%
+ \pxhy@prepare@txtcmd#1%
\pxhy@decl@pdf@tc{#3}{#4}%
{\DeclareTextCompositeCommand{#1}{\pxhy@pdfenc}{#2}}%
{\pxhy@revoke@pdf@tcc{#1}{#2}}%
@@ -1202,8 +1362,8 @@ pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J%
%% \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
+ \edef\pxhy@next{{#1}{#2}}%
+ \uppercase\expandafter{\expandafter\pxhy@get@body\pxhy@next}%
\ifx\pxhy@body\@undefined
\let\pxhy@next\@secondoftwo
\else
@@ -1217,21 +1377,60 @@ pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J%
#2{#1}%
}
+%% \pxhy@prepare@txtcmd\CS
+% If \CS is defined and not an encoding-aware command,
+% let \[?\CS] be equivalent to \CS, so that doing
+% \DeclareTextCommand\CS... will keep the original meaning of \CS.
+\@onlypreamble\pxhy@prepare@txtcmd
+\def\pxhy@next#1#2\pxhy@end{%#1='\',#2='cmd'
+ \def\pxhy@prepare@txtcmd##1{%
+ \ifx##1\@undefined\else
+ \def\pxhy@tmpb{\pxhy@prepare@txtcmd@c##1}%
+ \expandafter\pxhy@prepare@txtcmd@a\meaning##1{}->#1 \pxhy@end
+ \fi
+ }%
+ \def\pxhy@prepare@txtcmd@a##1->#1##2 ##3\pxhy@end{%
+ \pxhy@prepare@txtcmd@b##2_{}-#2_\pxhy@end
+ }%
+ \def\pxhy@prepare@txtcmd@b##1-#2_##2\pxhy@end{%
+ % if not an encoding-aware command...
+ \ifx\pxhy@mt##2\pxhy@mt \pxhy@tmpb \fi
+ }%
+}\expandafter\pxhy@next\string\cmd\pxhy@end
+\def\pxhy@prepare@txtcmd@c#1{%
+ \expandafter\let\csname?\string#1\endcsname#1%
+}
+
%% \pxhy@get@body{<jis>}{<ucs>}
\@onlypreamble\pxhy@get@body
+\@onlypreamble\pxhy@get@body@a
+\def\pxhy@get@body#1#2{%
+ \edef\pxhy@next{%
+ {\ifx\pxhy@mt#1\pxhy@mt -1\else \jis"#1\fi}%
+ {\ifx\pxhy@mt#2\pxhy@mt
+ \ifx\pxhy@mt#1\pxhy@mt -1%
+ \else\ifpxhy@uptex \jis"#1%
+ \else\ifpxhy@toucs@avail \toucs\jis"#1%
+ \else -1\fi\fi\fi
+ \else \number"#2%
+ \fi}}%
+ \expandafter\pxhy@get@body@a\pxhy@next
+}
\ifpxhy@uptex %<*upTeX>
- \def\pxhy@get@body#1#2{%
- \pxhy@get@jchar{\ucs"#2}%
+ \def\pxhy@get@body@a#1#2{%
+ \pxhy@get@jchar{\ifnum#2<\z@ "FFFD\else#2\fi}%
\let\pxhy@body\pxhy@jchar
}%
\else\ifpxhy@hy@unicode %<*unicode>
- \def\pxhy@get@body#1#2{%
- \def\pxhy@body{\unichar{"#2}}%
+ \def\pxhy@get@body@a#1#2{%
+ \edef\pxhy@body{%
+ \noexpand\unichar{\ifnum#2<\z@ "FFFD\else#2\fi}}%
}%
\else\ifpxhy@uniescape %<*uniescape>
\def\pxhy@get@body#1#2{%
\ifx\pxhy@mt#1\pxhy@mt
- \def\pxhy@body{\0x#2}%
+ \edef\pxhy@body{\noexpand\0x%
+ \ifx\pxhy@mt#2\pxhy@mt FFFD\else#2\fi}%
\else
\pxhy@get@jchar{\jis"#1}%
\let\pxhy@body\pxhy@jchar
@@ -1239,14 +1438,14 @@ pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J%
}%
\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
- }%
+ \def\pxhy@get@body@a#1#2{%
+ \ifnum#1<\z@
+ \let\pxhy@body\@undefined
+ \else
+ \pxhy@get@jchar{#1}%
+ \let\pxhy@body\pxhy@jchar
+ \fi
+ }%
\fi\fi\fi %</>
%%%%%%%%%%%%%%%%%%%% the definitions
@@ -1695,14 +1894,14 @@ pxhy@fallback@geta = \ifpxhy@fallback@geta true\else false\fi^^J%
%% register to 'disable' list
\ltx@GlobalPrependToMacro\pdfstringdefPreHook{\pxhy@disable@tc@commands}
-\else %<*!textcmd>
+\else %<*!charcmds>
\@onlypreamble\pxDeclarePdfTextCommand
\newcommand*\pxDeclarePdfTextCommand[3]{}
\@onlypreamble\pxDeclarePdfTextComposite
\newcommand*\pxDeclarePdfTextComposite[4]{}
-\fi %</textcmd>
+\fi %</charcmds>
%--------------------------------------- Enable hyperref unicode
\ifpxhy@hy@unicode