summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-07-14 20:21:57 +0000
committerKarl Berry <karl@freefriends.org>2022-07-14 20:21:57 +0000
commit56441f33e039906e85170d92fcf2a1db33ca8188 (patch)
tree93408f8e79bc063791013b1775b5afb681a6a13b /Master
parent5837c476bea644b73216ad4a57a000f7d3095b92 (diff)
xecjk (14jul22)
git-svn-id: svn://tug.org/texlive/trunk@63899 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdfbin1320063 -> 1337274 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.pdfbin344024 -> 344031 bytes
-rw-r--r--Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx78
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty4
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg4
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty61
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty4
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty4
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def4
9 files changed, 120 insertions, 39 deletions
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf b/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf
index 2faf0fa105c..705a426c3ae 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf
+++ b/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.pdf b/Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.pdf
index 67d34a41c85..62280cd5bc3 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.pdf
+++ b/Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
index cd087872540..d96a8eca047 100644
--- a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
+++ b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
@@ -194,7 +194,7 @@ Copyright and Licence
%<*package|config|fntef|listings|xunicode|xunextra>
%<!(config|xunextra)>\NeedsTeXFormat{LaTeX2e}
%<!(config|xunextra)>\RequirePackage{expl3}
-%<+!driver>\GetIdInfo$Id: xeCJK.dtx de49417 2022-06-04 19:40:54 +0800 Qing Lee <sobenlee@gmail.com> $
+%<+!driver>\GetIdInfo$Id: xeCJK.dtx 49800bb 2022-07-14 18:54:00 +0800 Qing Lee <sobenlee@gmail.com> $
%<package> {Typesetting CJK scripts with XeLaTeX}
%<config> {Configuration file for xeCJK package}
%<fntef> {xeCJK font effect}
@@ -207,7 +207,7 @@ Copyright and Licence
%<listings>\ProvidesExplPackage{xeCJK-listings}
%<xunicode>\ProvidesExplPackage{xunicode-addon}
%<xunextra>\ProvidesExplFile{xunicode-extra.def}
-%<!driver> {\ExplFileDate}{3.8.9}{\ExplFileDescription}
+%<!driver> {\ExplFileDate}{3.9.0}{\ExplFileDescription}
%</package|config|fntef|listings|xunicode|xunextra>
%<*driver>
\documentclass{ctxdoc}
@@ -287,7 +287,7 @@ Copyright and Licence
% \changes{v3.8.0}{2020/02/09}{清理过时的兼容性补丁代码。}
% \changes{v3.8.3}{2020/04/07}{删除 \texttt{\_nopar}。}
%
-% \CheckSum{10962}
+% \CheckSum{11005}
% \GetFileId{xeCJK.sty}
%
% \title{\bfseries\pkg{xeCJK} 宏包}
@@ -1665,8 +1665,12 @@ Copyright and Licence
{ \ctex_disable_package:n { CJKfntef } }
% \end{macrocode}
%
+% \changes{v3.9.0}{2022/07/08}{不直接依赖 \pkg{xparse} 和 \pkg{l3keys2e}。}
+%
% \begin{macrocode}
-\RequirePackage { l3keys2e , xtemplate , xparse }
+\cs_if_exist:NF \NewDocumentCommand
+ { \RequirePackage { xparse } }
+\RequirePackage { xtemplate }
% \end{macrocode}
%
% \subsection{内部工具}
@@ -3288,7 +3292,7 @@ Copyright and Licence
}
{
\token_if_space:NTF \l_peek_token
- { { \xeCJK_make_node:n { default-space } } }
+ { \xeCJK_make_space_node: }
{ { \xeCJK_make_node:n { default } } }
}
}
@@ -3337,7 +3341,7 @@ Copyright and Licence
}
{
\token_if_space:NTF \l_peek_token
- { { \xeCJK_make_node:n { default-space } } }
+ { \xeCJK_make_space_node: }
{ { \xeCJK_make_node:n { normalspace } } }
}
}
@@ -3440,7 +3444,10 @@ Copyright and Licence
% \begin{macrocode}
\prg_new_conditional:Npnn \xeCJK_if_last_node:n #1 { p , T , F , TF }
{
- \if_dim:w \use:c { c_@@_#1_node_dim } = \tex_lastkern:D
+ \if_dim:w
+ \cs_if_exist_use:cTF { c_@@_#1_node_dim }
+ { = \tex_lastkern:D }
+ { \use:c { c_@@_#1_node_skip } = \tex_lastskip:D }
\prg_return_true: \else: \prg_return_false: \fi:
}
% \end{macrocode}
@@ -3450,7 +3457,7 @@ Copyright and Licence
% \changes{v3.2.4}{2013/07/03}{尽量移除用作判断标志的 \tn{kern}。}
%
% \begin{macro}[int]{\xeCJK_declare_node:n,\xeCJK_make_node:n}
-% 用于判断插入的各种 |kern|。
+% 用于判断插入的各种 |kern| 和 |glue|。
% \begin{macrocode}
\cs_new_protected:Npn \xeCJK_declare_node:n #1
{
@@ -3459,25 +3466,56 @@ Copyright and Licence
{ \dim_gset:cn } { \dim_const:cn }
{ c_@@_#1_node_dim } { \g_@@_node_int sp }
}
+\cs_new_protected:Npn \xeCJK_declare_glue_node:n #1
+ {
+ \int_gincr:N \g_@@_node_int
+ \skip_if_exist:cTF { c_@@_#1_node_skip }
+ { \skip_gset:cn } { \skip_const:cn }
+ { c_@@_#1_node_skip } { \g_@@_node_int sp }
+ }
\int_new:N \g_@@_node_int
\int_gset:Nn \g_@@_node_int { 10 }
\cs_new_protected:Npn \xeCJK_make_node:n #1
{ \exp_args:Nc \@@_make_node:N { c_@@_#1_node_dim } }
\cs_new:Npn \@@_node:n #1
{ \use:c { c_@@_#1_node_dim } }
+\cs_new:Npn \@@_gule_node:n #1
+ { \use:c { c_@@_#1_node_skip } }
\cs_new_protected:Npn \@@_make_node:N #1
{
\tex_kern:D - #1
\tex_kern:D #1
}
\cs_new_protected:Npn \xeCJK_remove_node:
- { \tex_unkern:D \tex_unkern:D }
+ {
+ \int_compare:nNnTF \tex_lastnodetype:D = { 12 }
+ { \tex_unkern:D \tex_unkern:D }
+ {
+ \int_compare:nNnT \tex_lastnodetype:D = { 11 }
+ { \tex_unskip:D \tex_unskip:D }
+ }
+ }
\xeCJK_declare_node:n { CJK }
\xeCJK_declare_node:n { CJK-space }
\xeCJK_declare_node:n { default }
-\xeCJK_declare_node:n { default-space }
\xeCJK_declare_node:n { CJK-widow }
\xeCJK_declare_node:n { normalspace }
+\xeCJK_declare_glue_node:n { default-space }
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v3.9.0}{2022/06/06}{修复西文的 character protrusion 功能。}
+%
+% \begin{macro}[int]{\xeCJK_make_space_node:}
+% 用于判断插入空格之前的 node,默认为空,只有用户设置了 \opt{xCJKecglue} 选项才有意义。
+% 需要使用 |glue| 来标记,使用 |kern| 会影响 character protrusion 功能。
+% \begin{macrocode}
+\cs_new_eq:NN \xeCJK_make_space_node: \prg_do_nothing:
+\cs_new_protected:Npx \@@_make_space_node:
+ {
+ \tex_hskip:D - \@@_gule_node:n { default-space }
+ \tex_hskip:D \@@_gule_node:n { default-space }
+ }
% \end{macrocode}
% \end{macro}
%
@@ -3513,6 +3551,7 @@ Copyright and Licence
{
\bool_set_true:N \l_@@_xecglue_bool
\cs_set_eq:NN \xeCJK_space_or_xecglue: \CJKecglue
+ \cs_set_eq:NN \xeCJK_make_space_node: \@@_make_space_node:
\cs_set_eq:NN \xeCJK_check_for_xglue: \@@_check_for_xglue:
\cs_set_eq:NN \xeCJK_check_for_ecglue: \@@_check_for_xecglue:
\cs_set_eq:NN
@@ -3523,6 +3562,7 @@ Copyright and Licence
{
\bool_set_false:N \l_@@_xecglue_bool
\cs_set_eq:NN \xeCJK_space_or_xecglue: \xeCJK_space_glue:
+ \xeCJK_cs_clear:N \xeCJK_make_space_node:
\xeCJK_cs_clear:N \xeCJK_check_for_xglue:
\cs_set_eq:NN \xeCJK_check_for_ecglue: \@@_check_for_ecglue:
\cs_set_eq:NN
@@ -3535,6 +3575,7 @@ Copyright and Licence
\cs_set_protected:Npn \CJKecglue {#1}
\xeCJK_glue_to_skip:nN {#1} \l_@@_ecglue_skip
\cs_set_eq:NN \xeCJK_space_or_xecglue: \CJKecglue
+ \cs_set_eq:NN \xeCJK_make_space_node: \@@_make_space_node:
\cs_set_eq:NN \xeCJK_check_for_xglue: \@@_check_for_xglue:
\cs_set_eq:NN \xeCJK_check_for_ecglue: \@@_check_for_xecglue:
\cs_set_eq:NN
@@ -3649,7 +3690,7 @@ Copyright and Licence
{ \@@_node:n { CJK } }
{ \xeCJK_remove_node: \xeCJK_make_node:n { CJK-space } }
{ \@@_node:n { default } }
- { \xeCJK_remove_node: \xeCJK_make_node:n { default-space } }
+ { \xeCJK_remove_node: \xeCJK_make_space_node: }
}
\group_align_safe_begin:
\token_if_macro:NTF \l_peek_token
@@ -4619,7 +4660,7 @@ Copyright and Licence
\xeCJK_get_punct_bounds:No \c_@@_right_tl \g_@@_last_punct_tl
\@@_punct_rule:NN \c_@@_right_tl \g_@@_last_punct_tl
\group_align_safe_begin:
- \tl_case:NoTF \l_peek_token
+ \token_case_meaning:NoTF \l_peek_token
{ \l_@@_no_break_cs_case_tl }
{
\group_align_safe_end:
@@ -4631,7 +4672,7 @@ Copyright and Licence
\xeCJK_class_group_end:
\@@_punct_glue:NN \c_@@_right_tl \g_@@_last_punct_tl
}
-\prg_generate_conditional_variant:Nnn \tl_case:Nn { No } { TF , F }
+\prg_generate_conditional_variant:Nnn \token_case_meaning:Nn { No } { TF , F }
% \end{macrocode}
% \end{macro}
%
@@ -4930,13 +4971,13 @@ Copyright and Licence
% l.10 \item
% \end{verbatim}
% 原因在于 \env{tabenum} 实际上是一个 \TeX 对齐环境(\tn{halign}),\tn{par} 在
-% 其中被重定义为 \tn{cr}。而在下面 \cs{tl_case:NnF} 的分支里有对 \tn{par} 的
+% 其中被重定义为 \tn{cr}。而在下面 \cs{token_case_meaning:NnF} 的分支里有对 \tn{par} 的
% \tn{ifx} 判断。解决办法是将判断用 \cs{group_align_safe_begin:} 和
% \cs{group_align_safe_end:} 包起来。或者改用原语 \cs{tex_par:D} 作为判断条件。
% \begin{macrocode}
\cs_new_protected:Npn \xeCJK_check_single_cs:NNn #1#2#3
{
- \tl_case:NoF \l_peek_token
+ \token_case_meaning:NoF \l_peek_token
{ \l_@@_check_single_cs_case_tl }
{ \use_iii:nnn }
{ \xeCJK_check_single_env:nnNn }
@@ -8241,7 +8282,12 @@ Copyright and Licence
%
% 执行宏包选项,并载入 \pkg{fontspec} 宏包。
% \begin{macrocode}
-\ProcessKeysOptions { xeCJK / options }
+\cs_if_exist:NTF \ProcessKeyOptions
+ { \ProcessKeyOptions [ xeCJK / options ] }
+ {
+ \RequirePackage { l3keys2e }
+ \ProcessKeysOptions { xeCJK / options }
+ }
\RequirePackage { fontspec } [ 2020/02/03 ]
% \end{macrocode}
%
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty
index eac1338321b..c328a489127 100644
--- a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty
+++ b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty
@@ -29,10 +29,10 @@
%%
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\GetIdInfo$Id: xeCJK.dtx de49417 2022-06-04 19:40:54 +0800 Qing Lee <sobenlee@gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx 49800bb 2022-07-14 18:54:00 +0800 Qing Lee <sobenlee@gmail.com> $
{xeCJK patch file for listings}
\ProvidesExplPackage{xeCJK-listings}
- {\ExplFileDate}{3.8.9}{\ExplFileDescription}
+ {\ExplFileDate}{3.9.0}{\ExplFileDescription}
\DeclareOption* { \PassOptionsToPackage { \CurrentOption } { xeCJK } }
\ProcessOptions \scan_stop:
\RequirePackage { xeCJK }
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg
index d99cb3de6fb..c8fa2962892 100644
--- a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg
+++ b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg
@@ -6,10 +6,10 @@
%%
%% xeCJK.dtx (with options: `config')
%%
-\GetIdInfo$Id: xeCJK.dtx de49417 2022-06-04 19:40:54 +0800 Qing Lee <sobenlee@gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx 49800bb 2022-07-14 18:54:00 +0800 Qing Lee <sobenlee@gmail.com> $
{Configuration file for xeCJK package}
\ProvidesExplFile{\ExplFileName.cfg}
- {\ExplFileDate}{3.8.9}{\ExplFileDescription}
+ {\ExplFileDate}{3.9.0}{\ExplFileDescription}
%%
%%
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
index 2cac4a0fb2b..2ff401c2514 100644
--- a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
+++ b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
@@ -29,10 +29,10 @@
%%
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\GetIdInfo$Id: xeCJK.dtx de49417 2022-06-04 19:40:54 +0800 Qing Lee <sobenlee@gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx 49800bb 2022-07-14 18:54:00 +0800 Qing Lee <sobenlee@gmail.com> $
{Typesetting CJK scripts with XeLaTeX}
\ProvidesExplPackage{\ExplFileName}
- {\ExplFileDate}{3.8.9}{\ExplFileDescription}
+ {\ExplFileDate}{3.9.0}{\ExplFileDescription}
\msg_new:nnn { xeCJK } { Require-XeTeX }
{
The~xeCJK~package~requires~XeTeX~to~function.\\\\
@@ -74,7 +74,9 @@
\ctex_if_format_at_least:nTF { 2020/10/01 }
{ \ctex_replace_package:nn { CJKfntef } { xeCJKfntef } }
{ \ctex_disable_package:n { CJKfntef } }
-\RequirePackage { l3keys2e , xtemplate , xparse }
+\cs_if_exist:NF \NewDocumentCommand
+ { \RequirePackage { xparse } }
+\RequirePackage { xtemplate }
\tl_new:N \l__xeCJK_tmp_tl
\int_new:N \l__xeCJK_tmp_int
\box_new:N \l__xeCJK_tmp_box
@@ -831,7 +833,7 @@
}
{
\token_if_space:NTF \l_peek_token
- { { \xeCJK_make_node:n { default-space } } }
+ { \xeCJK_make_space_node: }
{ { \xeCJK_make_node:n { default } } }
}
}
@@ -864,7 +866,7 @@
}
{
\token_if_space:NTF \l_peek_token
- { { \xeCJK_make_node:n { default-space } } }
+ { \xeCJK_make_space_node: }
{ { \xeCJK_make_node:n { normalspace } } }
}
}
@@ -954,7 +956,10 @@
{ \CJKglue }
\prg_new_conditional:Npnn \xeCJK_if_last_node:n #1 { p , T , F , TF }
{
- \if_dim:w \use:c { c__xeCJK_#1_node_dim } = \tex_lastkern:D
+ \if_dim:w
+ \cs_if_exist_use:cTF { c__xeCJK_#1_node_dim }
+ { = \tex_lastkern:D }
+ { \use:c { c__xeCJK_#1_node_skip } = \tex_lastskip:D }
\prg_return_true: \else: \prg_return_false: \fi:
}
\cs_new_protected:Npn \xeCJK_declare_node:n #1
@@ -964,25 +969,47 @@
{ \dim_gset:cn } { \dim_const:cn }
{ c__xeCJK_#1_node_dim } { \g__xeCJK_node_int sp }
}
+\cs_new_protected:Npn \xeCJK_declare_glue_node:n #1
+ {
+ \int_gincr:N \g__xeCJK_node_int
+ \skip_if_exist:cTF { c__xeCJK_#1_node_skip }
+ { \skip_gset:cn } { \skip_const:cn }
+ { c__xeCJK_#1_node_skip } { \g__xeCJK_node_int sp }
+ }
\int_new:N \g__xeCJK_node_int
\int_gset:Nn \g__xeCJK_node_int { 10 }
\cs_new_protected:Npn \xeCJK_make_node:n #1
{ \exp_args:Nc \__xeCJK_make_node:N { c__xeCJK_#1_node_dim } }
\cs_new:Npn \__xeCJK_node:n #1
{ \use:c { c__xeCJK_#1_node_dim } }
+\cs_new:Npn \__xeCJK_gule_node:n #1
+ { \use:c { c__xeCJK_#1_node_skip } }
\cs_new_protected:Npn \__xeCJK_make_node:N #1
{
\tex_kern:D - #1
\tex_kern:D #1
}
\cs_new_protected:Npn \xeCJK_remove_node:
- { \tex_unkern:D \tex_unkern:D }
+ {
+ \int_compare:nNnTF \tex_lastnodetype:D = { 12 }
+ { \tex_unkern:D \tex_unkern:D }
+ {
+ \int_compare:nNnT \tex_lastnodetype:D = { 11 }
+ { \tex_unskip:D \tex_unskip:D }
+ }
+ }
\xeCJK_declare_node:n { CJK }
\xeCJK_declare_node:n { CJK-space }
\xeCJK_declare_node:n { default }
-\xeCJK_declare_node:n { default-space }
\xeCJK_declare_node:n { CJK-widow }
\xeCJK_declare_node:n { normalspace }
+\xeCJK_declare_glue_node:n { default-space }
+\cs_new_eq:NN \xeCJK_make_space_node: \prg_do_nothing:
+\cs_new_protected:Npx \__xeCJK_make_space_node:
+ {
+ \tex_hskip:D - \__xeCJK_gule_node:n { default-space }
+ \tex_hskip:D \__xeCJK_gule_node:n { default-space }
+ }
\keys_define:nn { xeCJK / options }
{
CJKglue .code:n =
@@ -1004,6 +1031,7 @@
{
\bool_set_true:N \l__xeCJK_xecglue_bool
\cs_set_eq:NN \xeCJK_space_or_xecglue: \CJKecglue
+ \cs_set_eq:NN \xeCJK_make_space_node: \__xeCJK_make_space_node:
\cs_set_eq:NN \xeCJK_check_for_xglue: \__xeCJK_check_for_xglue:
\cs_set_eq:NN \xeCJK_check_for_ecglue: \__xeCJK_check_for_xecglue:
\cs_set_eq:NN
@@ -1014,6 +1042,7 @@
{
\bool_set_false:N \l__xeCJK_xecglue_bool
\cs_set_eq:NN \xeCJK_space_or_xecglue: \xeCJK_space_glue:
+ \xeCJK_cs_clear:N \xeCJK_make_space_node:
\xeCJK_cs_clear:N \xeCJK_check_for_xglue:
\cs_set_eq:NN \xeCJK_check_for_ecglue: \__xeCJK_check_for_ecglue:
\cs_set_eq:NN
@@ -1026,6 +1055,7 @@
\cs_set_protected:Npn \CJKecglue {#1}
\xeCJK_glue_to_skip:nN {#1} \l__xeCJK_ecglue_skip
\cs_set_eq:NN \xeCJK_space_or_xecglue: \CJKecglue
+ \cs_set_eq:NN \xeCJK_make_space_node: \__xeCJK_make_space_node:
\cs_set_eq:NN \xeCJK_check_for_xglue: \__xeCJK_check_for_xglue:
\cs_set_eq:NN \xeCJK_check_for_ecglue: \__xeCJK_check_for_xecglue:
\cs_set_eq:NN
@@ -1113,7 +1143,7 @@
{ \__xeCJK_node:n { CJK } }
{ \xeCJK_remove_node: \xeCJK_make_node:n { CJK-space } }
{ \__xeCJK_node:n { default } }
- { \xeCJK_remove_node: \xeCJK_make_node:n { default-space } }
+ { \xeCJK_remove_node: \xeCJK_make_space_node: }
}
\group_align_safe_begin:
\token_if_macro:NTF \l_peek_token
@@ -1794,7 +1824,7 @@
\xeCJK_get_punct_bounds:No \c__xeCJK_right_tl \g__xeCJK_last_punct_tl
\__xeCJK_punct_rule:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl
\group_align_safe_begin:
- \tl_case:NoTF \l_peek_token
+ \token_case_meaning:NoTF \l_peek_token
{ \l__xeCJK_no_break_cs_case_tl }
{
\group_align_safe_end:
@@ -1806,7 +1836,7 @@
\xeCJK_class_group_end:
\__xeCJK_punct_glue:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl
}
-\prg_generate_conditional_variant:Nnn \tl_case:Nn { No } { TF , F }
+\prg_generate_conditional_variant:Nnn \token_case_meaning:Nn { No } { TF , F }
\cs_new_protected:Npn \xeCJK_check_FullRight_symbol:Nw #1
{ \peek_remove_spaces:n { \__xeCJK_save_FullRight_symbol:N #1 } }
\cs_new_protected:Npn \xeCJK_cs_case_keys_define:nNNnn #1#2#3#4#5
@@ -1996,7 +2026,7 @@
}
\cs_new_protected:Npn \xeCJK_check_single_cs:NNn #1#2#3
{
- \tl_case:NoF \l_peek_token
+ \token_case_meaning:NoF \l_peek_token
{ \l__xeCJK_check_single_cs_case_tl }
{ \use_iii:nnn }
{ \xeCJK_check_single_env:nnNn }
@@ -4486,7 +4516,12 @@
}
\defaultCJKfontfeatures { Script = CJK }
\xeCJKsetwidth { ^^^^2013 } { 0.5 em }
-\ProcessKeysOptions { xeCJK / options }
+\cs_if_exist:NTF \ProcessKeyOptions
+ { \ProcessKeyOptions [ xeCJK / options ] }
+ {
+ \RequirePackage { l3keys2e }
+ \ProcessKeysOptions { xeCJK / options }
+ }
\RequirePackage { fontspec } [ 2020/02/03 ]
\tl_const:Nx \c__xeCJK_encoding_tl { \g_fontspec_encoding_tl }
\keys_define:nn { xeCJK / options }
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty
index 93017324c00..d979e844256 100644
--- a/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty
+++ b/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty
@@ -29,10 +29,10 @@
%%
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\GetIdInfo$Id: xeCJK.dtx de49417 2022-06-04 19:40:54 +0800 Qing Lee <sobenlee@gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx 49800bb 2022-07-14 18:54:00 +0800 Qing Lee <sobenlee@gmail.com> $
{xeCJK font effect}
\ProvidesExplPackage{xeCJKfntef}
- {\ExplFileDate}{3.8.9}{\ExplFileDescription}
+ {\ExplFileDate}{3.9.0}{\ExplFileDescription}
\PassOptionsToPackage { normalem } { ulem }
\DeclareOption* { \PassOptionsToPackage { \CurrentOption } { ulem } }
\ProcessOptions \scan_stop:
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty b/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty
index 50a568239e4..26c747957d9 100644
--- a/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty
+++ b/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty
@@ -29,10 +29,10 @@
%%
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\GetIdInfo$Id: xeCJK.dtx de49417 2022-06-04 19:40:54 +0800 Qing Lee <sobenlee@gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx 49800bb 2022-07-14 18:54:00 +0800 Qing Lee <sobenlee@gmail.com> $
{addon file for xunicode}
\ProvidesExplPackage{xunicode-addon}
- {\ExplFileDate}{3.8.9}{\ExplFileDescription}
+ {\ExplFileDate}{3.9.0}{\ExplFileDescription}
\bool_lazy_or:nnF
{ \sys_if_engine_xetex_p: }
{ \sys_if_engine_luatex_p: }
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def b/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def
index e3fcbcf7510..60e5bfb7799 100644
--- a/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def
+++ b/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def
@@ -27,10 +27,10 @@
%%
%% ----------------------------------------------------------------------
%%
-\GetIdInfo$Id: xeCJK.dtx de49417 2022-06-04 19:40:54 +0800 Qing Lee <sobenlee@gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx 49800bb 2022-07-14 18:54:00 +0800 Qing Lee <sobenlee@gmail.com> $
{extra definition for xunicode}
\ProvidesExplFile{xunicode-extra.def}
- {\ExplFileDate}{3.8.9}{\ExplFileDescription}
+ {\ExplFileDate}{3.9.0}{\ExplFileDescription}
\DeclareUTFSymbol\texthyphenationpoint{"2027}
\DeclareUTFSymbol\texttwoemdash{"2E3A}
\DeclareUTFComposite\textsuperscript