texlive[63899] Master/texmf-dist: xecjk (14jul22)

commits+karl at tug.org commits+karl at tug.org
Thu Jul 14 22:21:57 CEST 2022


Revision: 63899
          http://tug.org/svn/texlive?view=revision&revision=63899
Author:   karl
Date:     2022-07-14 22:21:57 +0200 (Thu, 14 Jul 2022)
Log Message:
-----------
xecjk (14jul22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf
    trunk/Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.pdf
    trunk/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
    trunk/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty
    trunk/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg
    trunk/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
    trunk/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty
    trunk/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty
    trunk/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def

Modified: trunk/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
===================================================================
--- trunk/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx	2022-07-14 20:21:27 UTC (rev 63898)
+++ trunk/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx	2022-07-14 20:21:57 UTC (rev 63899)
@@ -194,7 +194,7 @@
 %<*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 at gmail.com> $
+%<+!driver>\GetIdInfo$Id: xeCJK.dtx 49800bb 2022-07-14 18:54:00 +0800 Qing Lee <sobenlee at gmail.com> $
 %<package>  {Typesetting CJK scripts with XeLaTeX}
 %<config>  {Configuration file for xeCJK package}
 %<fntef>  {xeCJK font effect}
@@ -207,7 +207,7 @@
 %<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 @@
 % \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 @@
   { \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 @@
           }
           {
             \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 @@
       }
       {
         \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 @@
 %    \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 @@
 % \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,6 +3466,13 @@
       { \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
@@ -3465,6 +3479,8 @@
   { \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
@@ -3471,16 +3487,38 @@
     \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}
+%
 % \begin{macro}{CJKglue}
 % CJK 文字之间插入的 |glue|。
 %    \begin{macrocode}
@@ -3513,6 +3551,7 @@
       {
         \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 @@
       {
         \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 @@
         \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 @@
                 { \@@_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 @@
     \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 @@
     \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 @@
 %    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 @@
 %
 % 执行宏包选项,并载入 \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}
 %

Modified: trunk/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty	2022-07-14 20:21:27 UTC (rev 63898)
+++ trunk/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty	2022-07-14 20:21:57 UTC (rev 63899)
@@ -29,10 +29,10 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}
 \RequirePackage{expl3}
-\GetIdInfo$Id: xeCJK.dtx de49417 2022-06-04 19:40:54 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx 49800bb 2022-07-14 18:54:00 +0800 Qing Lee <sobenlee at 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 }

Modified: trunk/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg	2022-07-14 20:21:27 UTC (rev 63898)
+++ trunk/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg	2022-07-14 20:21:57 UTC (rev 63899)
@@ -6,10 +6,10 @@
 %%
 %% xeCJK.dtx  (with options: `config')
 %% 
-\GetIdInfo$Id: xeCJK.dtx de49417 2022-06-04 19:40:54 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx 49800bb 2022-07-14 18:54:00 +0800 Qing Lee <sobenlee at gmail.com> $
   {Configuration file for xeCJK package}
 \ProvidesExplFile{\ExplFileName.cfg}
-  {\ExplFileDate}{3.8.9}{\ExplFileDescription}
+  {\ExplFileDate}{3.9.0}{\ExplFileDescription}
 
 %% 
 %%

Modified: trunk/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty	2022-07-14 20:21:27 UTC (rev 63898)
+++ trunk/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty	2022-07-14 20:21:57 UTC (rev 63899)
@@ -29,10 +29,10 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}
 \RequirePackage{expl3}
-\GetIdInfo$Id: xeCJK.dtx de49417 2022-06-04 19:40:54 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx 49800bb 2022-07-14 18:54:00 +0800 Qing Lee <sobenlee at 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,6 +969,13 @@
       { \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
@@ -970,6 +982,8 @@
   { \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
@@ -976,13 +990,26 @@
     \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 }

Modified: trunk/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty	2022-07-14 20:21:27 UTC (rev 63898)
+++ trunk/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty	2022-07-14 20:21:57 UTC (rev 63899)
@@ -29,10 +29,10 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}
 \RequirePackage{expl3}
-\GetIdInfo$Id: xeCJK.dtx de49417 2022-06-04 19:40:54 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx 49800bb 2022-07-14 18:54:00 +0800 Qing Lee <sobenlee at 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:

Modified: trunk/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty	2022-07-14 20:21:27 UTC (rev 63898)
+++ trunk/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty	2022-07-14 20:21:57 UTC (rev 63899)
@@ -29,10 +29,10 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}
 \RequirePackage{expl3}
-\GetIdInfo$Id: xeCJK.dtx de49417 2022-06-04 19:40:54 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx 49800bb 2022-07-14 18:54:00 +0800 Qing Lee <sobenlee at 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: }

Modified: trunk/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def	2022-07-14 20:21:27 UTC (rev 63898)
+++ trunk/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def	2022-07-14 20:21:57 UTC (rev 63899)
@@ -27,10 +27,10 @@
 %% 
 %% ----------------------------------------------------------------------
 %% 
-\GetIdInfo$Id: xeCJK.dtx de49417 2022-06-04 19:40:54 +0800 Qing Lee <sobenlee at gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx 49800bb 2022-07-14 18:54:00 +0800 Qing Lee <sobenlee at 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



More information about the tex-live-commits mailing list.