From 2eecb3520617a4ec9b242167d8af56aafde4a9af Mon Sep 17 00:00:00 2001 From: Karl Berry 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 $ +\GetIdInfo$Id: xeCJK.dtx 832988e 2017-04-01 21:33:23 +0800 Qing Lee $ {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