summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-04-01 20:57:33 +0000
committerKarl Berry <karl@freefriends.org>2017-04-01 20:57:33 +0000
commit2eecb3520617a4ec9b242167d8af56aafde4a9af (patch)
tree90f9936ac11ca33092e1536a823ae0e4ce81940f /Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
parent5112bfa157654c21370044635eb59293b8c8d895 (diff)
xecjk (1apr17)
git-svn-id: svn://tug.org/texlive/trunk@43672 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty')
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty128
1 files changed, 64 insertions, 64 deletions
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 }