summaryrefslogtreecommitdiff
path: root/macros/jptex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-02-27 03:05:21 +0000
committerNorbert Preining <norbert@preining.info>2023-02-27 03:05:21 +0000
commit86d5a04282aa958addab4585c4df899ec9a92e50 (patch)
tree7736ac0fb49348cb6ae88770b4b72ed5ee9d8081 /macros/jptex
parente7ae872926eddb0de09ecfe1c578e0680033955a (diff)
CTAN sync 202302270305
Diffstat (limited to 'macros/jptex')
-rw-r--r--macros/jptex/latex/platex-tools/LICENSE2
-rw-r--r--macros/jptex/latex/platex-tools/README.md2
-rw-r--r--macros/jptex/latex/platex-tools/plarray.tex2
-rw-r--r--macros/jptex/latex/platex-tools/pldocverb.tex2
-rw-r--r--macros/jptex/latex/platex-tools/plextarray.pdfbin78889 -> 79300 bytes
-rw-r--r--macros/jptex/latex/platex-tools/plextarray.sty6
-rw-r--r--macros/jptex/latex/platex-tools/plextarray.tex2
-rw-r--r--macros/jptex/latex/platex-tools/plextcolortbl.tex2
-rw-r--r--macros/jptex/latex/platex-tools/plextdelarray.tex2
-rw-r--r--macros/jptex/latex/platex-tools/pxatbegshi.tex2
-rw-r--r--macros/jptex/latex/platex-tools/pxeverysel.tex2
-rw-r--r--macros/jptex/latex/platex-tools/pxeveryshi.tex2
-rw-r--r--macros/jptex/latex/platex-tools/pxxspace.pdfbin36240 -> 37311 bytes
-rw-r--r--macros/jptex/latex/platex-tools/pxxspace.sty7
-rw-r--r--macros/jptex/latex/platex-tools/pxxspace.tex4
-rw-r--r--macros/jptex/latex/platex/README.md2
-rw-r--r--macros/jptex/latex/platex/platexrelease.dtx1
-rw-r--r--macros/jptex/latex/platex/plcore.dtx16
-rw-r--r--macros/jptex/latex/platex/pldoc.pdfbin1376083 -> 1376604 bytes
-rw-r--r--macros/jptex/latex/platex/plvers.dtx2
-rw-r--r--macros/jptex/latex/pxbase/LICENSE2
-rw-r--r--macros/jptex/latex/pxbase/README-ja.md17
-rw-r--r--macros/jptex/latex/pxbase/README.md1
-rw-r--r--macros/jptex/latex/pxbase/pxbabel.pdfbin151912 -> 157044 bytes
-rw-r--r--macros/jptex/latex/pxbase/pxbabel.sty151
-rw-r--r--macros/jptex/latex/pxbase/pxbabel.tex84
-rw-r--r--macros/jptex/latex/pxbase/pxbase.sty4
-rw-r--r--macros/jptex/latex/pxbase/pxbasenc.def21
-rw-r--r--macros/jptex/latex/pxbase/pxjsfenc.def2
-rw-r--r--macros/jptex/latex/pxbase/upkcat.sty6
30 files changed, 217 insertions, 129 deletions
diff --git a/macros/jptex/latex/platex-tools/LICENSE b/macros/jptex/latex/platex-tools/LICENSE
index ecbe9e9df9..fba27758e5 100644
--- a/macros/jptex/latex/platex-tools/LICENSE
+++ b/macros/jptex/latex/platex-tools/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2016-2021 Hironobu Yamashita
+Copyright (c) 2016-2023 Hironobu Yamashita
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/macros/jptex/latex/platex-tools/README.md b/macros/jptex/latex/platex-tools/README.md
index 89cd0ec22f..4aef7915e0 100644
--- a/macros/jptex/latex/platex-tools/README.md
+++ b/macros/jptex/latex/platex-tools/README.md
@@ -83,6 +83,6 @@ the 3-clause BSD license (see [LICENSE](./LICENSE)).
## Release Date
-2021-12-11
+2023-02-26
Hironobu Yamashita
diff --git a/macros/jptex/latex/platex-tools/plarray.tex b/macros/jptex/latex/platex-tools/plarray.tex
index 66ea8f2fb5..e83b4db593 100644
--- a/macros/jptex/latex/platex-tools/plarray.tex
+++ b/macros/jptex/latex/platex-tools/plarray.tex
@@ -4,7 +4,7 @@
\fi
\documentclass[a4paper]{jsarticle}% supports \verb in \footnote
-\usepackage{doc}
+\usepackage[nohyperref]{doc}% doc v3
\usepackage{plarray}
\GetFileInfo{plarray.sty}
\title{Package \textsf{plarray} \fileversion}
diff --git a/macros/jptex/latex/platex-tools/pldocverb.tex b/macros/jptex/latex/platex-tools/pldocverb.tex
index e590f4a67d..d3de0e9911 100644
--- a/macros/jptex/latex/platex-tools/pldocverb.tex
+++ b/macros/jptex/latex/platex-tools/pldocverb.tex
@@ -4,7 +4,7 @@
\fi
\documentclass[a4paper]{jsarticle}% supports \verb in \footnote
-\usepackage{doc}
+\usepackage[nohyperref]{doc}% doc v3
\usepackage{pldocverb}
\GetFileInfo{pldocverb.sty}
\title{Package \textsf{pldocverb} \fileversion}
diff --git a/macros/jptex/latex/platex-tools/plextarray.pdf b/macros/jptex/latex/platex-tools/plextarray.pdf
index ebf6a7aa51..f314725516 100644
--- a/macros/jptex/latex/platex-tools/plextarray.pdf
+++ b/macros/jptex/latex/platex-tools/plextarray.pdf
Binary files differ
diff --git a/macros/jptex/latex/platex-tools/plextarray.sty b/macros/jptex/latex/platex-tools/plextarray.sty
index 42b92ee929..ee864f8df4 100644
--- a/macros/jptex/latex/platex-tools/plextarray.sty
+++ b/macros/jptex/latex/platex-tools/plextarray.sty
@@ -15,7 +15,7 @@
\NeedsTeXFormat{pLaTeX2e}
\ProvidesPackage{plextarray}
- [2018/10/27 v1.1d Tabular extension package for plext and array]
+ [2022/09/13 v1.1e Tabular extension package for plext and array]
\RequirePackage{plext}
\RequirePackage{plarray}
@@ -100,8 +100,8 @@
\begingroup
\@mkpream{#3}%
% following definition of \@preamble is from plext (\edef -> \xdef),
- % but it's not the same as the one in array; why?
- \xdef\@preamble{\ialign \noexpand \@halignto
+ % with \noexpand before \ialign following array's documentation.
+ \xdef\@preamble{\noexpand \ialign \noexpand \@halignto
\bgroup \tabskip \z@skip \@arstrut \@preamble
\tabskip \z@skip \cr}%
\endgroup
diff --git a/macros/jptex/latex/platex-tools/plextarray.tex b/macros/jptex/latex/platex-tools/plextarray.tex
index 47e1f68e1f..f9a8ba0259 100644
--- a/macros/jptex/latex/platex-tools/plextarray.tex
+++ b/macros/jptex/latex/platex-tools/plextarray.tex
@@ -4,7 +4,7 @@
\fi
\documentclass[a4paper]{jsarticle}
-\usepackage{doc}
+\usepackage[nohyperref]{doc}% doc v3
\usepackage{array}
\usepackage{plextarray}
\GetFileInfo{plextarray.sty}
diff --git a/macros/jptex/latex/platex-tools/plextcolortbl.tex b/macros/jptex/latex/platex-tools/plextcolortbl.tex
index 0cea5c1093..485f92dc7b 100644
--- a/macros/jptex/latex/platex-tools/plextcolortbl.tex
+++ b/macros/jptex/latex/platex-tools/plextcolortbl.tex
@@ -4,7 +4,7 @@
\fi
\documentclass[a4paper]{jsarticle}
-\usepackage{doc}
+\usepackage[nohyperref]{doc}% doc v3
\usepackage{colortbl}
\usepackage{plextcolortbl}
\GetFileInfo{plextcolortbl.sty}
diff --git a/macros/jptex/latex/platex-tools/plextdelarray.tex b/macros/jptex/latex/platex-tools/plextdelarray.tex
index cc5e5a745f..00067e0b6e 100644
--- a/macros/jptex/latex/platex-tools/plextdelarray.tex
+++ b/macros/jptex/latex/platex-tools/plextdelarray.tex
@@ -4,7 +4,7 @@
\fi
\documentclass[a4paper]{jsarticle}
-\usepackage{doc}
+\usepackage[nohyperref]{doc}% doc v3
\usepackage{delarray}
\usepackage{plextdelarray}
\GetFileInfo{plextdelarray.sty}
diff --git a/macros/jptex/latex/platex-tools/pxatbegshi.tex b/macros/jptex/latex/platex-tools/pxatbegshi.tex
index 0b1b326835..a32f4ee524 100644
--- a/macros/jptex/latex/platex-tools/pxatbegshi.tex
+++ b/macros/jptex/latex/platex-tools/pxatbegshi.tex
@@ -4,7 +4,7 @@
\fi
\documentclass[a4paper]{jsarticle}
-\usepackage{doc}
+\usepackage[nohyperref]{doc}% doc v3
\usepackage{pxatbegshi}
\GetFileInfo{pxatbegshi.sty}
\title{Package \textsf{pxatbegshi} \fileversion}
diff --git a/macros/jptex/latex/platex-tools/pxeverysel.tex b/macros/jptex/latex/platex-tools/pxeverysel.tex
index 156fa720e7..a8a2bab76c 100644
--- a/macros/jptex/latex/platex-tools/pxeverysel.tex
+++ b/macros/jptex/latex/platex-tools/pxeverysel.tex
@@ -4,7 +4,7 @@
\fi
\documentclass[a4paper]{jsarticle}
-\usepackage{doc}
+\usepackage[nohyperref]{doc}% doc v3
\usepackage{pxeverysel}
\GetFileInfo{pxeverysel.sty}
\title{Package \textsf{pxeverysel} \fileversion}
diff --git a/macros/jptex/latex/platex-tools/pxeveryshi.tex b/macros/jptex/latex/platex-tools/pxeveryshi.tex
index 0c5e2e5e9f..0abe500458 100644
--- a/macros/jptex/latex/platex-tools/pxeveryshi.tex
+++ b/macros/jptex/latex/platex-tools/pxeveryshi.tex
@@ -4,7 +4,7 @@
\fi
\documentclass[a4paper]{jsarticle}
-\usepackage{doc}
+\usepackage[nohyperref]{doc}% doc v3
\usepackage{pxeveryshi}
\GetFileInfo{pxeveryshi.sty}
\title{Package \textsf{pxeveryshi} \fileversion}
diff --git a/macros/jptex/latex/platex-tools/pxxspace.pdf b/macros/jptex/latex/platex-tools/pxxspace.pdf
index fb9645aa46..5c045059a8 100644
--- a/macros/jptex/latex/platex-tools/pxxspace.pdf
+++ b/macros/jptex/latex/platex-tools/pxxspace.pdf
Binary files differ
diff --git a/macros/jptex/latex/platex-tools/pxxspace.sty b/macros/jptex/latex/platex-tools/pxxspace.sty
index 384a157be6..9a1a85e472 100644
--- a/macros/jptex/latex/platex-tools/pxxspace.sty
+++ b/macros/jptex/latex/platex-tools/pxxspace.sty
@@ -1,6 +1,7 @@
%
% pxxspace.sty
-% written by Takayuki Yato (ZR)
+% originally written by Takayuki Yato (ZR)
+% and modified by Hironobu Yamashita
%
% This package is distributed as part of the platex-tools bundle
% maintained by Hironobu Yamashita
@@ -24,7 +25,7 @@
%% package declaration
\NeedsTeXFormat{pLaTeX2e}
\ProvidesPackage{pxxspace}
- [2019/09/23 v0.2a Patch for xspace for pLaTeX/upLaTeX]
+ [2023/02/25 v0.2b Patch for xspace for pLaTeX/upLaTeX]
\def\pxxs@pkgname{pxxspace}
%--------------------------------------- preparations
@@ -62,6 +63,8 @@
%% \pxxs@forcecjktoken
\ifpxxs@uptex
\let\pxxs@forcecjktoken\forcecjktoken
+ % check internal encoding
+ \unless\ifnum\jis"2121="3000 \pxxs@uptexfalse \fi
\else
\let\pxxs@forcecjktoken\relax
\fi
diff --git a/macros/jptex/latex/platex-tools/pxxspace.tex b/macros/jptex/latex/platex-tools/pxxspace.tex
index cbdba8abf3..6c69312819 100644
--- a/macros/jptex/latex/platex-tools/pxxspace.tex
+++ b/macros/jptex/latex/platex-tools/pxxspace.tex
@@ -4,11 +4,11 @@
\fi
\documentclass[a4paper]{jsarticle}
-\usepackage{doc}
+\usepackage[nohyperref]{doc}% doc v3
\usepackage{pxxspace}
\GetFileInfo{pxxspace.sty}
\title{Package \textsf{pxxspace} \fileversion}
-\author{Takayuki Yato}
+\author{Takayuki Yato \& Hironobu Yamashita}
\date{\filedate}
%%%%% BEGIN
diff --git a/macros/jptex/latex/platex/README.md b/macros/jptex/latex/platex/README.md
index aa4ab92e7b..64ed8fd982 100644
--- a/macros/jptex/latex/platex/README.md
+++ b/macros/jptex/latex/platex/README.md
@@ -71,6 +71,6 @@ the 3-clause BSD license (see [LICENSE](./LICENSE)).
## Release Date
-2023-02-19
+2023-02-26
Japanese TeX Development Community
diff --git a/macros/jptex/latex/platex/platexrelease.dtx b/macros/jptex/latex/platex/platexrelease.dtx
index 84a73c9b72..df9bf8b96a 100644
--- a/macros/jptex/latex/platex/platexrelease.dtx
+++ b/macros/jptex/latex/platex/platexrelease.dtx
@@ -359,6 +359,7 @@ of this package available from CTAN}
some critical bugs. We advise you to\MessageBreak
select another format date}
\plIncludeInRelease{2017/10/28}{\PackageWarning}{pLaTeX Info}%
+ % * <2023-02-14>+1
% * <2023-02-14>
% * <2021-11-15>+1
% * <2021-11-15>
diff --git a/macros/jptex/latex/platex/plcore.dtx b/macros/jptex/latex/platex/plcore.dtx
index afb26bcc5b..bff0ab675f 100644
--- a/macros/jptex/latex/platex/plcore.dtx
+++ b/macros/jptex/latex/platex/plcore.dtx
@@ -138,13 +138,14 @@
% \changes{v1.3k}{2021/06/28}{$BFbIt(BUnicode$B$N;~$N$_$r8!=P(B}
% \changes{v1.3l}{2021/12/08}{\LaTeXe~2021-11-15$B$KH<$&=$@5(B}
% \changes{v1.3m}{2023/02/14}{$B%U%m!<%H4D6-Fb$G$NAHJ}8~JQ99$r(Bplext$B$KM6F3(B}
+% \changes{v1.3n}{2023/02/24}{\cs{marginpar}$B$G%(%i!<$,=P$k%P%0=$@5(B}
% \fi
%
% \iffalse
%<*driver>
\NeedsTeXFormat{pLaTeX2e}
% \fi
-\ProvidesFile{plcore.dtx}[2023/02/14 v1.3m pLaTeX core file]
+\ProvidesFile{plcore.dtx}[2023/02/24 v1.3n pLaTeX core file]
% \iffalse
\RequirePackage{plautopatch}
\documentclass[dvipdfmx,a4paper]{jltxdoc}
@@ -1754,8 +1755,10 @@
% \begin{macro}{\@floatboxreset}
% $B85$O(Bltfloat.dtx$B$GDj5A$5$l$F$$$^$9!#(B
% \changes{v1.3m}{2023/02/14}{$B%U%m!<%H4D6-Fb$G$NAHJ}8~JQ99$r(Bplext$B$KM6F3(B}
+% \changes{v1.3n}{2023/02/24}{\cs{marginpar}$B$G%(%i!<$,=P$k%P%0=$@5(B}
% \begin{macrocode}
%<platexrelease>\plIncludeInRelease{2023/02/14}{\@floatboxreset}
+%<platexrelease> {Mention \layoutcaption}%
%<*plcore|platexrelease>
\def\@floatboxreset{%
\pltx@save@float@dir % pLaTeX
@@ -1815,15 +1818,16 @@
\def\pltx@save@float@dir{%
\edef\pltx@float@dir@first{\iftdir\tate\else\yoko\fi}}
\def\pltx@check@float@dir{%
- \edef\pltx@float@dir@last{\iftdir\tate\else\yoko\fi}%
- \ifx\pltx@float@dir@last\pltx@float@dir@first\else
- \pltx@err@float@dir
+ \ifx\pltx@float@dir@first\@undefined\else
+ \edef\pltx@float@dir@last{\iftdir\tate\else\yoko\fi}%
+ \ifx\pltx@float@dir@last\pltx@float@dir@first\else
+ \pltx@err@float@dir
+ \fi
\fi}
\def\pltx@err@float@dir{%
\@latex@error{Direction change inside float!?\MessageBreak
Use \noexpand\layoutcaption provided in
- \string\usepackage{plext}}\@ehc
-}
+ \string\usepackage{plext}}\@ehc}
%</plcore|platexrelease>
%<platexrelease>\plEndIncludeInRelease
%<platexrelease>\plIncludeInRelease{0000/00/00}{\pltx@check@float@dir}
diff --git a/macros/jptex/latex/platex/pldoc.pdf b/macros/jptex/latex/platex/pldoc.pdf
index 69d3856cd0..84074bf5b6 100644
--- a/macros/jptex/latex/platex/pldoc.pdf
+++ b/macros/jptex/latex/platex/pldoc.pdf
Binary files differ
diff --git a/macros/jptex/latex/platex/plvers.dtx b/macros/jptex/latex/platex/plvers.dtx
index 79c7fc1db4..7ab7d87eae 100644
--- a/macros/jptex/latex/platex/plvers.dtx
+++ b/macros/jptex/latex/platex/plvers.dtx
@@ -204,7 +204,7 @@
{2023-02-14}
%</plcore|platexrelease>
%<*plcore>
-\def\ppatch@level{0}
+\def\ppatch@level{1}
%</plcore>
% \end{macrocode}
% \end{macro}
diff --git a/macros/jptex/latex/pxbase/LICENSE b/macros/jptex/latex/pxbase/LICENSE
index ead3a3702e..cfd0838618 100644
--- a/macros/jptex/latex/pxbase/LICENSE
+++ b/macros/jptex/latex/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/macros/jptex/latex/pxbase/README-ja.md b/macros/jptex/latex/pxbase/README-ja.md
index 53bf41f4fc..507faef2a6 100644
--- a/macros/jptex/latex/pxbase/README-ja.md
+++ b/macros/jptex/latex/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/macros/jptex/latex/pxbase/README.md b/macros/jptex/latex/pxbase/README.md
index 5c61ff9728..15eb95507b 100644
--- a/macros/jptex/latex/pxbase/README.md
+++ b/macros/jptex/latex/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/macros/jptex/latex/pxbase/pxbabel.pdf b/macros/jptex/latex/pxbase/pxbabel.pdf
index 602077c000..a044940d7d 100644
--- a/macros/jptex/latex/pxbase/pxbabel.pdf
+++ b/macros/jptex/latex/pxbase/pxbabel.pdf
Binary files differ
diff --git a/macros/jptex/latex/pxbase/pxbabel.sty b/macros/jptex/latex/pxbase/pxbabel.sty
index 1ef550c54a..4f336c5720 100644
--- a/macros/jptex/latex/pxbase/pxbabel.sty
+++ b/macros/jptex/latex/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/macros/jptex/latex/pxbase/pxbabel.tex b/macros/jptex/latex/pxbase/pxbabel.tex
index 3482bc161a..f2cd57f0da 100644
--- a/macros/jptex/latex/pxbase/pxbabel.tex
+++ b/macros/jptex/latex/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/macros/jptex/latex/pxbase/pxbase.sty b/macros/jptex/latex/pxbase/pxbase.sty
index 0078547e4f..081c78ad29 100644
--- a/macros/jptex/latex/pxbase/pxbase.sty
+++ b/macros/jptex/latex/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/macros/jptex/latex/pxbase/pxbasenc.def b/macros/jptex/latex/pxbase/pxbasenc.def
index df54e082bf..0877b55be4 100644
--- a/macros/jptex/latex/pxbase/pxbasenc.def
+++ b/macros/jptex/latex/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/macros/jptex/latex/pxbase/pxjsfenc.def b/macros/jptex/latex/pxbase/pxjsfenc.def
index 52210eabec..09b2cbc898 100644
--- a/macros/jptex/latex/pxbase/pxjsfenc.def
+++ b/macros/jptex/latex/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/macros/jptex/latex/pxbase/upkcat.sty b/macros/jptex/latex/pxbase/upkcat.sty
index 721bddd2e2..d9cc8310d4 100644
--- a/macros/jptex/latex/pxbase/upkcat.sty
+++ b/macros/jptex/latex/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