diff options
author | Karl Berry <karl@freefriends.org> | 2017-09-09 22:34:38 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-09-09 22:34:38 +0000 |
commit | b2e300e48927b11a837f7f49663f5da307bdaac3 (patch) | |
tree | bd5ca18c116fd8caa87ce969bfae0554e85c29df /Master/texmf-dist/tex/platex/pxchfon | |
parent | 75c347aa5d28ca016031edd7a09f4979f99dc5fc (diff) |
pxchfon (9sep17)
git-svn-id: svn://tug.org/texlive/trunk@45253 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/platex/pxchfon')
-rw-r--r-- | Master/texmf-dist/tex/platex/pxchfon/pxchfon.sty | 1245 | ||||
-rw-r--r-- | Master/texmf-dist/tex/platex/pxchfon/pxjafont.sty | 9 |
2 files changed, 834 insertions, 420 deletions
diff --git a/Master/texmf-dist/tex/platex/pxchfon/pxchfon.sty b/Master/texmf-dist/tex/platex/pxchfon/pxchfon.sty index 824b7a6b649..d9c84cc6704 100644 --- a/Master/texmf-dist/tex/platex/pxchfon/pxchfon.sty +++ b/Master/texmf-dist/tex/platex/pxchfon/pxchfon.sty @@ -1,6 +1,6 @@ %% %% This is file 'pxchfon.sty'. -%% +%% %% Copyright (c) 2017 Takayuki YATO (aka. "ZR") %% GitHub: https://github.com/zr-tex8r %% Twitter: @zr_tex8r @@ -10,7 +10,7 @@ %% package declaration \NeedsTeXFormat{pLaTeX2e} -\ProvidesPackage{pxchfon}[2017/06/29 v1.0b] +\ProvidesPackage{pxchfon}[2017/09/09 v1.1a] \def\pxcz@pkgname{pxchfon} %% preparations @@ -23,20 +23,65 @@ %% variables \newif\ifpxcz@ok \newif\ifpxcz@utf +\let\pxcz@pre\relax +\let\pxcz@post\relax + +%% unique tokens +\def\pxcz@end{\pxcz@end@} +\def\pxcz@mt{\pxcz@mt@} + +%% \pxcz@csletcs{<cs1>}{<cs2>} +\def\pxcz@csletcs#1#2{% + \expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname} + +%% \pxcz@cond\ifXXX...\fi{<true>}{<false>} +\@gobbletwo\if\if \def\pxcz@cond#1\fi{% + #1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} + +%% \pxcz@onlypreamble@csdef{<csname>} +\def\pxcz@onlypreamble@csdef#1{% + \expandafter\pxcz@onlypreamble@def\csname#1\endcsname} +%% \pxcz@onlypreamble@def\CS +\def\pxcz@onlypreamble@def#1{% + \@onlypreamble#1\def#1} + +%% \pxcz@csuse@or{<csname>}{<default>} +\def\pxcz@csuse@or#1#2{% + \expandafter\ifx\csname#1\endcsname\relax \expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi{#2}{\csname#1\endcsname}} + +%% \pxcz@lower\CS +\def\pxcz@lower#1{% + \expandafter\pxcz@lower@a#1\pxcz@end#1} +\def\pxcz@lower@a#1\pxcz@end#2{% + \lowercase{\def#2{#1}}} + +%% \pxcz@split{<at>}{<target>} +\def\pxcz@split#1#2{% + \edef\pxcz@tmpx{{#1}{#2}}% + \expandafter\pxcz@split@a\pxcz@tmpx} +\def\pxcz@split@a#1#2{% + \def\pxcz@tmpx##1#1##2\pxcz@end{\pxcz@split@b{##1}{##2}}% + \pxcz@tmpx#2\pxcz@mt#1\pxcz@end} +\def\pxcz@split@b#1#2{% + \let\pxcz@pre\relax \let\pxcz@post\relax + \ifx\pxcz@end#2\pxcz@end\else + \pxcz@split@c#2\pxcz@end{#1}% + \fi} +\def\pxcz@split@c#1\pxcz@mt#2\pxcz@end#3{% + \def\pxcz@pre{#3}\def\pxcz@post{#1}} %--------------------------------------- environment check %% check for 'pxjafont' package % if old version of pxjafont is loaded (probably this package is -% required from pxjafont), then I abort here with an error message -% and in addition cause pxjafont to abort immediately. +% required from pxjafont), then I abort here with an error message. \@ifpackageloaded{pxjafont}{% \ifx\pxAliasedPxjafont\@undefined - \pxcz@error{Package 'pxjafont' is of incompatible version}% - {You must use version 0.5 of pxjafont.}% - \DeclareOption{noalphabet}{}\ProcessOptions - \let\pxjf@main@preset\relax % make pxjafont bombout - \endinput\fi}{} + \PackageError\pxcz@pkgname + {FATAL: Old 'pxjafont' is loaded}{\@ehc} + \expandafter\@@end\fi}{} %% \ifpxcz@uptex \newif\ifpxcz@uptex \pxcz@uptexfalse @@ -63,6 +108,7 @@ \newif\ifpxcz@everypage \newif\ifpxcz@oneweight \newif\ifpxcz@uniquify +\newif\ifpxcz@fullwidth \let\pxcz@directunicode\relax \let\pxcz@main@preset\relax \let\pxcz@file@preset\relax @@ -71,6 +117,12 @@ \newif\ifpxcz@rel \newif\ifpxcz@dumpmap \newif\ifpxcz@dumpmap@tl +\newif\ifpxcz@switch@font \pxcz@switch@fonttrue +\newif\ifpxcz@switch@font@xwid +\newif\ifpxcz@switch@font@xjis +\let\pxcz@strict@csi\relax +\newif\ifpxcz@directunicode@default +\let\pxcz@legacycode\relax %% process options % drivers @@ -107,7 +159,6 @@ \chardef\pxcz@directunicode@otf=1 \chardef\pxcz@directunicode@all=2 \chardef\pxcz@directunicode@full=3 -\let\pxcz@directunicode\pxcz@directunicode@none \DeclareOption{directunicode*}{\let\pxcz@directunicode\pxcz@directunicode@all} \DeclareOption{directunicode}{\let\pxcz@directunicode\pxcz@directunicode@otf} \DeclareOption{nodirectunicode}{\let\pxcz@directunicode\pxcz@directunicode@none} @@ -117,6 +168,21 @@ % (no)dumpmaptl \DeclareOption{dumpmaptl}{\pxcz@dumpmap@tltrue} \DeclareOption{nodumpmaptl}{\pxcz@dumpmap@tlfalse} +% (no)switchfont +\DeclareOption{switchfont}{\pxcz@switch@fonttrue} +\DeclareOption{noswitchfont}{\pxcz@switch@fontfalse} +% (no)strictcsi +\DeclareOption{strictcsi}{\let\pxcz@strict@csi=t} +\DeclareOption{nostrictcsi}{\let\pxcz@strict@csi=f} +% XXXXX-legacycode +\chardef\pxcz@legacycode@apply=0 +\chardef\pxcz@legacycode@ignore=1 +\chardef\pxcz@legacycode@suppress=2 +\chardef\pxcz@legacycode@replace=3 +\DeclareOption{apply-legacycode}{\let\pxcz@legacycode\pxcz@legacycode@apply} +\DeclareOption{ignore-legacycode}{\let\pxcz@legacycode\pxcz@legacycode@ignore} +\DeclareOption{suppress-legacycode}{\let\pxcz@legacycode\pxcz@legacycode@suppress} +\DeclareOption{replace-legacycode}{\let\pxcz@legacycode\pxcz@legacycode@replace} % preset spec options \def\pxcz@all@main@preset{% noembed,% @@ -138,18 +204,25 @@ \@for\pxcz@x:=\pxcz@all@main@preset\do{% \expandafter\pxcz@do\expandafter{\pxcz@x}} % others -\def\pxcz@opt@@unicode{unicode} -\def\pxcz@opt@@unicodeS{unicode*} +% The 'unicode' option means a Unicode-oriented mapping, and requires +% dvipdfmx of version 20170627 or later. The 'unicode-fwid' is a variant. +% The 'unicode*(-fwid)' option is a transitional (deteriorated) version +% of 'unicode(-fwid)' and can work with dvipdfmx of version 20170318. +\@namedef{pxcz@POPT/unicode}{% + \let\pxcz@directunicode\pxcz@directunicode@full} +\@namedef{pxcz@POPT/unicode*}{% + \pxcz@uniquifytrue + \let\pxcz@directunicode\pxcz@directunicode@full} +\@namedef{pxcz@POPT/unicode-fwid}{% + \pxcz@fullwidthtrue + \let\pxcz@directunicode\pxcz@directunicode@full} +\@namedef{pxcz@POPT/unicode*-fwid}{% + \pxcz@fullwidthtrue \pxcz@uniquifytrue + \let\pxcz@directunicode\pxcz@directunicode@full} \DeclareOption*{% - \ifx\CurrentOption\pxcz@opt@@unicode - \let\pxcz@directunicode\pxcz@directunicode@full - \else\ifx\CurrentOption\pxcz@opt@@unicodeS - \pxcz@uniquifytrue - \let\pxcz@directunicode\pxcz@directunicode@full - \else + \pxcz@csuse@or{pxcz@POPT/\CurrentOption}{% \pxcz@parse@opt\CurrentOption - \ifpxcz@ok\else \@unknownoptionerror \fi - \fi\fi} + \ifpxcz@ok\else \@unknownoptionerror \fi}} \@onlypreamble\pxcz@parse@opt \def\pxcz@parse@opt#1{% \expandafter\pxcz@parse@opt@a#1\@nnil} @@ -167,14 +240,22 @@ \fi\fi \pxcz@tmpa} \@onlypreamble\pxcz@parse@opt@c \def\pxcz@parse@opt@c#1#2\@nnil{% + \pxcz@oktrue \edef\pxcz@file@preset{#2}} % dispatch \ProcessOptions* + %% 'everypage' needs 'atbegshi' package \ifpxcz@everypage \RequirePackage{atbegshi} \fi +%% apply default value for \pxcz@directunicode +\ifx\pxcz@directunicode\relax + \let\pxcz@directunicode\pxcz@directunicode@none + \pxcz@directunicode@defaulttrue +\fi + %% set 'pxcz@alpha' \@tempswafalse \if\pxcz@main@preset\relax @@ -213,35 +294,108 @@ \else \pxcz@alphafontfalse \fi\fi +%% apply default for \pxcz@strict@csi +\ifx\pxcz@strict@csi\relax + % 'dumpmap(tl)' changes the 'strictcsi' default to true. + \let\pxcz@strict@csi=f + \ifpxcz@dumpmap \let\pxcz@strict@csi=t \fi + \ifpxcz@dumpmap@tl \let\pxcz@strict@csi=t \fi +\fi +\if t\pxcz@strict@csi + % 'strictcsi' requires some pdfTeX feature. + \ifx\pdffiledump\@undefined + \PackageWarning\pxcz@pkgname + {The option 'strictcsi' cannot be used, because\MessageBreak + the engine does not support '\string\pdffiledump'} + \let\pxcz@strict@csi=f + \fi +\fi + +%% apply 'switch@font' +\ifpxcz@switch@font + \pxcz@switch@font@xjistrue +\else + \let\pxcz@switch@font@xwidtrue\pxcz@switch@font@xwidfalse + \let\pxcz@switch@font@xjistrue\pxcz@switch@font@xjisfalse +\fi + %--------------------------------------- preset-triggered setup -%% \pxcz@if@main@preset{<name>}{<code>} -\@onlypreamble\pxcz@if@main@preset -\def\pxcz@if@main@preset#1{% - \edef\pxcz@tmpa{#1}% - \ifx\pxcz@main@preset\pxcz@tmpa \expandafter\@firstofone - \else \expandafter\@gobble - \fi} -%% setup -\def\pxcz@preset@setup@sourcehan{% - \ifnum\pxcz@directunicode=\pxcz@directunicode@all \else +%% \pxcz@apply@opt@unicode +% Forces the 'unicode' setup (unless a directunicode option was given). +\@onlypreamble\pxcz@apply@opt@unicode +\def\pxcz@apply@opt@unicode{% + \ifpxcz@directunicode@default % default -> unicode+ + \pxcz@warn@unicode % NOTE: will change to unicode in future + \let\pxcz@directunicode\pxcz@directunicode@full + \pxcz@switch@font@xwidtrue \pxcz@uniquifyfalse + \else\ifnum\pxcz@directunicode=\pxcz@directunicode@full + \ifpxcz@uniquify % unicode* -> unicode+ + \pxcz@switch@font@xwidtrue \pxcz@uniquifyfalse + \fi % unicode -> (unchanged) + \else \pxcz@uniquifyfalse % otherwise, enable switch-font + \fi\fi} +%% \pxcz@apply@opt@unicodeP +% Forces the 'unicode+' setup, which is a 'unicode' with switch-font +% enabled on the width features. +\@onlypreamble\pxcz@apply@opt@unicodeP +\def\pxcz@apply@opt@unicodeP{% + \pxcz@uniquifyfalse + \pxcz@switch@font@xwidtrue % 'unicode+' + \ifnum\pxcz@directunicode=\pxcz@directunicode@full\else + \pxcz@warn@unicode \let\pxcz@directunicode\pxcz@directunicode@full - \pxcz@uniquifyfalse \fi} -\pxcz@if@main@preset{sourcehan}{% - \pxcz@preset@setup@sourcehan} -\pxcz@if@main@preset{sourcehan-otc}{% - \pxcz@preset@setup@sourcehan} -\pxcz@if@main@preset{noto}{% - \pxcz@preset@setup@sourcehan} -\pxcz@if@main@preset{noto-otc}{% - \pxcz@preset@setup@sourcehan} -\pxcz@if@main@preset{yu-win10+}{% - \let\pxcz@directunicode\pxcz@directunicode@full - \pxcz@uniquifyfalse} +%% \pxcz@warn@unicode +\@onlypreamble\pxcz@warn@unicode +\def\pxcz@warn@unicode{% + \PackageWarningNoLine\pxcz@pkgname + {The option 'unicode(*)' is enforced, because the\MessageBreak + preset '\pxcz@main@preset' is selected.}} + +%% the setup +\def\pxcz@do#1{% + \edef\pxcz@tmpa{#1}% + \pxcz@cond\ifx\pxcz@main@preset\pxcz@tmpa\fi + {\@firstofone}{\@gobble}} +% A 'XXXX+' preset forces 'unicode+' setting. +% 'sourcehan(-otc)' and 'noto(-otc)' should force 'unicode', but currently +% equivalent to the corresponding 'XXXX+' preset. +\pxcz@do{sourcehan}{\pxcz@apply@opt@unicode} +\pxcz@do{sourcehan-otc}{\pxcz@apply@opt@unicode} +\pxcz@do{noto}{\pxcz@apply@opt@unicode} +\pxcz@do{noto-otc}{\pxcz@apply@opt@unicode} +\pxcz@do{sourcehan+}{\pxcz@apply@opt@unicodeP} +\pxcz@do{sourcehan-otc+}{\pxcz@apply@opt@unicodeP} +\pxcz@do{noto+}{\pxcz@apply@opt@unicodeP} +\pxcz@do{noto-otc+}{\pxcz@apply@opt@unicodeP} +\pxcz@do{yu-win10+}{\pxcz@apply@opt@unicodeP} + +%% apply default for \pxcz@legacycode +\ifx\pxcz@legacycode\relax + \ifnum\pxcz@directunicode=\pxcz@directunicode@full + \let\pxcz@legacycode\pxcz@legacycode@replace + \else \let\pxcz@legacycode\pxcz@legacycode@apply + \fi +\fi + +%% 'replace-lecacycode' requires the 'pxufont' package +\ifnum\pxcz@legacycode=\pxcz@legacycode@replace + \IfFileExists{pxufont.sty}{}{%else + \PackageError\pxcz@pkgname + {The option 'replace-lecacycode' requires the 'pxufont'\MessageBreak + package, but it is not installed}% + {The option 'suprress-lecacycode' is applied as fallback.\MessageBreak + \@ehc} + \let\pxcz@legacycode\pxcz@legacycode@suppress}% +\fi %--------------------------------------- user interface +%% \pxcz@sym@list +\def\pxcz@sym@list{% + mnl,mnr,mnb,gtr,gtb,gtx,gtu,mgr,kom,kog,scm,scg,tcm,tcg} + %%<*> \setminchofont/\setgothicfont/etc. \newcommand*\setminchofont{\pxcz@setfont{mnl,mnr,mnb}} \newcommand*\setgothicfont{\pxcz@setfont{gtr,gtb,gtx,gtu}} @@ -261,16 +415,24 @@ \newcommand*\settchinesegothicfont{\pxcz@setfont{tcg}} \@onlypreamble\pxcz@setfont \def\pxcz@setfont#1{\@ifnextchar[%] - {\pxcz@setfont@a{#1}}{\pxcz@setfont@a{#1}[]}} + {\pxcz@setfont@a{#1}}{\pxcz@setfont@a{#1}[0]}} \@onlypreamble\pxcz@setfont@a \def\pxcz@setfont@a#1[#2]#3{% - \@for\pxcz@x:={#1}\do{% - \ifx @#2@\@namedef{pxcz@FS/\pxcz@x}{#3}% - \else\@namedef{pxcz@FS/\pxcz@x}{:#2:#3}\fi}} -\@for\pxcz@x:={% - mnl,mnr,mnb,gtr,gtb,gtx,gtu,mgr,% - kom,kog,scm,scg,tcm,tcg% -}\do{\@namedef{pxcz@FS/\pxcz@x}{}} + \edef\pxcz@tmpa{#3}\pxcz@lower\pxcz@tmpa + \pxcz@split{?:}{?\pxcz@tmpa}% + \ifx\pxcz@pre\relax + \pxcz@split{tc?}{\pxcz@tmpa?}% + \ifx\pxcz@pre\relax \pxcz@setfont@b{#1}{#3}% + \else \pxcz@setfont@b{#1}{:#2:#3}% + \fi + \else \pxcz@setfont@b{#1}{#3}% + \fi} +\@onlypreamble\pxcz@setfont@b +\def\pxcz@setfont@b#1#2{% + \@for\pxcz@tmpx:=#1\do{% + \@namedef{pxcz@FS/\pxcz@tmpx}{#2}}} +\@for\pxcz@x:=\pxcz@sym@list\do{% + \@namedef{pxcz@FS/\pxcz@x}{}} %--------------------------------------- '\asUTF' % NB. This feature is superseded by the \diruni command. @@ -297,6 +459,9 @@ % The value given to \set...font to mean 'no-embed'. \def\pxcz@noembed{*} +%% \pxcz@kill@mapping +\def\pxcz@kill@mapping{!} + %% \pxcz@cmap@directuni % CMap symbol for "direct unicode". \def\pxcz@cmap@directuni{unicode} @@ -306,9 +471,9 @@ \def\pxcz@cmap@hwuni{UniJIS-UCS2-HW-H} %%<*> \usecmapforalphabet/\nousecmapforalphabet -\def\usecmapforalphabet{% +\newcommand*\usecmapforalphabet{% \global\let\pxcz@cmap@uni\pxcz@cmap@hwuni} -\def\nousecmapforalphabet{% +\newcommand*\nousecmapforalphabet{% \global\let\pxcz@cmap@uni\pxcz@cmap@directuni} \ifpxcz@cmap@alpha \usecmapforalphabet \else \nousecmapforalphabet \fi @@ -318,8 +483,7 @@ \def\pxcz@tmpb{#2}% \@for\pxcz@tmpa:=#1\do{% \expandafter\let\csname pxcz@NEF/\pxcz@tmpa\endcsname\pxcz@tmpb - }% -} + }} \pxcz@do{mnl,mnr,mnb}{Ryumin-Light} \pxcz@do{gtr,gtb,gtx,gtu,mgr}{GothicBBB-Medium} \pxcz@do{kom}{HYSMyeongJo-Medium} @@ -366,155 +530,280 @@ \@ifstar{\pxcz@set@pfx@jis\pxcz@pfx@jis@star}% {\pxcz@set@pfx@jis}} \def\pxcz@set@pfx@jis#1{% - \edef\pxcz@pfx@jis{\ifpxcz@mmivjis#1\fi}} + \edef\pxcz@pfx@jis{#1}} \setnewglyphcmapprefix{\pxcz@pfx@jis@dflt} -%% \pxcz@pfx@unijis -\edef\pxcz@pfx@unijis{UniJIS\ifpxcz@mmivjis 2004\fi} +%% variables +\let\pxcz@sym\relax +\let\pxcz@cmap\relax +\let\pxcz@font\relax +\let\pxcz@csi\relax +\newif\ifpxcz@ext +\let\pxcz@lopts\relax +\let\pxcz@mopts\relax +\let\pxcz@font@tribe\relax + +%% \pxcz@@jpXX +\edef\pxcz@@jpXX{% + \ifpxcz@mmivjis jp04\else jp90\fi} +%% \pxcz@add@lopt +\@onlypreamble\pxcz@add@lopt +\def\pxcz@add@lopt#1{% + \edef\pxcz@lopts{% + \ifx\pxcz@lopts\@empty\else \pxcz@lopts:\fi#1}} +%% \pxcz@uniquify@lopts +\@onlypreamble\pxcz@uniquify@lopts +\def\pxcz@uniquify@lopts#1#2{% + \pxcz@oktrue + \def\pxcz@tmpb{jp90}\ifx\pxcz@tmpb\pxcz@lopts\pxcz@okfalse\fi + \def\pxcz@tmpb{jp04}\ifx\pxcz@tmpb\pxcz@lopts\pxcz@okfalse\fi + \ifx\@empty\pxcz@lopts\if t#1\pxcz@okfalse\fi\fi + \ifpxcz@ok + \edef\pxcz@lopts{#2}% + \fi} -%% \pxcz@enable@switch@realfont -\def\pxcz@enable@switch@realfont{% - \let\pxcz@switch@realfont\pxcz@do@switch@realfont -} -\let\pxcz@switch@realfont\relax - -%% \pxcz@do@switch@realfont -\@onlypreamble\pxcz@do@switch@realfont -\def\pxcz@do@switch@realfont{% - \edef\pxcz@reset@mmivjis{% - \ifpxcz@mmivjis \noexpand\pxcz@mmivjistrue - \else \noexpand\pxcz@mmivjisfalse \fi}% - \let\pxcz@empty\relax - \pxcz@mmivjistrue \edef\FONT{\FONTs}% - \pxcz@mmivjisfalse \edef\FONTo{\FONTs}% - \pxcz@reset@mmivjis \edef\FONTs{\FONTs}% - \let\pxcz@empty\@empty} - -%% \pxcz@MI -% NB: not \edef -\def\pxcz@MI#1#2:{\ifpxcz@mmivjis:#1:\else:#2:\fi} - -%% \pxcz@SH -% NB: not \edef -\def\pxcz@SH#1{% - \ifx#1/\expandafter\pxcz@SH@otf@dif - \else \expandafter\pxcz@SH@otc@dif +%% \pxcz@is@jis@cmap +\@onlypreamble\pxcz@is@jis@cmap +\def\pxcz@is@jis@cmap{% + \pxcz@okfalse + \expandafter\pxcz@is@jis@cmap@a\pxcz@cmap\pxcz@end} +\@onlypreamble\pxcz@is@jis@cmap@a +\def\pxcz@is@jis@cmap@a#1#2\pxcz@end{% + \ifx\pxcz@mt#2\pxcz@mt \pxcz@oktrue \fi} + +%% \pxcz@force@mmiv@cmap +\@onlypreamble\pxcz@force@mmiv@cmap +\def\pxcz@force@mmiv@cmap{% + \pxcz@is@jis@cmap \ifpxcz@ok + \edef\pxcz@cmap{\pxcz@pfx@jis\pxcz@cmap}% + \else + \pxcz@split{UniJIS-}\pxcz@cmap + \ifx\pxcz@pre\relax\else + \edef\pxcz@cmap{UniJIS2004-\pxcz@post}% + \fi \fi} -\def\pxcz@SH@otc@dif#1:{% - :\the\pxcz@entry@type:} -\def\pxcz@SH@otf@dif#1-{% - #1\ifcase\pxcz@entry@type\or K\or SC\fi-} - -%% \pxcz@NC -% NB: not \edef -\def\pxcz@NC#1{% - \ifx#1/\expandafter\pxcz@NC@otf@dif - \else \expandafter\pxcz@NC@otc@dif + +%% \pxcz@inspect@font@tribe +\@onlypreamble\pxcz@inspect@font@tribe +\def\pxcz@inspect@font@tribe{% + \let\pxcz@font@tribe\@empty + \ifx\pxcz@font\@empty + \else\ifx\pxcz@font\pxcz@noembed + \else + \pxcz@inspect@font@tribe@a{?SourceHanSerif-}{.otf?}{sourcehan}% + \pxcz@inspect@font@tribe@a{?SourceHanSans-}{.otf?}{sourcehan}% + \pxcz@inspect@font@tribe@a{?:0:SourceHanSerif-}{.ttc?}{sourcehanC}% + \pxcz@inspect@font@tribe@a{?:0:SourceHanSans-}{.ttc?}{sourcehanC}% + \pxcz@inspect@font@tribe@a{?NotoSerifCJKjp-}{.otf?}{noto}% + \pxcz@inspect@font@tribe@a{?NotoSansCJKjp-}{.otf?}{noto}% + \pxcz@inspect@font@tribe@a{?:0:NotoSerifCJK-}{.ttc?}{notoC}% + \pxcz@inspect@font@tribe@a{?:0:NotoSansCJK-}{.ttc?}{notoC}% + \pxcz@inspect@font@tribe@a{?yumin}{.ttf?}{yumin}% + \pxcz@inspect@font@tribe@a{?YUMIN}{.TTF?}{yuminU}% + \pxcz@inspect@font@tribe@a{:YuGoth}{.ttc?}{yugoth}% + \pxcz@inspect@font@tribe@a{:YUGOTH}{.TTC?}{yugoth}% + \pxcz@inspect@font@tribe@a{:moga}{.ttc?}{mogamobo}% + \pxcz@inspect@font@tribe@a{:mobo}{.ttc?}{mogamobo}% + \fi\fi + \ifx\pxcz@font@tribe\@empty\else + \PackageInfo\pxcz@pkgname + {Font tribe is '\pxcz@font@tribe':\MessageBreak + \@spaces\pxcz@font\@gobble}% \fi} -\def\pxcz@NC@otc@dif#1:{% - :\the\pxcz@entry@type:} -\def\pxcz@NC@otf@dif#1jp{% - #1\ifcase\pxcz@entry@type jp\or kr\or sc\fi} - -%% \pxcz@YW -\def\pxcz@YW#1{% - \ifx#1/\expandafter\pxcz@YW@mc@dif - \else \expandafter\pxcz@YW@gt@dif +\@onlypreamble\pxcz@inspect@font@tribe@a +\def\pxcz@inspect@font@tribe@a#1#2#3{% + \pxcz@split{#1}{?\pxcz@font}% + \ifx\pxcz@pre\relax\else + \pxcz@split{#2}{\pxcz@font?}% + \ifx\pxcz@pre\relax\else + \def\pxcz@font@tribe{#3}% + \fi \fi} -\def\pxcz@YW@gt@dif#1:{% - \ifnum\pxcz@entry@type=\tw@ :1:\else:0:\fi} -\def\pxcz@YW@mc@dif#1.ttf{% - \ifnum\pxcz@entry@type=\tw@ \@nameuse{pxcz@YWG/#1}\else#1.ttf\fi} -\@namedef{pxcz@YWG/yuminl}{:1:YuGothL.ttc} -\@namedef{pxcz@YWG/yumin}{:1:YuGothR.ttc} -\@namedef{pxcz@YWG/yumindb}{:1:YuGothM.ttc} - -%% primary macros -\let\pxcz@unidirect\@empty -\let\pxcz@unidirectX\@empty -\let\pxcz@unidirect@wopt\@empty -\let\pxcz@unidirectX@wopt\@empty -\let\pxcz@unidirectX@lopt\@gobble -\ifnum\pxcz@directunicode<\pxcz@directunicode@otf\else -\def\pxcz@unidirect#1-#2-#3{\pxcz@cmap@directuni} -\def\pxcz@unidirect@wopt{ -w 1} -\fi -\ifnum\pxcz@directunicode<\pxcz@directunicode@all\else -\let\pxcz@unidirectX\pxcz@unidirect -\let\pxcz@unidirectX@wopt\pxcz@unidirect@wopt -\fi -\ifnum\pxcz@directunicode<\pxcz@directunicode@full\else -\def\pxcz@unidirectX@lopt#1{ -l #1} -\fi -%% secondary macros -\def\pxcz@entry@UniJIS{\@+\pxcz@pfx@unijis}% -\def\pxcz@entry@@hwid{\@l{hwid}}% -\def\pxcz@entry@@fwid{\@l{fwid}}% -\def\pxcz@entry@@jp#1#2{\@l{jp#1#2}}% -\ifpxcz@mmivjis -\def\pxcz@entry@@jpXX{\@l{jp04}} -\else -\def\pxcz@entry@@jpXX{\@l{jp90}} + +%% \pxcz@switch@font@for{<feature>} +% Modifies \pxcz@font, assuming \pxcz@font@tribe is properly set. +\@onlypreamble\pxcz@switch@font@for +\def\pxcz@switch@font@for#1{% + \pxcz@csletcs{pxcz@tmpb}{pxcz@switch@font@@\pxcz@font@tribe @#1}% + \ifx\pxcz@tmpb\relax\else +%\typeout{#1:\pxcz@font-->\expandafter\pxcz@tmpb\pxcz@font}% + \edef\pxcz@font{\expandafter\pxcz@tmpb\pxcz@font}% + \fi} +% entries +\ifpxcz@switch@font@xwid + \def\pxcz@switch@font@@sourcehanC@fwid#1:0:{:2:} + \def\pxcz@switch@font@@sourcehanC@hwid#1:0:{:1:} + \def\pxcz@switch@font@@sourcehan@fwid#1-{#1SC-} + \def\pxcz@switch@font@@sourcehan@hwid#1-{#1K-} + \def\pxcz@switch@font@@notoC@fwid#1:0:{:2:} + \def\pxcz@switch@font@@notoC@hwid#1:0:{:1:} + \def\pxcz@switch@font@@noto@fwid#1jp{#1sc} + \def\pxcz@switch@font@@noto@hwid#1jp{#1kr} + \def\pxcz@switch@font@@yugoth@fwid#1:0:{:1:} + \def\pxcz@switch@font@@yumin@fwid#1.ttf{% + \@nameuse{pxcz@SFYM/#1.ttf}} + \def\pxcz@switch@font@@yuminU@fwid#1.TTF{% + \@nameuse{pxcz@SFYM/#1.TTF}} + \def\pxcz@do#1{\@namedef{pxcz@SFYM/#1}} + \pxcz@do{yuminl.ttf}{:1:YuGothL.ttc} + \pxcz@do{yumin.ttf}{:1:YuGothR.ttc} + \pxcz@do{yumindb.ttf}{:1:YuGothM.ttc} + \pxcz@do{YUMINL.TTF}{:1:YUGOTHL.TTC} + \pxcz@do{YUMIN.TTF}{:1:YUGOTHR.TTC} + \pxcz@do{YUMINDB.TTF}{:1:YUGOTHM.TTC} \fi -\ifpxcz@uniquify -\let\pxcz@entry@@hwid\pxcz@entry@@jpXX -\let\pxcz@entry@@fwid\pxcz@entry@@jpXX +\ifpxcz@switch@font@xjis + \@namedef{pxcz@switch@font@@mogamobo@jp90}#1.ttc{% + \pxcz@csuse@or{pxcz@SFMG/#1.ttc}{#1.ttc}} + \def\pxcz@do#1#2#3{\@namedef{pxcz@SFMG/:#1:#3}{:#2:#3}} + \pxcz@do{0}{3}{mogam.ttc} + \pxcz@do{1}{4}{mogam.ttc} + \pxcz@do{0}{3}{mogamb.ttc} + \pxcz@do{1}{4}{mogamb.ttc} + \pxcz@do{0}{2}{mogag.ttc} + \pxcz@do{1}{3}{mogag.ttc} + \pxcz@do{0}{2}{mogagb.ttc} + \pxcz@do{1}{3}{mogagb.ttc} + \pxcz@do{0}{2}{mobog.ttc} + \pxcz@do{1}{3}{mobog.ttc} + \pxcz@do{0}{2}{mobogb.ttc} + \pxcz@do{1}{3}{mobogb.ttc} \fi +%% \pxcz@declare@entry@modifier{<name>} +\@onlypreamble\pxcz@declare@entry@modifier +\def\pxcz@declare@entry@modifier#1{% + \pxcz@onlypreamble@csdef{pxcz@MEM/#1}} +%% entry modifiers +% Uni: Changes cmap to 'unicode' if directunicode. +\pxcz@declare@entry@modifier{Uni}{% + \ifnum\pxcz@directunicode<\pxcz@directunicode@otf\else + \ifx\pxcz@font\pxcz@noembed\else + \let\pxcz@cmap\pxcz@cmap@directuni + \fi + \fi} +% Uni*: Changes cmap to 'unicode' if directunicode*. +\pxcz@declare@entry@modifier{Uni*}{% + \ifnum\pxcz@directunicode<\pxcz@directunicode@all\else + \ifx\pxcz@font\pxcz@noembed\else + \let\pxcz@cmap\pxcz@cmap@directuni + \fi + \fi} +% Switch +\pxcz@declare@entry@modifier{Switch}{% + \ifpxcz@mmivjis + \pxcz@force@mmiv@cmap + \else + \pxcz@switch@font@for{jp90}% + \fi + \pxcz@add@lopt{\pxcz@@jpXX}} +% 04 +\pxcz@declare@entry@modifier{04}{% + \pxcz@add@lopt{jp04}} +% 90 +\pxcz@declare@entry@modifier{90}{% + \pxcz@switch@font@for{jp90}% + \pxcz@add@lopt{jp90}} +% HWid +\pxcz@declare@entry@modifier{HWid}{% + \ifx\pxcz@font\pxcz@noembed + \let\pxcz@cmap\pxcz@cmap@hwuni + \else + \let\pxcz@cmap\pxcz@cmap@uni + \pxcz@switch@font@for{hwid}% + \fi + \pxcz@add@lopt{hwid}% + \def\pxcz@tmpa{mgr}\ifx\pxcz@sym\pxcz@tmpa + \let\pxcz@font\@empty + \fi} +% FWid +\pxcz@declare@entry@modifier{FWid}{% + \pxcz@switch@font@for{fwid}% + \pxcz@add@lopt{fwid}} +% AJ16/AK12/AG14/AC14 +\pxcz@declare@entry@modifier{AJ16}{\def\pxcz@csi{AJ16}} +\pxcz@declare@entry@modifier{AK12}{\def\pxcz@csi{AK12}\pxcz@exttrue} +\pxcz@declare@entry@modifier{AG14}{\def\pxcz@csi{AG14}\pxcz@exttrue} +\pxcz@declare@entry@modifier{AC14}{\def\pxcz@csi{AC14}\pxcz@exttrue} +% V: Adds '-w 1' if cmap is 'unicode'. +\pxcz@declare@entry@modifier{V}{% + \ifx\pxcz@cmap\pxcz@cmap@directuni + \edef\pxcz@mopts{ -w 1\pxcz@mopts}% + \fi} +% Fin: final step +\pxcz@declare@entry@modifier{Fin}{% + \ifx\pxcz@csi\relax\else + \expandafter\ifx\csname pxcz@OT/\pxcz@sym\endcsname\relax + \edef\pxcz@mopts{/\pxcz@csi}% + \else % omit CSI part for CFF fonts + \let\pxcz@mopts\@empty + \fi + \fi} + %% \pxcz@spec \let\pxcz@spec\@empty %% \pxcz@addtospec{<id>} \@onlypreamble\pxcz@addtospec \def\pxcz@addtospec#1{% - \bgroup \let\Entry\pxcz@Entry - \let\ \space \let\*\pxcz@pfx@jis - \let\UniJIS\pxcz@entry@UniJIS - \let\@hwid\pxcz@entry@@hwid \let\@fwid\pxcz@entry@@fwid - \let\@jp\pxcz@entry@@jp \let\@jpXX\pxcz@entry@@jpXX - \@nameuse{pxcz@ME/#1}\egroup} + \begingroup + \let\Entry\pxcz@Entry + \@nameuse{pxcz@ME/#1}% + \endgroup} +%% \Entry{<sym>}{<tfm>}{<cmap>}{<modify>,...} \@onlypreamble\pxcz@Entry -\def\pxcz@Entry#1{% - \def\pxcz@entry@sym{#1}% - \expandafter\let\expandafter\FONT\csname pxcz@FS/#1\endcsname - \let\FONTo\FONT \let\FONTs\FONT - \ifx\FONT\pxcz@noembed - \let\UniCMap\pxcz@cmap@hwuni - \let\+\@empty \let\w\@empty \def\@+{}\let\@w\@empty - \let\@l\@gobble - \edef\FONT{!\@nameuse{pxcz@NEF/#1}}% - \let\FONTo\FONT \let\FONTs\FONT - \else\ifx\FONT\@empty\else - \let\UniCMap\pxcz@cmap@uni - \let\+\pxcz@unidirect \let\w\pxcz@unidirect@wopt - \def\@+{\pxcz@unidirectX}\let\@w\pxcz@unidirectX@wopt - \let\@l\pxcz@unidirectX@lopt - \pxcz@switch@realfont - \fi\fi - \ifx\FONT\@empty \expandafter\@gobbletwo - \else \expandafter\pxcz@entry@a \fi} -\@onlypreamble\pxcz@entry@a -\def\pxcz@entry@a#1#2{% - \chardef\pxcz@entry@type=#1\relax - \ifnum\pxcz@entry@type=\@ne\ifx\pxcz@cmap@uni\pxcz@cmap@hwuni - \let\@l\@gobble - \fi\fi - \pxcz@check@entry \ifpxcz@ok - \xdef\pxcz@spec{% - \pxcz@spec\noexpand\special{\pxcz@mapline{#2}}}% - \fi} - -%% \pxcz@check@entry -\@onlypreamble\pxcz@check@entry -\def\pxcz@sym@@mgr{mgr} -\def\pxcz@check@entry{% - \pxcz@oktrue - \ifnum\pxcz@entry@type=\@ne - \ifx\pxcz@entry@sym\pxcz@sym@@mgr - \expandafter\ifx\csname pxcz@FS/gtr\endcsname\relax\else - \pxcz@okfalse \fi +\def\pxcz@Entry#1#2#3#4{% + \def\pxcz@sym{#1}\def\pxcz@cmap{#3}% + \let\pxcz@csi\relax \let\pxcz@mopts\@empty \let\pxcz@lopts\@empty + \pxcz@extfalse + \edef\pxcz@font{\@nameuse{pxcz@FS/\pxcz@sym}}% + \pxcz@inspect@font@tribe + % apply modifiers + \@for\pxcz@tmpx:=#4,Fin\do{% + \ifx\pxcz@font\@empty\else + \@nameuse{pxcz@MEM/\pxcz@tmpx}% + \fi}% + % resolve no-embed font spec + \ifx\pxcz@font\pxcz@noembed + \edef\pxcz@font{!\@nameuse{pxcz@NEF/\pxcz@sym}}% + \fi + % apply layout options when using 'unicode' + \ifnum\pxcz@directunicode<\pxcz@directunicode@full\else + \ifx\pxcz@cmap\pxcz@cmap@directuni + \ifpxcz@uniquify + \pxcz@uniquify@lopts{t}{\pxcz@@jpXX}% + \ifpxcz@fullwidth + \pxcz@add@lopt{fwid}% + \fi + \else + \ifpxcz@fullwidth + \pxcz@split{wid}\pxcz@lopts\ifx\pxcz@pre\relax + \pxcz@add@lopt{fwid}% + \fi + \fi + \fi + \ifx\pxcz@lopts\@empty\else + \edef\pxcz@mopts{\pxcz@mopts\space -l \pxcz@lopts}% + \fi \fi - \fi} + \fi + % suppress legacy-code mappings unless 'apply-legacycode' + \ifx\pxcz@cmap\pxcz@cmap@directuni\else \ifpxcz@ext\else + \ifnum\pxcz@legacycode=\pxcz@legacycode@apply % no-op + \else\ifnum\pxcz@legacycode=\pxcz@legacycode@ignore + \let\pxcz@font\@empty % skip + \else\ifx\pxcz@font\@empty\else + \let\pxcz@font\pxcz@kill@mapping % kill + \fi\fi\fi + \fi\fi + % output it + \ifx\pxcz@font\pxcz@kill@mapping + \xdef\pxcz@spec{\pxcz@spec\noexpand\special{% + \pxcz@mapline{-#2}}}% + \else\ifx\pxcz@font\@empty\else + \xdef\pxcz@spec{\pxcz@spec\noexpand\special{% + \pxcz@mapline{#2 \pxcz@cmap\space\pxcz@font\pxcz@mopts}}}% + \fi\fi} %% \pxcz@do@file@preset \@onlypreamble\pxcz@do@file@preset @@ -542,202 +831,193 @@ %--------------------------------------- map entry definitions %% \pxcz@mapentry{<id>}{<text>} +\@onlypreamble\pxcz@mapentry \def\pxcz@mapentry#1{% - \expandafter\pxcz@mapentry@a\csname pxcz@ME/#1\endcsname} -\def\pxcz@mapentry@a#1{\@onlypreamble#1\def#1} + \pxcz@onlypreamble@csdef{pxcz@ME/#1}} %% map entries -% \FONT: file name for the 2004JIS font -% \FONTo: file name for the 90JIS font -% \FONTs: \FONT if prefer2004jis, \FONTo otherwise -% \*H: 2004-H if prefer2004jis, H otherwise -% \UniJIS: UniJIS2004 if prefer2004jis, UniJIS otherwise -% \+Uni...-H: replaced by 'unicode' if directunicode -% \@+Uni...-H: replaced by 'unicode' if directunicode* -% \w: '-w 1' if directunicode -% \@w: '-w 1' if directunicode* \pxcz@mapentry{STD}{% -\Entry{mnr}0{rml \*H \FONTs}% -\Entry{mnr}0{rmlv \*V \FONTs}% -\Entry{gtu}0{gbm \*H \FONTs}% -\Entry{gtu}0{gbmv \*V \FONTs}% +\Entry{mnr}{rml} {H} {Switch}% +\Entry{mnr}{rmlv} {V} {Switch,V}% +\Entry{gtu}{gbm} {H} {Switch}% +\Entry{gtu}{gbmv} {V} {Switch,V}% } \pxcz@mapentry{ALPHA}{% -\Entry{mnl}1{r-cfjar-l-@PXcjk0@ \UniCMap\ \FONT\@hwid}% -\Entry{mnr}1{r-cfjar-r-@PXcjk0@ \UniCMap\ \FONT\@hwid}% -\Entry{mnb}1{r-cfjar-b-@PXcjk0@ \UniCMap\ \FONT\@hwid}% -\Entry{gtr}1{r-cfjas-r-@PXcjk0@ \UniCMap\ \FONT\@hwid}% -\Entry{gtb}1{r-cfjas-b-@PXcjk0@ \UniCMap\ \FONT\@hwid}% -\Entry{gtx}1{r-cfjas-x-@PXcjk0@ \UniCMap\ \FONT\@hwid}% -\Entry{mgr}1{r-cfjas-r-@PXcjk0@ \UniCMap\ \FONT\@hwid}% +\Entry{mnl}{r-cfjar-l-@PXcjk0@}{unicode} {HWid}% +\Entry{mnr}{r-cfjar-r-@PXcjk0@}{unicode} {HWid}% +\Entry{mnb}{r-cfjar-b-@PXcjk0@}{unicode} {HWid}% +\Entry{gtr}{r-cfjas-r-@PXcjk0@}{unicode} {HWid}% +\Entry{gtb}{r-cfjas-b-@PXcjk0@}{unicode} {HWid}% +\Entry{gtx}{r-cfjas-x-@PXcjk0@}{unicode} {HWid}% +\Entry{mgr}{r-cfjas-r-@PXcjk0@}{unicode} {HWid}% } \pxcz@mapentry{UTF}{% -\Entry{mnr}0{unijmin-h \UniJIS-UTF16-H \FONTs\@jpXX}% -\Entry{mnr}0{unijmin-v \UniJIS-UTF16-V \FONTs\@w\@jpXX}% -\Entry{mnr}0{cidmin-h Identity-H \FONT/AJ16}% -\Entry{mnr}0{cidmin-v Identity-V \FONT/AJ16}% -\Entry{mnr}0{hmr \*H \FONTs}% -\Entry{mnr}0{hmrv \*V \FONTs}% -\Entry{gtu}0{unijgoth-h \UniJIS-UTF16-H \FONTs\@jpXX}% -\Entry{gtu}0{unijgoth-v \UniJIS-UTF16-V \FONTs\@w\@jpXX}% -\Entry{gtu}0{cidgoth-h Identity-H \FONT/AJ16}% -\Entry{gtu}0{cidgoth-v Identity-V \FONT/AJ16}% -\Entry{gtu}0{hkb \*H \FONTs}% -\Entry{gtu}0{hkbv \*V \FONTs}% +\Entry{mnr}{unijmin-h} {UniJIS-UTF16-H} {Uni*,Switch}% +\Entry{mnr}{unijmin-v} {UniJIS-UTF16-V} {Uni*,Switch,V}% +\Entry{mnr}{cidmin-h} {Identity-H} {AJ16}% +\Entry{mnr}{cidmin-v} {Identity-V} {AJ16,V}% +\Entry{mnr}{hmr} {H} {Switch}% +\Entry{mnr}{hmrv} {V} {Switch,V}% +\Entry{gtu}{unijgoth-h} {UniJIS-UTF16-H} {Uni*,Switch}% +\Entry{gtu}{unijgoth-v} {UniJIS-UTF16-V} {Uni*,Switch,V}% +\Entry{gtu}{cidgoth-h} {Identity-H} {AJ16}% +\Entry{gtu}{cidgoth-v} {Identity-V} {AJ16,V}% +\Entry{gtu}{hkb} {H} {Switch}% +\Entry{gtu}{hkbv} {V} {Switch,V}% } \pxcz@mapentry{OTF}{% -\Entry{mnl}0{otf-ujml-h \+UniJIS-UTF16-H \FONTo\@jp90}% -\Entry{mnl}0{otf-ujml-v \+UniJIS-UTF16-V \FONTo\w\@jp90}% -\Entry{mnl}0{otf-cjml-h Identity-H \FONT/AJ16}% -\Entry{mnl}0{otf-cjml-v Identity-V \FONT/AJ16}% -\Entry{mnl}0{hminl-h H \FONTo}% -\Entry{mnl}0{hminl-v V \FONTo}% -\Entry{mnl}0{otf-ujmln-h \+UniJIS2004-UTF16-H \FONT\@jp04}% -\Entry{mnl}0{otf-ujmln-v \+UniJIS2004-UTF16-V \FONT\w\@jp04}% -\Entry{mnl}0{hminln-h H \FONT}% -\Entry{mnl}0{hminln-v V \FONT}% -\Entry{mnr}0{otf-ujmr-h \+UniJIS-UTF16-H \FONTo\@jp90}% -\Entry{mnr}0{otf-ujmr-v \+UniJIS-UTF16-V \FONTo\w\@jp90}% -\Entry{mnr}0{otf-cjmr-h Identity-H \FONT/AJ16}% -\Entry{mnr}0{otf-cjmr-v Identity-V \FONT/AJ16}% -\Entry{mnr}0{hminr-h H \FONTo}% -\Entry{mnr}0{hminr-v V \FONTo}% -\Entry{mnr}0{otf-ujmrn-h \+UniJIS2004-UTF16-H \FONT\@jp04}% -\Entry{mnr}0{otf-ujmrn-v \+UniJIS2004-UTF16-V \FONT\w\@jp04}% -\Entry{mnr}0{hminrn-h H \FONT}% -\Entry{mnr}0{hminrn-v V \FONT}% -\Entry{mnb}0{otf-ujmb-h \+UniJIS-UTF16-H \FONTo\@jp90}% -\Entry{mnb}0{otf-ujmb-v \+UniJIS-UTF16-V \FONTo\w\@jp90}% -\Entry{mnb}0{otf-cjmb-h Identity-H \FONT/AJ16}% -\Entry{mnb}0{otf-cjmb-v Identity-V \FONT/AJ16}% -\Entry{mnb}0{hminb-h H \FONTo}% -\Entry{mnb}0{hminb-v V \FONTo}% -\Entry{mnb}0{otf-ujmbn-h \+UniJIS2004-UTF16-H \FONT\@jp04}% -\Entry{mnb}0{otf-ujmbn-v \+UniJIS2004-UTF16-V \FONT\w\@jp04}% -\Entry{mnb}0{hminbn-h H \FONT}% -\Entry{mnb}0{hminbn-v V \FONT}% -\Entry{gtr}0{otf-ujgr-h \+UniJIS-UTF16-H \FONTo\@jp90}% -\Entry{gtr}0{otf-ujgr-v \+UniJIS-UTF16-V \FONTo\w\@jp90}% -\Entry{gtr}0{otf-cjgr-h Identity-H \FONT/AJ16}% -\Entry{gtr}0{otf-cjgr-v Identity-V \FONT/AJ16}% -\Entry{gtr}0{hgothr-h H \FONTo}% -\Entry{gtr}0{hgothr-v V \FONTo}% -\Entry{gtr}0{otf-ujgrn-h \+UniJIS2004-UTF16-H \FONT\@jp04}% -\Entry{gtr}0{otf-ujgrn-v \+UniJIS2004-UTF16-V \FONT\w\@jp04}% -\Entry{gtr}0{hgothrn-h H \FONT}% -\Entry{gtr}0{hgothrn-v V \FONT}% -\Entry{gtb}0{otf-ujgb-h \+UniJIS-UTF16-H \FONTo\@jp90}% -\Entry{gtb}0{otf-ujgb-v \+UniJIS-UTF16-V \FONTo\w\@jp90}% -\Entry{gtb}0{otf-cjgb-h Identity-H \FONT/AJ16}% -\Entry{gtb}0{otf-cjgb-v Identity-V \FONT/AJ16}% -\Entry{gtb}0{hgothb-h H \FONTo}% -\Entry{gtb}0{hgothb-v V \FONTo}% -\Entry{gtb}0{otf-ujgbn-h \+UniJIS2004-UTF16-H \FONT\@jp04}% -\Entry{gtb}0{otf-ujgbn-v \+UniJIS2004-UTF16-V \FONT\w\@jp04}% -\Entry{gtb}0{hgothbn-h H \FONT}% -\Entry{gtb}0{hgothbn-v V \FONT}% -\Entry{gtx}0{otf-ujge-h \+UniJIS-UTF16-H \FONTo\@jp90}% -\Entry{gtx}0{otf-ujge-v \+UniJIS-UTF16-V \FONTo\w\@jp90}% -\Entry{gtx}0{otf-cjge-h Identity-H \FONT/AJ16}% -\Entry{gtx}0{otf-cjge-v Identity-V \FONT/AJ16}% -\Entry{gtx}0{hgotheb-h H \FONTo}% -\Entry{gtx}0{hgotheb-v V \FONTo}% -\Entry{gtx}0{otf-ujgen-h \+UniJIS2004-UTF16-H \FONT\@jp04}% -\Entry{gtx}0{otf-ujgen-v \+UniJIS2004-UTF16-V \FONT\w\@jp04}% -\Entry{gtx}0{hgothebn-h H \FONT}% -\Entry{gtx}0{hgothebn-v V \FONT}% -\Entry{mgr}0{otf-ujmgr-h \+UniJIS-UTF16-H \FONTo\@jp90}% -\Entry{mgr}0{otf-ujmgr-v \+UniJIS-UTF16-V \FONTo\w\@jp90}% -\Entry{mgr}0{otf-cjmgr-h Identity-H \FONT/AJ16}% -\Entry{mgr}0{otf-cjmgr-v Identity-V \FONT/AJ16}% -\Entry{mgr}0{hmgothr-h H \FONTo}% -\Entry{mgr}0{hmgothr-v V \FONTo}% -\Entry{mgr}0{otf-ujmgrn-h \+UniJIS2004-UTF16-H \FONT\@jp04}% -\Entry{mgr}0{otf-ujmgrn-v \+UniJIS2004-UTF16-V \FONT\w\@jp04}% -\Entry{mgr}0{hmgothrn-h H \FONT}% -\Entry{mgr}0{hmgothrn-v V \FONT}% +\Entry{mnl}{otf-ujml-h} {UniJIS-UTF16-H} {Uni,90,FWid}% +\Entry{mnl}{otf-ujml-v} {UniJIS-UTF16-V} {Uni,90,FWid,V}% +\Entry{mnl}{otf-cjml-h} {Identity-H} {AJ16}% +\Entry{mnl}{otf-cjml-v} {Identity-V} {AJ16,V}% +\Entry{mnl}{hminl-h} {H} {90}% +\Entry{mnl}{hminl-v} {V} {90,V}% +\Entry{mnl}{otf-ujmln-h} {UniJIS2004-UTF16-H} {Uni,04,FWid}% +\Entry{mnl}{otf-ujmln-v} {UniJIS2004-UTF16-V} {Uni,04,FWid,V}% +\Entry{mnl}{hminln-h} {H} {}% +\Entry{mnl}{hminln-v} {V} {V}% +\Entry{mnr}{otf-ujmr-h} {UniJIS-UTF16-H} {Uni,90,FWid}% +\Entry{mnr}{otf-ujmr-v} {UniJIS-UTF16-V} {Uni,90,FWid,V}% +\Entry{mnr}{otf-cjmr-h} {Identity-H} {AJ16}% +\Entry{mnr}{otf-cjmr-v} {Identity-V} {AJ16,V}% +\Entry{mnr}{hminr-h} {H} {90}% +\Entry{mnr}{hminr-v} {V} {90,V}% +\Entry{mnr}{otf-ujmrn-h} {UniJIS2004-UTF16-H} {Uni,04,FWid}% +\Entry{mnr}{otf-ujmrn-v} {UniJIS2004-UTF16-V} {Uni,04,FWid,V}% +\Entry{mnr}{hminrn-h} {H} {}% +\Entry{mnr}{hminrn-v} {V} {V}% +\Entry{mnb}{otf-ujmb-h} {UniJIS-UTF16-H} {Uni,90,FWid}% +\Entry{mnb}{otf-ujmb-v} {UniJIS-UTF16-V} {Uni,90,FWid,V}% +\Entry{mnb}{otf-cjmb-h} {Identity-H} {AJ16}% +\Entry{mnb}{otf-cjmb-v} {Identity-V} {AJ16,V}% +\Entry{mnb}{hminb-h} {H} {90}% +\Entry{mnb}{hminb-v} {V} {90,V}% +\Entry{mnb}{otf-ujmbn-h} {UniJIS2004-UTF16-H} {Uni,04,FWid}% +\Entry{mnb}{otf-ujmbn-v} {UniJIS2004-UTF16-V} {Uni,04,FWid,V}% +\Entry{mnb}{hminbn-h} {H} {}% +\Entry{mnb}{hminbn-v} {V} {V}% +\Entry{gtr}{otf-ujgr-h} {UniJIS-UTF16-H} {Uni,90,FWid}% +\Entry{gtr}{otf-ujgr-v} {UniJIS-UTF16-V} {Uni,90,FWid,V}% +\Entry{gtr}{otf-cjgr-h} {Identity-H} {AJ16}% +\Entry{gtr}{otf-cjgr-v} {Identity-V} {AJ16,V}% +\Entry{gtr}{hgothr-h} {H} {90}% +\Entry{gtr}{hgothr-v} {V} {90,V}% +\Entry{gtr}{otf-ujgrn-h} {UniJIS2004-UTF16-H} {Uni,04,FWid}% +\Entry{gtr}{otf-ujgrn-v} {UniJIS2004-UTF16-V} {Uni,04,FWid,V}% +\Entry{gtr}{hgothrn-h} {H} {}% +\Entry{gtr}{hgothrn-v} {V} {V}% +\Entry{gtb}{otf-ujgb-h} {UniJIS-UTF16-H} {Uni,90,FWid}% +\Entry{gtb}{otf-ujgb-v} {UniJIS-UTF16-V} {Uni,90,FWid,V}% +\Entry{gtb}{otf-cjgb-h} {Identity-H} {AJ16}% +\Entry{gtb}{otf-cjgb-v} {Identity-V} {AJ16,V}% +\Entry{gtb}{hgothb-h} {H} {90}% +\Entry{gtb}{hgothb-v} {V} {90,V}% +\Entry{gtb}{otf-ujgbn-h} {UniJIS2004-UTF16-H} {Uni,04,FWid}% +\Entry{gtb}{otf-ujgbn-v} {UniJIS2004-UTF16-V} {Uni,04,FWid,V}% +\Entry{gtb}{hgothbn-h} {H} {}% +\Entry{gtb}{hgothbn-v} {V} {V}% +\Entry{gtx}{otf-ujge-h} {UniJIS-UTF16-H} {Uni,90,FWid}% +\Entry{gtx}{otf-ujge-v} {UniJIS-UTF16-V} {Uni,90,FWid,V}% +\Entry{gtx}{otf-cjge-h} {Identity-H} {AJ16}% +\Entry{gtx}{otf-cjge-v} {Identity-V} {AJ16,V}% +\Entry{gtx}{hgotheb-h} {H} {90}% +\Entry{gtx}{hgotheb-v} {V} {90,V}% +\Entry{gtx}{otf-ujgen-h} {UniJIS2004-UTF16-H} {Uni,04,FWid}% +\Entry{gtx}{otf-ujgen-v} {UniJIS2004-UTF16-V} {Uni,04,FWid,V}% +\Entry{gtx}{hgothebn-h} {H} {}% +\Entry{gtx}{hgothebn-v} {V} {V}% +\Entry{mgr}{otf-ujmgr-h} {UniJIS-UTF16-H} {Uni,90,FWid}% +\Entry{mgr}{otf-ujmgr-v} {UniJIS-UTF16-V} {Uni,90,FWid,V}% +\Entry{mgr}{otf-cjmgr-h} {Identity-H} {AJ16}% +\Entry{mgr}{otf-cjmgr-v} {Identity-V} {AJ16,V}% +\Entry{mgr}{hmgothr-h} {H} {90}% +\Entry{mgr}{hmgothr-v} {V} {90,V}% +\Entry{mgr}{otf-ujmgrn-h} {UniJIS2004-UTF16-H} {Uni,04,FWid}% +\Entry{mgr}{otf-ujmgrn-v} {UniJIS2004-UTF16-V} {Uni,04,FWid,V}% +\Entry{mgr}{hmgothrn-h} {H} {}% +\Entry{mgr}{hmgothrn-v} {V} {V}% % \ifpxcz@otf@multi -\Entry{kom}0{otf-ukmr-h \+UniKS-UTF16-H \FONT}% -\Entry{kom}0{otf-ukmr-v \+UniKS-UTF16-V \FONT\w}% -\Entry{kom}0{otf-ckmr-h Identity-H \FONT/AK12}% -\Entry{kom}0{otf-ckmr-v Identity-V \FONT/AK12}% -\Entry{kog}0{otf-ukgr-h \+UniKS-UTF16-H \FONT}% -\Entry{kog}0{otf-ukgr-v \+UniKS-UTF16-V \FONT\w}% -\Entry{kog}0{otf-ckgr-h Identity-H \FONT/AK12}% -\Entry{kog}0{otf-ckgr-v Identity-V \FONT/AK12}% -\Entry{scm}0{otf-ucmr-h \+UniGB-UTF16-H \FONT}% -\Entry{scm}0{otf-ucmr-v \+UniGB-UTF16-V \FONT\w}% -\Entry{scm}0{otf-ccmr-h Identity-H \FONT/AG14}% -\Entry{scm}0{otf-ccmr-v Identity-V \FONT/AG14}% -\Entry{scg}0{otf-ucgr-h \+UniGB-UTF16-H \FONT}% -\Entry{scg}0{otf-ucgr-v \+UniGB-UTF16-V \FONT\w}% -\Entry{scg}0{otf-ccgr-h Identity-H \FONT/AG14}% -\Entry{scg}0{otf-ccgr-v Identity-V \FONT/AG14}% -\Entry{tcm}0{otf-utmr-h \+UniCNS-UTF16-H \FONT}% -\Entry{tcm}0{otf-utmr-v \+UniCNS-UTF16-V \FONT\w}% -\Entry{tcm}0{otf-ctmr-h Identity-H \FONT/AC14}% -\Entry{tcm}0{otf-ctmr-v Identity-V \FONT/AC14}% -\Entry{tcg}0{otf-utgr-h \+UniCNS-UTF16-H \FONT}% -\Entry{tcg}0{otf-utgr-v \+UniCNS-UTF16-V \FONT\w}% -\Entry{tcg}0{otf-ctgr-h Identity-H \FONT/AC14}% -\Entry{tcg}0{otf-ctgr-v Identity-V \FONT/AC14}% +\Entry{kom}{otf-ukmr-h} {UniKS-UTF16-H} {Uni,FWid}% +\Entry{kom}{otf-ukmr-v} {UniKS-UTF16-V} {Uni,FWid,V}% +\Entry{kom}{otf-ckmr-h} {Identity-H} {AK12}% +\Entry{kom}{otf-ckmr-v} {Identity-V} {AK12,V}% +\Entry{kog}{otf-ukgr-h} {UniKS-UTF16-H} {Uni,FWid}% +\Entry{kog}{otf-ukgr-v} {UniKS-UTF16-V} {Uni,FWid,V}% +\Entry{kog}{otf-ckgr-h} {Identity-H} {AK12}% +\Entry{kog}{otf-ckgr-v} {Identity-V} {AK12,V}% +\Entry{scm}{otf-ucmr-h} {UniGB-UTF16-H} {Uni,FWid}% +\Entry{scm}{otf-ucmr-v} {UniGB-UTF16-V} {Uni,FWid,V}% +\Entry{scm}{otf-ccmr-h} {Identity-H} {AG14}% +\Entry{scm}{otf-ccmr-v} {Identity-V} {AG14,V}% +\Entry{scg}{otf-ucgr-h} {UniGB-UTF16-H} {Uni,FWid}% +\Entry{scg}{otf-ucgr-v} {UniGB-UTF16-V} {Uni,FWid,V}% +\Entry{scg}{otf-ccgr-h} {Identity-H} {AG14}% +\Entry{scg}{otf-ccgr-v} {Identity-V} {AG14,V}% +\Entry{tcm}{otf-utmr-h} {UniCNS-UTF16-H} {Uni,FWid}% +\Entry{tcm}{otf-utmr-v} {UniCNS-UTF16-V} {Uni,FWid,V}% +\Entry{tcm}{otf-ctmr-h} {Identity-H} {AC14}% +\Entry{tcm}{otf-ctmr-v} {Identity-V} {AC14,V}% +\Entry{tcg}{otf-utgr-h} {UniCNS-UTF16-H} {Uni,FWid}% +\Entry{tcg}{otf-utgr-v} {UniCNS-UTF16-V} {Uni,FWid,V}% +\Entry{tcg}{otf-ctgr-h} {Identity-H} {AC14}% +\Entry{tcg}{otf-ctgr-v} {Identity-V} {AC14,V}% \fi } \pxcz@mapentry{UPSTD}{% -\Entry{mnr}0{uprml-h \UniJIS-UTF16-H \FONTs\@jpXX}% -\Entry{mnr}0{uprml-v \UniJIS-UTF16-V \FONTs\@w\@jpXX}% -\Entry{mnr}2{uprml-hq \@+UniJIS-UCS2-H \FONT\@fwid}% -\Entry{gtu}0{upgbm-h \UniJIS-UTF16-H \FONTs\@jpXX}% -\Entry{gtu}0{upgbm-v \UniJIS-UTF16-V \FONTs\@w\@jpXX}% -\Entry{gtu}2{upgbm-hq \@+UniJIS-UCS2-H \FONT\@fwid}% -\Entry{mnr}0{urml \UniJIS-UTF16-H \FONTs\@jpXX}% -\Entry{mnr}0{urmlv \UniJIS-UTF16-V \FONTs\@w\@jpXX}% -\Entry{gtu}0{ugbm \UniJIS-UTF16-H \FONTs\@jpXX}% -\Entry{gtu}0{ugbmv \UniJIS-UTF16-V \FONTs\@w\@jpXX}% +\Entry{mnr}{uprml-h} {UniJIS-UTF16-H} {Uni*,Switch}% +\Entry{mnr}{uprml-v} {UniJIS-UTF16-V} {Uni*,Switch,V}% +\Entry{mnr}{uprml-hq} {UniJIS-UCS2-H} {Uni*,FWid}% +\Entry{gtu}{upgbm-h} {UniJIS-UTF16-H} {Uni*,Switch}% +\Entry{gtu}{upgbm-v} {UniJIS-UTF16-V} {Uni*,Switch,V}% +\Entry{gtu}{upgbm-hq} {UniJIS-UCS2-H} {Uni*,FWid}% +\Entry{mnr}{urml} {UniJIS-UTF16-H} {Uni*,Switch}% +\Entry{mnr}{urmlv} {UniJIS-UTF16-V} {Uni*,Switch,V}% +\Entry{gtu}{ugbm} {UniJIS-UTF16-H} {Uni*,Switch}% +\Entry{gtu}{ugbmv} {UniJIS-UTF16-V} {Uni*,Switch,V}% % -\Entry{kom}0{uphysmjm-h \@+UniKS-UTF16-H \FONT}% -\Entry{kom}0{uphysmjm-v \@+UniKS-UTF16-V \FONT\@w}% -\Entry{kog}0{uphygt-h \@+UniKS-UTF16-H \FONT}% -\Entry{kog}0{uphygt-v \@+UniKS-UTF16-V \FONT\@w}% -\Entry{scm}0{upstsl-h \@+UniGB-UTF16-H \FONT}% -\Entry{scm}0{upstsl-v \@+UniGB-UTF16-V \FONT\@w}% -\Entry{scg}0{upstht-h \@+UniGB-UTF16-H \FONT}% -\Entry{scg}0{upstht-v \@+UniGB-UTF16-V \FONT\@w}% -\Entry{tcm}0{upmsl-h \@+UniCNS-UTF16-H \FONT}% -\Entry{tcm}0{upmsl-v \@+UniCNS-UTF16-V \FONT\@w}% -\Entry{tcg}0{upmhm-h \@+UniCNS-UTF16-H \FONT}% -\Entry{tcg}0{upmhm-v \@+UniCNS-UTF16-V \FONT\@w}% +\Entry{kom}{uphysmjm-h} {UniKS-UTF16-H} {Uni*}% +\Entry{kom}{uphysmjm-v} {UniKS-UTF16-V} {Uni*,V}% +\Entry{kog}{uphygt-h} {UniKS-UTF16-H} {Uni*}% +\Entry{kog}{uphygt-v} {UniKS-UTF16-V} {Uni*,V}% +\Entry{scm}{upstsl-h} {UniGB-UTF16-H} {Uni*}% +\Entry{scm}{upstsl-v} {UniGB-UTF16-V} {Uni*,V}% +\Entry{scg}{upstht-h} {UniGB-UTF16-H} {Uni*}% +\Entry{scg}{upstht-v} {UniGB-UTF16-V} {Uni*,V}% +\Entry{tcm}{upmsl-h} {UniCNS-UTF16-H} {Uni*}% +\Entry{tcm}{upmsl-v} {UniCNS-UTF16-V} {Uni*,V}% +\Entry{tcg}{upmhm-h} {UniCNS-UTF16-H} {Uni*}% +\Entry{tcg}{upmhm-v} {UniCNS-UTF16-V} {Uni*,V}% } \pxcz@mapentry{UPOTF}{% -\Entry{mnl}0{uphminl-h \@+UniJIS-UTF16-H \FONTo\@jp90}% -\Entry{mnl}0{uphminl-v \@+UniJIS-UTF16-V \FONTo\@w\@jp90}% -\Entry{mnl}0{uphminln-h \@+UniJIS2004-UTF16-H \FONT\@jp04}% -\Entry{mnl}0{uphminln-v \@+UniJIS2004-UTF16-V \FONT\@w\@jp04}% -\Entry{mnr}0{uphminr-h \@+UniJIS-UTF16-H \FONTo\@jp90}% -\Entry{mnr}0{uphminr-v \@+UniJIS-UTF16-V \FONTo\@w\@jp90}% -\Entry{mnr}0{uphminrn-h \@+UniJIS2004-UTF16-H \FONT\@jp04}% -\Entry{mnr}0{uphminrn-v \@+UniJIS2004-UTF16-V \FONT\@w\@jp04}% -\Entry{mnb}0{uphminb-h \@+UniJIS-UTF16-H \FONTo\@jp90}% -\Entry{mnb}0{uphminb-v \@+UniJIS-UTF16-V \FONTo\@w\@jp90}% -\Entry{mnb}0{uphminbn-h \@+UniJIS2004-UTF16-H \FONT\@jp04}% -\Entry{mnb}0{uphminbn-v \@+UniJIS2004-UTF16-V \FONT\@w\@jp04}% -\Entry{gtr}0{uphgothr-h \@+UniJIS-UTF16-H \FONTo\@jp90}% -\Entry{gtr}0{uphgothr-v \@+UniJIS-UTF16-V \FONTo\@w\@jp90}% -\Entry{gtr}0{uphgothrn-h \@+UniJIS2004-UTF16-H \FONT\@jp04}% -\Entry{gtr}0{uphgothrn-v \@+UniJIS2004-UTF16-V \FONT\@w\@jp04}% -\Entry{gtb}0{uphgothb-h \@+UniJIS-UTF16-H \FONTo\@jp90}% -\Entry{gtb}0{uphgothb-v \@+UniJIS-UTF16-V \FONTo\@w\@jp90}% -\Entry{gtb}0{uphgothbn-h \@+UniJIS2004-UTF16-H \FONT\@jp04}% -\Entry{gtb}0{uphgothbn-v \@+UniJIS2004-UTF16-V \FONT\@w\@jp04}% -\Entry{gtx}0{uphgotheb-h \@+UniJIS-UTF16-H \FONTo\@jp90}% -\Entry{gtx}0{uphgotheb-v \@+UniJIS-UTF16-V \FONTo\@w\@jp90}% -\Entry{gtx}0{uphgothebn-h \@+UniJIS2004-UTF16-H \FONT\@jp04}% -\Entry{gtx}0{uphgothebn-v \@+UniJIS2004-UTF16-V \FONT\@w\@jp04}% -\Entry{mgr}0{uphmgothr-h \@+UniJIS-UTF16-H \FONTo\@jp90}% -\Entry{mgr}0{uphmgothr-v \@+UniJIS-UTF16-V \FONTo\@w\@jp90}% -\Entry{mgr}0{uphmgothrn-h \@+UniJIS2004-UTF16-H \FONT\@jp04}% -\Entry{mgr}0{uphmgothrn-v \@+UniJIS2004-UTF16-V \FONT\@w\@jp04}% +\Entry{mnl}{uphminl-h} {UniJIS-UTF16-H} {Uni*,90}% +\Entry{mnl}{uphminl-v} {UniJIS-UTF16-V} {Uni*,90,V}% +\Entry{mnl}{uphminln-h} {UniJIS2004-UTF16-H} {Uni*,04}% +\Entry{mnl}{uphminln-v} {UniJIS2004-UTF16-V} {Uni*,04,V}% +\Entry{mnr}{uphminr-h} {UniJIS-UTF16-H} {Uni*,90}% +\Entry{mnr}{uphminr-v} {UniJIS-UTF16-V} {Uni*,90,V}% +\Entry{mnr}{uphminrn-h} {UniJIS2004-UTF16-H} {Uni*,04}% +\Entry{mnr}{uphminrn-v} {UniJIS2004-UTF16-V} {Uni*,04,V}% +\Entry{mnb}{uphminb-h} {UniJIS-UTF16-H} {Uni*,90}% +\Entry{mnb}{uphminb-v} {UniJIS-UTF16-V} {Uni*,90,V}% +\Entry{mnb}{uphminbn-h} {UniJIS2004-UTF16-H} {Uni*,04}% +\Entry{mnb}{uphminbn-v} {UniJIS2004-UTF16-V} {Uni*,04,V}% +\Entry{gtr}{uphgothr-h} {UniJIS-UTF16-H} {Uni*,90}% +\Entry{gtr}{uphgothr-v} {UniJIS-UTF16-V} {Uni*,90,V}% +\Entry{gtr}{uphgothrn-h} {UniJIS2004-UTF16-H} {Uni*,04}% +\Entry{gtr}{uphgothrn-v} {UniJIS2004-UTF16-V} {Uni*,04,V}% +\Entry{gtb}{uphgothb-h} {UniJIS-UTF16-H} {Uni*,90}% +\Entry{gtb}{uphgothb-v} {UniJIS-UTF16-V} {Uni*,90,V}% +\Entry{gtb}{uphgothbn-h} {UniJIS2004-UTF16-H} {Uni*,04}% +\Entry{gtb}{uphgothbn-v} {UniJIS2004-UTF16-V} {Uni*,04,V}% +\Entry{gtx}{uphgotheb-h} {UniJIS-UTF16-H} {Uni*,90}% +\Entry{gtx}{uphgotheb-v} {UniJIS-UTF16-V} {Uni*,90,V}% +\Entry{gtx}{uphgothebn-h} {UniJIS2004-UTF16-H} {Uni*,04}% +\Entry{gtx}{uphgothebn-v} {UniJIS2004-UTF16-V} {Uni*,04,V}% +\Entry{mgr}{uphmgothr-h} {UniJIS-UTF16-H} {Uni*,90}% +\Entry{mgr}{uphmgothr-v} {UniJIS-UTF16-V} {Uni*,90,V}% +\Entry{mgr}{uphmgothrn-h} {UniJIS2004-UTF16-H} {Uni*,04}% +\Entry{mgr}{uphmgothrn-v} {UniJIS2004-UTF16-V} {Uni*,04,V}% } \pxcz@mapentry{PXOTF}{% } @@ -941,7 +1221,7 @@ % if mnr is replaced but gtr is not then ... \expandafter\ifx\csname pxcz@FS/gtr\endcsname\@empty {\expandafter\let\csname pxcz@FS/gtr\endcsname\pxcz@x - \pxcz@Entry{gtr}1{r-cfjas-r-@PXcjk0@ \pxcz@cmap@uni\space \FONT}}% + \pxcz@Entry{gtr}{r-cfjas-r-@PXcjk0@}{unicode}{HWid}}% \fi\fi \@ifpackagewith{otf}{deluxe}{\pxcz@err@dxotf{otf}}{}% \@ifpackagewith{pxotf}{deluxe}{\pxcz@err@dxotf{pxotf}}{}% @@ -976,6 +1256,9 @@ \ifx\pxcz@file@preset\relax\else \pxcz@do@file@preset \fi + \ifx t\pxcz@strict@csi + \pxcz@inspect@flavor@all + \fi \ifpxcz@alpha \pxcz@check@alldefined{mnl,mnr,mnb}% \ifpxcz@ok \renewcommand\rmdefault{cfjar}\fi @@ -1041,6 +1324,144 @@ \pxcz@info{Relation font set for \k@encoding/#1}% } +%--------------------------------------- strict-CSI mode +\ifx t\pxcz@strict@csi +% In this section, the e-TeX extension plus \pdffiledump and +% \pdffilesize is assumed to be available. + +%% variables +\newcount\pxcz@cntr +\let\pxcz@insf@file\relax +\let\pxcz@insf@idx\relax +\let\pxcz@insf@nfont\relax +\let\pxcz@kpse@dir\relax + +%% constants +\def\pxcz@insf@@OTTO{"4F54544F } +\def\pxcz@insf@@IZ{"00010000 } +\def\pxcz@insf@@ttcf{"74746366 } + +%% \pxcz@insf@read@word{<offset>} +% Reads a 32-bit integer from \pxcz@insf@file at the given offset, +% and sets the value (or -1 on error) to \pxcz@cntr. +\@onlypreamble\pxcz@insf@read@word +\def\pxcz@insf@read@word#1{% + \pxcz@cntr=#1\relax + \edef\pxcz@tmpa{\pdffiledump offset\pxcz@cntr length1{\pxcz@insf@file}}% + \ifnum"0\pxcz@tmpa<"80 + \advance\pxcz@cntr\@ne + \edef\pxcz@tmpb{\pdffiledump offset\pxcz@cntr length3{\pxcz@insf@file}}% + \ifnum"1\pxcz@tmpb<"1000000 \pxcz@cntr\m@ne % truncated + \else \pxcz@cntr"\pxcz@tmpa\pxcz@tmpb\relax % the value + \fi + \else \pxcz@cntr\m@ne % overflow + \fi} + +%% \pxcz@inspect@flavor{<path>}{<index>} +% Sets the result to \pxcz@cntr. +% 1=CFF, 0=TTF, <0 if error. +\@onlypreamble\pxcz@inspect@flavor +\def\pxcz@inspect@flavor#1#2{% + \edef\pxcz@insf@file{#1}% + \mathchardef\pxcz@insf@idx=#2\relax + \pxcz@insf@read@word{0}% outer tag + \ifnum\pxcz@cntr=\pxcz@insf@@ttcf % TTC/OTC + \pxcz@insf@read@word{8}% font count + \ifnum\pxcz@cntr>"7FFF \pxcz@cntr\m@ne \fi + \ifnum\pxcz@cntr>\m@ne + \mathchardef\pxcz@insf@nfont\pxcz@cntr + \@tempcnta\pxcz@insf@idx \multiply\@tempcnta4 + \advance\@tempcnta12 \pxcz@insf@read@word{\@tempcnta}% inner tag + \@tempcnta\pxcz@cntr + \fi + \else % not collection + \@tempcnta=0 \chardef\pxcz@insf@nfont=1 + \fi + \ifnum\pxcz@cntr>\m@ne % no format error so far + \ifnum\pxcz@insf@idx<\pxcz@insf@nfont + \pxcz@insf@read@word{\@tempcnta}% + \ifnum\pxcz@cntr=\m@ne % ERROR: bad format + \else\ifnum\pxcz@cntr=\pxcz@insf@@OTTO \pxcz@cntr\@ne % CFF-flavor + \else\ifnum\pxcz@cntr=\pxcz@insf@@IZ \pxcz@cntr\z@ % TTF-flavor + \else \pxcz@cntr-\thr@@ % ERROR: unknown tag + \fi\fi\fi + \else \pxcz@cntr-\tw@ % ERROR: bad index + \fi + %else ERROR: bad format + \fi} + +%% \pxcz@kpse@dir@cache +% to spped up \pxcz@kpsewhich +\@onlypreamble\pxcz@kpse@dir@cache +\let\pxcz@kpse@dir@cache\@empty + +%% \pxcz@kpsewhich{<filename>} +% Sets to \pxcz@kpse@dir the directory where the file is found +% (or \relax if not found). +\@onlypreamble\pxcz@kpsewhich +\def\pxcz@kpsewhich#1{% + \edef\pxcz@tmpa{#1}\let\pxcz@kpse@dir\relax + \let\do\pxcz@kpsewhich@do \pxcz@kpse@dir@cache\relax + \ifx\pxcz@kpse@dir\relax + \chardef\pxcz@tmpz=\endlinechar \endlinechar\m@ne + \openin\@inputcheck="|kpsewhich \pxcz@tmpa"\relax + \unless\ifeof\@inputcheck + \readline\@inputcheck to\pxcz@tmpb + \unless\ifx\pxcz@tmpb\@empty + \let\pxcz@kpse@dir\@empty \let\do\relax + \expandafter\pxcz@kpsewhich@a\pxcz@tmpb/\pxcz@end + \edef\pxcz@kpse@dir@cache{% + \pxcz@kpse@dir@cache\do{\pxcz@kpse@dir}}% + \fi + \fi + \endlinechar\pxcz@tmpz + \fi} +\@onlypreamble\pxcz@kpsewhich@a +\def\pxcz@kpsewhich@a#1/#2\pxcz@end{% + \ifx\pxcz@end#2\pxcz@end \expandafter\@gobble + \else \expandafter\@firstofone + \fi{% + \edef\pxcz@kpse@dir{\pxcz@kpse@dir#1/}% + \pxcz@kpsewhich@a#2\pxcz@end}} +\@onlypreamble\pxcz@kpsewhich@do +\def\pxcz@kpsewhich@do#1{% + \ifnum0\pdffilesize{#1\pxcz@tmpa}>\z@ + \def\pxcz@kpse@dir{#1}% + \expandafter\pxcz@kpsewhich@do@a + \fi} +\def\pxcz@kpsewhich@do@a#1\relax{} + +%% \pxcz@inspect@flavor@all +% Sets \[pxcz@OT/<sym>]. +\@onlypreamble\pxcz@inspect@flavor@all +\def\pxcz@inspect@flavor@all{% + \@for\pxcz@tmpa:=\pxcz@sym@list\do{% + \edef\pxcz@tmpa{{\pxcz@tmpa}{\@nameuse{pxcz@FS/\pxcz@tmpa}}}% + \expandafter\pxcz@inspect@flavor@all@a\pxcz@tmpa}} +\@onlypreamble\pxcz@inspect@flavor@all@a +\def\pxcz@inspect@flavor@all@a#1#2{% + \def\pxcz@tmpa{#2}% + \ifx\pxcz@tmpa\@empty + \else\ifx\pxcz@tmpa\pxcz@noembed + \@namedef{pxcz@OT/#1}{t}% + \else \pxcz@inspect@flavor@all@b#2\pxcz@end{#1}% + \fi\fi} +\@onlypreamble\pxcz@inspect@flavor@all@b +\def\pxcz@inspect@flavor@all@b#1#2\pxcz@end{% + \edef\pxcz@tmpa{\ifx:#1\else:0:\fi#1#2}% + \expandafter\pxcz@inspect@flavor@all@c\pxcz@tmpa\pxcz@end} +\@onlypreamble\pxcz@inspect@flavor@all@c +\def\pxcz@inspect@flavor@all@c:#1:#2\pxcz@end#3{% + \pxcz@kpsewhich{#2}% + \unless\ifx\pxcz@kpse@dir\relax + \pxcz@inspect@flavor{\pxcz@kpse@dir#2}{#1}% +%\typeout{#3)\pxcz@kpse@dir#2;#1==>\the\pxcz@cntr}% + \ifnum\pxcz@cntr>\z@ + \@namedef{pxcz@OT/#3}{t}% + \fi + \fi} + +\fi %--------------------------------------- dump font map % if some dumpmap is enabled... \ifnum 0\ifpxcz@dumpmap 1\fi @@ -1063,7 +1484,11 @@ \def\pxcz@dump@special@a#1 #2\bxcz@end{% \@nameuse{pxcz@dump@special@#1}\@gobble{#2}} \@namedef{pxcz@dump@special@pdf:mapline}#1#2{% - \pxcz@add@to@dump@text{#2^^J}} + \pxcz@add@to@dump@text{\pxcz@rmin#2^^J}} + +%% \pxcz@rmin +\def\pxcz@rmin#1{% + \ifx-#1\@percentchar\else#1\fi} %% \pxcz@dump@spec@to{<file-name>} \@onlypreamble\pxcz@dump@spec@to @@ -1106,8 +1531,7 @@ %% \pxcz@declare@preset{<name>}{<text>} \@onlypreamble\pxcz@declare@preset \def\pxcz@declare@preset#1{% - \expandafter\pxcz@decl@preset@a\csname pxcz@the@preset@#1\endcsname} -\def\pxcz@decl@preset@a#1{\@onlypreamble#1\def#1} + \pxcz@onlypreamble@csdef{pxcz@the@preset@#1}} %% \pxcz@declare@preset@alias{<name1>}{<name2>} \@onlypreamble\pxcz@declare@preset@alias @@ -1174,20 +1598,14 @@ \pxcz@multiweight{ipaexm.ttf}{ipaexm.ttf}{:0:hgrme.ttc}% {:0:hgrgm.ttc}{:0:hgrge.ttc}{:0:hgrsgu.ttc}{ipaexg.ttf}{hgrsmp.ttf}} \pxcz@declare@preset{moga-mobo}{% - \pxcz@enable@switch@realfont - \pxcz@multiweight{\pxcz@MI03:mogam.ttc}{\pxcz@MI03:mogam.ttc}% - {\pxcz@MI03:mogamb.ttc}{\pxcz@MI02:mogag.ttc}{\pxcz@MI02:mogagb.ttc}% - {\pxcz@MI02:mogagb.ttc}{\pxcz@MI02:mogag.ttc}{\pxcz@MI02:mobog.ttc}} + \pxcz@multiweight{:0:mogam.ttc}{:0:mogam.ttc}{:0:mogamb.ttc}% + {:0:mogag.ttc}{:0:mogagb.ttc}{:0:mogagb.ttc}{:0:mogag.ttc}{:0:mobog.ttc}} \pxcz@declare@preset{moga-mobo-ex}{% - \pxcz@enable@switch@realfont - \pxcz@multiweight{\pxcz@MI14:mogam.ttc}{\pxcz@MI14:mogam.ttc}% - {\pxcz@MI14:mogamb.ttc}{\pxcz@MI13:mogag.ttc}{\pxcz@MI13:mogagb.ttc}% - {\pxcz@MI13:mogagb.ttc}{\pxcz@MI13:mogag.ttc}{\pxcz@MI13:mobog.ttc}} + \pxcz@multiweight{:1:mogam.ttc}{:1:mogam.ttc}{:1:mogamb.ttc}% + {:1:mogag.ttc}{:1:mogagb.ttc}{:1:mogagb.ttc}{:1:mogag.ttc}{:1:mobog.ttc}} \pxcz@declare@preset{moga-maruberi}{% - \pxcz@enable@switch@realfont - \pxcz@multiweight{\pxcz@MI03:mogam.ttc}{\pxcz@MI03:mogam.ttc}% - {\pxcz@MI03:mogamb.ttc}{\pxcz@MI02:mogag.ttc}{\pxcz@MI02:mogagb.ttc}% - {\pxcz@MI02:mogagb.ttc}{\pxcz@MI02:mogag.ttc}{MTLmr3m.ttf}} + \pxcz@multiweight{:0:mogam.ttc}{:0:mogam.ttc}{:0:mogamb.ttc}% + {:0:mogag.ttc}{:0:mogagb.ttc}{:0:mogagb.ttc}{:0:mogag.ttc}{MTLmr3m.ttf}} \pxcz@declare@preset{kozuka-pro}{% \usecmapforalphabet \pxcz@multiweight{KozMinPro-Light.otf}{KozMinPro-Regular.otf}% @@ -1243,10 +1661,6 @@ \pxcz@multiweight{yuminl.ttf}{yumin.ttf}% {yumindb.ttf}{:0:YuGothR.ttc}{:0:YuGothB.ttc}% {:0:YuGothB.ttc}{:0:YuGothM.ttc}{:0:YuGothM.ttc}} -\pxcz@declare@preset{yu-win10+}{% - \pxcz@multiweight{\pxcz@YW/yuminl.ttf}{\pxcz@YW/yumin.ttf}% - {\pxcz@YW/yumindb.ttf}{\pxcz@YW:0:YuGothR.ttc}{\pxcz@YW:0:YuGothB.ttc}% - {\pxcz@YW:0:YuGothB.ttc}{\pxcz@YW:0:YuGothM.ttc}{\pxcz@YW:0:YuGothM.ttc}} \pxcz@declare@preset{yu-osx}{% \usecmapforalphabet \pxcz@multiweight{YuMin-Medium.otf}{YuMin-Medium.otf}% @@ -1254,44 +1668,32 @@ {YuGo-Bold.otf}{YuGo-Medium.otf}{YuGo-Medium.otf}} % Source Han Sans/Serif, "OTC" \pxcz@declare@preset{sourcehan-otc}{% - \pxcz@multiweight{\pxcz@SH:0:SourceHanSerif-Light.ttc}% - {\pxcz@SH:0:SourceHanSerif-Regular.ttc}% - {\pxcz@SH:0:SourceHanSerif-Bold.ttc}% - {\pxcz@SH:0:SourceHanSans-Regular.ttc}% - {\pxcz@SH:0:SourceHanSans-Bold.ttc}% - {\pxcz@SH:0:SourceHanSans-Heavy.ttc}% - {\pxcz@SH:0:SourceHanSans-Medium.ttc}% - {\pxcz@SH:0:SourceHanSans-Medium.ttc}} + \pxcz@multiweight{:0:SourceHanSerif-Light.ttc}% + {:0:SourceHanSerif-Regular.ttc}{:0:SourceHanSerif-Bold.ttc}% + {:0:SourceHanSans-Regular.ttc}{:0:SourceHanSans-Bold.ttc}% + {:0:SourceHanSans-Heavy.ttc}{:0:SourceHanSans-Medium.ttc}% + {:0:SourceHanSans-Medium.ttc}} % Source Han Sans/Serif, "Language-specific OTF" \pxcz@declare@preset{sourcehan}{% - \pxcz@multiweight{\pxcz@SH/SourceHanSerif-Light.otf}% - {\pxcz@SH/SourceHanSerif-Regular.otf}% - {\pxcz@SH/SourceHanSerif-Bold.otf}% - {\pxcz@SH/SourceHanSans-Regular.otf}% - {\pxcz@SH/SourceHanSans-Bold.otf}% - {\pxcz@SH/SourceHanSans-Heavy.otf}% - {\pxcz@SH/SourceHanSans-Medium.otf}% - {\pxcz@SH/SourceHanSans-Medium.otf}} + \pxcz@multiweight{SourceHanSerif-Light.otf}% + {SourceHanSerif-Regular.otf}{SourceHanSerif-Bold.otf}% + {SourceHanSans-Regular.otf}{SourceHanSans-Bold.otf}% + {SourceHanSans-Heavy.otf}{SourceHanSans-Medium.otf}% + {SourceHanSans-Medium.otf}} % Noto Sans/Serif CJK, "OpenType/CFF Collection (OTC)" \pxcz@declare@preset{noto-otc}{% - \pxcz@multiweight{\pxcz@NC:0:NotoSerifCJK-Light.ttc}% - {\pxcz@NC:0:NotoSerifCJK-Regular.ttc}% - {\pxcz@NC:0:NotoSerifCJK-Bold.ttc}% - {\pxcz@NC:0:NotoSansCJK-Regular.ttc}% - {\pxcz@NC:0:NotoSansCJK-Bold.ttc}% - {\pxcz@NC:0:NotoSansCJK-Black.ttc}% - {\pxcz@NC:0:NotoSansCJK-Medium.ttc}% - {\pxcz@NC:0:NotoSansCJK-Medium.ttc}} + \pxcz@multiweight{:0:NotoSerifCJK-Light.ttc}% + {:0:NotoSerifCJK-Regular.ttc}{:0:NotoSerifCJK-Bold.ttc}% + {:0:NotoSansCJK-Regular.ttc}{:0:NotoSansCJK-Bold.ttc}% + {:0:NotoSansCJK-Black.ttc}{:0:NotoSansCJK-Medium.ttc}% + {:0:NotoSansCJK-Medium.ttc}} % Noto Sans/Serif CJK, "Language-specific OpenType/CFF (OTF)" \pxcz@declare@preset{noto}{% - \pxcz@multiweight{\pxcz@NC/NotoSerifCJKjp-Light.otf}% - {\pxcz@NC/NotoSerifCJKjp-Regular.otf}% - {\pxcz@NC/NotoSerifCJKjp-Bold.otf}% - {\pxcz@NC/NotoSansCJKjp-Regular.otf}% - {\pxcz@NC/NotoSansCJKjp-Bold.otf}% - {\pxcz@NC/NotoSansCJKjp-Black.otf}% - {\pxcz@NC/NotoSansCJKjp-Medium.otf}% - {\pxcz@NC/NotoSansCJKjp-Medium.otf}} + \pxcz@multiweight{NotoSerifCJKjp-Light.otf}% + {NotoSerifCJKjp-Regular.otf}{NotoSerifCJKjp-Bold.otf}% + {NotoSansCJKjp-Regular.otf}{NotoSansCJKjp-Bold.otf}% + {NotoSansCJKjp-Black.otf}{NotoSansCJKjp-Medium.otf}% + {NotoSansCJKjp-Medium.otf}} %(obsolete) \pxcz@declare@depre@preset{ipa-otf}{% \pxcz@uniweight{ipam.otf}{ipag.otf}} @@ -1322,12 +1724,23 @@ \pxcz@declare@preset@alias{kozuka}{kozuka-pro} \pxcz@declare@preset@alias{hiragino-elcapitan}{hiragino-elcapitan-pro} \pxcz@declare@preset@alias{morisawa}{morisawa-pro} +%(plus-variants) +\pxcz@declare@preset@alias{sourcehan+}{sourcehan} +\pxcz@declare@preset@alias{sourcehan-otc+}{sourcehan-otc} +\pxcz@declare@preset@alias{noto+}{noto} +\pxcz@declare@preset@alias{noto-otc+}{noto-otc} +\pxcz@declare@preset@alias{yu-win10+}{yu-win10} %% ... and invokes the specified one! \if\pxcz@main@preset\relax\else \pxcz@use@preset{\pxcz@main@preset} \fi +%% load pxufont +\ifnum\pxcz@legacycode=\pxcz@legacycode@replace + \RequirePackage{pxufont}[] +\fi + %--------------------------------------- all done \endinput %% EOF diff --git a/Master/texmf-dist/tex/platex/pxchfon/pxjafont.sty b/Master/texmf-dist/tex/platex/pxchfon/pxjafont.sty index aabce1780dc..9a79347b094 100644 --- a/Master/texmf-dist/tex/platex/pxchfon/pxjafont.sty +++ b/Master/texmf-dist/tex/platex/pxchfon/pxjafont.sty @@ -1,6 +1,6 @@ %% %% This is file 'pxjafont.sty'. -%% +%% %% Copyright (c) 2017 Takayuki YATO (aka. "ZR") %% GitHub: https://github.com/zr-tex8r %% Twitter: @zr_tex8r @@ -10,14 +10,15 @@ %% package declaration \NeedsTeXFormat{pLaTeX2e} -\ProvidesPackage{pxjafont}[2017/06/29 v1.0b] +\ProvidesPackage{pxjafont}[2017/09/09 v1.1a] %% show warning \PackageWarning{pxchfon} - {The package 'pxjafont' is obsolete and its use is\MessageBreak + {!!!!!!!!!!!! IMPORTANT WARNING !!!!!!!!!!!!\MessageBreak + The package 'pxjafont' is obsolete and its use is\MessageBreak deprecated. please refer to the manual of pxchfon.\MessageBreak The warning is issued} %% delegate \let\pxAliasedPxjafont=t -\RequirePackageWithOptions{pxchfon}[2017/05/31] +\RequirePackageWithOptions{pxchfon}[2017/09/09] \endinput %% EOF |