From 2eecb3520617a4ec9b242167d8af56aafde4a9af Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Sat, 1 Apr 2017 20:57:33 +0000
Subject: xecjk (1apr17)

git-svn-id: svn://tug.org/texlive/trunk@43672 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty | 128 +++++++++++++-------------
 1 file changed, 64 insertions(+), 64 deletions(-)

(limited to 'Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty')

diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
index 6b30d8f253f..97c9e4ff557 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 efd7a18 2017-02-23 02:07:20 +0800 Qing Lee <sobenlee@gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx 832988e 2017-04-01 21:33:23 +0800 Qing Lee <sobenlee@gmail.com> $
   {Typesetting CJK scripts with XeLaTeX}
 \ProvidesExplPackage{\ExplFileName}
-  {\ExplFileDate}{3.4.6}{\ExplFileDescription}
+  {\ExplFileDate}{3.4.7}{\ExplFileDescription}
 \msg_new:nnn { xeCJK } { Require-XeTeX }
   {
     The~xeCJK~package~requires~XeTeX~to~function.\\\\
@@ -1496,26 +1496,21 @@
   { \tex_penalty:D \l__xeCJK_widow_penalty_int }
 \cs_new_protected_nopar:Npn \xeCJK_check_single:Nw #1
   {
+    \group_align_safe_begin:
     \peek_catcode:NTF \c_catcode_letter_token
       { \xeCJK_check_single:NNw #1 }
       {
-        \group_align_safe_begin:
         \token_if_other:NTF \l_peek_token
-          { \group_align_safe_end: \xeCJK_check_single:NNw #1 }
-          {
-            \group_align_safe_end:
-            \bool_if:nTF
-              {
-                \str_if_eq_x_p:nn { \token_get_arg_spec:N \l_peek_token } { } &&
-                \exp_args:No \tl_if_single_token_p:n \l_peek_token            &&
-                ( \exp_after:wN \token_if_other_p:N  \l_peek_token ||
-                  \exp_after:wN \token_if_letter_p:N \l_peek_token )
-              }
-              { \exp_after:wN \xeCJK_check_single:NNw \exp_after:wN #1 }
-              { \__xeCJK_check_single_save:N #1 }
-          }
+          { \xeCJK_check_single:NNw }
+          { \__xeCJK_check_single_end:N }
+        #1
       }
   }
+\cs_new_protected_nopar:Npn \__xeCJK_check_single_end:N
+  {
+    \group_align_safe_end:
+    \__xeCJK_check_single_save:N
+  }
 \cs_new_protected_nopar:Npn \xeCJK_check_single:NNw #1#2
   {
     \xeCJK_peek_catcode_ignore_spaces:NTF \c_catcode_letter_token
@@ -1523,110 +1518,117 @@
         \bool_if:NTF \l__xeCJK_peek_ignore_spaces_bool
           {
             \bool_if:NTF \l__xeCJK_reserve_space_bool
-              { \__xeCJK_check_single_save:N #1 #2 ~ }
+              { \__xeCJK_check_single_end:N #1 #2 ~ }
               { \__xeCJK_check_single_space:NN #1#2 }
           }
-          { \__xeCJK_check_single_save:N #1 #2 }
+          { \__xeCJK_check_single_end:N #1 #2 }
       }
       {
-        \group_align_safe_begin:
         \token_if_other:NTF \l_peek_token
           {
-            \group_align_safe_end:
             \bool_if:NTF \l__xeCJK_peek_ignore_spaces_bool
-              { \__xeCJK_check_single_space:NN #1#2 }
-              { \__xeCJK_check_single_save:N #1 #2 }
+              { \__xeCJK_check_single_space:NN }
+              { \__xeCJK_check_single_end:N }
           }
           {
-            \token_if_cs:NTF \l_peek_token
-              {
-                \group_align_safe_end:
-                \bool_if:NTF \l__xeCJK_peek_ignore_spaces_bool
-                  { \xeCJK_check_single_cs:NNn #1#2 { ~ } }
-                  { \xeCJK_check_single_cs:NNn #1#2 { } }
-              }
-              {
-                \group_align_safe_end:
-                \bool_if:nTF
-                  {
-                    \l__xeCJK_plain_equation_bool &&
-                    \token_if_math_toggle_p:N \l_peek_token
-                  }
-                  {
-                    \bool_if:NTF \l__xeCJK_peek_ignore_spaces_bool
-                      { \xeCJK_check_single_equation:NNnNw #1 #2 { ~ } }
-                      { \xeCJK_check_single_equation:NNnNw #1 #2 { } }
-                  }
-                  {
-                    \bool_if:NTF \l__xeCJK_peek_ignore_spaces_bool
-                      { \__xeCJK_check_single_save:N #1 #2 ~ }
-                      { \__xeCJK_check_single_save:N #1 #2 }
-                  }
-              }
+            \bool_if:NTF \l__xeCJK_peek_ignore_spaces_bool
+              { \__xeCJK_check_single_aux:nNNw { ~ } }
+              { \__xeCJK_check_single_aux:nNNw { } }
           }
+        #1 #2
       }
   }
+\cs_new_protected_nopar:Npn \__xeCJK_check_single_aux:nNNw #1#2#3
+  {
+    \token_if_cs:NTF \l_peek_token
+      { \xeCJK_check_single_cs:NNn }
+      { \xeCJK_check_single_end:NNnw }
+    #2 #3 {#1}
+  }
+\cs_new_protected_nopar:Npn \__xeCJK_check_single_end_aux:NNn #1#2#3
+  { \__xeCJK_check_single_end:N #1 #2 #3 }
+\cs_new_eq:NN \xeCJK_check_single_end:NNnw \__xeCJK_check_single_end_aux:NNn
+\cs_new_protected_nopar:Npn \__xeCJK_check_single_end_equation:NNnw
+  {
+    \token_if_math_toggle:NTF \l_peek_token
+      { \xeCJK_check_single_equation:NNnNw }
+      { \__xeCJK_check_single_end_aux:NNn }
+  }
+\keys_define:nn { xeCJK / options }
+  {
+    PlainEquation .choice: ,
+    PlainEquation / true  .code:n =
+      {
+        \cs_set_eq:NN \xeCJK_check_single_end:NNnw
+                      \__xeCJK_check_single_end_equation:NNnw
+      } ,
+    PlainEquation / false .code:n =
+      {
+        \cs_set_eq:NN \xeCJK_check_single_end:NNnw
+                      \__xeCJK_check_single_end_aux:NNn
+      } ,
+    PlainEquation      .default:n = { true } ,
+  }
 \cs_new_protected_nopar:Npn \__xeCJK_check_single_space:NN #1#2
   {
     \xeCJK_if_CJK_class:NTF #2
       {
         \xeCJK_if_CJK_class:NTF \l_peek_token
-          { \__xeCJK_check_single_save:N #1 #2 }
-          { \__xeCJK_check_single_save:N #1 #2 ~ }
+          { \__xeCJK_check_single_end:N #1 #2 }
+          { \__xeCJK_check_single_end:N #1 #2 ~ }
       }
-      { \__xeCJK_check_single_save:N #1 #2 ~ }
+      { \__xeCJK_check_single_end:N #1 #2 ~ }
   }
 \cs_new_protected_nopar:Npn \xeCJK_check_single_equation:NNnNw #1#2#3#4
   {
     \peek_catcode:NTF \c_math_toggle_token
       {
-        \xeCJK_widow_penalty: \__xeCJK_check_single_save:N #1
+        \xeCJK_widow_penalty: \__xeCJK_check_single_end:N #1
         \xeCJK_make_node:n { CJK-widow } #2 #4
       }
-      { \__xeCJK_check_single_save:N #1 #2#3#4 }
+      { \__xeCJK_check_single_end:N #1 #2#3#4 }
   }
 \cs_new_protected_nopar:Npn \xeCJK_check_single_cs:NNn #1#2#3
   {
-    \group_align_safe_begin:
     \tl_case:NoF \l_peek_token
       { \l__xeCJK_check_single_cs_case_tl }
-      { \group_align_safe_end: \use_iii:nnn }
+      { \use_iii:nnn }
       { \xeCJK_check_single_env:nnNn }
       {
-        \xeCJK_widow_penalty: \__xeCJK_check_single_save:N #1
+        \xeCJK_widow_penalty:
+        \__xeCJK_check_single_end:N #1
         \xeCJK_make_node:n { CJK-widow } #2#3
       }
-      { \__xeCJK_check_single_save:N #1 #2#3 }
+      { \__xeCJK_check_single_end:N #1 #2#3 }
   }
 \tl_new:N \l__xeCJK_check_single_cs_case_tl
 \cs_generate_variant:Nn \tl_case:NnF { No }
 \cs_new_protected_nopar:Npn \xeCJK_check_single_env:nnNn #1#2#3#4
   {
-    \group_align_safe_begin:
     \str_case_x:noTF {#4}
       { \l__xeCJK_inline_env_case_tl }
-      { \group_align_safe_end: #2 }
-      { \group_align_safe_end: #1 }
+      {#2}
+      {#1}
     #3 {#4}
   }
 \cs_generate_variant:Nn \str_case_x:nnTF { no }
 \xeCJK_cs_case_keys_define:nNNnn { NewLineCS }
   \l__xeCJK_new_line_cs_case_tl \l__xeCJK_new_line_cs_seq
-  { \group_align_safe_end: \use_ii:nnn }
+  { \use_ii:nnn }
   {
     \tl_concat:NNN \l__xeCJK_check_single_cs_case_tl
       \l__xeCJK_new_line_cs_case_tl \l__xeCJK_env_cs_case_tl
   }
 \xeCJK_cs_case_keys_define:nNNnn { EnvCS }
   \l__xeCJK_env_cs_case_tl \l__xeCJK_env_cs_seq
-  { \group_align_safe_end: \use:n }
+  { \use:n }
   {
     \tl_concat:NNN \l__xeCJK_check_single_cs_case_tl
       \l__xeCJK_new_line_cs_case_tl \l__xeCJK_env_cs_case_tl
   }
 \keys_define:nn { xeCJK / options }
   {
-    InlineEnv  .code:n =
+    InlineEnv       .code:n =
       {
         \seq_set_from_clist:Nn \l__xeCJK_inline_env_seq {#1}
         \__xeCJK_update_inline_env_case_tl:
@@ -1655,8 +1657,6 @@
       { \tl_put_right:Nn \l__xeCJK_inline_env_case_tl { {##1} { } } }
   }
 \tl_new:N \l__xeCJK_inline_env_case_tl
-\keys_define:nn { xeCJK / options }
-  { PlainEquation .bool_set:N = \l__xeCJK_plain_equation_bool }
 \seq_new:N \g__xeCJK_CJK_sub_class_seq
 \NewDocumentCommand \xeCJKDeclareSubCJKBlock
   { s > { \TrimSpaces } m m }
-- 
cgit v1.2.3

