summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/xelatex/xecjk
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/xecjk')
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/config/xeCJK.cfg4
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty153
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty222
3 files changed, 252 insertions, 127 deletions
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/config/xeCJK.cfg b/Master/texmf-dist/tex/xelatex/xecjk/config/xeCJK.cfg
index 4c34f1a2179..f2b2567279c 100644
--- a/Master/texmf-dist/tex/xelatex/xecjk/config/xeCJK.cfg
+++ b/Master/texmf-dist/tex/xelatex/xecjk/config/xeCJK.cfg
@@ -6,11 +6,11 @@
%%
%% xeCJK.dtx (with options: `config')
%%
-\GetIdInfo$Id: xeCJK.dtx 382 2012-12-13 04:58:22Z sobenlee $
+\GetIdInfo$Id: xeCJK.dtx 399 2013-01-11 14:57:50Z sobenlee $
{Configuration file for xeCJK package}
\ProvidesExplFile
{\ExplFileName.cfg}
- {\ExplFileDate}{3.1.1}{\ExplFileDescription}
+ {\ExplFileDate}{3.1.2}{\ExplFileDescription}
%%
%%
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
index 6678f7cc805..4040fcc7d79 100644
--- a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
+++ b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
@@ -6,7 +6,7 @@
%%
%% xeCJK.dtx (with options: `package')
%%
-%% $Id: xeCJK.dtx 382 2012-12-13 04:58:22Z sobenlee $
+%% $Id: xeCJK.dtx 399 2013-01-11 14:57:50Z sobenlee $
%% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%% -----------------------------------------------------------------
%% Author:
@@ -15,7 +15,9 @@
%% Leo Liu <leoliu.pku@gmail.com>
%% Qing Lee <sobenlee@gmail.com>
%%
-%% Copyright (C) 2007--2012 Wenchang Sun
+%% Copyright (C) 2007--2013 Wenchang Sun
+%% (C) 2009--2013 Leo Liu
+%% (C) 2012--2013 Qing Lee
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -31,11 +33,11 @@
%%
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\GetIdInfo$Id: xeCJK.dtx 382 2012-12-13 04:58:22Z sobenlee $
+\GetIdInfo$Id: xeCJK.dtx 399 2013-01-11 14:57:50Z sobenlee $
{Typesetting CJK scripts with XeLaTeX}
\ProvidesExplPackage
{\ExplFileName}
- {\ExplFileDate}{3.1.1}{\ExplFileDescription}
+ {\ExplFileDate}{3.1.2}{\ExplFileDescription}
\msg_new:nnn { xeCJK } { Require-XeTeX }
{
The~xeCJK~package~requires~XeTeX~to~function.\\\\
@@ -46,9 +48,9 @@
\xetex_if_engine:F { \msg_critical:nn { xeCJK } { Require-XeTeX } }
\msg_new:nnn { xeCJK } { l3-too-old }
{
- Support~package~'#1'~too~old. \\\\
+ Support~package~`#1'~too~old. \\\\
Please~update~an~up~to~date~version~of~the~bundles\\\\
- 'l3kernel'~and~'l3packages'\\\\
+ `l3kernel'~and~`l3packages'\\\\
using~your~TeX~package~manager~or~from~CTAN.\\
\str_if_eq:nnT {#1} { expl3 } { Loading~xeCJK~will~abort! }
}
@@ -220,7 +222,23 @@
{ \XeTeXcharclass \xeCJK_token_value_charcode:N #1 }
\cs_new_nopar:Npn \xeCJK_token_value_charcode:N #1
{ \exp_after:wN \__xeCJK_token_value_charcode:w \token_to_meaning:N #1 \q_stop }
-\cs_new_nopar:Npn \__xeCJK_token_value_charcode:w #1 ~ #2 ~ #3 \q_stop { `#3 }
+\fp_compare:nNnTF { \int_use:N \xetex_XeTeXversion:D \XeTeXrevision } > { 0.9998 }
+ {
+ \cs_new_nopar:Npn \__xeCJK_token_value_charcode:w #1 ~ #2 ~ #3 \q_stop
+ { `#3 }
+ }
+ {
+ \cs_new_nopar:Npn \__xeCJK_token_value_charcode:w #1 ~ #2 ~ #3#4 \q_stop
+ { \tl_if_empty:nTF {#4} { `#3 } { "20000 } }
+ }
+\prg_new_conditional:Npnn \xeCJK_if_CJK_class:N #1 { p , T , F , TF }
+ {
+ \if_cs_exist:w \__xeCJK_CJK_class_tl:n { \xeCJK_token_value_class:N #1 } \cs_end:
+ \prg_return_true: \else: \prg_return_false: \fi:
+ }
+\cs_new_nopar:Npn \__xeCJK_CJK_class_tl:n #1
+ { c__xeCJK_CJK_class_ \int_eval:n {#1} _tl }
+\cs_generate_variant:Nn \__xeCJK_CJK_class_tl:n { c }
\prg_new_conditional:Npnn \xeCJK_if_same_class:NN #1#2 { p , T , F , TF }
{
\if_int_compare:w
@@ -341,16 +359,11 @@
\seq_gset_from_clist:Nn \g__xeCJK_non_CJK_class_seq
{ Default , HalfLeft , HalfRight , NormalSpace , Boundary }
\seq_new:N \g__xeCJK_CJK_class_seq
-\prop_new:N \g__xeCJK_CJK_class_prop
\cs_new_protected_nopar:Npn \__xeCJK_save_CJK_class:n #1
{
\seq_gput_right:Nn \g__xeCJK_CJK_class_seq {#1}
- \prop_gput:Nvn \g__xeCJK_CJK_class_prop { \__xeCJK_class_csname:n {#1} } {#1}
- \tl_gput_right:Nx \g__xeCJK_check_single_CJK_case_tl
- { { \exp_not:c { \__xeCJK_class_csname:n {#1} } } { \exp_not:N \use_ii:nn } }
+ \tl_const:cn { \__xeCJK_CJK_class_tl:c { \__xeCJK_class_csname:n {#1} } } {#1}
}
-\tl_new:N \g__xeCJK_check_single_CJK_case_tl
-\cs_generate_variant:Nn \prop_gput:Nnn { Nvn }
\clist_map_function:nN { CJK , FullLeft , FullRight } \__xeCJK_save_CJK_class:n
\cs_new_nopar:Npn \xeCJK_class_num:n #1 { \use:c { \__xeCJK_class_csname:n {#1} } }
\NewDocumentCommand \xeCJKDeclareCharClass { s > { \TrimSpaces } m m }
@@ -1031,19 +1044,14 @@
}
\cs_new_protected_nopar:Npn \__xeCJK_check_single_space:NN #1#2
{
- \int_case:non { \xeCJK_token_value_class:N #2 }
- { \g__xeCJK_check_single_CJK_case_tl }
- { \use_i:nn }
- { \__xeCJK_check_single_save:N #1 #2 ~ }
+ \xeCJK_if_CJK_class:NTF #2
{
- \int_case:non { \xeCJK_token_value_class:N \l_peek_token }
- { \g__xeCJK_check_single_CJK_case_tl }
- { \use_i:nn }
- { \__xeCJK_check_single_save:N #1 #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_save:N #1 #2 ~ }
}
-\cs_generate_variant:Nn \int_case:nnn { no }
\cs_new_protected_nopar:Npn \xeCJK_check_single_equation:NNnNw #1#2#3#4
{
\peek_catcode:NTF \c_math_toggle_token
@@ -1163,7 +1171,7 @@
\cs_generate_variant:Nn \__xeCJK_sub_restore_or_cancel:n { x }
\__xeCJK_msg_new:nn { SubBlock-undefined }
{
- The~CJK~sub~block~'#1'~is~undefined.\\\\
+ The~CJK~sub~block~`#1'~is~undefined.\\\\
Try~to~use~\token_to_str:N \xeCJKDeclareSubCJKBlock \
to~declare~it.
}
@@ -1788,9 +1796,9 @@
}
\__xeCJK_msg_new:nn { fallback }
{
- CJKfamily~'#2'~
+ CJKfamily~`#2'~
( \prop_get:No \g__xeCJK_family_font_name_prop {#2} )~
- does~not~contain~glyph~'#1'~(U+\int_to_hexadecimal:n {`#1}).\\
+ does~not~contain~glyph~`#1'~(U+\int_to_hexadecimal:n {`#1}).\\
}
\bool_new:N \l__xeCJK_fallback_first_bool
\cs_generate_variant:Nn \prop_get:Nn { No }
@@ -2012,8 +2020,7 @@
\cs_gset_protected_nopar:cpx { \__xeCJK_family_csname:n {#1} }
{
\group_begin:
- \cs_set_eq:NN
- \exp_not:n { \__xeCJK_update_family:n \use_none:n }
+ \exp_not:n { \cs_set_eq:NN \__xeCJK_update_family:n \use_none:n }
\exp_not:n { \fontspec_set_family:Nnn \l__xeCJK_fontspec_family_tl }
{ \exp_not:V \l__xeCJK_fontspec_options_clist }
{ \exp_not:V \l__xeCJK_font_name_tl }
@@ -2248,7 +2255,7 @@
{ \__xeCJK_block_select_font:n {#2} }
}
}
-\__xeCJK_msg_new:nn { CJK-block } { Switch~from~block~'#1'~to~'#2'. }
+\__xeCJK_msg_new:nn { CJK-block } { Switch~from~block~`#1'~to~`#2'. }
\cs_new_protected_nopar:Npn \__xeCJK_block_select_font:n #1
{
\cs_if_exist_use:cF { \__xeCJK_font_csname:n { \l_xeCJK_family_tl/#1 } }
@@ -2323,10 +2330,13 @@
}
\cs_new_protected_nopar:Npn \__xeCJK_family_unknown_warning:n #1
{
- \seq_if_in:NnF \g__xeCJK_unknown_family_seq {#1}
+ \prop_if_empty:NF \g__xeCJK_family_font_name_prop
{
- \seq_gput_right:Nn \g__xeCJK_unknown_family_seq {#1}
- \__xeCJK_warning:nx { CJKfamily-Unknown } {#1}
+ \seq_if_in:NnF \g__xeCJK_unknown_family_seq {#1}
+ {
+ \seq_gput_right:Nn \g__xeCJK_unknown_family_seq {#1}
+ \__xeCJK_warning:nx { CJKfamily-Unknown } {#1}
+ }
}
}
\cs_generate_variant:Nn \__xeCJK_family_unknown_warning:n { x }
@@ -2334,7 +2344,10 @@
\__xeCJK_msg_new:nn { CJKfamily-Unknown }
{
Unknown~CJK~family~`\__xeCJK_msg_family_map:n {#1}'~is~being~ignored.\\\\
- Try~to~use~
+ Try~to~use~`\__xeCJK_msg_def_family_map:n {#1}'~to~define~it.
+ }
+\cs_new_nopar:Npn \__xeCJK_msg_def_family_map:n #1
+ {
\str_case_x:nnn {#1}
{
\CJKrmdefault { \token_to_str:N \setCJKmainfont }
@@ -2342,7 +2355,7 @@
\CJKttdefault { \token_to_str:N \setCJKmonofont }
}
{ \token_to_str:N \setCJKfamilyfont {#1} }
- [...]{...}~to~define~it.
+ [...]{...}
}
\cs_new_nopar:Npn \__xeCJK_msg_family_map:n #1
{
@@ -2445,19 +2458,40 @@
\cs_generate_variant:Nn \prop_get:NnNF { Nx }
\__xeCJK_at_end_preamble:n
{
- \prop_if_empty:NTF \g__xeCJK_family_font_name_prop
- { \__xeCJK_warning:n { no-CJKfamily } }
+ \cs_set_eq:NN \__xeCJK_family_default_wrap:n \exp_not:n
+ \tl_if_eq:NNT \CJKfamilydefault \l__xeCJK_family_default_init_tl
{
\tl_gset:Nx \CJKfamilydefault
{
\str_case_x:nnn { \familydefault }
{
- { \rmdefault } { \CJKrmdefault }
- { \sfdefault } { \CJKsfdefault }
- { \ttdefault } { \CJKttdefault }
+ { \rmdefault } { \exp_not:N \CJKrmdefault }
+ { \sfdefault } { \exp_not:N \CJKsfdefault }
+ { \ttdefault } { \exp_not:N \CJKttdefault }
}
{ \CJKfamilydefault }
}
+ }
+ \cs_undefine:N \__xeCJK_family_default_wrap:n
+ \prop_if_empty:NTF \g__xeCJK_family_font_name_prop
+ { \__xeCJK_warning:nx { no-CJKfamily } { \CJKfamilydefault } }
+ {
+ \xeCJK_family_if_exist:xF { \CJKfamilydefault }
+ {
+ \tl_set_eq:NN \l__xeCJK_tmpa_tl \CJKfamilydefault
+ \str_if_eq_x:nnTF { \CJKfamilydefault } { \CJKrmdefault }
+ { \use:n }
+ {
+ \xeCJK_family_if_exist:xTF { \CJKrmdefault }
+ { \tl_gset:Nn \CJKfamilydefault { \CJKrmdefault } }
+ }
+ {
+ \prop_map_inline:Nn \g__xeCJK_family_font_name_prop
+ { \prop_map_break:n { \tl_gset:Nn \CJKfamilydefault {#1} } }
+ }
+ \__xeCJK_warning:nxx { CJKfamilydefault-undefined }
+ { \l__xeCJK_tmpa_tl } { \CJKfamilydefault }
+ }
\CJKfamily { \CJKfamilydefault }
\bool_if:NT \g__xeCJK_math_bool { \xeCJK_set_mathfont: }
}
@@ -2466,8 +2500,14 @@
{
It~seems~that~you~have~not~declare~a~CJKfamily.\\
If~you~want~to~use~xeCJK~in~the~right~way,~you~should~use\\\\
- \token_to_str:N \xeCJKmainfont[...]{...}\\\\
- in~the~preamble~to~declare~the~main~CJKfamily.\\
+ `\__xeCJK_msg_def_family_map:n {#1}'\\\\
+ in~the~preamble~to~declare~the~default~CJKfamily.\\
+ }
+\__xeCJK_msg_new:nn { CJKfamilydefault-undefined }
+ {
+ Undefined~CJK~default~family~`\__xeCJK_msg_family_map:n {#1}'~
+ has~been~replaced~by~`\__xeCJK_msg_family_map:n {#2}'.\\\\
+ Try~to~use~`\__xeCJK_msg_def_family_map:n {#1}'~to~define~it.
}
\keys_define:nn { xeCJK / options } { CJKmath .bool_gset:N = \g__xeCJK_math_bool }
\NewDocumentCommand \setCJKmathfont { O{} m }
@@ -2648,8 +2688,8 @@
}
\__xeCJK_msg_new:nn { key-unknown }
{
- Sorry,~but~\l__keys_module_tl \ does~not~have~a~key~called~'#1'.\\\\
- The~key~'#1'~is~being~ignored.
+ Sorry,~but~\l__keys_module_tl \ does~not~have~a~key~called~`#1'.\\\\
+ The~key~`#1'~is~being~ignored.
}
\cs_new_nopar:Npn \CJKsymbol #1 {#1}
\cs_new_nopar:Npn \CJKpunctsymbol #1 {#1}
@@ -2698,8 +2738,18 @@
\tl_if_exist:NF \CJKrmdefault { \tl_gset:Nn \CJKrmdefault { rm } }
\tl_if_exist:NF \CJKsfdefault { \tl_gset:Nn \CJKsfdefault { sf } }
\tl_if_exist:NF \CJKttdefault { \tl_gset:Nn \CJKttdefault { tt } }
-\tl_if_exist:NF \CJKfamilydefault { \tl_gset:Nn \CJKfamilydefault { \CJKrmdefault } }
-\tl_new:c { \__xeCJK_family_csname:n { \CJKfamilydefault } }
+\tl_new:N \l__xeCJK_family_default_init_tl
+\cs_new_eq:NN \__xeCJK_family_default_wrap:n \use:n
+\tl_gset:Nx \l__xeCJK_family_default_init_tl
+ {
+ \exp_not:N \__xeCJK_family_default_wrap:n
+ {
+ \tl_if_exist:NTF \CJKfamilydefault
+ { \exp_not:V \CJKfamilydefault }
+ { \exp_not:N \CJKrmdefault }
+ }
+ }
+\tl_gset_eq:NN \CJKfamilydefault \l__xeCJK_family_default_init_tl
\NewDocumentCommand \xeCJKsetup { +m }
{
\keys_set:nn { xeCJK / options } {#1}
@@ -2728,6 +2778,11 @@
\xeCJK_set_char_class:nnn {#1} {#2} {#3}
\xeCJKResetPunctClass
}
+\cs_if_exist:cT { ? - \token_to_str:N \nobreakspace }
+ {
+ \exp_args:NNv \ProvideTextCommandDefault \nobreakspace
+ { ? - \token_to_str:N \nobreakspace }
+ }
\__xeCJK_msg_new:nn { conflict-package }
{
The~`#1'~package~is~in~conflict~with~xeCJK. \\
@@ -2736,7 +2791,13 @@
\xeCJK_if_package_loaded:nTF { realscripts }
{
\@ifpackagelater { realscripts } { 2010/10/10 } { }
- { \__xeCJK_error:nx { conflict-package } { xltxtra } }
+ {
+ \__xeCJK_error:nx { conflict-package }
+ {
+ \xeCJK_if_package_loaded:nTF { xltxtra }
+ { xltxtra } { realscripts }
+ }
+ }
}
{
\cs_new_eq:NN \__xeCJK_dim_max:nn \dim_max:nn
@@ -2760,7 +2821,7 @@
\tl_set:Nx \f@family {#1}
\__xeCJK_update_family:n
{
- \str_case_x:nnn {#1}
+ \str_case:nnn {#1}
{
{ \rmdefault } { \CJKfamily { \CJKrmdefault } }
{ \sfdefault } { \CJKfamily { \CJKsfdefault } }
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty
index 6d3e152a498..9df832c901d 100644
--- a/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty
+++ b/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty
@@ -6,7 +6,7 @@
%%
%% xeCJK.dtx (with options: `fntef')
%%
-%% $Id: xeCJK.dtx 382 2012-12-13 04:58:22Z sobenlee $
+%% $Id: xeCJK.dtx 399 2013-01-11 14:57:50Z sobenlee $
%% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%% -----------------------------------------------------------------
%% Author:
@@ -15,7 +15,9 @@
%% Leo Liu <leoliu.pku@gmail.com>
%% Qing Lee <sobenlee@gmail.com>
%%
-%% Copyright (C) 2007--2012 Wenchang Sun
+%% Copyright (C) 2007--2013 Wenchang Sun
+%% (C) 2009--2013 Leo Liu
+%% (C) 2012--2013 Qing Lee
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -31,11 +33,11 @@
%%
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\GetIdInfo$Id: xeCJK.dtx 382 2012-12-13 04:58:22Z sobenlee $
+\GetIdInfo$Id: xeCJK.dtx 399 2013-01-11 14:57:50Z sobenlee $
{xeCJK patch file for ulem/CJKfntef}
\ProvidesExplPackage
{xeCJKfntef}
- {\ExplFileDate}{3.1.1}{\ExplFileDescription}
+ {\ExplFileDate}{3.1.2}{\ExplFileDescription}
\PassOptionsToPackage { normalem } { ulem }
\DeclareOption* { \PassOptionsToPackage { \CurrentOption } { ulem } }
\ProcessOptions \scan_stop:
@@ -92,22 +94,22 @@
\xeCJK_cs_clear:N \__xeCJK_ulem_leader_type:
\cs_new_protected_nopar:Npn \__xeCJK_ulem_initial:
{
- \cs_set_eq:NN \__xeCJK_punct_hskip:n \__xeCJK_ulem_hskip:n
- \cs_set_eq:NN
+ \xeCJK_swap_cs:NN
\__xeCJK_Default_and_FullLeft_glue:N \__xeCJK_ulem_Default_and_FullLeft_glue:N
- \cs_set_eq:NN
+ \xeCJK_swap_cs:NN
\__xeCJK_Default_and_FullRight_glue:N \__xeCJK_ulem_Default_and_FullRight_glue:N
- \cs_set_eq:NN
+ \xeCJK_swap_cs:NN
\__xeCJK_CJK_and_FullLeft_glue:N \__xeCJK_ulem_CJK_and_FullLeft_glue:N
- \cs_set_eq:NN
+ \xeCJK_swap_cs:NN
\__xeCJK_CJK_and_FullRight_glue:N \__xeCJK_ulem_CJK_and_FullRight_glue:N
- \cs_set_eq:NN
+ \xeCJK_swap_cs:NN
\__xeCJK_Boundary_and_FullLeft_glue:N \__xeCJK_ulem_Boundary_and_FullLeft_glue:N
- \cs_set_eq:NN \xeCJK_FullLeft_and_Default: \__xeCJK_ulem_FullLeft_and_Default:
- \cs_set_eq:NN \xeCJK_FullLeft_and_CJK: \__xeCJK_ulem_FullLeft_and_CJK:
- \cs_set_eq:NN \xeCJK_FullRight_and_Default: \__xeCJK_ulem_FullRight_and_Default:
- \cs_set_eq:NN \xeCJK_FullRight_and_CJK: \__xeCJK_ulem_FullRight_and_CJK:
- \cs_set_eq:NN \xeCJK_CJK_and_CJK:N \__xeCJK_ulem_CJK_and_CJK:N
+ \xeCJK_swap_cs:NN \__xeCJK_punct_hskip:n \__xeCJK_ulem_punct_hskip:n
+ \xeCJK_swap_cs:NN \xeCJK_FullLeft_and_Default: \__xeCJK_ulem_FullLeft_and_Default:
+ \xeCJK_swap_cs:NN \xeCJK_FullLeft_and_CJK: \__xeCJK_ulem_FullLeft_and_CJK:
+ \xeCJK_swap_cs:NN \xeCJK_FullRight_and_Default: \__xeCJK_ulem_FullRight_and_Default:
+ \xeCJK_swap_cs:NN \xeCJK_FullRight_and_CJK: \__xeCJK_ulem_FullRight_and_CJK:
+ \xeCJK_swap_cs:NN \xeCJK_CJK_and_CJK:N \__xeCJK_ulem_CJK_and_CJK:N
\seq_map_inline:Nn \g__xeCJK_CJK_sub_class_seq
{
\seq_map_inline:Nn \g__xeCJK_CJK_sub_class_seq
@@ -126,12 +128,24 @@
}
}
}
+\cs_new_nopar:Npn \xeCJK_if_ulem_patch:TF
+ {
+ \if_meaning:w \ \LA@space
+ \exp_after:wN \use_ii:nn
+ \else:
+ \exp_after:wN \use_i:nn
+ \fi:
+ }
\cs_new_protected_nopar:Npn \__xeCJK_ulem_CJK_and_CJK:N
{
- \xeCJK_class_group_end:
- \UL@stop \__xeCJK_ulem_ccglue: \UL@start
- \__xeCJK_ulem_class_group_begin:
- \CJKsymbol
+ \xeCJK_if_ulem_patch:TF
+ {
+ \xeCJK_class_group_end:
+ \UL@stop \__xeCJK_ulem_ccglue: \UL@start
+ \__xeCJK_ulem_class_group_begin:
+ \CJKsymbol
+ }
+ { \__xeCJK_ulem_CJK_and_CJK:N }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_class_group_begin:
{
@@ -141,104 +155,154 @@
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_between_CJK_blocks:nnN #1#2
{
- \xeCJK_class_group_end:
- \UL@stop \__xeCJK_ulem_ccglue: \UL@start
- \xeCJK_class_group_begin:
- \xeCJK_clear_Boundary_and_CJK_toks:
- \__xeCJK_switch_font:nn {#1} {#2}
- \CJKsymbol
+ \xeCJK_if_ulem_patch:TF
+ {
+ \xeCJK_class_group_end:
+ \UL@stop \__xeCJK_ulem_ccglue: \UL@start
+ \xeCJK_class_group_begin:
+ \xeCJK_clear_Boundary_and_CJK_toks:
+ \__xeCJK_switch_font:nn {#1} {#2}
+ \CJKsymbol
+ }
+ {
+ \skip_horizontal:N \l__xeCJK_ccglue_skip
+ \__xeCJK_switch_font:nn {#1} {#2}
+ \CJKsymbol
+ }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_Default_and_FullLeft_glue:N #1
{
- \UL@stop
- \__xeCJK_ulem_skip_punct_begin:
- \__xeCJK_punct_glue:NN \c__xeCJK_left_tl {#1}
- \UL@start
+ \xeCJK_if_ulem_patch:TF
+ {
+ \UL@stop
+ \__xeCJK_ulem_skip_punct_begin:
+ \__xeCJK_punct_glue:NN \c__xeCJK_left_tl {#1}
+ \UL@start
+ }
+ { \__xeCJK_ulem_Default_and_FullLeft_glue:N #1 }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_Boundary_and_FullLeft_glue:N #1
{
- \UL@stop
- \__xeCJK_ulem_skip_punct_begin:
- \int_compare:nNnF \etex_lastnodetype:D = \c_one
- { \__xeCJK_punct_glue:NN \c__xeCJK_left_tl {#1} }
- \UL@start
+ \xeCJK_if_ulem_patch:TF
+ {
+ \UL@stop
+ \__xeCJK_ulem_skip_punct_begin:
+ \int_compare:nNnF \etex_lastnodetype:D = \c_one
+ { \__xeCJK_punct_glue:NN \c__xeCJK_left_tl {#1} }
+ \UL@start
+ }
+ { \__xeCJK_ulem_Boundary_and_FullLeft_glue:N #1 }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_CJK_and_FullLeft_glue:N #1
{
- \xeCJK_class_group_end:
- \UL@stop
- \__xeCJK_ulem_skip_punct_begin:
- \__xeCJK_ulem_ccglue:
- \__xeCJK_punct_glue:NN \c__xeCJK_left_tl {#1}
- \UL@start
- \__xeCJK_ulem_class_group_begin:
+ \xeCJK_if_ulem_patch:TF
+ {
+ \xeCJK_class_group_end:
+ \UL@stop
+ \__xeCJK_ulem_skip_punct_begin:
+ \__xeCJK_ulem_ccglue:
+ \__xeCJK_punct_glue:NN \c__xeCJK_left_tl {#1}
+ \UL@start
+ \__xeCJK_ulem_class_group_begin:
+ }
+ { \__xeCJK_ulem_CJK_and_FullLeft_glue:N #1 }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_Default_and_FullRight_glue:N #1
{
- \UL@stop
- \__xeCJK_ulem_skip_punct_begin:
- \__xeCJK_punct_if_long:NTF {#1}
- { \__xeCJK_ulem_ccglue: }
+ \xeCJK_if_ulem_patch:TF
{
- \__xeCJK_punct_if_middle:NT {#1}
+ \UL@stop
+ \__xeCJK_ulem_skip_punct_begin:
+ \__xeCJK_punct_if_long:NTF {#1}
+ { \__xeCJK_ulem_ccglue: }
{
+ \__xeCJK_punct_if_middle:NT {#1}
+ {
+ \xeCJK_no_break:
+ \__xeCJK_punct_glue:NN \c__xeCJK_right_tl {#1}
+ }
\xeCJK_no_break:
- \__xeCJK_punct_glue:NN \c__xeCJK_right_tl {#1}
}
- \xeCJK_no_break:
+ \UL@start
}
- \UL@start
+ { \__xeCJK_ulem_Default_and_FullRight_glue:N #1 }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_CJK_and_FullRight_glue:N #1
{
- \xeCJK_class_group_end:
- \__xeCJK_ulem_Default_and_FullRight_glue:N {#1}
- \__xeCJK_ulem_class_group_begin:
+ \xeCJK_if_ulem_patch:TF
+ {
+ \xeCJK_class_group_end:
+ \__xeCJK_ulem_Default_and_FullRight_glue:N {#1}
+ \__xeCJK_ulem_class_group_begin:
+ }
+ { \__xeCJK_ulem_CJK_and_FullRight_glue:N #1 }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_FullLeft_and_Default:
{
- \__xeCJK_punct_if_middle:NTF \g__xeCJK_last_punct_tl
+ \xeCJK_if_ulem_patch:TF
{
- \xeCJK_get_punct_bounds:NN \c__xeCJK_left_tl \g__xeCJK_last_punct_tl
- \__xeCJK_punct_rule:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl
- \xeCJK_class_group_end: \UL@stop \xeCJK_no_break:
- \__xeCJK_punct_glue:NN \c__xeCJK_left_tl \g__xeCJK_last_punct_tl
+ \__xeCJK_punct_if_middle:NTF \g__xeCJK_last_punct_tl
+ {
+ \xeCJK_get_punct_bounds:NN \c__xeCJK_left_tl \g__xeCJK_last_punct_tl
+ \__xeCJK_punct_rule:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl
+ \xeCJK_class_group_end: \UL@stop \xeCJK_no_break:
+ \__xeCJK_punct_glue:NN \c__xeCJK_left_tl \g__xeCJK_last_punct_tl
+ }
+ { \xeCJK_class_group_end: \UL@stop }
+ \__xeCJK_ulem_skip_punct_end:
+ \xeCJK_no_break:
+ \UL@start
}
- { \xeCJK_class_group_end: \UL@stop }
- \__xeCJK_ulem_skip_punct_end:
- \xeCJK_no_break:
- \UL@start
+ { \__xeCJK_ulem_FullLeft_and_Default: }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_FullLeft_and_CJK:
{
- \__xeCJK_ulem_FullLeft_and_Default:
- \__xeCJK_ulem_class_group_begin:
+ \xeCJK_if_ulem_patch:TF
+ {
+ \__xeCJK_ulem_FullLeft_and_Default:
+ \__xeCJK_ulem_class_group_begin:
+ }
+ { \__xeCJK_ulem_FullLeft_and_CJK: }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_FullRight_and_Default:
{
- \__xeCJK_punct_rule:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl
- \xeCJK_class_group_end:
- \UL@stop
- \__xeCJK_punct_glue:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl
- \__xeCJK_ulem_skip_punct_end:
- \UL@start
+ \xeCJK_if_ulem_patch:TF
+ {
+ \__xeCJK_punct_rule:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl
+ \xeCJK_class_group_end:
+ \UL@stop
+ \__xeCJK_punct_glue:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl
+ \__xeCJK_ulem_skip_punct_end:
+ \UL@start
+ }
+ { \__xeCJK_ulem_FullRight_and_Default: }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_FullRight_and_CJK:
{
- \__xeCJK_punct_rule:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl
- \xeCJK_class_group_end:
- \UL@stop
- \__xeCJK_punct_glue:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl
- \__xeCJK_ulem_ccglue:
- \__xeCJK_ulem_skip_punct_end:
- \UL@start
- \__xeCJK_ulem_class_group_begin:
+ \xeCJK_if_ulem_patch:TF
+ {
+ \__xeCJK_punct_rule:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl
+ \xeCJK_class_group_end:
+ \UL@stop
+ \__xeCJK_punct_glue:NN \c__xeCJK_right_tl \g__xeCJK_last_punct_tl
+ \__xeCJK_ulem_ccglue:
+ \__xeCJK_ulem_skip_punct_end:
+ \UL@start
+ \__xeCJK_ulem_class_group_begin:
+ }
+ { \__xeCJK_ulem_FullRight_and_CJK: }
+ }
+\cs_new_protected_nopar:Npn \__xeCJK_ulem_punct_hskip:n
+ {
+ \xeCJK_if_ulem_patch:TF
+ { \__xeCJK_ulem_hskip:n }
+ { \__xeCJK_ulem_punct_hskip:n }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_glue:n #1
{
- \cs_if_eq:NNTF \ \LA@space
- { \skip_horizontal:n {#1} }
+ \xeCJK_if_ulem_patch:TF
{ \UL@stop \__xeCJK_ulem_hskip:n {#1} \UL@start }
+ { \skip_horizontal:n {#1} }
}
\cs_new_protected_nopar:Npn \__xeCJK_ulem_ccglue:
{ \skip_set_eq:NN \UL@skip \l__xeCJK_ccglue_skip \UL@leaders }