summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-02-26 21:12:28 +0000
committerKarl Berry <karl@freefriends.org>2023-02-26 21:12:28 +0000
commit419aa3163cb9e0beec5ef7429f1c11d15fdd1893 (patch)
tree9a3aa9993a00313dcbd825feaae9c781fc5152cf
parentb71c39dcb9687fd522f1940a8e60e9963d4900f5 (diff)
pxbase (26feb23) (branch)
git-svn-id: svn://tug.org/texlive/branches/branch2022.final@66198 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/platex/pxbase/LICENSE2
-rw-r--r--Master/texmf-dist/doc/platex/pxbase/README-ja.md17
-rw-r--r--Master/texmf-dist/doc/platex/pxbase/README.md1
-rw-r--r--Master/texmf-dist/doc/platex/pxbase/pxbabel.pdfbin151912 -> 157044 bytes
-rw-r--r--Master/texmf-dist/doc/platex/pxbase/pxbabel.tex84
-rw-r--r--Master/texmf-dist/tex/platex/pxbase/pxbabel.sty151
-rw-r--r--Master/texmf-dist/tex/platex/pxbase/pxbase.sty4
-rw-r--r--Master/texmf-dist/tex/platex/pxbase/pxbasenc.def21
-rw-r--r--Master/texmf-dist/tex/platex/pxbase/pxjsfenc.def2
-rw-r--r--Master/texmf-dist/tex/platex/pxbase/upkcat.sty6
10 files changed, 184 insertions, 104 deletions
diff --git a/Master/texmf-dist/doc/platex/pxbase/LICENSE b/Master/texmf-dist/doc/platex/pxbase/LICENSE
index ead3a3702e3..cfd0838618e 100644
--- a/Master/texmf-dist/doc/platex/pxbase/LICENSE
+++ b/Master/texmf-dist/doc/platex/pxbase/LICENSE
@@ -1,6 +1,6 @@
The MIT License
-Copyright (c) 2008-2021 Takayuki YATO (aka. "ZR")
+Copyright (c) 2008-2023 Takayuki YATO (aka. "ZR")
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/Master/texmf-dist/doc/platex/pxbase/README-ja.md b/Master/texmf-dist/doc/platex/pxbase/README-ja.md
index 53bf41f4fc0..507faef2a68 100644
--- a/Master/texmf-dist/doc/platex/pxbase/README-ja.md
+++ b/Master/texmf-dist/doc/platex/pxbase/README-ja.md
@@ -121,6 +121,7 @@ pxbabel パッケージ ― Babel の機構に基づく CJK 間のフォント
詳細についてはマニュアル `pxbabel.pdf` を参照されたい。
+
upkcat パッケージ ― 文字指定による kcatcode 操作
-------------------------------------------------
@@ -141,16 +142,17 @@ upkcat パッケージ ― 文字指定による kcatcode 操作
### 前提環境
* TeX フォーマット: plain、LaTeX
- * TeX エンジン: upTeX(派生を含む)
+ * TeX エンジン: upTeX(派生を含む)
+ ※内部漢字コードがUnicode(uptex)で動作している必要がある。
* DVI ウェア(DVI 出力時): 不問
### パッケージ読込
-plain upTeX の場合:
+plain TeX の場合:
\input upkcat.sty
-upLaTeX の場合:
+LaTeX の場合:
\usepackage{upkcat}
@@ -165,6 +167,15 @@ upLaTeX の場合:
更新履歴
--------
+ * Version 1.4 〈2023/02/25〉
+ - pxbasenc: `\pxBDHookEncSwitchOTF` の機能を最新の japanese-otf
+ に対応させる。
+ - pxbabel: 前項改修により `(no)patchutfcmds` の機能は不要になった
+ ので削除。
+ - pxbabel: `forcedeluxemulti` の機能で、新たに japanese-otf の
+ 「中国語・韓国語のテキスト用の多ウェイトTFM」を利用する選択肢を
+ 追加して `deluxemulti` オプションとして再編した。
+
* Version 1.3 〈2021/05/31〉
- pxbabel: japanese-otf のコード入力命令(`\UTF` 等)について、
非標準の和文エンコーディングの適用時でも動作するようにパッチを
diff --git a/Master/texmf-dist/doc/platex/pxbase/README.md b/Master/texmf-dist/doc/platex/pxbase/README.md
index 5c61ff9728a..15eb95507bf 100644
--- a/Master/texmf-dist/doc/platex/pxbase/README.md
+++ b/Master/texmf-dist/doc/platex/pxbase/README.md
@@ -67,6 +67,7 @@ README-ja.md).
Revision History
----------------
+ * Version 1.4 〈2023/02/25〉
* Version 1.3 〈2021/05/31〉
* Version 1.2 〈2021/05/22〉
* Version 1.1b 〈2017/07/03〉
diff --git a/Master/texmf-dist/doc/platex/pxbase/pxbabel.pdf b/Master/texmf-dist/doc/platex/pxbase/pxbabel.pdf
index 602077c0009..a044940d7dd 100644
--- a/Master/texmf-dist/doc/platex/pxbase/pxbabel.pdf
+++ b/Master/texmf-dist/doc/platex/pxbase/pxbabel.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/platex/pxbase/pxbabel.tex b/Master/texmf-dist/doc/platex/pxbase/pxbabel.tex
index 3482bc161ae..f2cd57f0da5 100644
--- a/Master/texmf-dist/doc/platex/pxbase/pxbabel.tex
+++ b/Master/texmf-dist/doc/platex/pxbase/pxbabel.tex
@@ -16,13 +16,15 @@
\bxtexlogoimport{*}
\usepackage{shortvrb}
\MakeShortVerb{\|}
-\newcommand{\PkgVersion}{1.3}
-\newcommand{\PkgDate}{2021/05/31}
+\usepackage[verb]{bxghost}
+\newcommand{\PkgVersion}{1.4}
+\newcommand{\PkgDate}{2023/02/25}
\newcommand{\Pkg}[1]{\textsf{#1}}
\newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$}
\newcommand{\Note}{\par\noindent ※}
\newcommand{\Means}{:\quad\inhibitglue}
\newcommand{\XS}{\hspace{\xkanjiskip}}
+\newcommand{\Strong}[1]{{\headfont#1}}
%-----------------------------------------------------------
\DeclareFontShape{JY2}{mc}{m}{ko}{<->s*[.924871]upkorrm-h}{}
\DeclareFontShape{JT2}{mc}{m}{ko}{<->s*[.924871]upkorrm-v}{}
@@ -82,8 +84,11 @@ Babelで指定する(|\foreignlanguage| 等の引数にする)
同じ(例えば日本語の「言語名」は|japanese|)であるが、
そうでない設定も可能である。
\item 仮想言語\Means
-Babelの言語オプション定義ファイル(|*.ldf|)の読込を伴わない
-言語のこと。
+本パッケージの動作により自動的に定義される、通常の言語オプション定義(キャプション文字列)を伴わないBabel言語のこと。\footnote{%
+つまり、言語オプション定義ファイル(|*.ldf|)の読込により定義される
+Babel言語は仮想言語ではない。
+最近のBabelでは「|ini|ファイルにより言語を定義する」という機能があるが、
+そのように定義されたBabel言語も仮想言語ではない。}
本パッケージではCJK言語を仮想言語として扱えるため、
各言語の定義ファイルを用意する必要がない。
\Note CJK言語を仮想言語にせず定義ファイルを利用することも可能。
@@ -94,8 +99,8 @@ Babelの言語オプション定義ファイル(|*.ldf|)の読込を伴わ
\label{sec:Loading}
0.9版より\Pkg{babel}パッケージと一緒に読み込む方式
-(一括読込モード)をサポートした。
-従来通り、別個に読み込む方式(分離読込モード)も可能である。
+(\Strong{一括読込モード})をサポートした。
+従来通り、別個に読み込む方式(\Strong{分離読込モード})も可能である。
どちらであるかは、\Pkg{pxbabel}読込時に\Pkg{babel}が読込済か
どうかで判別する。
@@ -116,7 +121,7 @@ Babelの言語オプション定義ファイル(|*.ldf|)の読込を伴わ
\item \Meta{CJK言語識別子}|=|\Meta{言語名}\Means
CJK言語を仮想言語として扱い、実際に使用するBabelの言語名を指定する。
\Note 詳細は\ref{sec:Commands}節を参照。
-\Note 言語名の既定値はCJK言語識別子と同一名。
+\Note 既定で用いられる言語名はCJK言語識別子と同一の文字列である。
\item \Meta{CJK言語識別子}\Means
「\Meta{CJK言語識別子}|=|\Meta{CJK言語識別子}」と同じ。
@@ -136,7 +141,7 @@ CJK言語を非仮想言語として扱い、実際に使用するBabelの言語
その言語の定義ファイルを読み込む。
\Note 分離読込モードでの非CJK言語の読込については
確実に動作させるのが困難であるため、
-1.3版において\textbf{非推奨}の扱いとする。
+1.3版において\Strong{非推奨}の扱いとする。
すなわち、分離読込モードではCJK言語のみが指定可能となり、
CJK言語以外は\texttt{babel}のオプションとして指定する必要がある。
@@ -146,8 +151,9 @@ CJK言語以外は\texttt{babel}のオプションとして指定する必要が
用いる場合、\texttt{main}に指定するのは言語名の方であることに注意。}%
で指定する。
\Note |main|の指定がない場合、
-分離読込モードでは\Pkg{babel}で最後に読まれた言語が基底言語になる。
-一括読込モードでは\Pkg{pxbabel}で最後に読まれた言語が基底言語になる。
+分離読込モードでは\Pkg{babel}の読込時に基底言語であったものが
+そのまま基底言語になる。
+一括読込モードでは\Pkg{pxbabel}で最後に読み込まれた言語が基底言語になる。
\item |caption=|\Meta{値}\Means
キャプション言語(キャプションや日付の文字列で使われる言語)の
@@ -191,30 +197,44 @@ CJK言語でフォントを切り替える機能を有効にする。
\Note \Pkg{japanese-otf}パッケージが読込済の場合には
既定が|stdjaencoding|に変更される。
-\item |forcedeluxemulti|\Means
+\item |deluxemulti=|\Meta{値}\Means
{\upLaTeX}で\Pkg{japanese-otf}パッケージを
|deluxe|オプションおよび|multi|オプション付で使用している
(|\UTFK|/|\UTFC|/|\UTFT|が多ウェイトで使える)ときに、
-日本語以外のテキストについても多ウェイトの設定を有効にする。
-\Note 本来は\XS|\UTFK|/|\UTFC|/|\UTFT|入力用である{\TeX}フォント
-(和文TFM)を使うため、約物の周りの空き調整が無効になる。
-
-\item |noforcedeluxemulti|(既定値)\Means
-|forcedeluxemulti|の否定。
-日本語以外のテキストについて多ウェイト設定を無効にする。
-\Note 約物の周りの空き調整が正常に行われる。
-\Note (|no|)|forcedeluxemulti|は試験的な機能であり、
-将来的に廃止される可能性がある。
-
-\item |patchutfcmds|(既定値)\Means
-\Pkg{japanese-otf}パッケージのコード入力命令(\XS|\UTF|命令等)
-について、「非標準の和文エンコーディングが適用される場合にも
-正常動作する」ようにパッチを適用する。
-
-\item |nopatchutfcmds|\Means
-|patchutfcmds|の否定。
-\Note (|no|)|patchutfcmds|は試験的な機能であり、
-将来的に廃止される可能性がある。
+日本語以外のCJK言語のテキストについても多ウェイトの設定を
+有効にするか否か。
+ \begin{itemize}
+ \item |new|/|true|\Means
+ {\TeX} Live 2022以降で利用可能\footnote{%
+ 当該の論理フォントが利用可能でない環境でこの設定を使用すると、
+ {\LaTeX}またはDVIウェアの実行でエラーが発生する。}%
+ になっている、中国語・韓国語のテキスト用の多ウェイトの
+ 論理フォントを使用する。
+ \item |old|\Means
+ 本来は\XS|\UTFK|/|\UTFC|/|\UTFT|入力用である
+ “単純なメトリック”の論理フォントを使用する。
+ 約物の周りの空き調整が無効になるという欠点がある。
+ \item |false|(既定値)\Means
+ 日本語以外のCJK言語は多ウェイトにしない。
+ \end{itemize}
+
+\item |deluxemulti|\Means
+|deluxemulti=new|と同じ。
+\item |nodeluxemulti|\Means
+|deluxemulti=false|と同じ。
+
+\item |forcedeluxemulti|\Means
+|deluxemulti=old|と同じ。
+\item |noforcedeluxemulti|\Means
+|deluxemulti=false|と同じ。
+\Note (|no|)|forcedeluxemulti|は\Strong{非推奨}であり、
+将来に廃止される予定である。
+
+\item (|no|)|patchutfcmds|\Means
+このオプションは何もしない。
+\Note 1.3版で試験的に設けられた機能が1.4版で削除された。
+オプション自体も将来に廃止される予定であり、
+このオプションの指定自体を\Strong{非推奨}とする。
\end{itemize}
%===========================================================
@@ -287,7 +307,7 @@ Babelにおける言語切替の指定は大別すると、入力言語のみを
特に、「日本語の文書クラスを用いて、かつBabelにおいて
仮想言語扱いの日本語を文書全体で基底言語にする」
場合は、キャプションは文書クラスで定めたものに固定される。
- 多くの場合これは好都合な動作だろう。}
+ 多くの場合これは好都合な動作だろう。}%
これによる混乱を避けるために、|caption|オプションによる
キャプション言語の固定が有用かもしれない。
diff --git a/Master/texmf-dist/tex/platex/pxbase/pxbabel.sty b/Master/texmf-dist/tex/platex/pxbase/pxbabel.sty
index 1ef550c54ab..4f336c57209 100644
--- a/Master/texmf-dist/tex/platex/pxbase/pxbabel.sty
+++ b/Master/texmf-dist/tex/platex/pxbase/pxbabel.sty
@@ -1,7 +1,7 @@
%%
%% This is file 'pxbabel.sty'.
%%
-%% Copyright (c) 2008-2021 Takayuki YATO (aka. "ZR")
+%% Copyright (c) 2008-2023 Takayuki YATO (aka. "ZR")
%% GitHub: https://github.com/zr-tex8r
%% Twitter: @zr_tex8r
%%
@@ -10,7 +10,7 @@
%% package declaration
\NeedsTeXFormat{pLaTeX2e}
-\ProvidesPackage{pxbabel}[2021/05/31 v1.3 PX Babel interface for CJK]
+\ProvidesPackage{pxbabel}[2023/02/25 v1.4 PX Babel interface for CJK]
\def\pxbb@pkgname{pxbabel}
%--------------------------------------- general
@@ -45,6 +45,10 @@
(You must load 'otf' package before this package.)\MessageBreak
\fi
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}}
+\bxPreamble\def\pxbb@err@ivval#1#2{%
+ \PackageError\pxbb@pkgname
+ {Invalid value for '#1': #2}%
+ {\@eha}}
%--------------------------------------- Processing package options
@@ -97,12 +101,24 @@
\bxIfExpToEqualX{\mcdefault}{mc}{}{\pxbb@stdjaencodingtrue}% default
\DeclareOption{stdjaencoding}{\pxbb@stdjaencodingtrue}
\DeclareOption{nostdjaencoding}{\pxbb@stdjaencodingfalse}
-\newbool{pxbb@patchutfcmds}\pxbb@patchutfcmdstrue
+\newbool{pxbb@patchutfcmds}
\DeclareOption{patchutfcmds}{\pxbb@patchutfcmdstrue}
\DeclareOption{nopatchutfcmds}{\pxbb@patchutfcmdsfalse}
-\newbool{pxbb@forcedeluxemulti}
-\DeclareOption{forcedeluxemulti}{\pxbb@forcedeluxemultitrue}
-\DeclareOption{noforcedeluxemulti}{\pxbb@forcedeluxemultifalse}
+\chardef\pxbb@deluxemulti@@false=0
+\chardef\pxbb@deluxemulti@@old=1
+\chardef\pxbb@deluxemulti@@new=2
+\chardef\pxbb@deluxemulti@@true=2
+\chardef\pxbb@deluxemulti\pxbb@deluxemulti@@false
+\define@key{pxbabel}{deluxemulti}[true]{%
+ \bxIfcsdef{pxbb@deluxemulti@@#1}{%
+ \letcs\pxbb@deluxemulti{pxbb@deluxemulti@@#1}%
+ }{\pxbb@err@ivval{deluxemulti}{#1}}}
+\DeclareOption{nodeluxemulti}{%
+ \chardef\pxbb@deluxemulti\pxbb@deluxemulti@@false}
+\DeclareOption{forcedeluxemulti}{%
+ \chardef\pxbb@deluxemulti\pxbb@deluxemulti@@old}
+\DeclareOption{noforcedeluxemulti}{%
+ \chardef\pxbb@deluxemulti\pxbb@deluxemulti@@false}
% (<lang_id>, +<lang_id>)
\bxPreamble\let\pxbb@last@lang\relax
\bxForEachIn\pxbb@cjk@langid@list\do{%
@@ -132,13 +148,10 @@
%% \ifpxbb@otf
%% \ifpxbb@otfmulti
-%% \ifpxbb@pxotf
\newbool{pxbb@otf}
\newbool{pxbb@otfmulti}
-\newbool{pxbb@pxotf}
\@ifpackageloaded{otf}{\pxbb@otftrue}{}
\@ifpackageloaded{mlutf}{\pxbb@otfmultitrue}{}
-\@ifpackageloaded{pxotf}{\pxbb@otfmultitrue\pxbb@pxotftrue}{}
%% \ifpxbb@otfdeluxe
\newbool{pxbb@otfdeluxe}
@@ -152,33 +165,28 @@
% The feature 'switchfont' requires multi-CJK support.
\ifpxbb@switchfont
\ifpxbb@otfmulti\else
- \ifupTeX\else
+ \ifnativeupTeX\else
\pxbb@warn@nocjk
\pxbb@switchfontfalse
\fi\fi\fi
% Check if 'patchutfcmds' is available.
-\if \ifpxbb@switchfont
- \ifupTeX
- \ifpxbb@otf
- \ifx\patchcmd\@undefined F\else T\fi
- \else F\fi
- \else F\fi
- \else F\fi F%
- \pxbb@patchutfcmdsfalse
+\ifpxbb@patchutfcmds
+ \PackageWarningNoLine\pxbb@pkgname
+ {Option 'patchutfcmds' is abolished}
\fi
-% Check if 'forcedeluxemulti' is available.
-\ifpxbb@forcedeluxemulti
- \ifupTeX\else
+% Check if 'deluxemulti' is available.
+\ifnum\pxbb@deluxemulti=\pxbb@deluxemulti@@false\else
+ \ifnativeupTeX\else
\PackageWarningNoLine\pxbb@pkgname
{Option 'forcedeluxemulti' is invalid, since\MessageBreak
- the engine is not upTeX}
- \pxbb@forcedeluxemultifalse
+ the engine is not upLaTeX}
+ \let\pxbb@deluxemulti\pxbb@deluxemulti@@false
\fi
\ifpxbb@otfmulti\else
\PackageWarningNoLine\pxbb@pkgname
{Option 'forcedeluxemulti' is invalid, since\MessageBreak
package 'otf' is not loaded with 'multi'}
- \pxbb@forcedeluxemultifalse
+ \let\pxbb@deluxemulti\pxbb@deluxemulti@@false
\fi
\fi
@@ -362,14 +370,14 @@
\fi %----</otfmulti>
-\ifupTeX %----<*upTeX>
+\ifnativeupTeX %----<*upTeX>
%% preparations
\bxRequireDefinition{pxbasenc}
\pxBDHookEncSwitchOTF
+\pxEncSwitchOTF
%% declarations for upTeX standatd CJK fonts
-\ifpxbb@pxotf\else
\pxDeclareBasicCJKEncoding{J20}{J30}% UniJIS
\pxDeclareBasicCJKFamily{J20}{!upjpnrm-h}{!upjpngt-h}{*gt}{*gt}
\pxDeclareBasicCJKFamily{J30}{!upjpnrm-v}{!upjpngt-v}{*gt}{*gt}
@@ -390,7 +398,6 @@
\pxDeclareExtraCJKFamily{#1}{\mcdefault}{*mc}{*mc}%
\pxDeclareExtraCJKFamily{#1}{\gtdefault}{*gt}{*gt}}
\endgroup
-\fi
%% declarations for upTeX + otf deluxe CJK fonts
\ifpxbb@otfdeluxe
@@ -433,7 +440,7 @@
\pxDeclareKanjiFamily{J34}{mg}
\pxDeclareBasicCJKShape{J34}{mg}{m}{!upnmlmgothrn-v}
-\ifpxbb@forcedeluxemulti
+\ifnum\pxbb@deluxemulti=\pxbb@deluxemulti@@old
% UniKS
\pxDeclareBasicCJKShape{J21}{hmc}{l}{!utfkml--h}
@@ -492,7 +499,66 @@
\pxDeclareKanjiFamily{J33}{mg}
\pxDeclareBasicCJKShape{J33}{mg}{m}{!utftmgr--v}
-\fi % pxbb@forcedeluxemulti
+\else\ifnum\pxbb@deluxemulti=\pxbb@deluxemulti@@new
+
+% UniKS
+\pxDeclareBasicCJKShape{J21}{hmc}{l}{!upnmkorminl-h}
+\pxDeclareBasicCJKShape{J21}{hmc}{m}{!upnmkorminr-h}
+\pxDeclareBasicCJKShape{J21}{hmc}{bx}{!upnmkorminb-h}
+\pxDeclareBasicCJKShape{J21}{hgt}{m}{!upnmkorgothr-h}
+\pxDeclareBasicCJKShape{J21}{hgt}{bx}{!upnmkorgothb-h}
+\pxDeclareBasicCJKShape{J21}{hgt}{eb}{!upnmkorgotheb-h}
+\pxDeclareKanjiFamily{J21}{mg}
+\pxDeclareBasicCJKShape{J21}{mg}{m}{!upnmkormgothr-h}
+
+\pxDeclareBasicCJKShape{J31}{hmc}{l}{!upnmkorminl-v}
+\pxDeclareBasicCJKShape{J31}{hmc}{m}{!upnmkorminr-v}
+\pxDeclareBasicCJKShape{J31}{hmc}{bx}{!upnmkorminb-v}
+\pxDeclareBasicCJKShape{J31}{hgt}{m}{!upnmkorgothr-v}
+\pxDeclareBasicCJKShape{J31}{hgt}{bx}{!upnmkorgothb-v}
+\pxDeclareBasicCJKShape{J31}{hgt}{eb}{!upnmkorgotheb-v}
+\pxDeclareKanjiFamily{J31}{mg}
+\pxDeclareBasicCJKShape{J31}{mg}{m}{!upnmkormgothr-v}
+
+% UniGB
+\pxDeclareBasicCJKShape{J22}{hmc}{l}{!upnmschminl-h}
+\pxDeclareBasicCJKShape{J22}{hmc}{m}{!upnmschminr-h}
+\pxDeclareBasicCJKShape{J22}{hmc}{bx}{!upnmschminb-h}
+\pxDeclareBasicCJKShape{J22}{hgt}{m}{!upnmschgothr-h}
+\pxDeclareBasicCJKShape{J22}{hgt}{bx}{!upnmschgothb-h}
+\pxDeclareBasicCJKShape{J22}{hgt}{eb}{!upnmschgotheb-h}
+\pxDeclareKanjiFamily{J22}{mg}
+\pxDeclareBasicCJKShape{J22}{mg}{m}{!upnmschmgothr-h}
+
+\pxDeclareBasicCJKShape{J32}{hmc}{l}{!upnmschminl-v}
+\pxDeclareBasicCJKShape{J32}{hmc}{m}{!upnmschminr-v}
+\pxDeclareBasicCJKShape{J32}{hmc}{bx}{!upnmschminb-v}
+\pxDeclareBasicCJKShape{J32}{hgt}{m}{!upnmschgothr-v}
+\pxDeclareBasicCJKShape{J32}{hgt}{bx}{!upnmschgothb-v}
+\pxDeclareBasicCJKShape{J32}{hgt}{eb}{!upnmschgotheb-v}
+\pxDeclareKanjiFamily{J32}{mg}
+\pxDeclareBasicCJKShape{J32}{mg}{m}{!upnmschmgothr-v}
+
+% UniCNS
+\pxDeclareBasicCJKShape{J23}{hmc}{l}{!upnmtchminl-h}
+\pxDeclareBasicCJKShape{J23}{hmc}{m}{!upnmtchminr-h}
+\pxDeclareBasicCJKShape{J23}{hmc}{bx}{!upnmtchminb-h}
+\pxDeclareBasicCJKShape{J23}{hgt}{m}{!upnmtchgothr-h}
+\pxDeclareBasicCJKShape{J23}{hgt}{bx}{!upnmtchgothb-h}
+\pxDeclareBasicCJKShape{J23}{hgt}{eb}{!upnmtchgotheb-h}
+\pxDeclareKanjiFamily{J23}{mg}
+\pxDeclareBasicCJKShape{J23}{mg}{m}{!upnmtchmgothr-h}
+
+\pxDeclareBasicCJKShape{J33}{hmc}{l}{!upnmtchminl-v}
+\pxDeclareBasicCJKShape{J33}{hmc}{m}{!upnmtchminr-v}
+\pxDeclareBasicCJKShape{J33}{hmc}{bx}{!upnmtchminb-v}
+\pxDeclareBasicCJKShape{J33}{hgt}{m}{!upnmtchgothr-v}
+\pxDeclareBasicCJKShape{J33}{hgt}{bx}{!upnmtchgothb-v}
+\pxDeclareBasicCJKShape{J33}{hgt}{eb}{!upnmtchgotheb-v}
+\pxDeclareKanjiFamily{J33}{mg}
+\pxDeclareBasicCJKShape{J33}{mg}{m}{!upnmtchmgothr-v}
+
+\fi\fi % pxbb@deluxemulti
\fi % pxbb@otfdeluxe
@@ -537,33 +603,6 @@
\fi %----</upTeX>
-%--------------------------------------- Patch to '\UTF' etc.
-\ifpxbb@patchutfcmds
-
-%% \pxbb@set@encoding
-\edef\pxbb@set@encoding{%
- \noexpand\iftdir \noexpand\kanjiencoding{\cy@encoding}%
- \noexpand\else \noexpand\kanjiencoding{\ct@encoding}%
- \noexpand\fi
-}
-
-%% apply the patch
-\@for\pxbb@tmpa:={%
- UTF,UTFK,UTFC,UTFT,UTFM,CID,CIDK,CIDC,CIDT%
-}\do{%
- \ifcsdef{\pxbb@tmpa\space}{%then
- \expandafter\patchcmd\csname \pxbb@tmpa\space\endcsname{%from
- \begingroup\edef\reserved@a
- }{%to
- \begingroup\pxbb@set@encoding\edef\reserved@a
- }{}{%failure
- \PackageWarningNoLine\pxbb@pkgname
- {Cannot patch to '\@backslashchar\pxbb@tmpa_'}%
- }%
- }{}%
-}
-
-\fi
%--------------------------------------- Other user commands
%%<*> \cjklanguagename{<lang_id>}
diff --git a/Master/texmf-dist/tex/platex/pxbase/pxbase.sty b/Master/texmf-dist/tex/platex/pxbase/pxbase.sty
index 0078547e4fe..081c78ad29e 100644
--- a/Master/texmf-dist/tex/platex/pxbase/pxbase.sty
+++ b/Master/texmf-dist/tex/platex/pxbase/pxbase.sty
@@ -1,14 +1,14 @@
%%
%% This is file 'pxbase.sty'.
%%
-%% Copyright (c) 2008-2021 Takayuki YATO (aka. "ZR")
+%% Copyright (c) 2008-2023 Takayuki YATO (aka. "ZR")
%% GitHub: https://github.com/zr-tex8r
%% Twitter: @zr_tex8r
%%
%% This package is distributed under the MIT License.
%%
\NeedsTeXFormat{pLaTeX2e}
-\ProvidesPackage{pxbase}[2021/05/31 v1.3 PX base library]
+\ProvidesPackage{pxbase}[2023/02/25 v1.4 PX base library]
% The pxbase package now does the same thing as the bxbase package.
\RequirePackageWithOptions{bxbase}[2017/05/29]
\endinput
diff --git a/Master/texmf-dist/tex/platex/pxbase/pxbasenc.def b/Master/texmf-dist/tex/platex/pxbase/pxbasenc.def
index df54e082bf3..0877b55be4d 100644
--- a/Master/texmf-dist/tex/platex/pxbase/pxbasenc.def
+++ b/Master/texmf-dist/tex/platex/pxbase/pxbasenc.def
@@ -4,7 +4,7 @@
%% file declaration
\NeedsTeXFormat{pLaTeX2e}
-\ProvidesFile{pxbasenc.def}[2021/05/31 v1.3 PX encoding library]
+\ProvidesFile{pxbasenc.def}[2023/02/25 v1.4 PX encoding library]
\def\pxec@pkgname{PXbase} % bundle name
%% code guards
@@ -495,20 +495,29 @@
% \UTF & \CID require the current encoding to be the standard one, thus
% they won't work well along with packages that change Japanese encoding
% (pxfontenc, pxbabel, etc.). This patch resolves this problem.
-\providecommand*\pxBDHookEncSwitchOTF{\pxec@bdhook@encswotf@do}
-\@onlypreamble\pxec@bdhook@encswotf@do
-\def\pxec@bdhook@encswotf@do{%
- \AtBeginDocument{%
+\@onlypreamble\pxBDHookEncSwitchOTF
+\providecommand*\pxBDHookEncSwitchOTF{%
+ \global\let\pxBDHookEncSwitchOTF\@empty % nullify
+ \AtBeginDocument{\pxec@encswotf@do}}
+\@onlypreamble\pxEncSwitchOTF
+\providecommand*\pxEncSwitchOTF{%
+ \pxec@encswotf@do}
+\@onlypreamble\pxec@encswotf@do
+\def\pxec@encswotf@do{%
+ \let\pxec@JYn\@undefined
\@ifpackageloaded{otf}{\let\pxec@JYn\otf@JYn}{}%
\@ifpackageloaded{utf}{\let\pxec@JYn\utf@JYn}{}%
\ifx\pxec@JYn\@undefined\else
+ \let\pxec@encswotf@do\relax
% hook at the \set@character invocation, so that encoding will
% be forced to be the standard one
\long\def\set@character{% \long, as the original is
\afterassignment\pxec@put@character\@tempcnta}%
\def\pxec@put@character{\kanjiencoding{\pxec@JYn}\put@character}%
+ \long\def\set@character@{%
+ \afterassignment\pxec@put@character@\@tempcnta}%
+ \def\pxec@put@character@{\kanjiencoding{\pxec@JYn}\put@character@}%
\fi}%
- \let\pxBDHookEncSwitchOTF\@empty}% nullify
%--------------------------------------- all done
\pxec@restore@codes
diff --git a/Master/texmf-dist/tex/platex/pxbase/pxjsfenc.def b/Master/texmf-dist/tex/platex/pxbase/pxjsfenc.def
index 52210eabec8..09b2cbc8989 100644
--- a/Master/texmf-dist/tex/platex/pxbase/pxjsfenc.def
+++ b/Master/texmf-dist/tex/platex/pxbase/pxjsfenc.def
@@ -4,7 +4,7 @@
%% file declaration
\NeedsTeXFormat{pLaTeX2e}
-\ProvidesFile{pxjsfenc.def}[2021/05/31 v1.3 PX JSF encoding]
+\ProvidesFile{pxjsfenc.def}[2023/02/25 v1.4 PX JSF encoding]
%% code guards
\edef\pxec@jsf@restore@codes{%
diff --git a/Master/texmf-dist/tex/platex/pxbase/upkcat.sty b/Master/texmf-dist/tex/platex/pxbase/upkcat.sty
index 721bddd2e24..d9cc8310d4a 100644
--- a/Master/texmf-dist/tex/platex/pxbase/upkcat.sty
+++ b/Master/texmf-dist/tex/platex/pxbase/upkcat.sty
@@ -1,7 +1,7 @@
%%
%% This is file 'upkcat.sty'.
%%
-%% Copyright (c) 2008-2021 Takayuki YATO (aka. "ZR")
+%% Copyright (c) 2008-2023 Takayuki YATO (aka. "ZR")
%% GitHub: https://github.com/zr-tex8r
%% Twitter: @zr_tex8r
%%
@@ -30,12 +30,12 @@
\long\def\x#1\ProvidesPackage#2[#3]{\immediate\write-1{Package: #2 #3}}
\expandafter\x
\else %<*LaTeX>
- \RequirePackage{ifuptex}[2008/03/14]\RequireupTeX
+ \RequirePackage{ifuptex}[2008/03/14]\RequireNativeupTeX
\fi %</LaTeX>
%% package declaration
\NeedsTeXFormat{pLaTeX2e}
-\ProvidesPackage{upkcat}[2021/05/31 v1.3 safe kcatcode access]
+\ProvidesPackage{upkcat}[2023/02/25 v1.4 safe kcatcode access]
%--------------------------------------- main