summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2012-10-17 11:33:19 +0000
committerNorbert Preining <preining@logic.at>2012-10-17 11:33:19 +0000
commit61bbf7315791604a62f8d29b532b96f9b89383c8 (patch)
tree7a63ae947605e78e053829d5d4e7bd1d3902317d
parentae7944d2e8e313e33e65a23696b241bd4ae087b3 (diff)
xecjk update (17Oct)
git-svn-id: svn://tug.org/texlive/trunk@27996 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-CJKecglue.tex2
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-autofake.tex2
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-checksingle.tex2
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-fallback.tex2
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-subCJKblock.tex2
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdfbin671894 -> 677646 bytes
-rw-r--r--Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx2251
-rw-r--r--Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins6
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty2048
9 files changed, 2193 insertions, 2122 deletions
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-CJKecglue.tex b/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-CJKecglue.tex
index e143df4c3de..d872c41d7f6 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-CJKecglue.tex
+++ b/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-CJKecglue.tex
@@ -6,7 +6,7 @@
%%
%% xeCJK.dtx (with options: `ex-ecglue')
%%
-%% $Id: xeCJK.dtx 356 2012-09-03 02:18:08Z sobenlee $
+%% $Id: xeCJK.dtx 357 2012-10-16 18:42:20Z sobenlee $
%% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%% -----------------------------------------------------------------
%% Author:
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-autofake.tex b/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-autofake.tex
index f32cf8c2def..3ea0e701b39 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-autofake.tex
+++ b/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-autofake.tex
@@ -6,7 +6,7 @@
%%
%% xeCJK.dtx (with options: `ex-autofake')
%%
-%% $Id: xeCJK.dtx 356 2012-09-03 02:18:08Z sobenlee $
+%% $Id: xeCJK.dtx 357 2012-10-16 18:42:20Z sobenlee $
%% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%% -----------------------------------------------------------------
%% Author:
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-checksingle.tex b/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-checksingle.tex
index b8b2579198e..454eac10d98 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-checksingle.tex
+++ b/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-checksingle.tex
@@ -6,7 +6,7 @@
%%
%% xeCJK.dtx (with options: `ex-single')
%%
-%% $Id: xeCJK.dtx 356 2012-09-03 02:18:08Z sobenlee $
+%% $Id: xeCJK.dtx 357 2012-10-16 18:42:20Z sobenlee $
%% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%% -----------------------------------------------------------------
%% Author:
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-fallback.tex b/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-fallback.tex
index aed165e070c..5fef9ab8154 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-fallback.tex
+++ b/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-fallback.tex
@@ -6,7 +6,7 @@
%%
%% xeCJK.dtx (with options: `ex-fallback')
%%
-%% $Id: xeCJK.dtx 356 2012-09-03 02:18:08Z sobenlee $
+%% $Id: xeCJK.dtx 357 2012-10-16 18:42:20Z sobenlee $
%% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%% -----------------------------------------------------------------
%% Author:
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-subCJKblock.tex b/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-subCJKblock.tex
index 3db4f3541e6..28d7b007be4 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-subCJKblock.tex
+++ b/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-subCJKblock.tex
@@ -6,7 +6,7 @@
%%
%% xeCJK.dtx (with options: `ex-block')
%%
-%% $Id: xeCJK.dtx 356 2012-09-03 02:18:08Z sobenlee $
+%% $Id: xeCJK.dtx 357 2012-10-16 18:42:20Z sobenlee $
%% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%% -----------------------------------------------------------------
%% Author:
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf b/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf
index 1efe0c01809..bef9fa2f5eb 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf
+++ b/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
index 65241928dad..92a173eabfa 100644
--- a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
+++ b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
@@ -65,12 +65,12 @@ CJK scripts fonts (TrueType or OpenType).
%</internal>
%<*batchfile>
-\input docstrip.tex
+\input l3docstrip.tex
\keepsilent
\askforoverwritefalse
\preamble
-$Id: xeCJK.dtx 356 2012-09-03 02:18:08Z sobenlee $
+$Id: xeCJK.dtx 357 2012-10-16 18:42:20Z sobenlee $
$URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
-----------------------------------------------------------------
Author:
@@ -134,7 +134,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%<*driver|package>
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\GetIdInfo$Id: xeCJK.dtx 356 2012-09-03 02:18:08Z sobenlee $
+\GetIdInfo$Id: xeCJK.dtx 357 2012-10-16 18:42:20Z sobenlee $
{package for typesetting CJK scripts with XeLaTeX}
%<*driver>
\ProvidesExplFile
@@ -142,7 +142,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%</driver>
%<package>\ProvidesExplPackage
%<package> {\ExplFileName}
- {\ExplFileDate}{3.0.8}{\ExplFileDescription}
+ {\ExplFileDate}{3.0.9}{\ExplFileDescription}
%<*driver>
\ExplSyntaxOff
%</driver>
@@ -200,7 +200,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%</driver>
% \fi
%
-% \CheckSum{3061}
+% \CheckSum{3074}
% \DoNotIndex{\T,\F,\C,\J,\K,\O,\U,\Z,\E,\R,\M,\A,\Y,\R,\;,\t,\c,\:,\\,\@}
% \GetFileInfo{\jobname.dtx}
%
@@ -225,8 +225,8 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \end{enumerate}
%
% \pkg{xeCJK} 使用了 \XeTeX 的一些最新特性,需要 \XeTeX{} |0.9995.0 [2009/06/29]| 以
-% 后的版本。\pkg{xeCJK} 的依赖 \LaTeX~3 项目的 \pkg{expl3},\pkg{xparse} 和
-% \pkg{l3keys2e} 宏包,并依赖 \pkg{fontspec}^^A
+% 后的版本。\pkg{xeCJK} 依赖 \LaTeX~3 项目的 \pkg{expl3},\pkg{xparse} 和
+% \pkg{l3keys2e} 宏包。\pkg{xeCJK} 还通过 \pkg{fontspec}^^A
% \footnote{\url{http://mirrors.ctan.org/macros/latex/contrib/fontspec/}}
% 宏包来调用系统字体。个别兼容性功能需要 \pkg{CJK} 宏包的支持。
%
@@ -909,6 +909,10 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%<*package>
% \end{macrocode}
%
+% \begin{macrocode}
+%<@@=xeCJK>
+% \end{macrocode}
+%
% \subsection{运行环境检查}
%
% \pkg{xeCJK} 必须使用 \XeTeX 引擎的支持。
@@ -933,7 +937,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
using~your~TeX~package~manager~or~from~CTAN.\\
Loading~xeCJK~will~abort!
}
-\@ifpackagelater { expl3 } { 2012/07/16 } { }
+\@ifpackagelater { expl3 } { 2012/09/10 } { }
{ \msg_critical:nn { xeCJK } { l3-too-old } }
% \end{macrocode}
%
@@ -946,76 +950,76 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \begin{macrocode}
\msg_new:nnn { xeCJK } { XeTeX-too-old }
{
- \token_to_str:N \XeTeXglyphbounds\c_space_tl is~not~defined.\\\\
+ \token_to_str:N \XeTeXglyphbounds \ is~not~defined.\\\\
You~have~to~update~XeTeX~to~the~version~0.9995.0~or~later.
}
\cs_if_free:NT \XeTeXglyphbounds
{
\msg_error:nn { xeCJK } { XeTeX-too-old }
- \AtEndOfPackage { \xeCJK_AfterPreamble:n { \punctstyle { plain } } }
+ \AtEndOfPackage { \@@_AfterPreamble:n { \punctstyle { plain } } }
}
% \end{macrocode}
%
% \subsection{内部工具}
%
% 分配临时变量。
-% \begin{macro}[internal,var]{\l_xeCJK_tmpa_int,\l_xeCJK_tmpb_int,\l_xeCJK_tmpc_int}
+% \begin{macro}[internal,var]{\l_@@_tmpa_int,\l_@@_tmpb_int,\l_@@_tmpc_int}
% \begin{macrocode}
-\int_new:N \l_xeCJK_tmpa_int
-\int_new:N \l_xeCJK_tmpb_int
-\int_new:N \l_xeCJK_tmpc_int
+\int_new:N \l_@@_tmpa_int
+\int_new:N \l_@@_tmpb_int
+\int_new:N \l_@@_tmpc_int
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal,var]{\l_xeCJK_tmpa_dim,\l_xeCJK_tmpb_dim,\l_xeCJK_tmpc_dim}
+% \begin{macro}[internal,var]{\l_@@_tmpa_dim,\l_@@_tmpb_dim,\l_@@_tmpc_dim}
% \begin{macrocode}
-\dim_new:N \l_xeCJK_tmpa_dim
-\dim_new:N \l_xeCJK_tmpb_dim
-\dim_new:N \l_xeCJK_tmpc_dim
+\dim_new:N \l_@@_tmpa_dim
+\dim_new:N \l_@@_tmpb_dim
+\dim_new:N \l_@@_tmpc_dim
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal,var]{\l_xeCJK_tmpa_tl,\l_xeCJK_tmpb_tl}
+% \begin{macro}[internal,var]{\l_@@_tmpa_tl,\l_@@_tmpb_tl}
% \begin{macrocode}
-\tl_new:N \l_xeCJK_tmpa_tl
-\tl_new:N \l_xeCJK_tmpb_tl
+\tl_new:N \l_@@_tmpa_tl
+\tl_new:N \l_@@_tmpb_tl
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal,var]{\l_xeCJK_tmpa_clist,\l_xeCJK_tmpb_clist,\l_xeCJK_tmpc_clist}
+% \begin{macro}[internal,var]{\l_@@_tmpa_clist,\l_@@_tmpb_clist,\l_@@_tmpc_clist}
% \begin{macrocode}
-\clist_new:N \l_xeCJK_tmpa_clist
-\clist_new:N \l_xeCJK_tmpb_clist
-\clist_new:N \l_xeCJK_tmpc_clist
+\clist_new:N \l_@@_tmpa_clist
+\clist_new:N \l_@@_tmpb_clist
+\clist_new:N \l_@@_tmpc_clist
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_no_break:}
+% \begin{macro}[internal]{\@@_no_break:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_no_break: { \tex_penalty:D \c_ten_thousand }
+\cs_new_protected_nopar:Npn \@@_no_break: { \tex_penalty:D \c_ten_thousand }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[internal]
-% {\xeCJK_AtEndPreamble:n,\xeCJK_AfterPreamble:n,\xeCJK_AfterEndPreamble:n}
+% {\@@_AtEndPreamble:n,\@@_AfterPreamble:n,\@@_AfterEndPreamble:n}
% 在 |\document| 前后加上各种钩子。
% \begin{macrocode}
-\tl_new:N \g_xeCJK_at_end_preamble_hook
-\tl_new:N \g_xeCJK_after_preamble_hook
-\tl_new:N \g_xeCJK_after_end_preamble_hook
-\cs_new_protected:Npn \xeCJK_AtEndPreamble:n #1
- { \tl_gput_right:Nn \g_xeCJK_at_end_preamble_hook {#1} }
-\cs_new_protected:Npn \xeCJK_AfterPreamble:n #1
- { \tl_gput_right:Nn \g_xeCJK_after_preamble_hook {#1} }
-\cs_new_protected:Npn \xeCJK_AfterEndPreamble:n #1
- { \tl_gput_right:Nn \g_xeCJK_after_end_preamble_hook {#1} }
-\AtBeginDocument { \g_xeCJK_after_preamble_hook }
-\tl_put_left:Nn \document { \group_end: \g_xeCJK_at_end_preamble_hook \group_begin: }
-\tl_put_right:Nn \document { \g_xeCJK_after_end_preamble_hook \tex_ignorespaces:D }
+\tl_new:N \g_@@_at_end_preamble_hook_tl
+\tl_new:N \g_@@_after_preamble_hook_tl
+\tl_new:N \g_@@_after_end_preamble_hook_tl
+\cs_new_protected:Npn \@@_AtEndPreamble:n #1
+ { \tl_gput_right:Nn \g_@@_at_end_preamble_hook_tl {#1} }
+\cs_new_protected:Npn \@@_AfterPreamble:n #1
+ { \tl_gput_right:Nn \g_@@_after_preamble_hook_tl {#1} }
+\cs_new_protected:Npn \@@_AfterEndPreamble:n #1
+ { \tl_gput_right:Nn \g_@@_after_end_preamble_hook_tl {#1} }
+\AtBeginDocument { \g_@@_after_preamble_hook_tl }
+\tl_put_left:Nn \document { \group_end: \g_@@_at_end_preamble_hook_tl \group_begin: }
+\tl_put_right:Nn \document { \g_@@_after_end_preamble_hook_tl \tex_ignorespaces:D }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[pTF,internal]{\xeCJK_if_outer_macro:c}
+% \begin{macro}[pTF,internal]{\@@_if_outer_macro:c}
% 判断是否是 |\outer| 宏,输入的是控制序列的名字。
% \begin{macrocode}
\group_begin:
@@ -1028,67 +1032,67 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\tl_to_lowercase:n
{
\group_end:
- \prg_new_conditional:Npnn \xeCJK_if_outer_macro:c #1 { p , T , F , TF }
+ \prg_new_conditional:Npnn \@@_if_outer_macro:c #1 { p , T , F , TF }
{
- \exp_last_unbraced:Nf \xeCJK_if_outer_macro_aux:w
+ \exp_last_unbraced:Nf \@@_if_outer_macro_aux:w
{ \cs_meaning:c {#1} } OUZER ~ MAYRO ; \q_stop
}
- \cs_new_nopar:Npn \xeCJK_if_outer_macro_aux:w #1 OUZER ~ MAYRO ; #2 \q_stop
+ \cs_new_nopar:Npn \@@_if_outer_macro_aux:w #1 OUZER ~ MAYRO ; #2 \q_stop
{
- \if_cs_exist:w c_xeCJK_prefix_ #1 _aux_tl \cs_end:
+ \if_cs_exist:w c_@@_prefix_ #1 _aux_tl \cs_end:
\prg_return_true: \else: \prg_return_false: \fi:
}
- \tl_new:c { c_xeCJK_prefix_/_aux_tl }
- \tl_new:c { c_xeCJK_prefix_/long/_aux_tl }
- \tl_new:c { c_xeCJK_prefix_/protected/_aux_tl }
- \tl_new:c { c_xeCJK_prefix_/protected/long/_aux_tl }
+ \tl_new:c { c_@@_prefix_/_aux_tl }
+ \tl_new:c { c_@@_prefix_/long/_aux_tl }
+ \tl_new:c { c_@@_prefix_/protected/_aux_tl }
+ \tl_new:c { c_@@_prefix_/protected/long/_aux_tl }
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[TF,internal]{\xeCJK_peek_catcode_ignore_spaces:N}
-% 对 \pkg{l3token} 打的补丁,使 \cs{xeCJK_peek_catcode_ignore_spaces:NTF} 可
+% \begin{macro}[TF,internal]{\@@_peek_catcode_ignore_spaces:N}
+% 对 \pkg{l3token} 打的补丁,使 \cs{__xeCJK_peek_catcode_ignore_spaces:NTF} 等可
% 用于 \cs{outer} 宏。
% \begin{macrocode}
-\token_new:Nn \l_xeCJK_peek_search_token { ? }
-\cs_new_protected:Npn \xeCJK_peek_catcode_ignore_spaces:NTF #1#2#3
+\token_new:Nn \l_@@_peek_search_token { ? }
+\cs_new_protected:Npn \@@_peek_catcode_ignore_spaces:NTF #1#2#3
{
- \cs_set_eq:NN \l_xeCJK_peek_search_token #1
- \tl_set:Nn \xeCJK_peek_true:w { \group_align_safe_end: #2 }
- \tl_set:Nn \xeCJK_peek_false:w { \group_align_safe_end: #3 }
+ \cs_set_eq:NN \l_@@_peek_search_token #1 \prg_do_nothing:
+ \tl_set:Nn \@@_peek_true:w { \group_align_safe_end: #2 }
+ \tl_set:Nn \@@_peek_false:w { \group_align_safe_end: #3 }
\group_align_safe_begin:
- \peek_after:Nw \xeCJK_peek_ignore_spaces_execute_branches:
+ \peek_after:Nw \@@_peek_ignore_spaces_execute_branches:
}
-\cs_new_protected:Npn \xeCJK_peek_catcode_ignore_spaces:NT #1#2
- { \xeCJK_peek_catcode_ignore_spaces:NTF #1 {#2} { } }
-\cs_new_protected:Npn \xeCJK_peek_catcode_ignore_spaces:NF #1#2
- { \xeCJK_peek_catcode_ignore_spaces:NTF #1 { } {#2} }
-\cs_new_nopar:Npn \xeCJK_peek_ignore_spaces_execute_branches:
+\cs_new_protected:Npn \@@_peek_catcode_ignore_spaces:NT #1#2
+ { \@@_peek_catcode_ignore_spaces:NTF #1 {#2} { } }
+\cs_new_protected:Npn \@@_peek_catcode_ignore_spaces:NF #1#2
+ { \@@_peek_catcode_ignore_spaces:NTF #1 { } {#2} }
+\cs_new_nopar:Npn \@@_peek_ignore_spaces_execute_branches:
{
\if_meaning:w \l_peek_token \c_space_token
- \tex_afterassignment:D \xeCJK_peek_ignore_spaces_execute_branches_aux:
- \exp_after:wN \cs_set_eq:NN \exp_after:wN \xeCJK_peek_tmp:w
+ \tex_afterassignment:D \@@_peek_ignore_spaces_execute_branches_aux:
+ \exp_after:wN \cs_set_eq:NN \exp_after:wN \@@_peek_tmp:w
\else:
- \exp_after:wN \xeCJK_peek_execute_branches_catcode:
+ \exp_after:wN \@@_peek_execute_branches_catcode:
\fi:
}
-\cs_new_protected_nopar:Npn \xeCJK_peek_ignore_spaces_execute_branches_aux:
- { \peek_after:Nw \xeCJK_peek_ignore_spaces_execute_branches: }
-\cs_new_nopar:Npn \xeCJK_peek_execute_branches_catcode:
+\cs_new_protected_nopar:Npn \@@_peek_ignore_spaces_execute_branches_aux:
+ { \peek_after:Nw \@@_peek_ignore_spaces_execute_branches: }
+\cs_new_nopar:Npn \@@_peek_execute_branches_catcode:
{
- \if_catcode:w \exp_not:N \l_peek_token \exp_not:N \l_xeCJK_peek_search_token
- \exp_after:wN \xeCJK_peek_true:w
+ \if_catcode:w \exp_not:N \l_peek_token \exp_not:N \l_@@_peek_search_token
+ \exp_after:wN \@@_peek_true:w
\else:
- \exp_after:wN \xeCJK_peek_false:w
+ \exp_after:wN \@@_peek_false:w
\fi:
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[pTF,internal]{\xeCJK_if_blank_x:n}
+% \begin{macro}[pTF,internal]{\@@_if_blank_x:n}
% 判断是否为空或者仅含一个空格。
% \begin{macrocode}
-\prg_new_conditional:Npnn \xeCJK_if_blank_x:n #1 { p , T , F , TF }
+\prg_new_conditional:Npnn \@@_if_blank_x:n #1 { p , T , F , TF }
{
\if_int_compare:w \pdftex_strcmp:D { \c_empty_tl } {#1} = \c_zero
\prg_return_true:
@@ -1100,31 +1104,31 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[pTF,internal]{\xeCJK_if_package_loaded:n}
+% \begin{macro}[pTF,internal]{\@@_if_package_loaded:n}
% 判断宏包是否载入,可用于文档中。
% \begin{macrocode}
-\prg_new_conditional:Npnn \xeCJK_if_package_loaded:n #1 { p , T , F , TF }
+\prg_new_conditional:Npnn \@@_if_package_loaded:n #1 { p , T , F , TF }
{
- \tl_if_exist:cTF { ver@ #1 . \c_xeCJK_pkg_extension_tl }
+ \tl_if_exist:cTF { ver@ #1 . \c_@@_pkg_extension_tl }
{ \prg_return_true: } { \prg_return_false: }
}
-\tl_const:Nx \c_xeCJK_pkg_extension_tl { \@pkgextension }
+\tl_const:Nx \c_@@_pkg_extension_tl { \@pkgextension }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[internal]
-% {\xeCJK_msg_new:nn ,\xeCJK_error:n,\xeCJK_error:nx,
-% \xeCJK_warning:nx,\xeCJK_info:nx,\xeCJK_info:nxx}
+% {\@@_msg_new:nn ,\@@_error:n,\@@_error:nx,
+% \@@_warning:nx,\@@_info:nx,\@@_info:nxx}
% 各种信息函数的缩略形式。
% \begin{macrocode}
-\cs_new_nopar:Npn \xeCJK_msg_new:nn { \msg_new:nnn { xeCJK } }
-\cs_new_nopar:Npn \xeCJK_error:n { \msg_error:nn { xeCJK } }
-\cs_new_nopar:Npn \xeCJK_error:nx { \msg_error:nnx { xeCJK } }
-\cs_new_nopar:Npn \xeCJK_warning:n { \msg_warning:nn { xeCJK } }
-\cs_new_nopar:Npn \xeCJK_warning:nx { \msg_warning:nnx { xeCJK } }
-\cs_new_nopar:Npn \xeCJK_warning:nxx { \msg_warning:nnxx { xeCJK } }
-\cs_new_nopar:Npn \xeCJK_info:nx { \msg_info:nnx { xeCJK } }
-\cs_new_nopar:Npn \xeCJK_info:nxx { \msg_info:nnxx { xeCJK } }
+\cs_new_nopar:Npn \@@_msg_new:nn { \msg_new:nnn { xeCJK } }
+\cs_new_nopar:Npn \@@_error:n { \msg_error:nn { xeCJK } }
+\cs_new_nopar:Npn \@@_error:nx { \msg_error:nnx { xeCJK } }
+\cs_new_nopar:Npn \@@_warning:n { \msg_warning:nn { xeCJK } }
+\cs_new_nopar:Npn \@@_warning:nx { \msg_warning:nnx { xeCJK } }
+\cs_new_nopar:Npn \@@_warning:nxx { \msg_warning:nnxx { xeCJK } }
+\cs_new_nopar:Npn \@@_info:nx { \msg_info:nnx { xeCJK } }
+\cs_new_nopar:Npn \@@_info:nxx { \msg_info:nnxx { xeCJK } }
% \end{macrocode}
% \end{macro}
%
@@ -1176,93 +1180,93 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \end{center}
%
% \begin{macro}[internal,var]
-% { \xeCJK_Default_class, \xeCJK_CJK_class, \xeCJK_FullLeft_class,
-% \xeCJK_FullRight_class, \xeCJK_Boundary_class }
+% { \c_@@_Default_class_int, \c_@@_CJK_class_int, \c_@@_FullLeft_class_int,
+% \c_@@_FullRight_class_int, \c_@@_Boundary_class_int }
% 这五类是 \XeTeX\ 预定义的类别。
% \begin{macrocode}
-\int_const:Nn \xeCJK_Default_class { 0 }
-\int_const:Nn \xeCJK_CJK_class { 1 }
-\int_const:Nn \xeCJK_FullLeft_class { 2 }
-\int_const:Nn \xeCJK_FullRight_class { 3 }
-\int_const:Nn \xeCJK_Boundary_class { 255 }
+\int_const:Nn \c_@@_Default_class_int { 0 }
+\int_const:Nn \c_@@_CJK_class_int { 1 }
+\int_const:Nn \c_@@_FullLeft_class_int { 2 }
+\int_const:Nn \c_@@_FullRight_class_int { 3 }
+\int_const:Nn \c_@@_Boundary_class_int { 255 }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_new_class:n,\g_xeCJK_class_seq}
+% \begin{macro}[internal]{\@@_new_class:n,\g_@@_class_seq}
% 新建一个字符类别。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_new_class:n #1
+\cs_new_protected_nopar:Npn \@@_new_class:n #1
{
- \exp_args:Nc \newXeTeXintercharclass { xeCJK_#1_class }
- \clist_gclear_new:c { g_xeCJK_#1_range_clist }
- \seq_gput_right:Nv \g_xeCJK_class_seq { xeCJK_#1_class }
+ \exp_args:Nc \newXeTeXintercharclass { c_@@_#1_class_int }
+ \clist_gclear_new:c { g_@@_#1_range_clist }
+ \seq_gput_right:Nv \g_@@_class_seq { c_@@_#1_class_int }
}
-\seq_new:N \g_xeCJK_class_seq
+\seq_new:N \g_@@_class_seq
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[internal,var]
-% { \xeCJK_HalfLeft_class, \xeCJK_HalfRight_class, \xeCJK_NormalSpace_class }
+% { \c_@@_HalfLeft_class_int, \c_@@_HalfRight_class_int, \c_@@_NormalSpace_class_int }
% 新增西文半角左/右标点和前后原始间距的符号类。
% \begin{macrocode}
-\xeCJK_new_class:n { HalfLeft }
-\xeCJK_new_class:n { HalfRight }
-\xeCJK_new_class:n { NormalSpace }
+\@@_new_class:n { HalfLeft }
+\@@_new_class:n { HalfRight }
+\@@_new_class:n { NormalSpace }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[internal,var]
-% {\g_xeCJK_base_class_clist,\g_xeCJK_CJK_class_clist,\g_xeCJK_CJK_class_prop}
+% {\g_@@_base_class_clist,\g_@@_CJK_class_clist,\g_@@_CJK_class_prop}
% \begin{macrocode}
-\clist_set:Nn \g_xeCJK_base_class_clist
+\clist_set:Nn \g_@@_base_class_clist
{
Default, CJK, FullLeft, FullRight, Boundary,
HalfLeft, HalfRight, NormalSpace
}
-\clist_map_inline:Nn \g_xeCJK_base_class_clist
- { \clist_gclear_new:c { g_xeCJK_#1_range_clist } }
-\clist_new:N \g_xeCJK_CJK_class_clist
-\prop_new:N \g_xeCJK_CJK_class_prop
-\cs_new_protected_nopar:Npn \xeCJK_save_CJK_class:n #1
+\clist_map_inline:Nn \g_@@_base_class_clist
+ { \clist_gclear_new:c { g_@@_#1_range_clist } }
+\clist_new:N \g_@@_CJK_class_clist
+\prop_new:N \g_@@_CJK_class_prop
+\cs_new_protected_nopar:Npn \@@_save_CJK_class:n #1
{
- \clist_gput_right:Nx \g_xeCJK_CJK_class_clist {#1}
- \prop_gput:Nvx \g_xeCJK_CJK_class_prop { xeCJK_#1_class } {#1}
+ \clist_gput_right:Nx \g_@@_CJK_class_clist {#1}
+ \prop_gput:Nvx \g_@@_CJK_class_prop { c_@@_#1_class_int } {#1}
}
\cs_generate_variant:Nn \prop_gput:Nnn { Nvx }
-\clist_map_function:nN { CJK, FullLeft, FullRight } \xeCJK_save_CJK_class:n
+\clist_map_function:nN { CJK, FullLeft, FullRight } \@@_save_CJK_class:n
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_class_num:n}
+% \begin{macro}[internal]{\@@_class_num:n}
% |#1| 为字符类别名称,用于取得字符类别对应的编号。
% \begin{macrocode}
-\cs_new_nopar:Npn \xeCJK_class_num:n #1 { \tl_use:c { xeCJK_#1_class } }
+\cs_new_nopar:Npn \@@_class_num:n #1 { \tl_use:c { c_@@_#1_class_int } }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\xeCJKDeclareCharClass}
-% \begin{macro}[aux]{\xeCJK_set_char_class_aux:Nn}
+% \begin{macro}[aux]{\@@_set_char_class_aux:Nn}
% 用于设置字符所属的类别,|#1| 为类别名称,|#2| 为字符的 |Unicode|,相邻字符用
% 半角逗号隔开,支持类似 |"1100 -> "11FF| 起止范围的使用方式。
% \begin{macrocode}
\NewDocumentCommand \xeCJKDeclareCharClass { s > { \TrimSpaces } m m }
{
- \xeCJK_declare_char_class:nn {#2} {#3}
+ \@@_declare_char_class:nn {#2} {#3}
\IfBooleanT {#1} { \xeCJKResetPunctClass }
}
-\cs_new_protected_nopar:Npn \xeCJK_declare_char_class:nn #1#2
+\cs_new_protected_nopar:Npn \@@_declare_char_class:nn #1#2
{
- \clist_gput_right:cx { g_xeCJK_#1_range_clist } {#2}
+ \clist_gput_right:cx { g_@@_#1_range_clist } {#2}
\clist_map_inline:xn {#2}
{
\str_if_eq_x:nnF {##1} { -> }
{
- \xeCJK_set_char_class_aux:Nn \xeCJK_set_char_class:nnn {##1}
- { \xeCJK_class_num:n {#1} }
+ \@@_set_char_class_aux:Nn \@@_set_char_class:nnn {##1}
+ { \@@_class_num:n {#1} }
}
}
}
-\NewDocumentCommand \xeCJK_set_char_class_aux:Nn
+\NewDocumentCommand \@@_set_char_class_aux:Nn
{ m > { \SplitArgument { 1 } { -> } } m } { #1 #2 }
\cs_generate_variant:Nn \clist_map_inline:nn { x }
% \end{macrocode}
@@ -1274,31 +1278,50 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \begin{macrocode}
\NewDocumentCommand \xeCJKsetcharclass { s m m m }
{
- \xeCJK_set_char_class:nnn {#2} {#3} {#4}
+ \@@_set_char_class:nnn {#2} {#3} {#4}
\IfBooleanF {#1} { \xeCJKResetPunctClass }
}
-\cs_new_protected_nopar:Npn \xeCJK_set_char_class:nnn #1#2#3
+\cs_new_protected_nopar:Npn \@@_set_char_class:nnn #1#2#3
+ {
+ \@@_check_num_range:nnNN {#1} {#2} \l_@@_tmpa_int \l_@@_tmpb_int
+ \int_set:Nn \l_@@_tmpc_int {#3}
+ \prop_if_in:NVTF \g_@@_CJK_class_prop \l_@@_tmpc_int
+ { \cs_set_eq:NN \@@_set_char_catcode:n \char_set_catcode_other:n }
+ { \cs_set_eq:NN \@@_set_char_catcode:n \use_none:n }
+ \@@_int_until_do:nn { \l_@@_tmpa_int > \l_@@_tmpb_int }
+ {
+ \@@_set_char_catcode:n { \l_@@_tmpa_int }
+ \XeTeXcharclass \l_@@_tmpa_int = \l_@@_tmpc_int
+ \int_incr:N \l_@@_tmpa_int
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\@@_int_until_do:nn}
+% \begin{macro}[aux]{\@@_int_until_do_aux:wn}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_int_until_do:nn #1#2
+ {
+ \@@_int_until_do_aux:wn \use_none:n
+ { \reverse_if:N \if_int_compare:w #1#2 }
+ }
+\cs_new_protected:Npn \@@_int_until_do_aux:wn \use_none:n #1
{
- \xeCJK_check_num_range:nnNN {#1} {#2} \l_xeCJK_tmpa_int \l_xeCJK_tmpb_int
- \int_set:Nn \l_xeCJK_tmpc_int {#3}
- \prop_if_in:NVTF \g_xeCJK_CJK_class_prop \l_xeCJK_tmpc_int
- { \loop \char_set_catcode_other:n \l_xeCJK_tmpa_int }
- { \loop }
- \XeTeXcharclass \l_xeCJK_tmpa_int = \l_xeCJK_tmpc_int
- \if_int_compare:w \l_xeCJK_tmpa_int < \l_xeCJK_tmpb_int
- \int_incr:N \l_xeCJK_tmpa_int
- \repeat
+ #1 \exp_after:wN \@@_int_until_do_aux:wn \fi:
+ \use_none:n {#1}
}
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_check_num_range:nnNN}
+% \begin{macro}[internal]{\@@_check_num_range:nnNN}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_check_num_range:nnNN #1#2#3#4
+\cs_new_protected_nopar:Npn \@@_check_num_range:nnNN #1#2#3#4
{
- \bool_if:nTF { \xeCJK_if_blank_x_p:n {#1} || \xeCJK_if_blank_x_p:n {#2} }
+ \bool_if:nTF { \@@_if_blank_x_p:n {#1} || \@@_if_blank_x_p:n {#2} }
{
- \int_set:Nn #3 { \xeCJK_if_blank_x:nTF {#1} {#2} {#1} }
+ \int_set:Nn #3 { \@@_if_blank_x:nTF {#1} {#2} {#1} }
\int_set_eq:NN #3 #4
}
{
@@ -1314,18 +1337,18 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \begin{macrocode}
\NewDocumentCommand \xeCJKResetPunctClass { }
{
- \xeCJK_declare_char_class:nn { HalfLeft }
+ \@@_declare_char_class:nn { HalfLeft }
{ "28 , "2D , "5B , "60 , "7B }
- \xeCJK_declare_char_class:nn { HalfRight }
+ \@@_declare_char_class:nn { HalfRight }
{ "21 , "22 , "25 , "27 , "29 , "2C , "2E , "3A , "3B , "3F , "5D , "7D , }
- \xeCJK_declare_char_class:nn { FullLeft }
+ \@@_declare_char_class:nn { FullLeft }
{
"2018 , "201C , "2116 , "3008 , "300A , "300C , "300E , "3010 , "3012 ,
"3014 , "3016 , "3018 , "301A , "301D , "3036 , "E76C , "FE59 , "FE5B ,
"FE5D , "FE5F , "FE60 , "FE69 , "FE6B , "FF03 , "FF04 , "FF08 , "FF20 ,
"FF3B , "FF5B , "FFE0 , "FFE1 , "FFE5 , "FFE6 ,
}
- \xeCJK_declare_char_class:nn { FullRight }
+ \@@_declare_char_class:nn { FullRight }
{
"00B7 , "2019 , "201D , "2014 , "2025 , "2026 , "2030 , "2500 , "3001 ,
"3002 , "3005 , "3006 , "3009 , "300B , "300D , "300F , "3011 , "3015 ,
@@ -1344,7 +1367,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%
% \hypertarget{CJKcharclass}{设置 CJK 文字的范围}。
% \begin{macrocode}
-\xeCJK_declare_char_class:nn { CJK }
+\@@_declare_char_class:nn { CJK }
{
% \end{macrocode}
% \begin{itemize}
@@ -1488,79 +1511,79 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\NewDocumentCommand \normalspacedchars { m }
{
\tl_map_inline:nn {#1}
- { \XeTeXcharclass `##1 = \xeCJK_class_num:n { NormalSpace } }
+ { \XeTeXcharclass `##1 = \@@_class_num:n { NormalSpace } }
}
\normalspacedchars{/}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[internal]
-% {\xeCJK_inter_class_toks:nnn,\xeCJK_inter_class_toks:nnc,\xeCJK_inter_class_toks:nnx}
+% {\@@_inter_class_toks:nnn,\@@_inter_class_toks:nnc,\@@_inter_class_toks:nnx}
% 在相邻类别之间插入内容。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_inter_class_toks:nnn #1#2#3
- { \XeTeXinterchartoks \xeCJK_class_num:n {#1} \xeCJK_class_num:n {#2} = {#3} }
-\cs_generate_variant:Nn \xeCJK_inter_class_toks:nnn { nnc , nnx }
+\cs_new_protected_nopar:Npn \@@_inter_class_toks:nnn #1#2#3
+ { \XeTeXinterchartoks \@@_class_num:n {#1} \@@_class_num:n {#2} = {#3} }
+\cs_generate_variant:Nn \@@_inter_class_toks:nnn { nnc , nnx }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_get_inter_class_toks:nn}
+% \begin{macro}[internal]{\@@_get_inter_class_toks:nn}
% 取出相邻类别之间的内容。
% \begin{macrocode}
-\cs_new_nopar:Npn \xeCJK_get_inter_class_toks:nn #1#2
- { \tex_the:D \XeTeXinterchartoks \xeCJK_class_num:n {#1} \xeCJK_class_num:n {#2} }
+\cs_new_nopar:Npn \@@_get_inter_class_toks:nn #1#2
+ { \tex_the:D \XeTeXinterchartoks \@@_class_num:n {#1} \@@_class_num:n {#2} }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_clear_inter_class_toks:nn}
+% \begin{macro}[internal]{\@@_clear_inter_class_toks:nn}
% 清除相邻类别之间的内容。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_clear_inter_class_toks:nn #1#2
- { \xeCJK_inter_class_toks:nnn {#1} {#2} { \c_empty_tl } }
+\cs_new_protected_nopar:Npn \@@_clear_inter_class_toks:nn #1#2
+ { \@@_inter_class_toks:nnn {#1} {#2} { \c_empty_tl } }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_pre_inter_class_toks:nnn}
+% \begin{macro}[internal]{\@@_pre_inter_class_toks:nnn}
% 在相邻类别之间已有的内容前增加内容。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_pre_inter_class_toks:nnn #1#2#3
+\cs_new_protected_nopar:Npn \@@_pre_inter_class_toks:nnn #1#2#3
{
- \xeCJK_inter_class_toks:nnx {#1} {#2}
- { \exp_not:n {#3} \xeCJK_get_inter_class_toks:nn {#1} {#2} }
+ \@@_inter_class_toks:nnx {#1} {#2}
+ { \exp_not:n {#3} \@@_get_inter_class_toks:nn {#1} {#2} }
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_app_inter_class_toks:nnn,\xeCJK_app_inter_class_toks:nnc}
+% \begin{macro}[internal]{\@@_app_inter_class_toks:nnn,\@@_app_inter_class_toks:nnc}
% 在相邻类别之间已有的内容后追加内容。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_app_inter_class_toks:nnn #1#2#3
+\cs_new_protected_nopar:Npn \@@_app_inter_class_toks:nnn #1#2#3
{
- \xeCJK_inter_class_toks:nnx {#1} {#2}
- { \xeCJK_get_inter_class_toks:nn {#1} {#2} \exp_not:n {#3} }
+ \@@_inter_class_toks:nnx {#1} {#2}
+ { \@@_get_inter_class_toks:nn {#1} {#2} \exp_not:n {#3} }
}
-\cs_generate_variant:Nn \xeCJK_app_inter_class_toks:nnn { nnc }
+\cs_generate_variant:Nn \@@_app_inter_class_toks:nnn { nnc }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_copy_inter_class_toks:nnnn}
+% \begin{macro}[internal]{\@@_copy_inter_class_toks:nnnn}
% 将 |#3| 和 |#4| 之间的内容复制到 |#1| 和 |#2| 之间。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_copy_inter_class_toks:nnnn #1#2#3#4
+\cs_new_protected_nopar:Npn \@@_copy_inter_class_toks:nnnn #1#2#3#4
{
- \xeCJK_inter_class_toks:nnx {#1} {#2}
- { \xeCJK_get_inter_class_toks:nn {#3} {#4} }
+ \@@_inter_class_toks:nnx {#1} {#2}
+ { \@@_get_inter_class_toks:nn {#3} {#4} }
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_clear_CJK_toks:}
+% \begin{macro}[internal]{\@@_clear_CJK_toks:}
% 清除边界与 CJK 文字、全角左右标点之间的内容。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_clear_CJK_toks:
+\cs_new_protected_nopar:Npn \@@_clear_CJK_toks:
{
- \clist_map_inline:Nn \g_xeCJK_CJK_class_clist
- { \xeCJK_clear_inter_class_toks:nn { Boundary } {##1} }
+ \clist_map_inline:Nn \g_@@_CJK_class_clist
+ { \@@_clear_inter_class_toks:nn { Boundary } {##1} }
}
% \end{macrocode}
% \end{macro}
@@ -1648,18 +1671,18 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
{
\clist_map_inline:nn { CJK, FullLeft, FullRight }
{
- \xeCJK_inter_class_toks:nnn {#1} {##1}
+ \@@_inter_class_toks:nnn {#1} {##1}
{
\c_group_begin_token
\xeCJK_select_font:
- \xeCJK_clear_inter_class_toks:nn {#1} {##1}
- \xeCJK_clear_CJK_toks:
+ \@@_clear_inter_class_toks:nn {#1} {##1}
+ \@@_clear_CJK_toks:
}
- \xeCJK_inter_class_toks:nnn {##1} {#1} { \c_group_end_token }
+ \@@_inter_class_toks:nnn {##1} {#1} { \c_group_end_token }
}
- \xeCJK_app_inter_class_toks:nnn {#1} { CJK } { \CJKsymbol }
+ \@@_app_inter_class_toks:nnn {#1} { CJK } { \CJKsymbol }
\clist_map_inline:nn { FullLeft, FullRight }
- { \xeCJK_app_inter_class_toks:nnc {#1} {##1} { xeCJK_CJK_and_##1:N } }
+ { \@@_app_inter_class_toks:nnc {#1} {##1} { @@_CJK_and_##1:N } }
}
% \end{macrocode}
%
@@ -1667,27 +1690,27 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \begin{macrocode}
\clist_map_inline:nn { Default, HalfLeft, NormalSpace }
{
- \xeCJK_inter_class_toks:nnn { Boundary } {#1}
+ \@@_inter_class_toks:nnn { Boundary } {#1}
{
\bool_if:nTF
{
- \l_xeCJK_xecglue_bool &&
+ \l_@@_xecglue_bool &&
\int_compare_p:nNn \etex_lastnodetype:D = \c_eleven &&
- \skip_if_eq_p:nn \tex_lastskip:D \l_xeCJK_space_glue_tl
+ \skip_if_eq_p:nn \tex_lastskip:D \l_@@_space_glue_tl
}
{
\tex_unskip:D
\bool_if:nTF
- { \xeCJK_if_last_node_p:n { CJK } || \xeCJK_if_last_node_p:n { CJK_space } }
+ { \@@_if_last_node_p:n { CJK } || \@@_if_last_node_p:n { CJK_space } }
{ \CJKecglue } { \c_space_token }
}
{
- \xeCJK_if_last_node:nTF { CJK } { \CJKecglue }
- { \xeCJK_if_last_node:nT { CJK_space } { \xeCJK_space_or_xecglue: } }
+ \@@_if_last_node:nTF { CJK } { \CJKecglue }
+ { \@@_if_last_node:nT { CJK_space } { \@@_space_or_xecglue: } }
}
}
\str_if_eq_x:nnF {#1} { NormalSpace }
- { \xeCJK_app_inter_class_toks:nnn { CJK } {#1} { \CJKecglue } }
+ { \@@_app_inter_class_toks:nnn { CJK } {#1} { \CJKecglue } }
}
% \end{macrocode}
%
@@ -1695,77 +1718,77 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \begin{macrocode}
\clist_map_inline:nn { Default, HalfRight, NormalSpace }
{
- \xeCJK_inter_class_toks:nnn {#1} { Boundary }
+ \@@_inter_class_toks:nnn {#1} { Boundary }
{
\peek_catcode:NTF \c_space_token
- { { \xeCJK_make_node:n { default_space } } }
- { { \xeCJK_make_node:n { default } } }
+ { { \@@_make_node:n { default_space } } }
+ { { \@@_make_node:n { default } } }
}
\str_if_eq_x:nnF {#1} { NormalSpace }
- { \xeCJK_pre_inter_class_toks:nnn {#1} { CJK } { \CJKecglue } }
+ { \@@_pre_inter_class_toks:nnn {#1} { CJK } { \CJKecglue } }
}
% \end{macrocode}
%
% \hypertarget{bound-cjk}{}
% \begin{macrocode}
-\xeCJK_inter_class_toks:nnn { Boundary } { CJK } { \xeCJK_Boundary_and_CJK: }
+\@@_inter_class_toks:nnn { Boundary } { CJK } { \@@_Boundary_and_CJK: }
% \end{macrocode}
%
-% \begin{macro}[internal]{\xeCJK_Boundary_and_CJK:,\xeCJK_check_for_glue:}
+% \begin{macro}[internal]{\@@_Boundary_and_CJK:,\@@_check_for_glue:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_Boundary_and_CJK:
+\cs_new_protected_nopar:Npn \@@_Boundary_and_CJK:
{
- { \xeCJK_check_for_glue: }
+ { \@@_check_for_glue: }
\c_group_begin_token
- \xeCJK_clear_CJK_toks:
+ \@@_clear_CJK_toks:
\xeCJK_select_font:
\CJKsymbol
}
-\cs_new_protected_nopar:Npn \xeCJK_check_for_glue:
+\cs_new_protected_nopar:Npn \@@_check_for_glue:
{
\bool_if:nTF
- { \xeCJK_if_last_node_p:n { CJK } || \xeCJK_if_last_node_p:n { CJK_space } }
+ { \@@_if_last_node_p:n { CJK } || \@@_if_last_node_p:n { CJK_space } }
{ \CJKglue }
{
\bool_if:nTF
{
- \xeCJK_if_last_node_p:n { default } ||
+ \@@_if_last_node_p:n { default } ||
\int_compare_p:nNn \etex_lastnodetype:D = \c_ten ||
- \xeCJK_if_last_node_p:n { default_itcorr }
+ \@@_if_last_node_p:n { default_itcorr }
}
{ \CJKecglue }
{
\bool_if:nT
{
- \l_xeCJK_xecglue_bool &&
+ \l_@@_xecglue_bool &&
\int_compare_p:nNn \etex_lastnodetype:D = \c_eleven &&
- ( \skip_if_eq_p:nn \tex_lastskip:D \l_xeCJK_space_glue_tl ||
- \dim_compare_p:nNn \tex_lastskip:D = \l_xeCJK_ecglue_dim )
+ ( \skip_if_eq_p:nn \tex_lastskip:D \l_@@_space_glue_tl ||
+ \dim_compare_p:nNn \tex_lastskip:D = \l_@@_ecglue_dim )
}
{
\tex_unskip:D
\bool_if:nTF
{
- \xeCJK_if_last_node_p:n { default_space } ||
+ \@@_if_last_node_p:n { default_space } ||
\int_compare_p:nNn \etex_lastnodetype:D = \c_ten ||
- \xeCJK_if_last_node_p:n { default } ||
- \xeCJK_if_last_node_p:n { default_itcorr }
+ \@@_if_last_node_p:n { default } ||
+ \@@_if_last_node_p:n { default_itcorr }
}
{ \CJKecglue }
{
\bool_if:nTF
{
- \xeCJK_if_last_node_p:n { CJK } ||
- \xeCJK_if_last_node_p:n { CJK_space }
+ \@@_if_last_node_p:n { CJK } ||
+ \@@_if_last_node_p:n { CJK_space }
}
- { \bool_if:NTF \l_xeCJK_space_bool \c_space_token \CJKglue }
+ { \bool_if:NTF \l_@@_space_bool \c_space_token \CJKglue }
{ \c_space_token }
}
}
}
}
}
-\tl_set:Nn \l_xeCJK_space_glue_tl
+\tl_set:Nn \l_@@_space_glue_tl
{
\tex_fontdimen:D \c_two \tex_font:D
\@plus \tex_fontdimen:D \c_three \tex_font:D
@@ -1776,22 +1799,22 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%
% \hypertarget{cjk-bound}{}
% \begin{macrocode}
-\xeCJK_inter_class_toks:nnn { CJK } { Boundary }
+\@@_inter_class_toks:nnn { CJK } { Boundary }
{
\c_group_end_token
- { \xeCJK_make_node:n { CJK } }
- \xeCJK_ignorespaces:
+ { \@@_make_node:n { CJK } }
+ \@@_ignorespaces:
}
% \end{macrocode}
%
% \hypertarget{cjk-cjk}{}
% \begin{macrocode}
-\xeCJK_inter_class_toks:nnn { CJK } { CJK } { \xeCJK_CJK_and_CJK:N }
+\@@_inter_class_toks:nnn { CJK } { CJK } { \@@_CJK_and_CJK:N }
% \end{macrocode}
%
-% \begin{macro}[internal]{\xeCJK_CJK_and_CJK:N}
+% \begin{macro}[internal]{\@@_CJK_and_CJK:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_CJK_and_CJK:N #1 { \CJKglue \CJKsymbol {#1} }
+\cs_new_protected_nopar:Npn \@@_CJK_and_CJK:N #1 { \CJKglue \CJKsymbol {#1} }
% \end{macrocode}
% \end{macro}
%
@@ -1799,26 +1822,26 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \begin{macrocode}
\clist_map_inline:nn { FullLeft, FullRight }
{
- \xeCJK_inter_class_toks:nnn { Boundary } {#1}
+ \@@_inter_class_toks:nnn { Boundary } {#1}
{
\c_group_begin_token
- \xeCJK_clear_CJK_toks:
+ \@@_clear_CJK_toks:
\xeCJK_select_font:
- \use:c { xeCJK_CJK_and_#1:N }
+ \use:c { @@_CJK_and_#1:N }
}
- \xeCJK_inter_class_toks:nnn {#1} { CJK } { \CJKsymbol }
- \xeCJK_inter_class_toks:nnn {#1} { Boundary } { \c_group_end_token \tex_ignorespaces:D }
+ \@@_inter_class_toks:nnn {#1} { CJK } { \CJKsymbol }
+ \@@_inter_class_toks:nnn {#1} { Boundary } { \c_group_end_token \tex_ignorespaces:D }
}
% \end{macrocode}
%
% \begin{macrocode}
-\clist_map_inline:Nn \g_xeCJK_base_class_clist
+\clist_map_inline:Nn \g_@@_base_class_clist
{
\bool_if:nF
{ \str_if_eq_x_p:nn {#1} { FullLeft } || \str_if_eq_x_p:nn {#1} { FullRight } }
{
- \xeCJK_pre_inter_class_toks:nnn { FullLeft } {#1} { \xeCJK_no_break: }
- \xeCJK_pre_inter_class_toks:nnn { FullRight } {#1} { \xeCJK_after_FullRight: }
+ \@@_pre_inter_class_toks:nnn { FullLeft } {#1} { \@@_no_break: }
+ \@@_pre_inter_class_toks:nnn { FullRight } {#1} { \@@_after_FullRight: }
}
}
% \end{macrocode}
@@ -1828,43 +1851,43 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\clist_map_inline:nn { CJK, FullLeft, FullRight }
{
\clist_map_inline:nn { FullLeft, FullRight }
- { \xeCJK_inter_class_toks:nnc {#1} {##1} { xeCJK_#1_and_##1:N } }
+ { \@@_inter_class_toks:nnc {#1} {##1} { @@_#1_and_##1:N } }
}
% \end{macrocode}
%
-% \begin{macro}[internal]{\xeCJK_punct_rule:n}
+% \begin{macro}[internal]{\@@_punct_rule:n}
% 用于抹去标点符号的左/右空白。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_punct_rule:n #1
+\cs_new_protected_nopar:Npn \@@_punct_rule:n #1
{
\tex_vrule:D
- \@width \dim_eval:c { \l_xeCJK_punct_coor_tl/rule/#1 }
+ \@width \dim_eval:c { \l_@@_punct_coor_tl/rule/#1 }
\@depth \c_zero_dim
\@height \c_zero_dim \scan_stop:
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_punct_glue:n}
+% \begin{macro}[internal]{\@@_punct_glue:n}
% 根据所选的标点处理方式在标点符号左/右增加的空白。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_punct_glue:n #1
+\cs_new_protected_nopar:Npn \@@_punct_glue:n #1
{
\skip_horizontal:n
{
- \dim_eval:c { \l_xeCJK_punct_coor_tl/glue/#1 }
- \@plus \dim_eval:n { ( \tl_use:c { \l_xeCJK_punct_coor_tl/glue/#1 } ) /4 }
- \@minus \dim_eval:n { ( \tl_use:c { \l_xeCJK_punct_coor_tl/glue/#1 } ) /2 }
+ \dim_eval:c { \l_@@_punct_coor_tl/glue/#1 }
+ \@plus \dim_eval:n { ( \tl_use:c { \l_@@_punct_coor_tl/glue/#1 } ) /4 }
+ \@minus \dim_eval:n { ( \tl_use:c { \l_@@_punct_coor_tl/glue/#1 } ) /2 }
}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_punct_kern:n}
+% \begin{macro}[internal]{\@@_punct_kern:n}
% 相邻两个标点之间的间距。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_punct_kern:n #1
- { \tex_kern:D \dim_eval:c { \l_xeCJK_punct_coor_tl/kern/#1 } }
+\cs_new_protected_nopar:Npn \@@_punct_kern:n #1
+ { \tex_kern:D \dim_eval:c { \l_@@_punct_coor_tl/kern/#1 } }
% \end{macrocode}
% \end{macro}
%
@@ -1874,151 +1897,151 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_before_FullLeft:N}
+% \begin{macro}[internal]{\@@_before_FullLeft:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_before_FullLeft:N #1
+\cs_new_protected_nopar:Npn \@@_before_FullLeft:N #1
{
- \tl_set:Nx \l_xeCJK_lastpunct_tl {#1}
- \xeCJK_punct_rule:n { l/#1 }
+ \tl_set:Nx \l_@@_lastpunct_tl {#1}
+ \@@_punct_rule:n { l/#1 }
\CJKpunctsymbol {#1}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_after_FullRight:}
+% \begin{macro}[internal]{\@@_after_FullRight:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_after_FullRight:
+\cs_new_protected_nopar:Npn \@@_after_FullRight:
{
- \xeCJK_get_punct_bounds:nV { r } \l_xeCJK_lastpunct_tl
- \xeCJK_punct_rule:n { r/\l_xeCJK_lastpunct_tl }
- \xeCJK_punct_glue:n { r/\l_xeCJK_lastpunct_tl }
+ \@@_get_punct_bounds:nV { r } \l_@@_lastpunct_tl
+ \@@_punct_rule:n { r/\l_@@_lastpunct_tl }
+ \@@_punct_glue:n { r/\l_@@_lastpunct_tl }
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_CJK_and_FullLeft:N}
+% \begin{macro}[internal]{\@@_CJK_and_FullLeft:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_CJK_and_FullLeft:N #1
+\cs_new_protected_nopar:Npn \@@_CJK_and_FullLeft:N #1
{
- \xeCJK_get_punct_bounds:nN { l } {#1}
+ \@@_get_punct_bounds:nN { l } {#1}
\int_compare:nNnF \etex_lastnodetype:D = \c_one
- { \xeCJK_punct_glue:n { l/#1 } }
- \xeCJK_before_FullLeft:N {#1}
- \xeCJK_punct_if_middle:NT {#1}
+ { \@@_punct_glue:n { l/#1 } }
+ \@@_before_FullLeft:N {#1}
+ \@@_punct_if_middle:NT {#1}
{
- \xeCJK_punct_rule:n { m/#1 }
- \xeCJK_punct_glue:n { l/#1 }
+ \@@_punct_rule:n { m/#1 }
+ \@@_punct_glue:n { l/#1 }
}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_CJK_and_FullRight:N}
+% \begin{macro}[internal]{\@@_CJK_and_FullRight:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_CJK_and_FullRight:N #1
+\cs_new_protected_nopar:Npn \@@_CJK_and_FullRight:N #1
{
- \xeCJK_get_punct_bounds:nN { r } {#1}
- \xeCJK_punct_if_long:NTF {#1} \CJKglue
+ \@@_get_punct_bounds:nN { r } {#1}
+ \@@_punct_if_long:NTF {#1} \CJKglue
{
- \xeCJK_no_break:
- \xeCJK_punct_if_middle:NT {#1}
+ \@@_no_break:
+ \@@_punct_if_middle:NT {#1}
{
- \xeCJK_punct_glue:n { r/#1 }
- \xeCJK_punct_rule:n { m/#1 }
+ \@@_punct_glue:n { r/#1 }
+ \@@_punct_rule:n { m/#1 }
}
}
- \tl_gset:Nx \l_xeCJK_lastpunct_tl {#1}
+ \tl_gset:Nx \l_@@_lastpunct_tl {#1}
\CJKpunctsymbol {#1}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_FullLeft_and_FullLeft:N}
+% \begin{macro}[internal]{\@@_FullLeft_and_FullLeft:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_FullLeft_and_FullLeft:N #1
+\cs_new_protected_nopar:Npn \@@_FullLeft_and_FullLeft:N #1
{
- \xeCJK_no_break:
- \xeCJK_get_punct_bounds:nN { l } {#1}
- \xeCJK_get_kern:VN \l_xeCJK_lastpunct_tl {#1}
- \xeCJK_punct_kern:n { \l_xeCJK_lastpunct_tl - #1 }
- \xeCJK_before_FullLeft:N {#1}
+ \@@_no_break:
+ \@@_get_punct_bounds:nN { l } {#1}
+ \@@_get_kern:VN \l_@@_lastpunct_tl {#1}
+ \@@_punct_kern:n { \l_@@_lastpunct_tl - #1 }
+ \@@_before_FullLeft:N {#1}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_FullLeft_and_FullRight:N}
+% \begin{macro}[internal]{\@@_FullLeft_and_FullRight:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_FullLeft_and_FullRight:N #1
+\cs_new_protected_nopar:Npn \@@_FullLeft_and_FullRight:N #1
{
- \xeCJK_no_break:
- \xeCJK_get_punct_bounds:nN { r } {#1}
- \xeCJK_get_kern:VN \l_xeCJK_lastpunct_tl {#1}
- \xeCJK_punct_kern:n { \l_xeCJK_lastpunct_tl - #1 }
- \xeCJK_no_break:
- \tl_set:Nx \l_xeCJK_lastpunct_tl {#1}
+ \@@_no_break:
+ \@@_get_punct_bounds:nN { r } {#1}
+ \@@_get_kern:VN \l_@@_lastpunct_tl {#1}
+ \@@_punct_kern:n { \l_@@_lastpunct_tl - #1 }
+ \@@_no_break:
+ \tl_set:Nx \l_@@_lastpunct_tl {#1}
\CJKpunctsymbol {#1}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_FullRight_and_FullLeft:N}
+% \begin{macro}[internal]{\@@_FullRight_and_FullLeft:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_FullRight_and_FullLeft:N #1
+\cs_new_protected_nopar:Npn \@@_FullRight_and_FullLeft:N #1
{
- \xeCJK_punct_rule:n { r/\l_xeCJK_lastpunct_tl }
- \xeCJK_get_punct_bounds:nN { l } {#1}
- \xeCJK_get_kern:VN \l_xeCJK_lastpunct_tl {#1}
- \xeCJK_punct_kern:n { \l_xeCJK_lastpunct_tl - #1 }
- \xeCJK_punct_nobreak:
- \xeCJK_before_FullLeft:N {#1}
+ \@@_punct_rule:n { r/\l_@@_lastpunct_tl }
+ \@@_get_punct_bounds:nN { l } {#1}
+ \@@_get_kern:VN \l_@@_lastpunct_tl {#1}
+ \@@_punct_kern:n { \l_@@_lastpunct_tl - #1 }
+ \@@_punct_nobreak:
+ \@@_before_FullLeft:N {#1}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_FullRight_and_FullRight:N}
+% \begin{macro}[internal]{\@@_FullRight_and_FullRight:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_FullRight_and_FullRight:N #1
+\cs_new_protected_nopar:Npn \@@_FullRight_and_FullRight:N #1
{
- \xeCJK_punct_rule:n { r/\l_xeCJK_lastpunct_tl }
- \xeCJK_get_punct_bounds:nN { r } {#1}
- \xeCJK_get_kern:VN \l_xeCJK_lastpunct_tl {#1}
- \xeCJK_punct_kern:n { \l_xeCJK_lastpunct_tl - #1 }
- \xeCJK_no_break:
- \tl_set:Nx \l_xeCJK_lastpunct_tl {#1}
+ \@@_punct_rule:n { r/\l_@@_lastpunct_tl }
+ \@@_get_punct_bounds:nN { r } {#1}
+ \@@_get_kern:VN \l_@@_lastpunct_tl {#1}
+ \@@_punct_kern:n { \l_@@_lastpunct_tl - #1 }
+ \@@_no_break:
+ \tl_set:Nx \l_@@_lastpunct_tl {#1}
\CJKpunctsymbol {#1}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[pTF,internal]{\xeCJK_if_last_node:n}
+% \begin{macro}[pTF,internal]{\@@_if_last_node:n}
% \begin{macrocode}
- \prg_new_conditional:Npnn \xeCJK_if_last_node:n #1 { p , T , F , TF }
+ \prg_new_conditional:Npnn \@@_if_last_node:n #1 { p , T , F , TF }
{
- \if_dim:w \dim_use:c { c_xeCJK_#1_node_dim } = \tex_lastkern:D
+ \if_dim:w \dim_use:c { c_@@_#1_node_dim } = \tex_lastkern:D
\prg_return_true: \else: \prg_return_false: \fi:
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_def_node:nn,\xeCJK_make_node:n}
+% \begin{macro}[internal]{\@@_def_node:nn,\@@_make_node:n}
% 用于判断插入的各种 |kern|。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_def_node:nn #1#2
+\cs_new_protected_nopar:Npn \@@_def_node:nn #1#2
{
- \dim_if_exist:cTF { c_xeCJK_#1_node_dim }
+ \dim_if_exist:cTF { c_@@_#1_node_dim }
{ \dim_gset:cn } { \dim_const:cn }
- { c_xeCJK_#1_node_dim } {#2}
+ { c_@@_#1_node_dim } {#2}
}
-\cs_new_protected_nopar:Npn \xeCJK_make_node:n #1
+\cs_new_protected_nopar:Npn \@@_make_node:n #1
{
- \tex_kern:D - \dim_use:c { c_xeCJK_#1_node_dim }
- \tex_kern:D \dim_use:c { c_xeCJK_#1_node_dim }
+ \tex_kern:D - \dim_use:c { c_@@_#1_node_dim }
+ \tex_kern:D \dim_use:c { c_@@_#1_node_dim }
}
-\xeCJK_def_node:nn { CJK } { 11 sp }
-\xeCJK_def_node:nn { CJK_space } { 12 sp }
-\xeCJK_def_node:nn { default } { 13 sp }
-\xeCJK_def_node:nn { default_space } { 14 sp }
-\xeCJK_def_node:nn { default_itcorr } { 15 sp }
+\@@_def_node:nn { CJK } { 11 sp }
+\@@_def_node:nn { CJK_space } { 12 sp }
+\@@_def_node:nn { default } { 13 sp }
+\@@_def_node:nn { default_space } { 14 sp }
+\@@_def_node:nn { default_itcorr } { 15 sp }
% \end{macrocode}
% \end{macro}
%
@@ -2037,30 +2060,30 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
CJKecglue .code:n =
{
\cs_set:Npn \CJKecglue {#1}
- \settowidth \l_xeCJK_ecglue_dim \CJKecglue
+ \settowidth \l_@@_ecglue_dim \CJKecglue
},
xCJKecglue .choice:,
xCJKecglue / true .code:n =
{
- \bool_set_true:N \l_xeCJK_xecglue_bool
- \cs_set_eq:NN \xeCJK_space_or_xecglue: \CJKecglue
+ \bool_set_true:N \l_@@_xecglue_bool
+ \cs_set_eq:NN \@@_space_or_xecglue: \CJKecglue
},
xCJKecglue / false .code:n =
{
- \bool_set_false:N \l_xeCJK_xecglue_bool
- \cs_set_eq:NN \xeCJK_space_or_xecglue: \c_space_token
+ \bool_set_false:N \l_@@_xecglue_bool
+ \cs_set_eq:NN \@@_space_or_xecglue: \c_space_token
},
xCJKecglue / unknown .code:n =
{
- \bool_set_true:N \l_xeCJK_xecglue_bool
+ \bool_set_true:N \l_@@_xecglue_bool
\cs_set:Npn \CJKecglue {#1}
- \settowidth \l_xeCJK_ecglue_dim \CJKecglue
- \cs_set_eq:NN \xeCJK_space_or_xecglue: \CJKecglue
+ \settowidth \l_@@_ecglue_dim \CJKecglue
+ \cs_set_eq:NN \@@_space_or_xecglue: \CJKecglue
},
xCJKecglue .default:n = { true } ,
}
-\dim_new:N \l_xeCJK_ecglue_dim
-\bool_new:N \l_xeCJK_xecglue_bool
+\dim_new:N \l_@@_ecglue_dim
+\bool_new:N \l_@@_xecglue_bool
% \end{macrocode}
% \end{macro}
%
@@ -2084,55 +2107,55 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \begin{macrocode}
\NewDocumentCommand \CJKspace { }
{
- \bool_set_true:N \l_xeCJK_space_bool
- \cs_set_eq:NN \xeCJK_ignorespaces: \xeCJK_peek_math:
+ \bool_set_true:N \l_@@_space_bool
+ \cs_set_eq:NN \@@_ignorespaces: \@@_peek_math:
}
\NewDocumentCommand \CJKnospace { }
{
- \bool_set_false:N \l_xeCJK_space_bool
- \cs_set_eq:NN \xeCJK_ignorespaces: \xeCJK_ignore_spaces:
+ \bool_set_false:N \l_@@_space_bool
+ \cs_set_eq:NN \@@_ignorespaces: \@@_ignore_spaces:
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_ignore_spaces:,\xeCJK_peek_math:}
+% \begin{macro}[internal]{\@@_ignore_spaces:,\@@_peek_math:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_ignore_spaces:
+\cs_new_protected_nopar:Npn \@@_ignore_spaces:
{
\peek_catcode:NTF \c_space_token
{
- \xeCJK_if_last_node:nT { CJK }
- { \tex_unkern:D \tex_unkern:D { \xeCJK_make_node:n { CJK_space } } }
- \xeCJK_peek_catcode_ignore_spaces:NTF \c_math_toggle_token
- { \xeCJK_space_or_xecglue: }
+ \@@_if_last_node:nT { CJK }
+ { \tex_unkern:D \tex_unkern:D { \@@_make_node:n { CJK_space } } }
+ \@@_peek_catcode_ignore_spaces:NTF \c_math_toggle_token
+ { \@@_space_or_xecglue: }
{
\bool_if:nT
{
- \xeCJK_if_outer_macro_p:c { l_peek_token } ||
+ \@@_if_outer_macro_p:c { l_peek_token } ||
\token_if_cs_p:c { l_peek_token }
}
- { \xeCJK_space_or_xecglue: }
+ { \@@_space_or_xecglue: }
}
}
{
- \xeCJK_if_outer_macro:cF { l_peek_token }
+ \@@_if_outer_macro:cF { l_peek_token }
{
\token_if_math_toggle:cTF { l_peek_token } \CJKecglue
{ \cs_if_exist:cF { l_peek_token } \exp_not:N }
}
}
}
-\cs_new_protected_nopar:Npn \xeCJK_peek_math:
+\cs_new_protected_nopar:Npn \@@_peek_math:
{
\peek_catcode:NTF \c_space_token
{
- \xeCJK_if_last_node:nT { CJK }
- { \tex_unkern:D \tex_unkern:D { \xeCJK_make_node:n { CJK_space } } }
- \xeCJK_peek_catcode_ignore_spaces:NF \c_space_token
- { \xeCJK_space_or_xecglue: }
+ \@@_if_last_node:nT { CJK }
+ { \tex_unkern:D \tex_unkern:D { \@@_make_node:n { CJK_space } } }
+ \@@_peek_catcode_ignore_spaces:NF \c_space_token
+ { \@@_space_or_xecglue: }
}
{
- \xeCJK_if_outer_macro:cF { l_peek_token }
+ \@@_if_outer_macro:cF { l_peek_token }
{
\token_if_math_toggle:cTF { l_peek_token } \CJKecglue
{ \cs_if_exist:cF { l_peek_token } \exp_not:N }
@@ -2161,53 +2184,53 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \begin{macro}[internal]{\xeCJKenablechecksingle,\xeCJKdisablechecksingle}
% 孤字处理功能开关。
% \begin{macrocode}
-\bool_new:N \l_xeCJK_checksingle_bool
+\bool_new:N \l_@@_checksingle_bool
\NewDocumentCommand \xeCJKenablechecksingle { }
{
- \bool_if:NF \l_xeCJK_checksingle_bool
+ \bool_if:NF \l_@@_checksingle_bool
{
- \bool_set_true:N \l_xeCJK_checksingle_bool
- \cs_set_eq:NN \xeCJK_checksingle_save_CJKsymbol:N \xeCJK_CJK_and_CJK:N
- \cs_set_eq:NN \xeCJK_CJK_and_CJK:N \xeCJK_checksingle:N
+ \bool_set_true:N \l_@@_checksingle_bool
+ \cs_set_eq:NN \@@_checksingle_save_CJKsymbol:N \@@_CJK_and_CJK:N
+ \cs_set_eq:NN \@@_CJK_and_CJK:N \@@_checksingle:N
}
}
\NewDocumentCommand \xeCJKdisablechecksingle { }
{
- \bool_if:NT \l_xeCJK_checksingle_bool
+ \bool_if:NT \l_@@_checksingle_bool
{
- \bool_set_false:N \l_xeCJK_checksingle_bool
- \cs_set_eq:NN \xeCJK_CJK_and_CJK:N \xeCJK_checksingle_save_CJKsymbol:N
+ \bool_set_false:N \l_@@_checksingle_bool
+ \cs_set_eq:NN \@@_CJK_and_CJK:N \@@_checksingle_save_CJKsymbol:N
}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_checksingle:N,\xeCJK_checksingle:NN,\xeCJK_checksingle:NNN}
+% \begin{macro}[internal]{\@@_checksingle:N,\@@_checksingle:NN,\@@_checksingle:NNN}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_checksingle:N #1
+\cs_new_protected_nopar:Npn \@@_checksingle:N #1
{
\peek_catcode:NTF \c_catcode_other_token
- { \xeCJK_checksingle:NN {#1} }
+ { \@@_checksingle:NN {#1} }
{
\bool_if:nTF
{
- ! ( \xeCJK_if_outer_macro_p:c { l_peek_token } ) &&
- \xeCJK_if_blank_x_p:n { \token_get_arg_spec:c { l_peek_token } } &&
+ ! ( \@@_if_outer_macro_p:c { l_peek_token } ) &&
+ \@@_if_blank_x_p:n { \token_get_arg_spec:c { l_peek_token } } &&
\exp_args:NNc \exp_args:No \tl_if_single_token_p:n { l_peek_token } &&
\exp_args:NNc \exp_after:wN \token_if_other_p:N { l_peek_token }
}
- { \xeCJK_checksingle:NN {#1} }
- { \xeCJK_checksingle_save_CJKsymbol:N {#1} }
+ { \@@_checksingle:NN {#1} }
+ { \@@_checksingle_save_CJKsymbol:N {#1} }
}
}
-\cs_new_protected_nopar:Npn \xeCJK_checksingle:NN #1#2
+\cs_new_protected_nopar:Npn \@@_checksingle:NN #1#2
{
\peek_catcode:NTF \c_catcode_other_token
- { \xeCJK_checksingle_save_CJKsymbol:N {#1} #2 }
+ { \@@_checksingle_save_CJKsymbol:N {#1} #2 }
{
\bool_if:nTF
{
- ! ( \xeCJK_if_outer_macro_p:c { l_peek_token } ) &&
+ ! ( \@@_if_outer_macro_p:c { l_peek_token } ) &&
( \token_if_space_p:c { l_peek_token } ||
\token_if_math_toggle_p:c { l_peek_token } ||
\token_if_cs_p:c { l_peek_token } )
@@ -2215,62 +2238,62 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
{
\bool_if:nTF { \token_if_space_p:c { l_peek_token } }
{
- \xeCJK_peek_catcode_ignore_spaces:NTF \c_catcode_other_token
- { \xeCJK_checksingle_save_CJKsymbol:N {#1} #2 \c_space_token }
+ \@@_peek_catcode_ignore_spaces:NTF \c_catcode_other_token
+ { \@@_checksingle_save_CJKsymbol:N {#1} #2 \c_space_token }
{
\bool_if:nTF
{
- ! ( \xeCJK_if_outer_macro_p:c { l_peek_token } ) &&
+ ! ( \@@_if_outer_macro_p:c { l_peek_token } ) &&
( \token_if_math_toggle_p:c { l_peek_token } ||
\token_if_cs_p:c { l_peek_token } )
}
- { \xeCJK_checksingle:NNN {#1} {#2} \c_space_token }
- { \xeCJK_checksingle_save_CJKsymbol:N {#1} #2 \c_space_token }
+ { \@@_checksingle:NNN {#1} {#2} \c_space_token }
+ { \@@_checksingle_save_CJKsymbol:N {#1} #2 \c_space_token }
}
}
- { \xeCJK_checksingle:NNN {#1} {#2} { } }
+ { \@@_checksingle:NNN {#1} {#2} { } }
}
- { \xeCJK_checksingle_save_CJKsymbol:N {#1} #2 }
+ { \@@_checksingle_save_CJKsymbol:N {#1} #2 }
}
}
-\cs_new_protected_nopar:Npn \xeCJK_checksingle:NNN #1#2#3
+\cs_new_protected_nopar:Npn \@@_checksingle:NNN #1#2#3
{
\bool_if:nTF
{
\token_if_eq_meaning_p:NN \l_peek_token \par ||
\token_if_eq_meaning_p:NN \l_peek_token \[ % \]
}
- { \CJKsymbol {#1} \xeCJK_no_break: #2 }
- { \xeCJK_checksingle_env:NNN {#1} {#2} {#3} }
+ { \CJKsymbol {#1} \@@_no_break: #2 }
+ { \@@_checksingle_env:NNN {#1} {#2} {#3} }
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_checksingle_env:NNN,\xeCJK_checksingle_env:NNNNn}
+% \begin{macro}[internal]{\@@_checksingle_env:NNN,\@@_checksingle_env:NNNNn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_checksingle_env:NNN #1#2#3
+\cs_new_protected_nopar:Npn \@@_checksingle_env:NNN #1#2#3
{
\peek_catcode_remove:NTF \c_math_toggle_token
{
\peek_catcode:NTF \c_math_toggle_token
- { \CJKsymbol {#1} \xeCJK_no_break: #2 \c_math_toggle_token }
- { \xeCJK_checksingle_save_CJKsymbol:N {#1} #2#3 \c_math_toggle_token }
+ { \CJKsymbol {#1} \@@_no_break: #2 \c_math_toggle_token }
+ { \@@_checksingle_save_CJKsymbol:N {#1} #2#3 \c_math_toggle_token }
}
{
\peek_meaning_remove:NTF \begin
- { \xeCJK_checksingle_env:NNNNn {#1} {#2} {#3} \begin }
+ { \@@_checksingle_env:NNNNn {#1} {#2} {#3} \begin }
{
\peek_meaning_remove:NTF \end
- { \xeCJK_checksingle_env:NNNNn {#1} {#2} {#3} \end }
- { \xeCJK_checksingle_save_CJKsymbol:N {#1} #2#3 }
+ { \@@_checksingle_env:NNNNn {#1} {#2} {#3} \end }
+ { \@@_checksingle_save_CJKsymbol:N {#1} #2#3 }
}
}
}
-\cs_new_protected_nopar:Npn \xeCJK_checksingle_env:NNNNn #1#2#3#4#5
+\cs_new_protected_nopar:Npn \@@_checksingle_env:NNNNn #1#2#3#4#5
{
- \clist_if_in:NnTF \g_xeCJK_inline_env_clist {#5}
- { \xeCJK_checksingle_save_CJKsymbol:N {#1} #2#3 }
- { \CJKsymbol {#1} \xeCJK_no_break: #2 }
+ \clist_if_in:NnTF \g_@@_inline_env_clist {#5}
+ { \@@_checksingle_save_CJKsymbol:N {#1} #2#3 }
+ { \CJKsymbol {#1} \@@_no_break: #2 }
\scan_stop: #4 {#5}
}
% \end{macrocode}
@@ -2280,16 +2303,16 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \begin{macrocode}
\keys_define:nn { xeCJK / options }
{
- InlineEnv .clist_gset:N = \g_xeCJK_inline_env_clist ,
+ InlineEnv .clist_gset:N = \g_@@_inline_env_clist ,
InlineEnv+ .code:n =
{
- \clist_gput_right:Nx \g_xeCJK_inline_env_clist {#1}
- \clist_gremove_duplicates:N \g_xeCJK_inline_env_clist
+ \clist_gput_right:Nx \g_@@_inline_env_clist {#1}
+ \clist_gremove_duplicates:N \g_@@_inline_env_clist
},
InlineEnv- .code:n =
{
\clist_map_inline:xn {#1}
- { \clist_gremove_all:Nn \g_xeCJK_inline_env_clist {##1} }
+ { \clist_gremove_all:Nn \g_@@_inline_env_clist {##1} }
},
}
% \end{macrocode}
@@ -2305,21 +2328,21 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%
% \subsection{增加 CJK 子分区}
%
-% \begin{macro}[internal]{\xeCJK_UL_subclass_patch_tl,\g_xeCJK_CJK_subclass_clist}
+% \begin{macro}[internal]{\@@_UL_subclass_patch_tl,\g_@@_CJK_subclass_clist}
% \begin{macrocode}
-\tl_new:N \xeCJK_UL_subclass_patch_tl
-\clist_new:N \g_xeCJK_CJK_subclass_clist
+\tl_new:N \@@_UL_subclass_patch_tl
+\clist_new:N \g_@@_CJK_subclass_clist
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_erase_CJKsymbol:, \xeCJK_restore_CJKsymbol:}
+% \begin{macro}[internal]{\@@_erase_CJKsymbol:, \@@_restore_CJKsymbol:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_erase_CJKsymbol:
+\cs_new_protected_nopar:Npn \@@_erase_CJKsymbol:
{
\cs_gset_eq:NN \CJKsymbol_Block \CJKsymbol
\cs_gset_eq:NN \CJKsymbol \prg_do_nothing:
}
-\cs_new_protected_nopar:Npn \xeCJK_restore_CJKsymbol:
+\cs_new_protected_nopar:Npn \@@_restore_CJKsymbol:
{
\cs_gset_eq:NN \CJKsymbol \CJKsymbol_Block
\CJKsymbol
@@ -2342,42 +2365,42 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \begin{macro}{\xeCJKCancelSubCJKBlock,\xeCJKRestoreSubCJKBlock}
% 取消和恢复对 CJK 子区的声明。
% \begin{macrocode}
-\bool_new:N \l_xeCJK_sub_cancel_bool
+\bool_new:N \l_@@_sub_cancel_bool
\NewDocumentCommand \xeCJKCancelSubCJKBlock { s m }
{
- \bool_if:NF \l_xeCJK_sub_cancel_bool
+ \bool_if:NF \l_@@_sub_cancel_bool
{
- \bool_set_true:N \l_xeCJK_sub_cancel_bool
- \xeCJK_sub_restore_or_cancel:n {#2}
+ \bool_set_true:N \l_@@_sub_cancel_bool
+ \@@_sub_restore_or_cancel:n {#2}
\IfBooleanT {#1} { \xeCJKResetPunctClass }
}
}
\NewDocumentCommand \xeCJKRestoreSubCJKBlock { s m }
{
- \bool_if:NT \l_xeCJK_sub_cancel_bool
+ \bool_if:NT \l_@@_sub_cancel_bool
{
- \bool_set_false:N \l_xeCJK_sub_cancel_bool
- \xeCJK_sub_restore_or_cancel:n {#2}
+ \bool_set_false:N \l_@@_sub_cancel_bool
+ \@@_sub_restore_or_cancel:n {#2}
\IfBooleanT {#1} { \xeCJKResetPunctClass }
}
}
-\cs_new_protected_nopar:Npn \xeCJK_sub_restore_or_cancel:n #1
+\cs_new_protected_nopar:Npn \@@_sub_restore_or_cancel:n #1
{
\clist_map_inline:xn {#1}
{
- \cs_if_free:cTF { xeCJK_ CJK/##1 _class }
- { \xeCJK_error:nx { SubBlock-undefined } {##1} }
+ \int_if_exist:cTF { c_@@_ CJK/##1 _class_int }
{
- \xeCJK_declare_char_class:nn
- { CJK \bool_if:NF \l_xeCJK_sub_cancel_bool { /##1 } }
- { \tl_use:c { g_xeCJK_CJK/##1_range_clist } }
+ \@@_declare_char_class:nn
+ { CJK \bool_if:NF \l_@@_sub_cancel_bool { /##1 } }
+ { \tl_use:c { g_@@_CJK/##1_range_clist } }
}
+ { \@@_error:nx { SubBlock-undefined } {##1} }
}
}
-\xeCJK_msg_new:nn { SubBlock-undefined }
+\@@_msg_new:nn { SubBlock-undefined }
{
The~CJK~sub~block~'#1'~is~undefined.\\\\
- Try~to~use~\token_to_str:N \xeCJKDeclareSubCJKBlock \c_space_tl
+ Try~to~use~\token_to_str:N \xeCJKDeclareSubCJKBlock \
to~declare~it.
}
% \end{macrocode}
@@ -2388,80 +2411,80 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\NewDocumentCommand \xeCJKDeclareSubCharClass
{ > { \TrimSpaces } m > { \TrimSpaces } m m }
{
- \cs_if_free:cT { xeCJK_ #1/#2 _class }
+ \int_if_exist:cF { c_@@_ #1/#2 _class_int }
{
- \xeCJK_new_class:n { #1/#2 }
- \xeCJK_set_sub_class_toks:nn {#1} {#2}
- \xeCJK_new_sub_key:n {#2}
- \xeCJK_UL_subclass_patch:nn {#1} {#2}
+ \@@_new_class:n { #1/#2 }
+ \@@_set_sub_class_toks:nn {#1} {#2}
+ \@@_new_sub_key:n {#2}
+ \@@_UL_subclass_patch:nn {#1} {#2}
}
- \xeCJK_declare_char_class:nn { #1/#2 } {#3}
+ \@@_declare_char_class:nn { #1/#2 } {#3}
}
\@onlypreamble \xeCJKDeclareSubCharClass
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_set_sub_class_toks:nn}
+% \begin{macro}[internal]{\@@_set_sub_class_toks:nn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_set_sub_class_toks:nn #1#2
+\cs_new_protected_nopar:Npn \@@_set_sub_class_toks:nn #1#2
{
- \clist_map_inline:Nn \g_xeCJK_base_class_clist
+ \clist_map_inline:Nn \g_@@_base_class_clist
{
- \xeCJK_copy_inter_class_toks:nnnn { #1/#2 } {##1} {#1} {##1}
- \xeCJK_copy_inter_class_toks:nnnn {##1} { #1/#2 } {##1} {#1}
+ \@@_copy_inter_class_toks:nnnn { #1/#2 } {##1} {#1} {##1}
+ \@@_copy_inter_class_toks:nnnn {##1} { #1/#2 } {##1} {#1}
\str_if_eq_x:nnTF {##1} { CJK }
{
- \xeCJK_pre_inter_class_toks:nnn {##1} { #1/#2 }
- { \xeCJK_switch_font:nn {#1} {#2} }
+ \@@_pre_inter_class_toks:nnn {##1} { #1/#2 }
+ { \@@_switch_font:nn {#1} {#2} }
}
{
- \xeCJK_pre_inter_class_toks:nnn {##1} { #1/#2 }
- { \xeCJK_erase_CJKsymbol: }
- \xeCJK_app_inter_class_toks:nnn {##1} { #1/#2 }
- { \xeCJK_switch_font:nn {#1} {#2} \xeCJK_restore_CJKsymbol: }
+ \@@_pre_inter_class_toks:nnn {##1} { #1/#2 }
+ { \@@_erase_CJKsymbol: }
+ \@@_app_inter_class_toks:nnn {##1} { #1/#2 }
+ { \@@_switch_font:nn {#1} {#2} \@@_restore_CJKsymbol: }
}
}
- \xeCJK_copy_inter_class_toks:nnnn { #1/#2 } { #1/#2 } {#1} {#1}
- \clist_if_empty:NF \g_xeCJK_CJK_subclass_clist
+ \@@_copy_inter_class_toks:nnnn { #1/#2 } { #1/#2 } {#1} {#1}
+ \clist_if_empty:NF \g_@@_CJK_subclass_clist
{
- \clist_map_inline:Nn \g_xeCJK_CJK_subclass_clist
+ \clist_map_inline:Nn \g_@@_CJK_subclass_clist
{
- \xeCJK_copy_inter_class_toks:nnnn { #1/#2 } { #1/##1 } {#1} {#1}
- \xeCJK_copy_inter_class_toks:nnnn { #1/##1 } { #1/#2 } {#1} {#1}
- \xeCJK_pre_inter_class_toks:nnn { #1/#2 } { #1/##1 }
- { \xeCJK_switch_font:nn {#2} {##1} }
- \xeCJK_pre_inter_class_toks:nnn { #1/##1 } { #1/#2 }
- { \xeCJK_switch_font:nn {##1} {#2} }
+ \@@_copy_inter_class_toks:nnnn { #1/#2 } { #1/##1 } {#1} {#1}
+ \@@_copy_inter_class_toks:nnnn { #1/##1 } { #1/#2 } {#1} {#1}
+ \@@_pre_inter_class_toks:nnn { #1/#2 } { #1/##1 }
+ { \@@_switch_font:nn {#2} {##1} }
+ \@@_pre_inter_class_toks:nnn { #1/##1 } { #1/#2 }
+ { \@@_switch_font:nn {##1} {#2} }
}
}
- \clist_gput_right:Nn \g_xeCJK_CJK_subclass_clist {#2}
- \xeCJK_save_CJK_class:n { #1/#2 }
+ \clist_gput_right:Nn \g_@@_CJK_subclass_clist {#2}
+ \@@_save_CJK_class:n { #1/#2 }
\clist_map_inline:nn { CJK, FullLeft, FullRight }
{
- \xeCJK_pre_inter_class_toks:nnn { #1/#2 } {##1}
- { \xeCJK_switch_font:nn {#2} {#1} }
+ \@@_pre_inter_class_toks:nnn { #1/#2 } {##1}
+ { \@@_switch_font:nn {#2} {#1} }
}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_UL_subclass_patch:nn}
+% \begin{macro}[internal]{\@@_UL_subclass_patch:nn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_UL_subclass_patch:nn #1#2
+\cs_new_protected_nopar:Npn \@@_UL_subclass_patch:nn #1#2
{
- \tl_put_right:Nn \xeCJK_UL_subclass_patch_tl
+ \tl_put_right:Nn \@@_UL_subclass_patch_tl
{
\clist_map_inline:nn { Default, HalfLeft, HalfRight }
{
\str_if_eq_x:nnTF {##1} { HalfLeft }
- { \xeCJK_inter_class_toks:nnn {#1} { #1/#2 } { \CJKecglue \CJKsymbol } }
- { \xeCJK_inter_class_toks:nnn {#1} { #1/#2 } { \CJKsymbol } }
- \xeCJK_inter_class_toks:nnn { Boundary } { #1/#2 }
+ { \@@_inter_class_toks:nnn {#1} { #1/#2 } { \CJKecglue \CJKsymbol } }
+ { \@@_inter_class_toks:nnn {#1} { #1/#2 } { \CJKsymbol } }
+ \@@_inter_class_toks:nnn { Boundary } { #1/#2 }
{
- \xeCJK_erase_CJKsymbol:
- \xeCJK_Boundary_and_CJK:
- \xeCJK_switch_font:nn {#1} {#2}
- \xeCJK_restore_CJKsymbol:
+ \@@_erase_CJKsymbol:
+ \@@_Boundary_and_CJK:
+ \@@_switch_font:nn {#1} {#2}
+ \@@_restore_CJKsymbol:
}
}
}
@@ -2471,14 +2494,14 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%
% \subsection{标点处理}
%
-% \begin{macro}[internal,var]{\g_xeCJK_punctstyle_clist}
+% \begin{macro}[internal,var]{\g_@@_punctstyle_clist}
% 标点处理方式。
% \begin{macrocode}
-\clist_new:N \g_xeCJK_punctstyle_clist
-\clist_set:Nn \g_xeCJK_punctstyle_clist
+\clist_new:N \g_@@_punctstyle_clist
+\clist_set:Nn \g_@@_punctstyle_clist
{ CCT , halfwidth , fullwidth , marginkerning , mixedwidth , plain }
-\clist_map_inline:Nn \g_xeCJK_punctstyle_clist
- { \tl_const:cn { c_xeCJK_ps_#1_tl } {#1} }
+\clist_map_inline:Nn \g_@@_punctstyle_clist
+ { \tl_const:cn { c_@@_ps_#1_tl } {#1} }
% \end{macrocode}
% \end{macro}
%
@@ -2494,13 +2517,13 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
{
PunctStyle .choice_code:n =
{
- \tl_set:Nx \l_xeCJK_punctstyle_tl { \l_keys_choice_tl }
- \tl_if_eq:NNT \l_xeCJK_punctstyle_tl \c_xeCJK_ps_plain_tl
+ \tl_set:Nx \l_@@_punctstyle_tl { \l_keys_choice_tl }
+ \tl_if_eq:NNT \l_@@_punctstyle_tl \c_@@_ps_plain_tl
{ \xeCJKallowbreakbetweenpuncts }
},
}
\keys_define:nx { xeCJK / options }
- { PunctStyle .generate_choices:n = { \exp_not:V \g_xeCJK_punctstyle_clist } }
+ { PunctStyle .generate_choices:n = { \exp_not:V \g_@@_punctstyle_clist } }
\keys_define:nn { xeCJK / options }
{
PunctStyle / banjiao .meta:n = { PunctStyle = halfwidth },
@@ -2508,13 +2531,13 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
PunctStyle / kaiming .meta:n = { PunctStyle = mixedwidth },
PunctStyle / hangmobanjiao .meta:n = { PunctStyle = marginkerning },
PunctStyle / unknown .code:n =
- { \xeCJK_error:nx { PunctStyle-undefined } \l_keys_value_tl },
+ { \@@_error:nx { PunctStyle-undefined } \l_keys_value_tl },
}
-\xeCJK_msg_new:nn { PunctStyle-undefined }
+\@@_msg_new:nn { PunctStyle-undefined }
{
Punctstyle~"#1"~is~not~available. \\\\
You~can~only~use~one~of\\\\
- "\g_xeCJK_punctstyle_clist".\\
+ "\g_@@_punctstyle_clist".\\
}
% \end{macrocode}
% \end{macro}
@@ -2529,16 +2552,16 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
AllowBreakBetweenPuncts / true .code:n = { \xeCJKallowbreakbetweenpuncts },
AllowBreakBetweenPuncts / false .code:n = { \xeCJKnobreakbetweenpuncts },
AllowBreakBetweenPuncts .default:n = { true },
- KaiMingPunct .code:n = { \xeCJK_set_special_punct:nn { mixedwidth } {#1} },
- KaiMingPunct+ .code:n = { \xeCJK_add_special_punct:nn { mixedwidth } {#1} },
- KaiMingPunct- .code:n = { \xeCJK_sub_special_punct:nn { mixedwidth } {#1} },
- LongPunct .code:n = { \xeCJK_set_special_punct:nn { long } {#1} },
- LongPunct+ .code:n = { \xeCJK_add_special_punct:nn { long } {#1} },
- LongPunct- .code:n = { \xeCJK_sub_special_punct:nn { long } {#1} },
- MiddlePunct+ .code:n = { \xeCJK_add_special_punct:nn { middle } {#1} },
- MiddlePunct .code:n = { \xeCJK_set_special_punct:nn { middle } {#1} },
- MiddlePunct- .code:n = { \xeCJK_sub_special_punct:nn { middle } {#1} },
- PunctWidth .tl_gset:N = \g_xeCJK_punct_width_tl ,
+ KaiMingPunct .code:n = { \@@_set_special_punct:nn { mixedwidth } {#1} },
+ KaiMingPunct+ .code:n = { \@@_add_special_punct:nn { mixedwidth } {#1} },
+ KaiMingPunct- .code:n = { \@@_sub_special_punct:nn { mixedwidth } {#1} },
+ LongPunct .code:n = { \@@_set_special_punct:nn { long } {#1} },
+ LongPunct+ .code:n = { \@@_add_special_punct:nn { long } {#1} },
+ LongPunct- .code:n = { \@@_sub_special_punct:nn { long } {#1} },
+ MiddlePunct+ .code:n = { \@@_add_special_punct:nn { middle } {#1} },
+ MiddlePunct .code:n = { \@@_set_special_punct:nn { middle } {#1} },
+ MiddlePunct- .code:n = { \@@_sub_special_punct:nn { middle } {#1} },
+ PunctWidth .tl_gset:N = \g_@@_punct_width_tl ,
}
% \end{macrocode}
% \end{macro}
@@ -2546,328 +2569,346 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \begin{macro}[internal]{\xeCJKallowbreakbetweenpuncts, \xeCJKnobreakbetweenpuncts}
% \begin{macrocode}
\NewDocumentCommand \xeCJKallowbreakbetweenpuncts { }
- { \cs_set_eq:NN \xeCJK_punct_nobreak: \xeCJK_zero_glue: }
+ { \cs_set_eq:NN \@@_punct_nobreak: \@@_zero_glue: }
\NewDocumentCommand \xeCJKnobreakbetweenpuncts { }
- { \cs_set_eq:NN \xeCJK_punct_nobreak: \xeCJK_no_break: }
-\cs_new_protected_nopar:Npn \xeCJK_zero_glue: { \skip_horizontal:N \c_zero_skip }
+ { \cs_set_eq:NN \@@_punct_nobreak: \@@_no_break: }
+\cs_new_protected_nopar:Npn \@@_zero_glue: { \skip_horizontal:N \c_zero_skip }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[internal]
-% {\g_xeCJK_special_ps_clist, \xeCJK_set_special_punct:nn,
-% \xeCJK_add_special_punct:nn, \xeCJK_sub_special_punct:nn}
+% {\g_@@_special_ps_clist, \@@_set_special_punct:nn,
+% \@@_add_special_punct:nn, \@@_sub_special_punct:nn}
% \begin{macrocode}
-\clist_set:Nn \g_xeCJK_special_ps_clist { mixedwidth , long , middle }
-\clist_map_inline:Nn \g_xeCJK_special_ps_clist
+\clist_set:Nn \g_@@_special_ps_clist { mixedwidth , long , middle }
+\clist_map_inline:Nn \g_@@_special_ps_clist
{
- \tl_new:c { l_xeCJK_#1_punct_tl }
- \prop_new:c { l_xeCJK_#1_punct_prop }
+ \tl_new:c { l_@@_#1_punct_tl }
+ \prop_new:c { l_@@_#1_punct_prop }
}
-\cs_new_protected_nopar:Npn \xeCJK_set_special_punct:nn #1#2
+\cs_new_protected_nopar:Npn \@@_set_special_punct:nn #1#2
{
- \tl_set:cx { l_xeCJK_#1_punct_tl } {#2}
- \prop_clear:c { l_xeCJK_#1_punct_prop }
- \tl_map_inline:cn { l_xeCJK_#1_punct_tl }
- { \prop_put:cnn { l_xeCJK_#1_punct_prop } {##1} { } }
+ \tl_set:cx { l_@@_#1_punct_tl } {#2}
+ \prop_clear:c { l_@@_#1_punct_prop }
+ \tl_map_inline:cn { l_@@_#1_punct_tl }
+ { \prop_put:cnn { l_@@_#1_punct_prop } {##1} { } }
}
-\cs_new_protected_nopar:Npn \xeCJK_add_special_punct:nn #1#2
+\cs_new_protected_nopar:Npn \@@_add_special_punct:nn #1#2
{
- \tl_put_right:cx { l_xeCJK_#1_punct_tl } {#2}
- \tl_map_inline:cn { l_xeCJK_#1_punct_tl }
- { \prop_put:cnn { l_xeCJK_#1_punct_prop } {##1} { } }
+ \tl_put_right:cx { l_@@_#1_punct_tl } {#2}
+ \tl_map_inline:cn { l_@@_#1_punct_tl }
+ { \prop_put:cnn { l_@@_#1_punct_prop } {##1} { } }
}
-\cs_new_protected_nopar:Npn \xeCJK_sub_special_punct:nn #1#2
+\cs_new_protected_nopar:Npn \@@_sub_special_punct:nn #1#2
{
\tl_map_inline:xn {#2}
{
- \tl_remove_all:cn { l_xeCJK_#1_punct_tl } {##1}
- \prop_remove:cn { l_xeCJK_#1_punct_prop } {##1}
+ \tl_remove_all:cn { l_@@_#1_punct_tl } {##1}
+ \prop_remove:cn { l_@@_#1_punct_prop } {##1}
}
}
\cs_generate_variant:Nn \tl_map_inline:nn { x }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\dim_set:Nc,\dim_add:Nc,\dim_set_min:Nc}
+% \begin{macro}[internal]{\dim_set:Nc,\dim_add:Nc,\dim_min:cc}
% \begin{macrocode}
\cs_generate_variant:Nn \dim_set:Nn { Nc }
\cs_generate_variant:Nn \dim_add:Nn { Nc }
-\cs_generate_variant:Nn \dim_set_min:Nn { Nc }
+\cs_generate_variant:Nn \dim_min:nn { cc }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\@@_dim_set_max:Nn,\@@_dim_set_min:Nn}
+% \begin{macrocode}
+\cs_new_protected_nopar:Npn \@@_dim_set_max:Nn #1#2
+ { \dim_set:Nn #1 { \dim_max:nn {#1} {#2} } }
+\cs_new_protected_nopar:Npn \@@_dim_set_min:Nn #1#2
+ { \dim_set:Nn #1 { \dim_min:nn {#1} {#2} } }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal,var]{\l_xeCJK_punct_coor_tl}
+% \begin{macro}[internal,var]{\l_@@_punct_coor_tl}
% 记录当前字体状态下的标点处理方式。
% \begin{macrocode}
-\tl_set:Nn \l_xeCJK_punct_coor_tl { \l_xeCJK_font_coor_tl/\l_xeCJK_punctstyle_tl }
+\tl_set:Nn \l_@@_punct_coor_tl { \l_@@_font_coor_tl/\l_@@_punctstyle_tl }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_get_punct_bounds:nN}
+% \begin{macro}[internal]{\@@_get_punct_bounds:nN}
% |#1| 为 |l/r|,|#2| 为标点字符,返回标点的实际左/右空白的负值和根据标点处理方式
% 决定添加的左/右空白。全角方式直接添加标点的实际左/右空白;半角方式添加标点左右空白
% 中的最小值;开明方式与半角相同,只在开明标点再增加实际左/右空白的一半。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_get_punct_bounds:nN #1#2
+\cs_new_protected_nopar:Npn \@@_get_punct_bounds:nN #1#2
{
- \tl_if_exist:cF { \l_xeCJK_punct_coor_tl/rule/#1/#2 }
+ \tl_if_exist:cF { \l_@@_punct_coor_tl/rule/#1/#2 }
{
- \tl_if_eq:NNTF \l_xeCJK_punctstyle_tl \c_xeCJK_ps_plain_tl
+ \tl_if_eq:NNTF \l_@@_punctstyle_tl \c_@@_ps_plain_tl
{
\clist_map_inline:nn { glue , rule , bound }
- { \tl_gset:cV { \l_xeCJK_punct_coor_tl/##1/#1/#2 } \c_zero_dim }
- \tl_gset:cV { \l_xeCJK_punct_coor_tl/rule/m/#2 } \c_zero_dim
+ { \tl_gset:cV { \l_@@_punct_coor_tl/##1/#1/#2 } \c_zero_dim }
+ \tl_gset:cV { \l_@@_punct_coor_tl/rule/m/#2 } \c_zero_dim
}
{
- \tl_if_exist:cF { \l_xeCJK_punct_coor_tl/bound/#1/#2 }
- { { \xeCJK_select_font: \xeCJK_get_punct_dimen:N {#2} } }
- \xeCJK_punct_if_long:NTF {#2}
+ \tl_if_exist:cF { \l_@@_punct_coor_tl/bound/#1/#2 }
+ { { \xeCJK_select_font: \@@_get_punct_dimen:N {#2} } }
+ \@@_punct_if_long:NTF {#2}
{
- \dim_zero:N \l_xeCJK_tmpa_dim
- \dim_zero:N \l_xeCJK_tmpb_dim
- \dim_zero:N \l_xeCJK_tmpc_dim
+ \dim_zero:N \l_@@_tmpa_dim
+ \dim_zero:N \l_@@_tmpb_dim
+ \dim_zero:N \l_@@_tmpc_dim
}
{
- \dim_set:Nc \l_xeCJK_tmpa_dim { \l_xeCJK_punct_coor_tl/bound/#1/#2 }
- \dim_set:Nc \l_xeCJK_tmpb_dim
- { \l_xeCJK_punct_coor_tl/bound/\str_if_eq_x:nnTF {#1} lrl/#2 }
- \dim_set:Nn \l_xeCJK_tmpc_dim
+ \dim_set:Nc \l_@@_tmpa_dim { \l_@@_punct_coor_tl/bound/#1/#2 }
+ \dim_set:Nc \l_@@_tmpb_dim
+ { \l_@@_punct_coor_tl/bound/\str_if_eq_x:nnTF {#1} lrl/#2 }
+ \dim_set:Nn \l_@@_tmpc_dim
{
- \cs_if_exist_use:cF { g_xeCJK_punct_width/#2 }
+ \cs_if_exist_use:cF { g_@@_punct_width/#2 }
{
- \xeCJK_if_blank_x:nTF \g_xeCJK_punct_width_tl
+ \@@_if_blank_x:nTF \g_@@_punct_width_tl
{ \c_zero_dim }
- { \g_xeCJK_punct_width_tl }
+ { \g_@@_punct_width_tl }
}
}
- \xeCJK_punct_if_middle:NTF {#2}
+ \@@_punct_if_middle:NTF {#2}
{
- \dim_set:Nn \l_xeCJK_tmpc_dim
+ \dim_set:Nn \l_@@_tmpc_dim
{
- \dim_compare:nNnTF \l_xeCJK_tmpc_dim > \c_zero_dim
- { \l_xeCJK_tmpc_dim }
+ \dim_compare:nNnTF \l_@@_tmpc_dim > \c_zero_dim
+ { \l_@@_tmpc_dim }
{
- \tl_case:Nnn \l_xeCJK_punctstyle_tl
+ \tl_case:Nnn \l_@@_punctstyle_tl
{
- \c_xeCJK_ps_halfwidth_tl { .5 em }
- \c_xeCJK_ps_mixedwidth_tl { .5 em }
- \c_xeCJK_ps_CCT_tl { .7 em }
- \c_xeCJK_ps_fullwidth_tl { 1 em }
+ \c_@@_ps_halfwidth_tl { .5 em }
+ \c_@@_ps_mixedwidth_tl { .5 em }
+ \c_@@_ps_CCT_tl { .7 em }
+ \c_@@_ps_fullwidth_tl { 1 em }
}
{ 1 em }
}
- - \tl_use:c { \l_xeCJK_punct_coor_tl/dimen/#2 }
+ - \tl_use:c { \l_@@_punct_coor_tl/dimen/#2 }
}
- \dim_set:Nn \l_xeCJK_tmpc_dim { .5 \l_xeCJK_tmpc_dim }
+ \dim_set:Nn \l_@@_tmpc_dim { .5 \l_@@_tmpc_dim }
}
{
- \dim_compare:nNnTF \l_xeCJK_tmpc_dim > \c_zero_dim
+ \dim_compare:nNnTF \l_@@_tmpc_dim > \c_zero_dim
{
- \dim_set:Nn \l_xeCJK_tmpc_dim
+ \dim_set:Nn \l_@@_tmpc_dim
{
- \l_xeCJK_tmpc_dim - \l_xeCJK_tmpb_dim
- - \tl_use:c { \l_xeCJK_punct_coor_tl/dimen/#2 }
+ \l_@@_tmpc_dim - \l_@@_tmpb_dim
+ - \tl_use:c { \l_@@_punct_coor_tl/dimen/#2 }
}
}
{
- \dim_set_eq:NN \l_xeCJK_tmpc_dim \l_xeCJK_tmpa_dim
- \dim_set_min:Nn \l_xeCJK_tmpc_dim \l_xeCJK_tmpb_dim
- \tl_case:Nnn \l_xeCJK_punctstyle_tl
+ \dim_set:Nn \l_@@_tmpc_dim
+ { \dim_min:nn \l_@@_tmpa_dim \l_@@_tmpb_dim }
+ \tl_case:Nnn \l_@@_punctstyle_tl
{
- \c_xeCJK_ps_halfwidth_tl { \prg_do_nothing: }
- \c_xeCJK_ps_mixedwidth_tl
+ \c_@@_ps_halfwidth_tl { \prg_do_nothing: }
+ \c_@@_ps_mixedwidth_tl
{
- \xeCJK_punct_if_mixedwidth:NT {#2}
+ \@@_punct_if_mixedwidth:NT {#2}
{
- \dim_add:Nn \l_xeCJK_tmpc_dim { .5 \l_xeCJK_tmpa_dim }
- \dim_set_min:Nn \l_xeCJK_tmpc_dim \l_xeCJK_tmpa_dim
+ \dim_add:Nn \l_@@_tmpc_dim { .5 \l_@@_tmpa_dim }
+ \@@_dim_set_min:Nn \l_@@_tmpc_dim \l_@@_tmpa_dim
}
}
- \c_xeCJK_ps_CCT_tl
+ \c_@@_ps_CCT_tl
{
- \xeCJK_punct_if_mixedwidth:NTF {#2}
- { \dim_add:Nn \l_xeCJK_tmpc_dim { .5 \l_xeCJK_tmpa_dim } }
- { \dim_add:Nn \l_xeCJK_tmpc_dim { .3 \l_xeCJK_tmpa_dim } }
- \dim_set_min:Nn \l_xeCJK_tmpc_dim \l_xeCJK_tmpa_dim
+ \@@_punct_if_mixedwidth:NTF {#2}
+ { \dim_add:Nn \l_@@_tmpc_dim { .5 \l_@@_tmpa_dim } }
+ { \dim_add:Nn \l_@@_tmpc_dim { .3 \l_@@_tmpa_dim } }
+ \@@_dim_set_min:Nn \l_@@_tmpc_dim \l_@@_tmpa_dim
}
}
- { \dim_set_eq:NN \l_xeCJK_tmpc_dim \l_xeCJK_tmpa_dim }
+ { \dim_set_eq:NN \l_@@_tmpc_dim \l_@@_tmpa_dim }
}
}
- \dim_set_max:Nn \l_xeCJK_tmpc_dim \c_zero_dim
+ \@@_dim_set_max:Nn \l_@@_tmpc_dim \c_zero_dim
}
- \tl_gset:cx { \l_xeCJK_punct_coor_tl/rule/#1/#2 }
- { - \dim_use:N \l_xeCJK_tmpa_dim }
- \tl_gset:cx { \l_xeCJK_punct_coor_tl/rule/m/#2 }
- { - \dim_use:N \l_xeCJK_tmpb_dim }
- \tl_gset:cV { \l_xeCJK_punct_coor_tl/glue/#1/#2 } \l_xeCJK_tmpc_dim
+ \tl_gset:cx { \l_@@_punct_coor_tl/rule/#1/#2 }
+ { - \dim_use:N \l_@@_tmpa_dim }
+ \tl_gset:cx { \l_@@_punct_coor_tl/rule/m/#2 }
+ { - \dim_use:N \l_@@_tmpb_dim }
+ \tl_gset:cV { \l_@@_punct_coor_tl/glue/#1/#2 } \l_@@_tmpc_dim
}
}
}
-\cs_generate_variant:Nn \xeCJK_get_punct_bounds:nN { nV }
+\cs_generate_variant:Nn \@@_get_punct_bounds:nN { nV }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\xeCJKsetwidth}
% \begin{macrocode}
\NewDocumentCommand \xeCJKsetwidth { m m }
- { \tl_map_inline:xn {#1} { \tl_gset:cn { g_xeCJK_punct_width/##1 } {#2} } }
+ { \tl_map_inline:xn {#1} { \tl_gset:cn { g_@@_punct_width/##1 } {#2} } }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[pTF,internal]
-% {\xeCJK_punct_if_right:N,\xeCJK_punct_if_both_left_right:NN,
-% \xeCJK_punct_if_long:N,\xeCJK_punct_if_middle:N,
-% \xeCJK_punct_if_mixedwidth:N}
+% {\@@_punct_if_right:N,\@@_punct_if_both_left_right:NN,
+% \@@_punct_if_long:N,\@@_punct_if_middle:N,
+% \@@_punct_if_mixedwidth:N}
% \begin{macrocode}
-\prg_new_conditional:Npnn \xeCJK_punct_if_right:N #1 { p , T , F , TF }
+\prg_new_conditional:Npnn \@@_punct_if_right:N #1 { p , T , F , TF }
{
- \tl_if_exist:cTF { \l_xeCJK_punct_coor_tl/glue/r/#1 }
+ \tl_if_exist:cTF { \l_@@_punct_coor_tl/glue/r/#1 }
\prg_return_true: \prg_return_false:
}
-\prg_new_conditional:Npnn \xeCJK_punct_if_both_left_right:NN #1#2 { p , T , F , TF }
+\prg_new_conditional:Npnn \@@_punct_if_both_left_right:NN #1#2 { p , T , F , TF }
{
\bool_if:nTF
{
- ( \tl_if_exist_p:c { \l_xeCJK_punct_coor_tl/glue/r/#1 } &&
- \tl_if_exist_p:c { \l_xeCJK_punct_coor_tl/glue/r/#2 } ) ||
- ( \tl_if_exist_p:c { \l_xeCJK_punct_coor_tl/glue/l/#1 } &&
- \tl_if_exist_p:c { \l_xeCJK_punct_coor_tl/glue/l/#2 } )
+ ( \tl_if_exist_p:c { \l_@@_punct_coor_tl/glue/r/#1 } &&
+ \tl_if_exist_p:c { \l_@@_punct_coor_tl/glue/r/#2 } ) ||
+ ( \tl_if_exist_p:c { \l_@@_punct_coor_tl/glue/l/#1 } &&
+ \tl_if_exist_p:c { \l_@@_punct_coor_tl/glue/l/#2 } )
}
\prg_return_true: \prg_return_false:
}
\cs_generate_variant:Nn \prg_new_conditional:Npnn { c }
-\clist_map_inline:Nn \g_xeCJK_special_ps_clist
+\clist_map_inline:Nn \g_@@_special_ps_clist
{
- \prg_new_conditional:cpnn { xeCJK_punct_if_#1:N } ##1 { p , T , F , TF }
+ \prg_new_conditional:cpnn { @@_punct_if_#1:N } ##1 { p , T , F , TF }
{
- \prop_if_in:cnTF { l_xeCJK_#1_punct_prop } {##1}
+ \prop_if_in:cnTF { l_@@_#1_punct_prop } {##1}
\prg_return_true: \prg_return_false:
}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_get_kern:NN,\xeCJK_calc_kern:NN}
+% \begin{macro}[internal]{\@@_get_kern:NN,\@@_calc_kern:NN}
% 标点挤压。行末半角方式,相邻标点不挤压;全角方式,相邻两个标点占 1.5 汉字宽度,
% 半角、开明和 CCT 方式相邻标点占一个汉字宽度。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_get_kern:NN #1#2
+\cs_new_protected_nopar:Npn \@@_get_kern:NN #1#2
{
- \tl_if_exist:cF { \l_xeCJK_punct_coor_tl/kern/#1-#2 }
+ \tl_if_exist:cF { \l_@@_punct_coor_tl/kern/#1-#2 }
{
- \dim_zero:N \l_xeCJK_tmpa_dim
- \tl_if_eq:NNF \l_xeCJK_punctstyle_tl \c_xeCJK_ps_plain_tl
+ \dim_zero:N \l_@@_tmpa_dim
+ \tl_if_eq:NNF \l_@@_punctstyle_tl \c_@@_ps_plain_tl
{
- \tl_if_exist:cTF { g_xeCJK_punct/kern/#1-#2 }
- { \dim_set:Nc \l_xeCJK_tmpa_dim { g_xeCJK_punct/kern/#1-#2 } }
- { \xeCJK_calc_kern:NN {#1} {#2} }
+ \tl_if_exist:cTF { g_@@_punct/kern/#1-#2 }
+ { \dim_set:Nc \l_@@_tmpa_dim { g_@@_punct/kern/#1-#2 } }
+ { \@@_calc_kern:NN {#1} {#2} }
}
- \tl_gset:cV { \l_xeCJK_punct_coor_tl/kern/#1-#2 } \l_xeCJK_tmpa_dim
+ \tl_gset:cV { \l_@@_punct_coor_tl/kern/#1-#2 } \l_@@_tmpa_dim
}
}
-\cs_new_protected_nopar:Npn \xeCJK_calc_kern:NN #1#2
+\cs_new_protected_nopar:Npn \@@_calc_kern:NN #1#2
{
- \tl_if_eq:NNTF \l_xeCJK_punctstyle_tl \c_xeCJK_ps_marginkerning_tl
+ \tl_if_eq:NNTF \l_@@_punctstyle_tl \c_@@_ps_marginkerning_tl
{
- \xeCJK_punct_if_right:NT {#1}
- { \dim_add:Nc \l_xeCJK_tmpa_dim { \l_xeCJK_punct_coor_tl/bound/r/#1 } }
- \xeCJK_punct_if_right:NF {#2}
- { \dim_add:Nc \l_xeCJK_tmpa_dim { \l_xeCJK_punct_coor_tl/bound/l/#2 } }
+ \@@_punct_if_right:NT {#1}
+ { \dim_add:Nc \l_@@_tmpa_dim { \l_@@_punct_coor_tl/bound/r/#1 } }
+ \@@_punct_if_right:NF {#2}
+ { \dim_add:Nc \l_@@_tmpa_dim { \l_@@_punct_coor_tl/bound/l/#2 } }
}
{
- \tl_if_eq:NNTF \l_xeCJK_punctstyle_tl \c_xeCJK_ps_fullwidth_tl
- { \xeCJK_calc_kern:NnNN \l_xeCJK_tmpa_dim { 1.5 em } {#1} {#2} }
+ \tl_if_eq:NNTF \l_@@_punctstyle_tl \c_@@_ps_fullwidth_tl
+ { \@@_calc_kern:NnNN \l_@@_tmpa_dim { 1.5 em } {#1} {#2} }
{
- \xeCJK_punct_if_both_left_right:NNTF {#1} {#2}
+ \@@_punct_if_both_left_right:NNTF {#1} {#2}
{
- \xeCJK_punct_if_mixedwidth:NT {#1}
+ \@@_punct_if_mixedwidth:NT {#1}
{
- \xeCJK_calc_kern:NnNN \l_xeCJK_tmpa_dim { 1 em } {#1} {#2}
- \dim_compare:nNnT \l_xeCJK_tmpa_dim < { .1 em }
- { \dim_set:Nc \l_xeCJK_tmpa_dim { \l_xeCJK_punct_coor_tl/bound/l/#1 } }
+ \@@_calc_kern:NnNN \l_@@_tmpa_dim { 1 em } {#1} {#2}
+ \dim_compare:nNnT \l_@@_tmpa_dim < { .1 em }
+ { \dim_set:Nc \l_@@_tmpa_dim { \l_@@_punct_coor_tl/bound/l/#1 } }
}
}
{
\bool_if:nTF
{
- \xeCJK_punct_if_mixedwidth_p:N {#1} &&
- ! ( \tl_if_eq_p:NN \l_xeCJK_punctstyle_tl \c_xeCJK_ps_halfwidth_tl )
+ \@@_punct_if_mixedwidth_p:N {#1} &&
+ ! ( \tl_if_eq_p:NN \l_@@_punctstyle_tl \c_@@_ps_halfwidth_tl )
}
{
- \dim_set:Nc \l_xeCJK_tmpa_dim { \l_xeCJK_punct_coor_tl/glue/r/#1 }
- \dim_set:Nn \l_xeCJK_tmpa_dim { .7 \l_xeCJK_tmpa_dim }
+ \dim_set:Nc \l_@@_tmpa_dim { \l_@@_punct_coor_tl/glue/r/#1 }
+ \dim_set:Nn \l_@@_tmpa_dim { .7 \l_@@_tmpa_dim }
}
{
- \xeCJK_calc_kern:NnNN \l_xeCJK_tmpa_dim { 1 em } {#1} {#2}
- \dim_compare:nNnT \l_xeCJK_tmpa_dim < { .1 em }
+ \@@_calc_kern:NnNN \l_@@_tmpa_dim { 1 em } {#1} {#2}
+ \dim_compare:nNnT \l_@@_tmpa_dim < { .1 em }
{
- \dim_set:Nc \l_xeCJK_tmpa_dim { \l_xeCJK_punct_coor_tl/bound/l/#1 }
- \dim_set_min:Nc \l_xeCJK_tmpa_dim { \l_xeCJK_punct_coor_tl/bound/r/#1 }
- \dim_set:Nc \l_xeCJK_tmpb_dim { \l_xeCJK_punct_coor_tl/bound/l/#2 }
- \dim_set_min:Nc \l_xeCJK_tmpb_dim { \l_xeCJK_punct_coor_tl/bound/r/#2 }
- \dim_set_max:Nn \l_xeCJK_tmpa_dim \l_xeCJK_tmpb_dim
+ \dim_set:Nn \l_@@_tmpa_dim
+ {
+ \dim_max:nn
+ {
+ \dim_min:cc
+ { \l_@@_punct_coor_tl/bound/l/#1 }
+ { \l_@@_punct_coor_tl/bound/r/#1 }
+ }
+ {
+ \dim_min:cc
+ { \l_@@_punct_coor_tl/bound/l/#2 }
+ { \l_@@_punct_coor_tl/bound/r/#2 }
+ }
+ }
}
}
}
}
\bool_if:nT
- { \xeCJK_punct_if_long_p:N {#1} || \xeCJK_punct_if_long_p:N {#2} }
- { \dim_set_max:Nn \l_xeCJK_tmpa_dim { .1 em } }
+ { \@@_punct_if_long_p:N {#1} || \@@_punct_if_long_p:N {#2} }
+ { \@@_dim_set_max:Nn \l_@@_tmpa_dim { .1 em } }
}
- \dim_set_max:Nn \l_xeCJK_tmpa_dim \c_zero_dim
+ \@@_dim_set_max:Nn \l_@@_tmpa_dim \c_zero_dim
}
-\cs_generate_variant:Nn \xeCJK_get_kern:NN { V }
+\cs_generate_variant:Nn \@@_get_kern:NN { V }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_calc_kern:NnNN}
+% \begin{macro}[internal]{\@@_calc_kern:NnNN}
% |#3| 和 |#4| 为相邻的两个标点,|#2| 为要确定的相邻两个标点总共占的宽度,|#1| 是
% 尺寸寄存器,用于记录根据所占宽度计算得出的相邻两个标点间距。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_calc_kern:NnNN #1#2#3#4
+\cs_new_protected_nopar:Npn \@@_calc_kern:NnNN #1#2#3#4
{
\dim_set:Nn #1
{
#2
- - \tl_use:c { \l_xeCJK_punct_coor_tl/
- \xeCJK_punct_if_right:NTF {#3} { bound } { glue } /l/#3 }
- - \tl_use:c { \l_xeCJK_punct_coor_tl/
- \xeCJK_punct_if_right:NTF {#4} { glue } { bound } /r/#4 }
- - \tl_use:c { \l_xeCJK_punct_coor_tl/dimen/#3 }
- - \tl_use:c { \l_xeCJK_punct_coor_tl/dimen/#4 }
- \xeCJK_punct_if_both_left_right:NNT {#3} {#4}
- { + \tl_use:c { \l_xeCJK_punct_coor_tl/rule/m/#4 } }
+ - \tl_use:c { \l_@@_punct_coor_tl/
+ \@@_punct_if_right:NTF {#3} { bound } { glue } /l/#3 }
+ - \tl_use:c { \l_@@_punct_coor_tl/
+ \@@_punct_if_right:NTF {#4} { glue } { bound } /r/#4 }
+ - \tl_use:c { \l_@@_punct_coor_tl/dimen/#3 }
+ - \tl_use:c { \l_@@_punct_coor_tl/dimen/#4 }
+ \@@_punct_if_both_left_right:NNT {#3} {#4}
+ { + \tl_use:c { \l_@@_punct_coor_tl/rule/m/#4 } }
}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_get_punct_dimen:N}
+% \begin{macro}[internal]{\@@_get_punct_dimen:N}
% 返回标点的左右空白和实际尺寸。对于破折号,计算两标点之间的空白,保证它中间不被断开。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_get_punct_dimen:N #1
+\cs_new_protected_nopar:Npn \@@_get_punct_dimen:N #1
{
- \xeCJK_get_glyph_bounds:nNN { left } {#1} \l_xeCJK_tmpa_dim
- \tl_gset:cV { \l_xeCJK_punct_coor_tl/bound/l/#1 } \l_xeCJK_tmpa_dim
- \dim_set_eq:NN \l_xeCJK_tmpb_dim \l_xeCJK_tmpa_dim
- \xeCJK_get_glyph_bounds:nNN { right } {#1} \l_xeCJK_tmpa_dim
- \tl_gset:cV { \l_xeCJK_punct_coor_tl/bound/r/#1 } \l_xeCJK_tmpa_dim
- \dim_add:Nn \l_xeCJK_tmpb_dim \l_xeCJK_tmpa_dim
- \tl_gset:cx { \l_xeCJK_punct_coor_tl/dimen/#1 }
- { \dim_eval:n { \etex_fontcharwd:D \tex_font:D `#1 - \l_xeCJK_tmpb_dim } }
+ \@@_get_glyph_bounds:nNN { left } {#1} \l_@@_tmpa_dim
+ \tl_gset:cV { \l_@@_punct_coor_tl/bound/l/#1 } \l_@@_tmpa_dim
+ \dim_set_eq:NN \l_@@_tmpb_dim \l_@@_tmpa_dim
+ \@@_get_glyph_bounds:nNN { right } {#1} \l_@@_tmpa_dim
+ \tl_gset:cV { \l_@@_punct_coor_tl/bound/r/#1 } \l_@@_tmpa_dim
+ \dim_add:Nn \l_@@_tmpb_dim \l_@@_tmpa_dim
+ \tl_gset:cx { \l_@@_punct_coor_tl/dimen/#1 }
+ { \dim_eval:n { \etex_fontcharwd:D \tex_font:D `#1 - \l_@@_tmpb_dim } }
\bool_if:nT
{
- \xeCJK_punct_if_long_p:N {#1} &&
+ \@@_punct_if_long_p:N {#1} &&
! ( \str_if_eq_x_p:nn {#1} { … } || \str_if_eq_x_p:nn {#1} { ‥ } )
}
{
- \clist_map_inline:Nn \g_xeCJK_punctstyle_clist
+ \clist_map_inline:Nn \g_@@_punctstyle_clist
{
- \str_if_eq_x:nnF \c_xeCJK_ps_plain_tl {##1}
+ \str_if_eq_x:nnF \c_@@_ps_plain_tl {##1}
{
- \tl_gset:cx { \l_xeCJK_font_coor_tl/##1/kern/#1-#1 }
- { - \dim_use:N \l_xeCJK_tmpb_dim }
+ \tl_gset:cx { \l_@@_font_coor_tl/##1/kern/#1-#1 }
+ { - \dim_use:N \l_@@_tmpb_dim }
}
}
}
@@ -2875,10 +2916,10 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_get_glyph_bounds:nNN}
+% \begin{macro}[internal]{\@@_get_glyph_bounds:nNN}
% 用 |\XeTeXglyphbounds| 计算标点的上下左右空白。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_get_glyph_bounds:nNN #1#2#3
+\cs_new_protected_nopar:Npn \@@_get_glyph_bounds:nNN #1#2#3
{
\dim_set:Nn #3
{
@@ -2899,7 +2940,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% 手动设置相邻标点的距离,仅在当前字体状态下有效。
% \begin{macrocode}
\NewDocumentCommand \xeCJKsetkern { m m m }
- { \tl_gset:cn { g_xeCJK_punct/kern/#1-#2 } {#3} }
+ { \tl_gset:cn { g_@@_punct/kern/#1-#2 } {#3} }
% \end{macrocode}
% \end{macro}
%
@@ -2922,79 +2963,79 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \begin{macro}[internal]{\xeCJKenablefallback, \xeCJKdisablefallback}
% 后备字体的启用开关,默认关闭。
% \begin{macrocode}
-\bool_new:N \l_xeCJK_fallback_bool
+\bool_new:N \l_@@_fallback_bool
\NewDocumentCommand \xeCJKenablefallback { }
{
- \bool_if:NF \l_xeCJK_fallback_bool
+ \bool_if:NF \l_@@_fallback_bool
{
- \bool_set_true:N \l_xeCJK_fallback_bool
- \cs_set_eq:NN \xeCJK_fallback_save_CJKsymbol:N \CJKsymbol
- \cs_set_eq:NN \CJKsymbol \xeCJK_fallback_testsymbol:N
+ \bool_set_true:N \l_@@_fallback_bool
+ \cs_set_eq:NN \@@_fallback_save_CJKsymbol:N \CJKsymbol
+ \cs_set_eq:NN \CJKsymbol \@@_fallback_testsymbol:N
}
}
\NewDocumentCommand \xeCJKdisablefallback { }
{
- \bool_if:NT \l_xeCJK_fallback_bool
+ \bool_if:NT \l_@@_fallback_bool
{
- \bool_set_false:N \l_xeCJK_fallback_bool
- \cs_set_eq:NN \CJKsymbol \xeCJK_fallback_save_CJKsymbol:N
+ \bool_set_false:N \l_@@_fallback_bool
+ \cs_set_eq:NN \CJKsymbol \@@_fallback_save_CJKsymbol:N
}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_fallback_testsymbol:N}
+% \begin{macro}[internal]{\@@_fallback_testsymbol:N}
% 测试当前字体中是否存在当前字符,如存在则直接输出,否则启用后备字体。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_fallback_testsymbol:N #1
+\cs_new_protected_nopar:Npn \@@_fallback_testsymbol:N #1
{
\font_glyph_if_exist:NnTF \tex_font:D {`#1}
- { \xeCJK_fallback_save_CJKsymbol:N {#1} }
+ { \@@_fallback_save_CJKsymbol:N {#1} }
{
- \xeCJK_family_if_exist:xTF { \xeCJK@family/FallBack }
+ \@@_family_if_exist:xTF { \l_xeCJK_family_tl/FallBack }
{ {
- \tl_put_right:Nn \xeCJK@family { /FallBack }
+ \tl_put_right:Nn \l_xeCJK_family_tl { /FallBack }
\xeCJK_select_font:
- \xeCJK_fallback_testsymbol:N {#1}
+ \@@_fallback_testsymbol:N {#1}
} }
{
- \xeCJK_warning:nx { fallback } {#1}
- \xeCJK_fallback_save_CJKsymbol:N {#1}
+ \@@_warning:nx { fallback } {#1}
+ \@@_fallback_save_CJKsymbol:N {#1}
}
}
}
-\xeCJK_msg_new:nn { fallback }
+\@@_msg_new:nn { fallback }
{
- CJKfamily~'\xeCJK@family'~
- ( \prop_get:NV \g_xeCJK_family_prop \xeCJK@family )~
+ CJKfamily~'\l_xeCJK_family_tl'~
+ ( \prop_get:NV \g_@@_family_prop \l_xeCJK_family_tl )~
does~not~contain~glyph~'#1'~(U+\int_to_hexadecimal:n {`#1}).\\
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\setCJKfallbackfamilyfont}
-% \begin{macro}[aux]{\xeCJK_set_family_fallback:nnn}
+% \begin{macro}[aux]{\@@_set_family_fallback:nnn}
% \begin{macrocode}
\NewDocumentCommand \setCJKfallbackfamilyfont { m O{} m }
{
\exp_args:Nx \tl_if_in:nnTF {#3} { , }
- { \xeCJK_set_family_fallback:nnn {#1} {#2} {#3} }
- { \xeCJK_set_family:nnn { #1/FallBack } {#2} {#3} }
+ { \@@_set_family_fallback:nnn {#1} {#2} {#3} }
+ { \xeCJK_set_family:xnn { #1/FallBack } {#2} {#3} }
}
-\cs_new_protected_nopar:Npn \xeCJK_set_family_fallback:nnn #1#2#3
+\cs_new_protected_nopar:Npn \@@_set_family_fallback:nnn #1#2#3
{
\group_begin:
- \tl_set:Nx \l_xeCJK_family_fb_tl {#1}
- \prop_get:NVNF \g_xeCJK_family_prop \l_xeCJK_family_fb_tl \l_xeCJK_fontname_tl
- { \tl_clear:N \l_xeCJK_fontname_tl }
+ \tl_set:Nx \l_@@_family_fb_tl {#1}
+ \prop_get:NVNF \g_@@_family_prop \l_@@_family_fb_tl \l_@@_fontname_tl
+ { \tl_clear:N \l_@@_fontname_tl }
\clist_map_inline:xn {#3}
{
- \tl_put_right:Nn \l_xeCJK_family_fb_tl { /FallBack }
- \xeCJK_get_sub_features:nn \l_xeCJK_family_fb_tl {##1}
- \clist_put_left:cx { l_xeCJK_ \l_xeCJK_family_fb_tl _fontfeat_clist } {#2}
- \xeCJK_set_family:ncc \l_xeCJK_family_fb_tl
- { l_xeCJK_ \l_xeCJK_family_fb_tl _fontfeat_clist }
- { l_xeCJK_ \l_xeCJK_family_fb_tl _fontname_tl }
+ \tl_put_right:Nn \l_@@_family_fb_tl { /FallBack }
+ \@@_get_sub_features:nn \l_@@_family_fb_tl {##1}
+ \clist_put_left:cx { l_@@_ \l_@@_family_fb_tl _fontfeat_clist } {#2}
+ \xeCJK_set_family:xcc \l_@@_family_fb_tl
+ { l_@@_ \l_@@_family_fb_tl _fontfeat_clist }
+ { l_@@_ \l_@@_family_fb_tl _fontname_tl }
}
\group_end:
}
@@ -3006,10 +3047,10 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \subsection{CJK 字体族声明方式}
%
% \begin{macrocode}
-\bool_new:N \g_xeCJK_AutoFakeBold_bool
-\bool_new:N \g_xeCJK_AutoFakeSlant_bool
-\fp_new:N \g_xeCJK_EmboldenFactor_fp
-\fp_new:N \g_xeCJK_SlantFactor_fp
+\bool_new:N \g_@@_AutoFakeBold_bool
+\bool_new:N \g_@@_AutoFakeSlant_bool
+\fp_new:N \g_@@_EmboldenFactor_fp
+\fp_new:N \g_@@_SlantFactor_fp
% \end{macrocode}
%
% \begin{macro}{AutoFakeBold, AutoFakeSlant,EmboldenFactor,SlantFactor}
@@ -3019,28 +3060,28 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
{
AutoFakeBold .choice:,
AutoFakeBold / true .code:n =
- { \bool_set_true:N \g_xeCJK_AutoFakeBold_bool },
+ { \bool_set_true:N \g_@@_AutoFakeBold_bool },
AutoFakeBold / false .code:n =
- { \bool_set_false:N \g_xeCJK_AutoFakeBold_bool },
+ { \bool_set_false:N \g_@@_AutoFakeBold_bool },
AutoFakeBold / unknown .code:n =
{
- \bool_set_true:N \g_xeCJK_AutoFakeBold_bool
- \fp_set:Nn \g_xeCJK_EmboldenFactor_fp { \l_keys_value_tl }
+ \bool_set_true:N \g_@@_AutoFakeBold_bool
+ \fp_set:Nn \g_@@_EmboldenFactor_fp { \l_keys_value_tl }
},
AutoFakeBold .default:n = { true },
AutoFakeSlant .choice:,
AutoFakeSlant / true .code:n =
- { \bool_set_true:N \g_xeCJK_AutoFakeSlant_bool },
+ { \bool_set_true:N \g_@@_AutoFakeSlant_bool },
AutoFakeSlant / false .code:n =
- { \bool_set_false:N \g_xeCJK_AutoFakeSlant_bool },
+ { \bool_set_false:N \g_@@_AutoFakeSlant_bool },
AutoFakeSlant / unknown .code:n =
{
- \bool_set_true:N \g_xeCJK_AutoFakeSlant_bool
- \fp_set:Nn \g_xeCJK_SlantFactor_fp { \l_keys_value_tl }
+ \bool_set_true:N \g_@@_AutoFakeSlant_bool
+ \fp_set:Nn \g_@@_SlantFactor_fp { \l_keys_value_tl }
},
AutoFakeSlant .default:n = { true },
- EmboldenFactor .fp_set:N = \g_xeCJK_EmboldenFactor_fp,
- SlantFactor .fp_set:N = \g_xeCJK_SlantFactor_fp,
+ EmboldenFactor .fp_set:N = \g_@@_EmboldenFactor_fp,
+ SlantFactor .fp_set:N = \g_@@_SlantFactor_fp,
BoldFont .meta:n = { AutoFakeBold = true },
boldfont .meta:n = { AutoFakeBold = true },
SlantFont .meta:n = { AutoFakeSlant = true },
@@ -3055,109 +3096,109 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_new_sub_key:n,\g_xeCJK_sub_key_clist}
+% \begin{macro}[internal]{\@@_new_sub_key:n,\g_@@_sub_key_clist}
% 用于定义 CJK 子区字体和备用字体的选项。
% \begin{macrocode}
-\clist_new:N \g_xeCJK_sub_key_clist
-\cs_new_protected_nopar:Npn \xeCJK_new_sub_key:n #1
+\clist_new:N \g_@@_sub_key_clist
+\cs_new_protected_nopar:Npn \@@_new_sub_key:n #1
{
- \clist_gput_right:Nx \g_xeCJK_sub_key_clist {#1}
+ \clist_gput_right:Nx \g_@@_sub_key_clist {#1}
\keys_define:nn { xeCJK / features }
{
#1 .code:n =
{
- \xeCJK_if_blank_x:nTF {##1}
+ \@@_if_blank_x:nTF {##1}
{
- \bool_set_false:c { l_xeCJK_copy_#1_bool }
- \bool_set_false:c { l_xeCJK_add_#1_bool }
- \tl_put_right:Nx \l_xeCJK_family_tl { /#1 }
+ \bool_set_false:c { l_@@_copy_#1_bool }
+ \bool_set_false:c { l_@@_add_#1_bool }
+ \tl_put_right:Nx \l_@@_family_tl { /#1 }
}
{
- \clist_put_right:Nx \l_xeCJK_sub_key_clist {#1}
+ \clist_put_right:Nx \l_@@_sub_key_clist {#1}
\str_if_eq_x:nnTF {##1} *
{
- \bool_set_true:c { l_xeCJK_copy_#1_bool }
- \bool_set_false:c { l_xeCJK_add_#1_bool }
+ \bool_set_true:c { l_@@_copy_#1_bool }
+ \bool_set_false:c { l_@@_add_#1_bool }
}
{
- \bool_set_false:c { l_xeCJK_copy_#1_bool }
- \bool_set_true:c { l_xeCJK_add_#1_bool }
- \xeCJK_get_sub_features:nn {#1} {##1}
+ \bool_set_false:c { l_@@_copy_#1_bool }
+ \bool_set_true:c { l_@@_add_#1_bool }
+ \@@_get_sub_features:nn {#1} {##1}
}
}
},
#1 .default:n = \c_empty_tl,
}
}
-\cs_generate_variant:Nn \xeCJK_new_sub_key:n { x }
-\cs_new_protected_nopar:Npn \xeCJK_get_sub_features:nn #1#2
+\cs_generate_variant:Nn \@@_new_sub_key:n { x }
+\cs_new_protected_nopar:Npn \@@_get_sub_features:nn #1#2
{
- \tl_set:Nx \l_xeCJK_tmpa_tl {#2}
- \clist_clear:N \l_xeCJK_sub_fontfeat_clist
- \xeCJK_gobble_brace:N \l_xeCJK_tmpa_tl
- \exp_args:No \tl_if_head_eq_charcode:nNTF \l_xeCJK_tmpa_tl [ % ]
+ \tl_set:Nx \l_@@_tmpa_tl {#2}
+ \clist_clear:N \l_@@_sub_fontfeat_clist
+ \@@_gobble_brace:N \l_@@_tmpa_tl
+ \exp_args:No \tl_if_head_eq_charcode:nNTF \l_@@_tmpa_tl [ % ]
{
- \exp_after:wN \xeCJK_get_sub_features_aux:n \l_xeCJK_tmpa_tl \c_empty_tl
- \xeCJK_if_blank_x:nT \l_xeCJK_sub_fontname_tl
+ \exp_after:wN \@@_get_sub_features_aux:n \l_@@_tmpa_tl \c_empty_tl
+ \@@_if_blank_x:nT \l_@@_sub_fontname_tl
{
- \tl_set:Nx \l_xeCJK_sub_fontname_tl \l_xeCJK_tmpa_tl
- \clist_clear:N \l_xeCJK_sub_fontfeat_clist
+ \tl_set:Nx \l_@@_sub_fontname_tl \l_@@_tmpa_tl
+ \clist_clear:N \l_@@_sub_fontfeat_clist
}
}
- { \tl_set:Nx \l_xeCJK_sub_fontname_tl \l_xeCJK_tmpa_tl }
- \xeCJK_if_blank_x:nTF \l_xeCJK_sub_fontname_tl
- { \tl_set:Nx \l_xeCJK_sub_fontname_tl \l_xeCJK_fontname_tl }
- { \tl_replace_all:Nnx \l_xeCJK_sub_fontname_tl * \l_xeCJK_fontname_tl }
- \clist_set:cx { l_xeCJK_#1_fontfeat_clist } \l_xeCJK_sub_fontfeat_clist
- \tl_set:cx { l_xeCJK_#1_fontname_tl } \l_xeCJK_sub_fontname_tl
+ { \tl_set:Nx \l_@@_sub_fontname_tl \l_@@_tmpa_tl }
+ \@@_if_blank_x:nTF \l_@@_sub_fontname_tl
+ { \tl_set:Nx \l_@@_sub_fontname_tl \l_@@_fontname_tl }
+ { \tl_replace_all:Nnx \l_@@_sub_fontname_tl * \l_@@_fontname_tl }
+ \clist_set:cx { l_@@_#1_fontfeat_clist } \l_@@_sub_fontfeat_clist
+ \tl_set:cx { l_@@_#1_fontname_tl } \l_@@_sub_fontname_tl
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[aux]
-% {\xeCJK_gobble_brace:N,\xeCJK_get_sub_features:nn,\xeCJK_get_sub_features_aux:n}
+% {\@@_gobble_brace:N,\@@_get_sub_features:nn,\@@_get_sub_features_aux:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_gobble_brace:N #1
+\cs_new_protected_nopar:Npn \@@_gobble_brace:N #1
{
\exp_args:No \tl_if_head_is_group:nT #1
{
\exp_last_unbraced:NNo \tl_set:Nn #1 #1
- \xeCJK_gobble_brace:N #1
+ \@@_gobble_brace:N #1
}
}
-\cs_new_protected_nopar:Npn \xeCJK_get_sub_features_aux:n [#1] #2
+\cs_new_protected_nopar:Npn \@@_get_sub_features_aux:n [#1] #2
{
- \clist_set:Nx \l_xeCJK_sub_fontfeat_clist {#1}
- \tl_set:Nx \l_xeCJK_sub_fontname_tl {#2}
+ \clist_set:Nx \l_@@_sub_fontfeat_clist {#1}
+ \tl_set:Nx \l_@@_sub_fontname_tl {#2}
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{FallBack}
% \begin{macrocode}
-\xeCJK_new_sub_key:n { FallBack }
+\@@_new_sub_key:n { FallBack }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\g_xeCJK_features_id_prop, BoldFont, ItalicFont, BoldItalicFont,
+% \begin{macro}[internal]{\g_@@_features_id_prop, BoldFont, ItalicFont, BoldItalicFont,
% SlantedFont, BoldSlantedFont,BoldFeatures, ItalicFeatures, BoldItalicFeatures,
% SlantedFeatures, BoldSlantedFeatures}
% 调用字体的属性声明,同 \pkg{fontspec} 宏包。
% \begin{macrocode}
-\cs_new_nopar:Npn \xeCJK_map_features_id:n #1
- { \prop_get:Nn \g_xeCJK_features_id_prop {#1} }
-\prop_new:N \g_xeCJK_features_id_prop
-\prop_put:Nnn \g_xeCJK_features_id_prop { bf } { Bold }
-\prop_put:Nnn \g_xeCJK_features_id_prop { it } { Italic }
-\prop_put:Nnn \g_xeCJK_features_id_prop { bfit } { BoldItalic }
-\prop_put:Nnn \g_xeCJK_features_id_prop { sl } { Slanted }
-\prop_put:Nnn \g_xeCJK_features_id_prop { bfsl } { BoldSlanted }
-\prop_map_inline:Nn \g_xeCJK_features_id_prop
+\cs_new_nopar:Npn \@@_map_features_id:n #1
+ { \prop_get:Nn \g_@@_features_id_prop {#1} }
+\prop_new:N \g_@@_features_id_prop
+\prop_put:Nnn \g_@@_features_id_prop { bf } { Bold }
+\prop_put:Nnn \g_@@_features_id_prop { it } { Italic }
+\prop_put:Nnn \g_@@_features_id_prop { bfit } { BoldItalic }
+\prop_put:Nnn \g_@@_features_id_prop { sl } { Slanted }
+\prop_put:Nnn \g_@@_features_id_prop { bfsl } { BoldSlanted }
+\prop_map_inline:Nn \g_@@_features_id_prop
{
\keys_define:nn { xeCJK / features }
{
- #2Font .tl_set_x:c = { l_xeCJK_fontname_#1_tl },
- #2Features .tl_set_x:c = { l_xeCJK_fontfeat_#1_clist } ,
+ #2Font .tl_set_x:c = { l_@@_fontname_#1_tl },
+ #2Features .tl_set_x:c = { l_@@_fontfeat_#1_clist } ,
}
}
% \end{macrocode}
@@ -3169,130 +3210,130 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
{
AutoFakeBold .choice:,
AutoFakeBold / false .code:n =
- { \bool_set_false:N \l_xeCJK_AutoFakeBold_bool },
+ { \bool_set_false:N \l_@@_AutoFakeBold_bool },
AutoFakeBold / unknown .code:n =
{
- \bool_set_true:N \l_xeCJK_AutoFakeBold_bool
- \fp_set:Nn \l_xeCJK_EmboldenFactor_fp { \l_keys_value_tl }
+ \bool_set_true:N \l_@@_AutoFakeBold_bool
+ \fp_set:Nn \l_@@_EmboldenFactor_fp { \l_keys_value_tl }
},
- AutoFakeBold .default:n = { \g_xeCJK_EmboldenFactor_fp },
+ AutoFakeBold .default:n = { \g_@@_EmboldenFactor_fp },
AutoFakeSlant .choice:,
AutoFakeSlant / false .code:n =
- { \bool_set_false:N \l_xeCJK_AutoFakeSlant_bool },
+ { \bool_set_false:N \l_@@_AutoFakeSlant_bool },
AutoFakeSlant / unknown .code:n =
{
- \bool_set_true:N \l_xeCJK_AutoFakeSlant_bool
- \fp_set:Nn \l_xeCJK_SlantFactor_fp { \l_keys_value_tl }
+ \bool_set_true:N \l_@@_AutoFakeSlant_bool
+ \fp_set:Nn \l_@@_SlantFactor_fp { \l_keys_value_tl }
},
- AutoFakeSlant .default:n = { \g_xeCJK_SlantFactor_fp },
+ AutoFakeSlant .default:n = { \g_@@_SlantFactor_fp },
Mono .choice:,
Mono / Exspace .code:n =
{
- \xeCJK_set_monoexspace:
- \tl_clear:N \l_xeCJK_monoscale_tl
+ \@@_set_monoexspace:
+ \tl_clear:N \l_@@_monoscale_tl
},
Mono / Scale .code:n =
{
- \xeCJK_set_monoscale:
- \tl_set:Nx \l_xeCJK_monoscale_tl { Scale = { \fp_use:N \g_xeCJK_monoscale_fp } }
+ \@@_set_monoscale:
+ \tl_set:Nx \l_@@_monoscale_tl { Scale = { \fp_use:N \g_@@_monoscale_fp } }
}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_set_init:}
+% \begin{macro}[internal]{\@@_set_init:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_set_init:
+\cs_new_protected_nopar:Npn \@@_set_init:
{
- \tl_clear:N \l_xeCJK_monoscale_tl
- \int_gincr:N \g_xeCJK_fontspec_int
- \prop_clear:N \l_xeCJK_add_font_prop
- \prop_map_inline:Nn \g_xeCJK_features_id_prop
+ \tl_clear:N \l_@@_monoscale_tl
+ \int_gincr:N \g_@@_fontspec_int
+ \prop_clear:N \l_@@_add_font_prop
+ \prop_map_inline:Nn \g_@@_features_id_prop
{
- \tl_clear:c { l_xeCJK_fontname_##1_tl }
- \clist_clear:c { l_xeCJK_fontfeat_##1_clist }
+ \tl_clear:c { l_@@_fontname_##1_tl }
+ \clist_clear:c { l_@@_fontfeat_##1_clist }
}
- \clist_clear:N \l_xeCJK_pass_features_clist
- \clist_clear:N \l_xeCJK_sub_key_clist
- \clist_map_inline:Nn \g_xeCJK_sub_key_clist
+ \clist_clear:N \l_@@_pass_features_clist
+ \clist_clear:N \l_@@_sub_key_clist
+ \clist_map_inline:Nn \g_@@_sub_key_clist
{
- \bool_set_false:c { l_xeCJK_copy_##1_bool }
- \bool_set_false:c { l_xeCJK_add_##1_bool }
+ \bool_set_false:c { l_@@_copy_##1_bool }
+ \bool_set_false:c { l_@@_add_##1_bool }
}
- \bool_set_eq:NN \l_xeCJK_AutoFakeBold_bool \g_xeCJK_AutoFakeBold_bool
- \bool_set_eq:NN \l_xeCJK_AutoFakeSlant_bool \g_xeCJK_AutoFakeSlant_bool
- \fp_set_eq:NN \l_xeCJK_EmboldenFactor_fp \g_xeCJK_EmboldenFactor_fp
- \fp_set_eq:NN \l_xeCJK_SlantFactor_fp \g_xeCJK_SlantFactor_fp
+ \bool_set_eq:NN \l_@@_AutoFakeBold_bool \g_@@_AutoFakeBold_bool
+ \bool_set_eq:NN \l_@@_AutoFakeSlant_bool \g_@@_AutoFakeSlant_bool
+ \fp_set_eq:NN \l_@@_EmboldenFactor_fp \g_@@_EmboldenFactor_fp
+ \fp_set_eq:NN \l_@@_SlantFactor_fp \g_@@_SlantFactor_fp
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_set_family:nnn}
+% \begin{macro}[internal]{\xeCJK_set_family:xnn}
% 设置一个 CJK 新字体族,与 |\newfontfamily| 类似,增加 |FallBack| 选项。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_set_family:nnn #1#2#3
+\cs_new_protected_nopar:Npn \xeCJK_set_family:xnn #1#2#3
{
\group_begin:
- \xeCJK_set_init:
- \tl_set:Nx \l_xeCJK_family_tl {#1}
- \clist_set:Nx \l_xeCJK_fontoptions_clist {#2}
- \tl_set:Nx \l_xeCJK_fontname_tl {#3}
+ \@@_set_init:
+ \tl_set:Nx \l_@@_family_tl {#1}
+ \clist_set:Nx \l_@@_fontoptions_clist {#2}
+ \tl_set:Nx \l_@@_fontname_tl {#3}
\keys_set_known:nxN { xeCJK / features }
- { \g_xeCJK_default_features_clist, #2 } \l_xeCJK_pass_features_clist
- \xeCJK_parse_features:
- \xeCJK_pass_features:
- \xeCJK_check_family:V \l_xeCJK_family_tl
- \cs_gset_protected_nopar:cpx { xeCJK/family/\l_xeCJK_family_tl }
+ { \g_@@_default_features_clist, #2 } \l_@@_pass_features_clist
+ \@@_parse_features:
+ \@@_pass_features:
+ \@@_check_family:V \l_@@_family_tl
+ \cs_gset_protected_nopar:cpx { @@/family/\l_@@_family_tl }
{
- \exp_not:n { \fontspec_set_family:Nnn \l_xeCJK_fontspec_family_tl }
- { \l_xeCJK_pass_features_clist } { \l_xeCJK_fontname_tl }
- \prop_gput:NnV \exp_not:N \g_xeCJK_family_name_prop
- { \l_xeCJK_family_tl } \exp_not:N \l_xeCJK_fontspec_family_tl
- \cs_gset_protected_nopar:cpx { xeCJK/family/\l_xeCJK_family_tl }
+ \exp_not:n { \fontspec_set_family:Nnn \l_@@_fontspec_family_tl }
+ { \l_@@_pass_features_clist } { \l_@@_fontname_tl }
+ \prop_gput:NnV \exp_not:N \g_@@_family_name_prop
+ { \l_@@_family_tl } \exp_not:N \l_@@_fontspec_family_tl
+ \cs_gset_protected_nopar:cpx { @@/family/\l_@@_family_tl }
\exp_not:n
{ {
\exp_not:N \fontencoding { \g_fontspec_encoding_tl }
- \exp_not:N \fontfamily { \l_xeCJK_fontspec_family_tl }
+ \exp_not:N \fontfamily { \l_@@_fontspec_family_tl }
\exp_not:N \selectfont
} }
}
- \xeCJK_save_family_info:
- \xeCJK_add_sub_block:
+ \@@_save_family_info:
+ \@@_add_sub_block:
\group_end:
}
-\cs_generate_variant:Nn \xeCJK_set_family:nnn { ncc }
+\cs_generate_variant:Nn \xeCJK_set_family:xnn { xcc }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_check_family:n}
+% \begin{macro}[internal]{\@@_check_family:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_check_family:n #1
+\cs_new_protected_nopar:Npn \@@_check_family:n #1
{
- \prop_get:NnNT \g_xeCJK_family_prop {#1} \l_xeCJK_tmpa_tl
+ \prop_get:NnNT \g_@@_family_prop {#1} \l_@@_tmpa_tl
{
- \prop_gpop:NnNT \g_xeCJK_family_name_prop {#1} \l_xeCJK_tmpa_tl { }
- \xeCJK_warning:nxx { CJKfamily-redef } {#1} \l_xeCJK_tmpa_tl
+ \prop_gpop:NnNT \g_@@_family_name_prop {#1} \l_@@_tmpa_tl { }
+ \@@_warning:nxx { CJKfamily-redef } {#1} \l_@@_tmpa_tl
}
}
-\cs_generate_variant:Nn \xeCJK_check_family:n { V }
-\xeCJK_msg_new:nn { CJKfamily-redef } { Redefining~CJKfamily~`#1'~(#2). }
+\cs_generate_variant:Nn \@@_check_family:n { V }
+\@@_msg_new:nn { CJKfamily-redef } { Redefining~CJKfamily~`#1'~(#2). }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_add_font:nn,\xeCJK_add_font_if_new:nn}
+% \begin{macro}[internal]{\@@_add_font:nn,\@@_add_font_if_new:nn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_add_font:nn #1#2
+\cs_new_protected_nopar:Npn \@@_add_font:nn #1#2
{
- \prop_put:Nxx \l_xeCJK_add_font_prop
- { \xeCJK_map_features_id:n {#1} Font } {#2}
+ \prop_put:Nxx \l_@@_add_font_prop
+ { \@@_map_features_id:n {#1} Font } {#2}
}
-\cs_new_protected_nopar:Npn \xeCJK_add_font_if_new:nn #1#2
+\cs_new_protected_nopar:Npn \@@_add_font_if_new:nn #1#2
{
- \prop_put_if_new:Nxx \l_xeCJK_add_font_prop
- { \xeCJK_map_features_id:n {#1} Font } {#2}
+ \prop_put_if_new:Nxx \l_@@_add_font_prop
+ { \@@_map_features_id:n {#1} Font } {#2}
}
-\cs_generate_variant:Nn \xeCJK_add_font:nn { nx, nc, nV, nv }
-\cs_generate_variant:Nn \xeCJK_add_font_if_new:nn { nx, nc, nV, nv }
+\cs_generate_variant:Nn \@@_add_font:nn { nx, nc, nV, nv }
+\cs_generate_variant:Nn \@@_add_font_if_new:nn { nx, nc, nV, nv }
% \end{macrocode}
% \end{macro}
%
@@ -3304,59 +3345,59 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\cs_generate_variant:Nn \prop_put_if_new:Nnn { Nxx }
% \end{macrocode}
%
-% \begin{macro}[internal]{\xeCJK_add_fake_bold:n,\xeCJK_add_fake_slant:n}
+% \begin{macro}[internal]{\@@_add_fake_bold:n,\@@_add_fake_slant:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_add_fake_bold:n #1
+\cs_new_protected_nopar:Npn \@@_add_fake_bold:n #1
{
- \clist_put_left:cx { l_xeCJK_fontfeat_#1_clist }
- { FakeBold = { \fp_use:N \l_xeCJK_EmboldenFactor_fp } }
+ \clist_put_left:cx { l_@@_fontfeat_#1_clist }
+ { FakeBold = { \fp_use:N \l_@@_EmboldenFactor_fp } }
}
-\cs_new_protected_nopar:Npn \xeCJK_add_fake_slant:n #1
+\cs_new_protected_nopar:Npn \@@_add_fake_slant:n #1
{
- \clist_put_left:cx { l_xeCJK_fontfeat_#1_clist }
- { FakeSlant = { \fp_use:N \l_xeCJK_SlantFactor_fp } }
+ \clist_put_left:cx { l_@@_fontfeat_#1_clist }
+ { FakeSlant = { \fp_use:N \l_@@_SlantFactor_fp } }
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_parse_features:,\xeCJK_parse_features:n}
+% \begin{macro}[internal]{\@@_parse_features:,\@@_parse_features:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_parse_features:
- { \prop_map_inline:Nn \g_xeCJK_features_id_prop { \xeCJK_parse_features:n {##1} } }
-\cs_new_protected_nopar:Npn \xeCJK_parse_features:n #1
+\cs_new_protected_nopar:Npn \@@_parse_features:
+ { \prop_map_inline:Nn \g_@@_features_id_prop { \@@_parse_features:n {##1} } }
+\cs_new_protected_nopar:Npn \@@_parse_features:n #1
{
- \xeCJK_if_font_select:nTF {#1}
+ \@@_if_font_select:nTF {#1}
{
- \xeCJK_add_font:nv {#1} { l_xeCJK_fontname_#1_tl }
- \xeCJK_if_it_or_sl:nTF {#1}
+ \@@_add_font:nv {#1} { l_@@_fontname_#1_tl }
+ \@@_if_it_or_sl:nTF {#1}
{
- \xeCJK_if_font_select:nF {bf#1}
- { \xeCJK_add_font_if_new:nv {bf#1} { l_xeCJK_fontname_#1_tl } }
+ \@@_if_font_select:nF {bf#1}
+ { \@@_add_font_if_new:nv {bf#1} { l_@@_fontname_#1_tl } }
}
{
\str_if_eq_x:nnT {#1} {bf}
{
\clist_map_inline:nn { it , sl }
{
- \xeCJK_if_font_select:nF {bf##1}
- { \xeCJK_add_font:nV {bf##1} \l_xeCJK_fontname_bf_tl }
+ \@@_if_font_select:nF {bf##1}
+ { \@@_add_font:nV {bf##1} \l_@@_fontname_bf_tl }
}
}
}
}
- { \xeCJK_set_fake:n {#1} }
+ { \@@_set_fake:n {#1} }
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[pTF,internal]{\xeCJK_if_font_select:n,\xeCJK_if_it_or_sl:n}
+% \begin{macro}[pTF,internal]{\@@_if_font_select:n,\@@_if_it_or_sl:n}
% \begin{macrocode}
-\prg_new_conditional:Npnn \xeCJK_if_font_select:n #1 { p, T, F, TF }
+\prg_new_conditional:Npnn \@@_if_font_select:n #1 { p, T, F, TF }
{
- \exp_args:Nc \xeCJK_if_blank_x:nTF { l_xeCJK_fontname_#1_tl }
+ \exp_args:Nc \@@_if_blank_x:nTF { l_@@_fontname_#1_tl }
\prg_return_false: \prg_return_true:
}
-\prg_new_conditional:Npnn \xeCJK_if_it_or_sl:n #1 { p, T, F, TF }
+\prg_new_conditional:Npnn \@@_if_it_or_sl:n #1 { p, T, F, TF }
{
\bool_if:nTF { \str_if_eq_x_p:nn { it } {#1} || \str_if_eq_x_p:nn { sl } {#1} }
\prg_return_true: \prg_return_false:
@@ -3364,227 +3405,227 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_set_fake:n}
+% \begin{macro}[internal]{\@@_set_fake:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_set_fake:n #1
+\cs_new_protected_nopar:Npn \@@_set_fake:n #1
{
\str_if_eq_x:nnTF {#1} { bf }
- { \bool_if:NT \l_xeCJK_AutoFakeBold_bool { \xeCJK_add_fake_bold:n {#1} } }
+ { \bool_if:NT \l_@@_AutoFakeBold_bool { \@@_add_fake_bold:n {#1} } }
{
- \bool_if:NTF \l_xeCJK_AutoFakeSlant_bool
+ \bool_if:NTF \l_@@_AutoFakeSlant_bool
{
\bool_if:nT
- { \xeCJK_if_it_or_sl_p:n {#1} ||
- ( \str_if_eq_x_p:nn {#1} {bfit} && ! ( \xeCJK_if_font_select_p:n {it} ) ) ||
- ( \str_if_eq_x_p:nn {#1} {bfsl} && ! ( \xeCJK_if_font_select_p:n {sl} ) )
+ { \@@_if_it_or_sl_p:n {#1} ||
+ ( \str_if_eq_x_p:nn {#1} {bfit} && ! ( \@@_if_font_select_p:n {it} ) ) ||
+ ( \str_if_eq_x_p:nn {#1} {bfsl} && ! ( \@@_if_font_select_p:n {sl} ) )
}
- { \xeCJK_add_fake_slant:n {#1} }
+ { \@@_add_fake_slant:n {#1} }
}
- { \xeCJK_if_it_or_sl:nT {#1} { \xeCJK_map_it_sl:n {#1} } }
+ { \@@_if_it_or_sl:nT {#1} { \@@_map_it_sl:n {#1} } }
\bool_if:nT
- { \l_xeCJK_AutoFakeBold_bool
- && ! ( \xeCJK_if_it_or_sl_p:n {#1} )
- && ! ( \xeCJK_if_font_select_p:n {bf} )
+ { \l_@@_AutoFakeBold_bool
+ && ! ( \@@_if_it_or_sl_p:n {#1} )
+ && ! ( \@@_if_font_select_p:n {bf} )
}
- { \xeCJK_add_fake_bold:n {#1} }
+ { \@@_add_fake_bold:n {#1} }
}
- \xeCJK_add_font_if_new:nn {#1} *
+ \@@_add_font_if_new:nn {#1} *
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_map_it_sl:n}
+% \begin{macro}[internal]{\@@_map_it_sl:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_map_it_sl:n #1
+\cs_new_protected_nopar:Npn \@@_map_it_sl:n #1
{
- \xeCJK_if_map_font_select:nT {#1}
+ \@@_if_map_font_select:nT {#1}
{
- \xeCJK_add_font:nx {#1} { \xeCJK_get_map_font:n {#1} }
- \xeCJK_if_font_select:nF {bf#1}
- { \xeCJK_add_font_if_new:nx {bf#1} { \xeCJK_get_map_font:n {#1} } }
+ \@@_add_font:nx {#1} { \@@_get_map_font:n {#1} }
+ \@@_if_font_select:nF {bf#1}
+ { \@@_add_font_if_new:nx {bf#1} { \@@_get_map_font:n {#1} } }
}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_get_map_font:n}
+% \begin{macro}[internal]{\@@_get_map_font:n}
% \begin{macrocode}
-\cs_new_nopar:Npn \xeCJK_get_map_font:n #1
- { \tl_use:c { l_xeCJK_fontname_\str_if_eq_x:nnTF {#1} {it} {sl} {it} _tl } }
+\cs_new_nopar:Npn \@@_get_map_font:n #1
+ { \tl_use:c { l_@@_fontname_\str_if_eq_x:nnTF {#1} {it} {sl} {it} _tl } }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[pTF,internal]{\xeCJK_if_map_font_select:n}
+% \begin{macro}[pTF,internal]{\@@_if_map_font_select:n}
% \begin{macrocode}
-\prg_new_conditional:Npnn \xeCJK_if_map_font_select:n #1 { p, T, F, TF }
+\prg_new_conditional:Npnn \@@_if_map_font_select:n #1 { p, T, F, TF }
{
- \xeCJK_if_blank_x:nTF { \xeCJK_get_map_font:n {#1} }
+ \@@_if_blank_x:nTF { \@@_get_map_font:n {#1} }
\prg_return_false: \prg_return_true:
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_pass_features:}
+% \begin{macro}[internal]{\@@_pass_features:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_pass_features:
+\cs_new_protected_nopar:Npn \@@_pass_features:
{
- \prop_map_inline:Nn \g_xeCJK_features_id_prop
+ \prop_map_inline:Nn \g_@@_features_id_prop
{
- \clist_if_empty:cF { l_xeCJK_fontfeat_##1_clist }
+ \clist_if_empty:cF { l_@@_fontfeat_##1_clist }
{
- \clist_put_right:Nx \l_xeCJK_pass_features_clist
- { ##2Features = { \tl_use:c { l_xeCJK_fontfeat_##1_clist } } }
+ \clist_put_right:Nx \l_@@_pass_features_clist
+ { ##2Features = { \tl_use:c { l_@@_fontfeat_##1_clist } } }
}
}
- \prop_map_inline:Nn \l_xeCJK_add_font_prop
- { \clist_put_right:Nx \l_xeCJK_pass_features_clist { ##1 = { ##2 } } }
- \xeCJK_if_blank_x:nF \l_xeCJK_monoscale_tl
- { \clist_put_right:Nx \l_xeCJK_pass_features_clist \l_xeCJK_monoscale_tl }
+ \prop_map_inline:Nn \l_@@_add_font_prop
+ { \clist_put_right:Nx \l_@@_pass_features_clist { ##1 = { ##2 } } }
+ \@@_if_blank_x:nF \l_@@_monoscale_tl
+ { \clist_put_right:Nx \l_@@_pass_features_clist \l_@@_monoscale_tl }
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[internal,var]
-% {\g_xeCJK_family_prop,\g_xeCJK_family_name_prop,\g_xeCJK_family_options_prop}
+% {\g_@@_family_prop,\g_@@_family_name_prop,\g_@@_family_options_prop}
% \begin{macrocode}
-\prop_new:N \g_xeCJK_family_prop
-\prop_new:N \g_xeCJK_family_name_prop
-\prop_new:N \g_xeCJK_family_options_prop
+\prop_new:N \g_@@_family_prop
+\prop_new:N \g_@@_family_name_prop
+\prop_new:N \g_@@_family_options_prop
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_save_family_info:}
+% \begin{macro}[internal]{\@@_save_family_info:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_save_family_info:
+\cs_new_protected_nopar:Npn \@@_save_family_info:
{
\group_begin:
- \clist_map_inline:Nn \g_xeCJK_CJK_subclass_clist
+ \clist_map_inline:Nn \g_@@_CJK_subclass_clist
{
- \clist_remove_all:Nn \l_xeCJK_fontoptions_clist {##1}
- \clist_remove_all:Nn \l_xeCJK_fontoptions_clist { ##1 = }
+ \clist_remove_all:Nn \l_@@_fontoptions_clist {##1}
+ \clist_remove_all:Nn \l_@@_fontoptions_clist { ##1 = }
}
- \prop_gput:NVV \g_xeCJK_family_prop \l_xeCJK_family_tl \l_xeCJK_fontname_tl
- \prop_gput:NVV \g_xeCJK_family_options_prop \l_xeCJK_family_tl \l_xeCJK_fontoptions_clist
+ \prop_gput:NVV \g_@@_family_prop \l_@@_family_tl \l_@@_fontname_tl
+ \prop_gput:NVV \g_@@_family_options_prop \l_@@_family_tl \l_@@_fontoptions_clist
\group_end:
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_add_sub_block:}
+% \begin{macro}[internal]{\@@_add_sub_block:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_add_sub_block:
+\cs_new_protected_nopar:Npn \@@_add_sub_block:
{
- \clist_remove_duplicates:N \l_xeCJK_sub_key_clist
- \clist_map_inline:Nn \l_xeCJK_sub_key_clist
+ \clist_remove_duplicates:N \l_@@_sub_key_clist
+ \clist_map_inline:Nn \l_@@_sub_key_clist
{
- \tl_set:Nx \l_xeCJK_sub_family_tl { \l_xeCJK_family_tl/##1 }
- \bool_if:cT { l_xeCJK_copy_##1_bool }
+ \tl_set:Nx \l_@@_sub_family_tl { \l_@@_family_tl/##1 }
+ \bool_if:cT { l_@@_copy_##1_bool }
{
- \xeCJK_check_family:V \l_xeCJK_sub_family_tl
- \prop_get:NVNT \g_xeCJK_family_prop \l_xeCJK_family_tl \l_xeCJK_tmpa_tl
- { \prop_gput:NVV \g_xeCJK_family_prop \l_xeCJK_sub_family_tl \l_xeCJK_tmpa_tl }
- \prop_get:NVNT \g_xeCJK_family_options_prop \l_xeCJK_family_tl \l_xeCJK_tmpa_clist
+ \@@_check_family:V \l_@@_sub_family_tl
+ \prop_get:NVNT \g_@@_family_prop \l_@@_family_tl \l_@@_tmpa_tl
+ { \prop_gput:NVV \g_@@_family_prop \l_@@_sub_family_tl \l_@@_tmpa_tl }
+ \prop_get:NVNT \g_@@_family_options_prop \l_@@_family_tl \l_@@_tmpa_clist
{
- \clist_remove_all:Nn \l_xeCJK_tmpa_clist { ##1 = * }
- \prop_gput:NVV \g_xeCJK_family_options_prop \l_xeCJK_sub_family_tl \l_xeCJK_tmpa_clist
+ \clist_remove_all:Nn \l_@@_tmpa_clist { ##1 = * }
+ \prop_gput:NVV \g_@@_family_options_prop \l_@@_sub_family_tl \l_@@_tmpa_clist
}
- \cs_gset_protected_nopar:cpx { xeCJK/family/\l_xeCJK_sub_family_tl }
+ \cs_gset_protected_nopar:cpx { @@/family/\l_@@_sub_family_tl }
{
- \xeCJK_family_if_exist:xT { \l_xeCJK_family_tl }
+ \@@_family_if_exist:xT { \l_@@_family_tl }
{
- \prop_get:NnNT \exp_not:N \g_xeCJK_family_name_prop
- { \l_xeCJK_family_tl } \exp_not:N \l_xeCJK_tmpa_tl
+ \prop_get:NnNT \exp_not:N \g_@@_family_name_prop
+ { \l_@@_family_tl } \exp_not:N \l_@@_tmpa_tl
{
- \prop_gput:NnV \exp_not:N \g_xeCJK_family_name_prop
- { \l_xeCJK_sub_family_tl } \exp_not:N \l_xeCJK_tmpa_tl
- \cs_gset_protected_nopar:cpx { xeCJK/family/\l_xeCJK_sub_family_tl }
+ \prop_gput:NnV \exp_not:N \g_@@_family_name_prop
+ { \l_@@_sub_family_tl } \exp_not:N \l_@@_tmpa_tl
+ \cs_gset_protected_nopar:cpx { @@/family/\l_@@_sub_family_tl }
\exp_not:n
{ {
\exp_not:N \fontencoding { \g_fontspec_encoding_tl }
- \exp_not:N \fontfamily { \l_xeCJK_tmpa_tl }
+ \exp_not:N \fontfamily { \l_@@_tmpa_tl }
\exp_not:N \selectfont
} }
}
}
}
}
- \bool_if:cT { l_xeCJK_add_##1_bool }
+ \bool_if:cT { l_@@_add_##1_bool }
{
- \xeCJK_set_family:ncc \l_xeCJK_sub_family_tl
- { l_xeCJK_##1_fontfeat_clist } { l_xeCJK_##1_fontname_tl }
+ \xeCJK_set_family:xcc \l_@@_sub_family_tl
+ { l_@@_##1_fontfeat_clist } { l_@@_##1_fontname_tl }
}
}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_copy_family:nn}
+% \begin{macro}[internal]{\@@_copy_family:nn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_copy_family:nn #1#2
+\cs_new_protected_nopar:Npn \@@_copy_family:nn #1#2
{
- \xeCJK_family_if_exist:xT {#2}
+ \@@_family_if_exist:xT {#2}
{
\tl_map_inline:nn
- { \g_xeCJK_family_prop \g_xeCJK_family_options_prop \g_xeCJK_family_name_prop }
- { \prop_get:NnNT ##1 {#2} \l_xeCJK_tmpa_tl { \prop_gput:NnV ##1 {#1} \l_xeCJK_tmpa_tl } }
- \cs_gset_eq:cc { xeCJK/family/#1 } { xeCJK/family/#2 }
+ { \g_@@_family_prop \g_@@_family_options_prop \g_@@_family_name_prop }
+ { \prop_get:NnNT ##1 {#2} \l_@@_tmpa_tl { \prop_gput:NnV ##1 {#1} \l_@@_tmpa_tl } }
+ \cs_gset_eq:cc { @@/family/#1 } { @@/family/#2 }
}
}
-\cs_generate_variant:Nn \xeCJK_copy_family:nn { xx }
+\cs_generate_variant:Nn \@@_copy_family:nn { xx }
% \end{macrocode}
% \end{macro}
%
% \subsection{字体切换}
%
-% \begin{macro}[internal]{\l_xeCJK_font_coor_tl,\xeCJK_select_font:,\xeCJK_switch_font:nn}
+% \begin{macro}[internal]{\l_@@_font_coor_tl,\xeCJK_select_font:,\@@_switch_font:nn}
% 缓存当前字体的原始格式,以加速编译。
% \begin{macrocode}
-\tl_set:Nn \l_xeCJK_font_coor_tl { xeCJK/\xeCJK@family/\f@series/\f@shape/\f@size }
+\tl_set:Nn \l_@@_font_coor_tl { @@/\l_xeCJK_family_tl/\f@series/\f@shape/\f@size }
\cs_new_protected_nopar:Npn \xeCJK_select_font:
{
- \cs_if_exist_use:cF { \l_xeCJK_font_coor_tl }
+ \cs_if_exist_use:cF { \l_@@_font_coor_tl }
{
- \tl_set:Nx \l_xeCJK_current_coor_tl \l_xeCJK_font_coor_tl
- \xeCJK_family_if_exist:xTF { \xeCJK@family }
- { \use:c { xeCJK/family/\xeCJK@family } }
+ \tl_set:Nx \l_@@_current_coor_tl \l_@@_font_coor_tl
+ \@@_family_if_exist:xTF { \l_xeCJK_family_tl }
+ { \use:c { @@/family/\l_xeCJK_family_tl } }
{ \use_none:nnnn }
- \exp_last_unbraced:NNV \cs_gset_eq:cN \l_xeCJK_current_coor_tl \tex_font:D
+ \exp_last_unbraced:NNV \cs_gset_eq:cN \l_@@_current_coor_tl \tex_font:D
}
}
\cs_new_eq:NN \xeCJK@setfont \xeCJK_select_font:
-\cs_new_protected_nopar:Npn \xeCJK_switch_font:nn #1#2
+\cs_new_protected_nopar:Npn \@@_switch_font:nn #1#2
{
\str_if_eq_x:nnF {#1} {#2}
{
- \xeCJK_info:nxx { CJK-block } {#1} {#2}
- \tl_remove_all:Nn \xeCJK@family { /#1 }
+ \@@_info:nxx { CJK-block } {#1} {#2}
+ \tl_remove_all:Nn \l_xeCJK_family_tl { /#1 }
\str_if_eq_x:nnF {#2} { CJK }
{
- \tl_set:Nx \l_xeCJK_tmpa_tl \xeCJK@family
- \tl_put_right:Nx \xeCJK@family { /#2 }
- \xeCJK_family_if_exist:xF \xeCJK@family
+ \tl_set:Nx \l_@@_tmpa_tl \l_xeCJK_family_tl
+ \tl_put_right:Nx \l_xeCJK_family_tl { /#2 }
+ \@@_family_if_exist:xF \l_xeCJK_family_tl
{
- \xeCJK_family_if_exist:xTF { \CJKfamilydefault/#2 }
- { \xeCJK_copy_family:xx \xeCJK@family { \CJKfamilydefault/#2 } }
- { \xeCJK_copy_family:xx \xeCJK@family \l_xeCJK_tmpa_tl }
+ \@@_family_if_exist:xTF { \CJKfamilydefault/#2 }
+ { \@@_copy_family:xx \l_xeCJK_family_tl { \CJKfamilydefault/#2 } }
+ { \@@_copy_family:xx \l_xeCJK_family_tl \l_@@_tmpa_tl }
}
}
}
\xeCJK_select_font:
}
-\xeCJK_msg_new:nn { CJK-block } { Switch~from~block~'#1'~to~'#2'. }
+\@@_msg_new:nn { CJK-block } { Switch~from~block~'#1'~to~'#2'. }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[TF,internal]{\xeCJK_family_if_exist:x}
+% \begin{macro}[TF,internal]{\@@_family_if_exist:x}
% \begin{macrocode}
-\prg_new_protected_conditional:Npnn \xeCJK_family_if_exist:x #1 { T, F, TF }
+\prg_new_protected_conditional:Npnn \@@_family_if_exist:x #1 { T, F, TF }
{
- \cs_if_free:cTF { xeCJK/family/#1 }
+ \cs_if_free:cTF { @@/family/#1 }
{ \prg_return_false: }
{
- \prop_get:NxNF \g_xeCJK_family_name_prop {#1} \l_xeCJK_family_name_tl
- { \use:c { xeCJK/family/#1 } }
+ \prop_get:NxNF \g_@@_family_name_prop {#1} \l_@@_family_name_tl
+ { \use:c { @@/family/#1 } }
\prg_return_true:
}
}
@@ -3597,19 +3638,19 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \begin{macrocode}
\NewDocumentCommand \CJKfamily { m }
{
- \cs_if_exist:cTF { xeCJK/family/#1 }
- { \tl_set:Nx \xeCJK@family {#1} }
+ \cs_if_exist:cTF { @@/family/#1 }
+ { \tl_set:Nx \l_xeCJK_family_tl {#1} }
{
- \seq_if_in:NxF \g_xeCJK_unknown_family_seq {#1}
+ \seq_if_in:NxF \g_@@_unknown_family_seq {#1}
{
- \seq_gput_right:Nx \g_xeCJK_unknown_family_seq {#1}
- \xeCJK_warning:nx { CJKfamily-Unknown } {#1}
+ \seq_gput_right:Nx \g_@@_unknown_family_seq {#1}
+ \@@_warning:nx { CJKfamily-Unknown } {#1}
}
}
\tex_ignorespaces:D
}
-\seq_new:N \g_xeCJK_unknown_family_seq
-\xeCJK_msg_new:nn { CJKfamily-Unknown }
+\seq_new:N \g_@@_unknown_family_seq
+\@@_msg_new:nn { CJKfamily-Unknown }
{
Unknown~CJK~family~'#1'~is~ignored.\\\\
Try~to~use~
@@ -3629,29 +3670,27 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% 分别用于预声明 CJK 字体和随机调用 CJK 字体。
% \begin{macrocode}
\NewDocumentCommand \setCJKfamilyfont { m O{} m }
- { \xeCJK_set_family:nnn {#1} {#2} {#3} }
+ { \xeCJK_set_family:xnn {#1} {#2} {#3} }
\NewDocumentCommand \newCJKfontfamily { o m O{} m }
{
- \IfNoValueTF {#1}
- { \tl_set:Nx \l_xeCJK_family_tl { \cs_to_str:N #2 } }
- { \tl_set:Nx \l_xeCJK_family_tl {#1} }
- \xeCJK_set_family:nnn \l_xeCJK_family_tl {#3} {#4}
- \cs_new_protected_nopar:Npx #2 { \exp_not:N \CJKfamily { \l_xeCJK_family_tl } }
+ \tl_set:Nx \l_@@_family_tl { \IfNoValueTF {#1} { \cs_to_str:N #2 } {#1} }
+ \xeCJK_set_family:xnn \l_@@_family_tl {#3} {#4}
+ \cs_new_protected_nopar:Npx #2 { \exp_not:N \CJKfamily { \l_@@_family_tl } }
}
-\int_new:N \g_xeCJK_fontspec_int
-\int_gdecr:N \g_xeCJK_fontspec_int
+\int_new:N \g_@@_fontspec_int
+\int_gdecr:N \g_@@_fontspec_int
\NewDocumentCommand \CJKfontspec { O{} m }
{
- \tl_set:Nx \l_xeCJK_CJKfontspec_id_tl { CJKfontspec/#1/#2/id }
- \cs_if_free:cT \l_xeCJK_CJKfontspec_id_tl
+ \tl_set:Nx \l_@@_CJKfontspec_id_tl { CJKfontspec/#1/#2/id }
+ \cs_if_free:cT \l_@@_CJKfontspec_id_tl
{
- \int_gincr:N \g_xeCJK_fontspec_int
- \tl_gset:Nx \g_xeCJK_family_spec_tl
- { CJKfontspec ( \int_use:N \g_xeCJK_fontspec_int ) }
- \xeCJK_set_family:nnn \g_xeCJK_family_spec_tl {#1} {#2}
- \tl_gset:cx \l_xeCJK_CJKfontspec_id_tl \g_xeCJK_family_spec_tl
+ \int_gincr:N \g_@@_fontspec_int
+ \tl_gset:Nx \g_@@_family_spec_tl
+ { CJKfontspec ( \int_use:N \g_@@_fontspec_int ) }
+ \xeCJK_set_family:xnn \g_@@_family_spec_tl {#1} {#2}
+ \tl_gset:cx \l_@@_CJKfontspec_id_tl \g_@@_family_spec_tl
}
- \exp_args:Nv \CJKfamily \l_xeCJK_CJKfontspec_id_tl
+ \exp_args:Nv \CJKfamily \l_@@_CJKfontspec_id_tl
\tex_ignorespaces:D
}
% \end{macrocode}
@@ -3660,53 +3699,53 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \begin{macro}{\defaultCJKfontfeatures, \addCJKfontfeatures}
% 分别用于设置 CJK 字体的默认属性和增加当前 CJK 字体的属性。
% \begin{macrocode}
-\clist_new:N \g_xeCJK_default_features_clist
+\clist_new:N \g_@@_default_features_clist
\NewDocumentCommand \defaultCJKfontfeatures { m }
- { \clist_gset:Nn \g_xeCJK_default_features_clist {#1} }
+ { \clist_gset:Nn \g_@@_default_features_clist {#1} }
\defaultCJKfontfeatures { Script = CJK }
\@onlypreamble \defaultCJKfontfeatures
\NewDocumentCommand \addCJKfontfeatures { m }
{
- \prop_if_in:NVTF \g_xeCJK_family_prop \xeCJK@family
+ \prop_if_in:NVTF \g_@@_family_prop \l_xeCJK_family_tl
{
\group_begin:
- \clist_set:Nx \l_xeCJK_tmpa_clist {#1}
- \prop_get:NVN \g_xeCJK_family_prop \xeCJK@family \l_xeCJK_tmpa_tl
- \clist_map_inline:Nn \g_xeCJK_CJK_subclass_clist
+ \clist_set:Nx \l_@@_tmpa_clist {#1}
+ \prop_get:NVN \g_@@_family_prop \l_xeCJK_family_tl \l_@@_tmpa_tl
+ \clist_map_inline:Nn \g_@@_CJK_subclass_clist
{
- \clist_if_in:NnT \l_xeCJK_tmpa_clist {##1}
+ \clist_if_in:NnT \l_@@_tmpa_clist {##1}
{
- \clist_remove_all:Nn \l_xeCJK_tmpa_clist {##1}
- \prop_get:NxNF \g_xeCJK_family_prop { \xeCJK@family/##1 } \l_xeCJK_tmpb_tl
+ \clist_remove_all:Nn \l_@@_tmpa_clist {##1}
+ \prop_get:NxNF \g_@@_family_prop { \l_xeCJK_family_tl/##1 } \l_@@_tmpb_tl
{
- \prop_get:NxNF \g_xeCJK_family_prop
- { \CJKfamilydefault/##1 } \l_xeCJK_tmpb_tl
- { \tl_set:Nx \l_xeCJK_tmpb_tl \l_xeCJK_tmpa_tl }
+ \prop_get:NxNF \g_@@_family_prop
+ { \CJKfamilydefault/##1 } \l_@@_tmpb_tl
+ { \tl_set:Nx \l_@@_tmpb_tl \l_@@_tmpa_tl }
}
- \clist_set:Nx \l_xeCJK_tmpa_clist
- { ##1 = { [ \l_xeCJK_tmpa_clist ] { \l_xeCJK_tmpb_tl } } }
+ \clist_set:Nx \l_@@_tmpa_clist
+ { ##1 = { [ \l_@@_tmpa_clist ] { \l_@@_tmpb_tl } } }
\clist_map_break:
}
}
- \prop_get:NVNF \g_xeCJK_family_options_prop \xeCJK@family \l_xeCJK_tmpb_clist
- { \clist_clear:N \l_xeCJK_tmpb_clist }
- \clist_clear:N \l_xeCJK_tmpc_clist
- \clist_map_inline:Nn \l_xeCJK_tmpb_clist
+ \prop_get:NVNF \g_@@_family_options_prop \l_xeCJK_family_tl \l_@@_tmpb_clist
+ { \clist_clear:N \l_@@_tmpb_clist }
+ \clist_clear:N \l_@@_tmpc_clist
+ \clist_map_inline:Nn \l_@@_tmpb_clist
{
- \clist_if_in:NnF \l_xeCJK_tmpa_clist {##1}
- { \clist_put_right:Nn \l_xeCJK_tmpc_clist {##1} }
+ \clist_if_in:NnF \l_@@_tmpa_clist {##1}
+ { \clist_put_right:Nn \l_@@_tmpc_clist {##1} }
}
- \clist_put_left:NV \l_xeCJK_tmpa_clist \l_xeCJK_tmpc_clist
+ \clist_put_left:NV \l_@@_tmpa_clist \l_@@_tmpc_clist
\use:x
- { \group_end: \exp_not:N \CJKfontspec [ \l_xeCJK_tmpa_clist ] { \l_xeCJK_tmpa_tl } }
+ { \group_end: \exp_not:N \CJKfontspec [ \l_@@_tmpa_clist ] { \l_@@_tmpa_tl } }
}
- { \xeCJK_warning:n { addCJKfontfeature-ignored } }
+ { \@@_warning:n { addCJKfontfeature-ignored } }
\tex_ignorespaces:D
}
\cs_new_eq:NN \addCJKfontfeature \addCJKfontfeatures
-\xeCJK_msg_new:nn { addCJKfontfeature-ignored }
+\@@_msg_new:nn { addCJKfontfeature-ignored }
{
- \tl_to_str:N \addCJKfontfeature (s)~ignored.\\\\
+ \token_to_str:N \addCJKfontfeature (s)~ignored.\\\\
It~cannot~be~used~with~a~font~that~wasn't~selected~by~xeCJK.
}
% \end{macrocode}
@@ -3716,20 +3755,20 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% 设置文档的 CJK 普通字体、无衬线字体。
% \begin{macrocode}
\NewDocumentCommand \setCJKmainfont { O{} m }
- { \xeCJK_set_family:nnn \CJKrmdefault {#1} {#2} }
+ { \xeCJK_set_family:xnn \CJKrmdefault {#1} {#2} }
\cs_new_eq:NN \setCJKromanfont \setCJKmainfont
\NewDocumentCommand \setCJKsansfont { O{} m }
- { \xeCJK_set_family:nnn \CJKsfdefault {#1} {#2} }
+ { \xeCJK_set_family:xnn \CJKsfdefault {#1} {#2} }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\CJKrmdefault,\CJKsfdefault,\CJKttdefault,\CJKfamilydefault}
% \begin{macrocode}
-\cs_if_free:NT \CJKrmdefault { \tl_set:Nn \CJKrmdefault { rm } }
-\cs_if_free:NT \CJKsfdefault { \tl_set:Nn \CJKsfdefault { sf } }
-\cs_if_free:NT \CJKttdefault { \tl_set:Nn \CJKttdefault { tt } }
-\cs_if_free:NT \CJKfamilydefault { \tl_set:Nn \CJKfamilydefault { \CJKrmdefault } }
-\tl_new:c { xeCJK/family/\CJKfamilydefault }
+\tl_if_exist:NF \CJKrmdefault { \tl_set:Nn \CJKrmdefault { rm } }
+\tl_if_exist:NF \CJKsfdefault { \tl_set:Nn \CJKsfdefault { sf } }
+\tl_if_exist:NF \CJKttdefault { \tl_set:Nn \CJKttdefault { tt } }
+\tl_if_exist:NF \CJKfamilydefault { \tl_set:Nn \CJKfamilydefault { \CJKrmdefault } }
+\tl_new:c { @@/family/\CJKfamilydefault }
% \end{macrocode}
% \end{macro}
%
@@ -3761,15 +3800,15 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% 设置 CJK 数学字体。
% \begin{macrocode}
\NewDocumentCommand \setCJKmathfont { O{} m }
- { \xeCJK_set_family:nnn \c_xeCJK_math_tl {#1} {#2} }
+ { \xeCJK_set_family:xnn \c_@@_math_tl {#1} {#2} }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{CJKmath}
% 数学公式内的 CJK 字体。
% \begin{macrocode}
-\tl_const:Nn \c_xeCJK_math_tl { CJKmath }
-\keys_define:nn { xeCJK / options } { CJKmath .bool_gset:N = \g_xeCJK_math_bool }
+\tl_const:Nn \c_@@_math_tl { CJKmath }
+\keys_define:nn { xeCJK / options } { CJKmath .bool_gset:N = \g_@@_math_bool }
% \end{macrocode}
% \end{macro}
%
@@ -3777,42 +3816,42 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \begin{macrocode}
\NewDocumentCommand \xeCJKsetmathcode { m m m m }
{
- \xeCJK_check_num_range:nnNN {#1} {#2} \l_xeCJK_tmpa_int \l_xeCJK_tmpb_int
- \int_set:Nn \l_xeCJK_tmpc_int { \xeCJK_math_type:n {#3} }
- \loop
- \XeTeXmathcode
- \l_xeCJK_tmpa_int = \l_xeCJK_tmpc_int \use:c { sym #4 } \l_xeCJK_tmpa_int
- \if_int_compare:w \l_xeCJK_tmpa_int < \l_xeCJK_tmpb_int
- \int_incr:N \l_xeCJK_tmpa_int
- \repeat
+ \@@_check_num_range:nnNN {#1} {#2} \l_@@_tmpa_int \l_@@_tmpb_int
+ \int_set:Nn \l_@@_tmpc_int { \@@_math_type:n {#3} }
+ \int_set:Nn \l_tmpa_int { \use:c { sym #4 } }
+ \@@_int_until_do:nn { \l_@@_tmpa_int > \l_@@_tmpb_int }
+ {
+ \XeTeXmathcode \l_@@_tmpa_int = \l_@@_tmpc_int \l_tmpa_int \l_@@_tmpa_int
+ \int_incr:N \l_@@_tmpa_int
+ }
}
-\cs_new_eq:NN \xeCJK_math_type:n \mathchar@type
+\cs_new_eq:NN \@@_math_type:n \mathchar@type
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_set_mathfont:}
+% \begin{macro}[internal]{\@@_set_mathfont:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_set_mathfont:
+\cs_new_protected_nopar:Npn \@@_set_mathfont:
{
- \xeCJK_family_if_exist:xTF \c_xeCJK_math_tl
- { \tl_set:Nx \l_xeCJK_tmpa_tl \c_xeCJK_math_tl }
+ \@@_family_if_exist:xTF \c_@@_math_tl
+ { \tl_set:Nx \l_@@_tmpa_tl \c_@@_math_tl }
{
- \xeCJK_family_if_exist:xTF \CJKfamilydefault
- { \tl_set:Nx \l_xeCJK_tmpa_tl \CJKfamilydefault }
- { \tl_set_eq:NN \l_xeCJK_tmpa_tl \q_no_value }
+ \@@_family_if_exist:xTF \CJKfamilydefault
+ { \tl_set:Nx \l_@@_tmpa_tl \CJKfamilydefault }
+ { \tl_set_eq:NN \l_@@_tmpa_tl \q_no_value }
}
- \prop_get:NVNT \g_xeCJK_family_name_prop \l_xeCJK_tmpa_tl \l_xeCJK_math_family_tl
+ \prop_get:NVNT \g_@@_family_name_prop \l_@@_tmpa_tl \l_@@_math_family_tl
{
- \DeclareSymbolFont \c_xeCJK_math_tl \g_fontspec_encoding_tl
- \l_xeCJK_math_family_tl \mddefault \shapedefault
- \SetSymbolFont \c_xeCJK_math_tl { bold } \g_fontspec_encoding_tl
- \l_xeCJK_math_family_tl \bfdefault \shapedefault
+ \DeclareSymbolFont \c_@@_math_tl \g_fontspec_encoding_tl
+ \l_@@_math_family_tl \mddefault \shapedefault
+ \SetSymbolFont \c_@@_math_tl { bold } \g_fontspec_encoding_tl
+ \l_@@_math_family_tl \bfdefault \shapedefault
\clist_map_inline:nn { CJK, FullLeft, FullRight }
{
- \clist_map_inline:cn { g_xeCJK_##1_range_clist }
+ \clist_map_inline:cn { g_@@_##1_range_clist }
{
- \xeCJK_set_char_class_aux:Nn \xeCJKsetmathcode {####1}
- \mathalpha \c_xeCJK_math_tl
+ \@@_set_char_class_aux:Nn \xeCJKsetmathcode {####1}
+ \mathalpha \c_@@_math_tl
}
}
}
@@ -3822,14 +3861,14 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%
% 当没有设置 CJK 数学字体时,使用 |\CJKfamilydefault| 作为数学字体。
% \begin{macrocode}
-\xeCJK_AtEndPreamble:n
+\@@_AtEndPreamble:n
{
\normalfont
- \prop_if_empty:NTF \g_xeCJK_family_prop
- { \xeCJK_warning:n { no-CJKfamily } }
- { \bool_if:NT \g_xeCJK_math_bool { \xeCJK_set_mathfont: } }
+ \prop_if_empty:NTF \g_@@_family_prop
+ { \@@_warning:n { no-CJKfamily } }
+ { \bool_if:NT \g_@@_math_bool { \@@_set_mathfont: } }
}
-\xeCJK_msg_new:nn { no-CJKfamily }
+\@@_msg_new:nn { no-CJKfamily }
{
It~seems~that~you~have~not~declare~a~CJKfamily.\\
If~you~want~to~use~xeCJK~in~the~right~way,~you~should~use\\\\
@@ -3840,10 +3879,10 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%
% \subsection{处理等宽字体和抄录环境}
%
-% \begin{macro}[internal,var]{\g_xeCJK_monoscale_fp,\g_xeCJK_exspace_dim}
+% \begin{macro}[internal,var]{\g_@@_monoscale_fp,\g_@@_exspace_dim}
% \begin{macrocode}
-\fp_new:N \g_xeCJK_monoscale_fp
-\dim_new:N \g_xeCJK_exspace_dim
+\fp_new:N \g_@@_monoscale_fp
+\dim_new:N \g_@@_exspace_dim
% \end{macrocode}
% \end{macro}
%
@@ -3852,14 +3891,14 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\NewDocumentCommand \setCJKmonoscale { }
{
\CJKflexiblespacing
- \xeCJK_set_monoscale:
- \addCJKfontfeatures { Scale = \fp_use:N \g_xeCJK_monoscale_fp }
+ \@@_set_monoscale:
+ \addCJKfontfeatures { Scale = \fp_use:N \g_@@_monoscale_fp }
}
-\cs_new_protected_nopar:Npn \xeCJK_set_monoscale:
+\cs_new_protected_nopar:Npn \@@_set_monoscale:
{
\group_begin:
\fontfamily \ttdefault \selectfont
- \fp_gset:Nn \g_xeCJK_monoscale_fp
+ \fp_gset:Nn \g_@@_monoscale_fp
{ \dim_to_fp:n { \c_two \tex_fontdimen:D \c_two \tex_font:D } / ( \f@size ) }
\group_end:
}
@@ -3868,12 +3907,12 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%
% \begin{macro}{\setCJKmonoexspace}
% \begin{macrocode}
-\NewDocumentCommand \setCJKmonoexspace { } { \xeCJK_set_monoexspace: }
-\cs_new_protected_nopar:Npn \xeCJK_set_monoexspace:
+\NewDocumentCommand \setCJKmonoexspace { } { \@@_set_monoexspace: }
+\cs_new_protected_nopar:Npn \@@_set_monoexspace:
{
\group_begin:
\fontfamily \ttdefault \selectfont
- \dim_gset:Nn \g_xeCJK_exspace_dim
+ \dim_gset:Nn \g_@@_exspace_dim
{ \c_two \tex_fontdimen:D \c_two \tex_font:D - \f@size \p@ }
\group_end:
}
@@ -3884,39 +3923,39 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \begin{macrocode}
\NewDocumentCommand \CJKfixedspacing { }
{
- \bool_if:NF \l_xeCJK_fixed_spacing_bool
+ \bool_if:NF \l_@@_fixed_spacing_bool
{
- \bool_set_true:N \l_xeCJK_fixed_spacing_bool
- \tl_set_eq:NN \l_xeCJK_flexible_punctstyle_tl \l_xeCJK_punctstyle_tl
- \bool_set_eq:NN \l_xeCJK_fixed_xecglue_bool \l_xeCJK_xecglue_bool
- \cs_set_eq:NN \xeCJK_flexible_ecglue: \CJKecglue
- \cs_set_eq:NN \xeCJK_flexible_cjkglue: \CJKglue
- \xeCJK_set_monoexspace:
+ \bool_set_true:N \l_@@_fixed_spacing_bool
+ \tl_set_eq:NN \l_@@_flexible_punctstyle_tl \l_@@_punctstyle_tl
+ \bool_set_eq:NN \l_@@_fixed_xecglue_bool \l_@@_xecglue_bool
+ \cs_set_eq:NN \@@_flexible_ecglue: \CJKecglue
+ \cs_set_eq:NN \@@_flexible_cjkglue: \CJKglue
+ \@@_set_monoexspace:
\xeCJKsetup
{
PunctStyle = plain ,
- CJKglue = { \skip_horizontal:N \g_xeCJK_exspace_dim } ,
- CJKecglue = { \skip_horizontal:n { .5\g_xeCJK_exspace_dim } } ,
+ CJKglue = { \skip_horizontal:N \g_@@_exspace_dim } ,
+ CJKecglue = { \skip_horizontal:n { .5\g_@@_exspace_dim } } ,
xCJKecglue = false ,
}
}
}
\NewDocumentCommand \CJKflexiblespacing { }
{
- \bool_if:NT \l_xeCJK_fixed_spacing_bool
+ \bool_if:NT \l_@@_fixed_spacing_bool
{
- \bool_set_false:N \l_xeCJK_fixed_spacing_bool
+ \bool_set_false:N \l_@@_fixed_spacing_bool
\exp_args:Nx \xeCJKsetup
{
- PunctStyle = { \l_xeCJK_flexible_punctstyle_tl } ,
- CJKglue = { \xeCJK_flexible_cjkglue: } ,
- CJKecglue = { \xeCJK_flexible_ecglue: } ,
- xCJKecglue = { \bool_if:NTF \l_xeCJK_fixed_xecglue_bool { true } { false } } ,
+ PunctStyle = { \l_@@_flexible_punctstyle_tl } ,
+ CJKglue = { \@@_flexible_cjkglue: } ,
+ CJKecglue = { \@@_flexible_ecglue: } ,
+ xCJKecglue = { \bool_if:NTF \l_@@_fixed_xecglue_bool { true } { false } } ,
}
}
}
-\bool_new:N \l_xeCJK_fixed_spacing_bool
-\xeCJK_AfterPreamble:n { \tl_put_right:Nn \verbatim@font \CJKfixedspacing }
+\bool_new:N \l_@@_fixed_spacing_bool
+\@@_AfterPreamble:n { \tl_put_right:Nn \verbatim@font \CJKfixedspacing }
% \end{macrocode}
% \end{macro}
%
@@ -3926,11 +3965,11 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\NewDocumentCommand \setCJKmonofont { s t+ O{} m }
{
\IfBooleanTF {#1}
- { \xeCJK_set_family:nnn \CJKttdefault { Mono = Scale, #3 } {#4} }
+ { \xeCJK_set_family:xnn \CJKttdefault { Mono = Scale, #3 } {#4} }
{
\IfBooleanTF {#2}
- { \xeCJK_set_family:nnn \CJKttdefault { Mono = Exspace, #3 } {#4} }
- { \xeCJK_set_family:nnn \CJKttdefault {#3} {#4} }
+ { \xeCJK_set_family:xnn \CJKttdefault { Mono = Exspace, #3 } {#4} }
+ { \xeCJK_set_family:xnn \CJKttdefault {#3} {#4} }
}
}
% \end{macrocode}
@@ -3943,36 +3982,36 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% 在 \pkg{xeCJK} 宏包调用的时候有效。并将 \pkg{xeCJK} 中未知的选项传递给
% \pkg{fontspec} 宏包。
% \begin{macrocode}
-\bool_new:N \g_xeCJK_indent_bool
+\bool_new:N \g_@@_indent_bool
\keys_define:nn { xeCJK / options }
{
- CJKnumber .bool_set:N = \g_xeCJK_number_bool ,
- indentfirst .bool_set:N = \g_xeCJK_indent_bool ,
+ CJKnumber .bool_set:N = \g_@@_number_bool ,
+ indentfirst .bool_set:N = \g_@@_indent_bool ,
normalindentfirst .meta:n = { indentfirst = false } ,
quiet .code:n =
{
\msg_redirect_module:nnn { xeCJK } { warning } { info }
\msg_redirect_module:nnn { xeCJK } { info } { none }
- \xeCJK_if_package_loaded:nF { fontspec }
+ \@@_if_package_loaded:nF { fontspec }
{ \PassOptionsToPackage { quiet } { fontspec } }
},
silent .code:n =
{
\msg_redirect_module:nnn { xeCJK } { warning } { none }
\msg_redirect_module:nnn { xeCJK } { info } { none }
- \xeCJK_if_package_loaded:nF { fontspec }
+ \@@_if_package_loaded:nF { fontspec }
{ \PassOptionsToPackage { silent } { fontspec } }
},
unknown .code:n =
{
- \xeCJK_if_package_loaded:nTF { fontspec }
- { \xeCJK_error:nx { key-unknown } { \l_keys_key_tl } }
+ \@@_if_package_loaded:nTF { fontspec }
+ { \@@_error:nx { key-unknown } { \l_keys_key_tl } }
{ \PassOptionsToPackage { \l_keys_key_tl } { fontspec } }
},
}
-\xeCJK_msg_new:nn { key-unknown }
+\@@_msg_new:nn { key-unknown }
{
- Sorry,~but~\l__keys_module_tl\c_space_tl does~not~have~a~key~called~'#1'.\\\\
+ Sorry,~but~\l__keys_module_tl \ does~not~have~a~key~called~'#1'.\\\\
The~key~'#1'~is~being~ignored.
}
% \end{macrocode}
@@ -4016,7 +4055,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \end{macrocode}
%
% \begin{macrocode}
-\bool_if:NT \g_xeCJK_indent_bool
+\bool_if:NT \g_@@_indent_bool
{
\cs_set_eq:NN \@afterindentfalse \@afterindenttrue
\@afterindenttrue
@@ -4059,76 +4098,89 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%
% \subsection{兼容性修补}
%
-% \begin{macro}[internal]{\xeCJK_fix_itcorr:}
+% \begin{macro}[internal]{\@@_fix_itcorr:}
% 修复倾斜校正。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_fix_itcorr:
+\cs_new_protected_nopar:Npn \@@_fix_itcorr:
{
\scan_stop:
- \xeCJK_if_last_node:nTF { default }
+ \@@_if_last_node:nTF { default }
{
\tex_unkern:D \tex_unkern:D
- \xeCJK_itcorr_aux
- { \xeCJK_make_node:n { default_itcorr } }
+ \@@_itcorr_aux
+ { \@@_make_node:n { default_itcorr } }
}
- { \xeCJK_itcorr_aux }
+ { \@@_itcorr_aux }
}
-\cs_new_eq:NN \xeCJK_itcorr_aux \/
+\cs_new_eq:NN \@@_itcorr_aux \/
\cs_set_protected_nopar:Npn \/
{
\int_compare:nNnTF \XeTeXinterchartokenstate > \c_zero
- { \xeCJK_fix_itcorr: } { \xeCJK_itcorr_aux }
+ { \@@_fix_itcorr: } { \@@_itcorr_aux }
}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<@@=>
+% \end{macrocode}
+%
+% \begin{macrocode}
\cs_set_eq:NN \@@italiccorr \/
% \end{macrocode}
+%
+% \begin{macrocode}
+%<@@=xeCJK>
+% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_set_others_toks:n,\xeCJK_Others_class}
+% \begin{macro}[internal]{\@@_set_others_toks:n,\c_@@_Others_class_int}
% 简单处理与同样使用 |\XeTeXinterchartoks| 机制的宏包的兼容问题。
% \begin{macrocode}
-\xeCJK_AfterEndPreamble:n
+\@@_AfterEndPreamble:n
{
\int_compare:nNnF
- { \c_three + ( \seq_count:N \g_xeCJK_class_seq ) } = \xe@alloc@intercharclass
+ { \c_three + ( \seq_count:N \g_@@_class_seq ) } = \xe@alloc@intercharclass
{
\int_step_inline:nnnn \c_four \c_one \xe@alloc@intercharclass
{
- \seq_if_in:NnF \g_xeCJK_class_seq {#1}
- { \xeCJK_set_others_toks:n {#1} }
+ \seq_if_in:NnF \g_@@_class_seq {#1}
+ { \@@_set_others_toks:n {#1} }
}
}
}
-\cs_new_protected_nopar:Npn \xeCJK_set_others_toks:n #1
+\cs_new_protected_nopar:Npn \@@_set_others_toks:n #1
{
- \int_set:Nn \xeCJK_Others_class {#1}
- \clist_map_inline:Nn \g_xeCJK_CJK_class_clist
+ \int_set:Nn \c_@@_Others_class_int {#1}
+ \clist_map_inline:Nn \g_@@_CJK_class_clist
{
- \xeCJK_copy_inter_class_toks:nnnn {##1} { Others } {##1} { NormalSpace }
- \xeCJK_copy_inter_class_toks:nnnn { Others } {##1} { NormalSpace } {##1}
- \exp_args:Nnnx \xeCJK_app_inter_class_toks:nnn {##1} { Others }
- { \xeCJK_get_inter_class_toks:nn { Default } { Others } }
- \exp_args:Nnnx \xeCJK_pre_inter_class_toks:nnn { Others } {##1}
- { \xeCJK_get_inter_class_toks:nn { Others } { Default } }
- \xeCJK_if_blank_x:nT { \xeCJK_get_inter_class_toks:nn { Others } { Boundary } }
+ \@@_copy_inter_class_toks:nnnn {##1} { Others } {##1} { NormalSpace }
+ \@@_copy_inter_class_toks:nnnn { Others } {##1} { NormalSpace } {##1}
+ \exp_args:Nnnx \@@_app_inter_class_toks:nnn {##1} { Others }
+ { \@@_get_inter_class_toks:nn { Default } { Others } }
+ \exp_args:Nnnx \@@_pre_inter_class_toks:nnn { Others } {##1}
+ { \@@_get_inter_class_toks:nn { Others } { Default } }
+ \@@_if_blank_x:nT
+ { \@@_get_inter_class_toks:nn { Others } { Boundary } }
{
- \xeCJK_copy_inter_class_toks:nnnn
+ \@@_copy_inter_class_toks:nnnn
{ Others } { Boundary } { Default } { Boundary }
}
- \xeCJK_if_blank_x:nT { \xeCJK_get_inter_class_toks:nn { Boundary } { Others } }
+ \@@_if_blank_x:nT
+ { \@@_get_inter_class_toks:nn { Boundary } { Others } }
{
- \xeCJK_copy_inter_class_toks:nnnn
+ \@@_copy_inter_class_toks:nnnn
{ Boundary } { Others } { Boundary } { Default }
}
}
}
-\int_new:N \xeCJK_Others_class
+\int_new:N \c_@@_Others_class_int
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\xeCJK_patch:Nnn}
+% \begin{macro}[internal]{\@@_patch:Nnn}
% 给已有宏内容前后附加补丁。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_patch:Nnn #1#2#3
+\cs_new_protected_nopar:Npn \@@_patch:Nnn #1#2#3
{ \tl_put_left:Nn #1 {#2} \tl_put_right:Nn #1 {#3} }
% \end{macrocode}
% \end{macro}
@@ -4136,7 +4188,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% 单独处理宽度有分歧的几个标点:包括省略号、破折号、间隔号、引号等中西文混用的
% 符号, 保证其命令形式输出的是西文字体。并对一些编码的符号宏包做特殊处理。
% \begin{macrocode}
-\xeCJK_AfterPreamble:n
+\@@_AfterPreamble:n
{
\tl_map_inline:nn
{
@@ -4144,41 +4196,38 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\textquoteleft \textquoteright \textquotedblleft \textquotedblright
}
{
- \xeCJK_patch:Nnn #1
- { \xeCJK_group_begin: \makexeCJKinactive }
- { \xeCJK_group_end: }
+ \@@_patch:Nnn #1
+ { \@@_group_begin: \makexeCJKinactive }
+ { \@@_group_end: }
}
- \xeCJK_patch:Nnn \tipaencoding { \makexeCJKinactive } { }
- \cs_set_eq:NN \xeCJK_aux_r \r
- \cs_set_protected_nopar:Npn \r #1 { { \makexeCJKinactive \xeCJK_aux_r {#1} } }
- \xeCJK_if_package_loaded:nT { pifont }
+ \@@_patch:Nnn \tipaencoding { \makexeCJKinactive } { }
+ \cs_set_eq:NN \@@_aux_r \r
+ \cs_set_protected_nopar:Npn \r #1 { { \makexeCJKinactive \@@_aux_r {#1} } }
+ \@@_if_package_loaded:nT { pifont }
{
\RenewDocumentCommand \Pifont { m }
- {
- \fontencoding {U} \fontfamily {#1} \fontseries {m} \fontshape {n}
- \selectfont \makexeCJKinactive
- }
+ { \makexeCJKinactive \usefont {U} {#1} {m} {n} }
}
}
-\cs_new_eq:NN \xeCJK_group_begin: \group_begin:
-\cs_new_eq:NN \xeCJK_group_end: \group_end:
+\cs_new_eq:NN \@@_group_begin: \group_begin:
+\cs_new_eq:NN \@@_group_end: \group_end:
% \end{macrocode}
%
% 简单处理与 \pkg{hyperref} 宏包的兼容问题。
% \begin{macrocode}
-\xeCJK_AfterEndPreamble:n
+\@@_AfterEndPreamble:n
{
\bool_if:nT
{
- \xeCJK_if_package_loaded_p:n { hyperref } &&
+ \@@_if_package_loaded_p:n { hyperref } &&
\tl_if_exist_p:N \pdfstringdefPreHook
}
{
- \tl_put_right:Nn \pdfstringdefPreHook
+ \tl_gput_right:Nn \pdfstringdefPreHook
{
\cs_set_eq:NN \makexeCJKinactive \prg_do_nothing:
- \cs_set_eq:NN \xeCJK_group_begin: \prg_do_nothing:
- \cs_set_eq:NN \xeCJK_group_end: \prg_do_nothing:
+ \cs_set_eq:NN \@@_group_begin: \prg_do_nothing:
+ \cs_set_eq:NN \@@_group_end: \prg_do_nothing:
\cs_set_eq:NN \CJKfamily \use_none:n
}
}
@@ -4197,67 +4246,67 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
{ \cs_set_eq:NN \CJK@ifundefined \cs_if_free:NTF }
\NewDocumentCommand \xeCJKcaption { o m }
{
- \IfValueT {#1} { \XeTeXdefaultencoding "#1" }
- \cs_set_nopar:Npx \xeCJK_reset_at_catcode:
+ \IfNoValueF {#1} { \XeTeXdefaultencoding "#1" }
+ \cs_set_nopar:Npx \@@_reset_at_catcode:
{
\exp_not:n { \char_set_catcode:nn { `\@ } }
{ \char_value_catcode:n { `\@ } }
}
\char_set_catcode_letter:N \@
\file_input:n { #2.cpx }
- \xeCJK_reset_at_catcode:
+ \@@_reset_at_catcode:
\XeTeXdefaultencoding "UTF-8"
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[internal]
-% {\xeCJK_ULprepunctchar:n, \xeCJK_ULpostpunctchar:n, \xeCJK_ULroutines:}
+% {\@@_ULprepunctchar:n, \@@_ULpostpunctchar:n, \@@_ULroutines:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_ULprepunctchar:n #1
+\cs_new_protected_nopar:Npn \@@_ULprepunctchar:n #1
{
- { \makexeCJKinactive \CJKpunctsymbol {#1} \xeCJK_no_break: }
+ { \makexeCJKinactive \CJKpunctsymbol {#1} \@@_no_break: }
\tex_ignorespaces:D
}
-\cs_new_protected_nopar:Npn \xeCJK_ULpostpunctchar:n #1
+\cs_new_protected_nopar:Npn \@@_ULpostpunctchar:n #1
{
{ \makexeCJKinactive \CJKpunctsymbol {#1} }
- \xeCJK_ignorespaces:
+ \@@_ignorespaces:
}
-\cs_new_protected_nopar:Npn \xeCJK_ULroutines:
+\cs_new_protected_nopar:Npn \@@_ULroutines:
{
- \xeCJK_inter_class_toks:nnn { Default } { CJK } { \CJKecglue \CJKsymbol }
- \xeCJK_inter_class_toks:nnn { HalfLeft } { CJK } { \CJKsymbol }
- \xeCJK_inter_class_toks:nnn { HalfRight } { CJK } { \CJKecglue \CJKsymbol }
- \xeCJK_inter_class_toks:nnn { Boundary } { CJK } { \xeCJK_Boundary_and_CJK: }
+ \@@_inter_class_toks:nnn { Default } { CJK } { \CJKecglue \CJKsymbol }
+ \@@_inter_class_toks:nnn { HalfLeft } { CJK } { \CJKsymbol }
+ \@@_inter_class_toks:nnn { HalfRight } { CJK } { \CJKecglue \CJKsymbol }
+ \@@_inter_class_toks:nnn { Boundary } { CJK } { \@@_Boundary_and_CJK: }
\clist_map_inline:nn { Default, HalfLeft, HalfRight, Boundary }
{
- \xeCJK_inter_class_toks:nnn {##1} { FullLeft } { \xeCJK_ULprepunctchar:n }
- \xeCJK_inter_class_toks:nnn {##1} { FullRight } { \xeCJK_ULpostpunctchar:n }
+ \@@_inter_class_toks:nnn {##1} { FullLeft } { \@@_ULprepunctchar:n }
+ \@@_inter_class_toks:nnn {##1} { FullRight } { \@@_ULpostpunctchar:n }
}
- \xeCJK_UL_subclass_patch_tl
+ \@@_UL_subclass_patch_tl
}
% \end{macrocode}
% \end{macro}
%
% 对 \pkg{ulem} 宏包打补丁,以支持 \pkg{CJKfntef} 宏包。
% \begin{macrocode}
-\xeCJK_AfterPreamble:n
+\@@_AfterPreamble:n
{
\cs_if_exist:NT \UL@hook
{
\addto@hook \UL@hook
{
- \cs_set_eq:NN \xeCJK_UL_CJKsymbol \CJKsymbol
- \cs_set_eq:NN \xeCJK_UL_CJKpunctsymbol \CJKpunctsymbol
+ \cs_set_eq:NN \@@_UL_CJKsymbol \CJKsymbol
+ \cs_set_eq:NN \@@_UL_CJKpunctsymbol \CJKpunctsymbol
\cs_set_protected_nopar:Npn \CJKsymbol #1
{
- { \xeCJK_select_font: \xeCJK_UL_CJKsymbol {#1} }
- { \xeCJK_make_node:n { CJK } } \xeCJK_ignorespaces:
+ { \xeCJK_select_font: \@@_UL_CJKsymbol {#1} }
+ { \@@_make_node:n { CJK } } \@@_ignorespaces:
}
\cs_set_protected_nopar:Npn \CJKpunctsymbol #1
- { { \xeCJK_select_font: \xeCJK_UL_CJKpunctsymbol {#1} } }
- \xeCJK_ULroutines:
+ { { \xeCJK_select_font: \@@_UL_CJKpunctsymbol {#1} } }
+ \@@_ULroutines:
}
}
\cs_if_exist:NT \XeTeX@CJKfntef@hook
@@ -4270,15 +4319,15 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%
% 使用 \pkg{CJKnumb} 宏包。
% \begin{macrocode}
-\bool_if:NT \g_xeCJK_number_bool
+\bool_if:NT \g_@@_number_bool
{
\tl_set:Nn \CJK@UnicodeEnc { UTF8 }
\cs_set_protected_nopar:Npn \CJKaddEncHook #1#2
- { \cs_set_nopar:cpn { xeCJK_enc_#1 } {#2} }
+ { \cs_set_nopar:cpn { @@_enc_#1 } {#2} }
\cs_set_protected_nopar:Npn \Unicode #1#2
{ \tex_char:D \int_eval:n { (#1) * \c_two_hundred_fifty_six + (#2) } }
\RequirePackage { CJKnumb }
- \use:c { xeCJK_enc_\CJK@UnicodeEnc }
+ \use:c { @@_enc_\CJK@UnicodeEnc }
\tl_set:Nn \CJK@tenthousand { 万 }
\tl_set:Nn \CJK@hundredmillion { 亿 }
}
diff --git a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins
index 2fa0b0c245c..eabbbca62fd 100644
--- a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins
+++ b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins
@@ -6,7 +6,7 @@
%%
%% xeCJK.dtx (with options: `batchfile')
%%
-%% $Id: xeCJK.dtx 356 2012-09-03 02:18:08Z sobenlee $
+%% $Id: xeCJK.dtx 357 2012-10-16 18:42:20Z sobenlee $
%% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%% -----------------------------------------------------------------
%% Author:
@@ -30,12 +30,12 @@
%% -----------------------------------------------------------------
%%
-\input docstrip.tex
+\input l3docstrip.tex
\keepsilent
\askforoverwritefalse
\preamble
-$Id: xeCJK.dtx 356 2012-09-03 02:18:08Z sobenlee $
+$Id: xeCJK.dtx 357 2012-10-16 18:42:20Z sobenlee $
$URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
-----------------------------------------------------------------
Author:
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
index 5fc7a07d2ef..8edb6922281 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 356 2012-09-03 02:18:08Z sobenlee $
+%% $Id: xeCJK.dtx 357 2012-10-16 18:42:20Z sobenlee $
%% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%% -----------------------------------------------------------------
%% Author:
@@ -31,11 +31,11 @@
%%
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\GetIdInfo$Id: xeCJK.dtx 356 2012-09-03 02:18:08Z sobenlee $
+\GetIdInfo$Id: xeCJK.dtx 357 2012-10-16 18:42:20Z sobenlee $
{package for typesetting CJK scripts with XeLaTeX}
\ProvidesExplPackage
{\ExplFileName}
- {\ExplFileDate}{3.0.8}{\ExplFileDescription}
+ {\ExplFileDate}{3.0.9}{\ExplFileDescription}
\msg_new:nnn { xeCJK } { Require-XeTeX }
{
The~xeCJK~package~requires~XeTeX~to~function.\\\\
@@ -52,44 +52,44 @@
using~your~TeX~package~manager~or~from~CTAN.\\
Loading~xeCJK~will~abort!
}
-\@ifpackagelater { expl3 } { 2012/07/16 } { }
+\@ifpackagelater { expl3 } { 2012/09/10 } { }
{ \msg_critical:nn { xeCJK } { l3-too-old } }
\RequirePackage{xparse}
\RequirePackage{l3keys2e}
\msg_new:nnn { xeCJK } { XeTeX-too-old }
{
- \token_to_str:N \XeTeXglyphbounds\c_space_tl is~not~defined.\\\\
+ \token_to_str:N \XeTeXglyphbounds \ is~not~defined.\\\\
You~have~to~update~XeTeX~to~the~version~0.9995.0~or~later.
}
\cs_if_free:NT \XeTeXglyphbounds
{
\msg_error:nn { xeCJK } { XeTeX-too-old }
- \AtEndOfPackage { \xeCJK_AfterPreamble:n { \punctstyle { plain } } }
- }
-\int_new:N \l_xeCJK_tmpa_int
-\int_new:N \l_xeCJK_tmpb_int
-\int_new:N \l_xeCJK_tmpc_int
-\dim_new:N \l_xeCJK_tmpa_dim
-\dim_new:N \l_xeCJK_tmpb_dim
-\dim_new:N \l_xeCJK_tmpc_dim
-\tl_new:N \l_xeCJK_tmpa_tl
-\tl_new:N \l_xeCJK_tmpb_tl
-\clist_new:N \l_xeCJK_tmpa_clist
-\clist_new:N \l_xeCJK_tmpb_clist
-\clist_new:N \l_xeCJK_tmpc_clist
-\cs_new_protected_nopar:Npn \xeCJK_no_break: { \tex_penalty:D \c_ten_thousand }
-\tl_new:N \g_xeCJK_at_end_preamble_hook
-\tl_new:N \g_xeCJK_after_preamble_hook
-\tl_new:N \g_xeCJK_after_end_preamble_hook
-\cs_new_protected:Npn \xeCJK_AtEndPreamble:n #1
- { \tl_gput_right:Nn \g_xeCJK_at_end_preamble_hook {#1} }
-\cs_new_protected:Npn \xeCJK_AfterPreamble:n #1
- { \tl_gput_right:Nn \g_xeCJK_after_preamble_hook {#1} }
-\cs_new_protected:Npn \xeCJK_AfterEndPreamble:n #1
- { \tl_gput_right:Nn \g_xeCJK_after_end_preamble_hook {#1} }
-\AtBeginDocument { \g_xeCJK_after_preamble_hook }
-\tl_put_left:Nn \document { \group_end: \g_xeCJK_at_end_preamble_hook \group_begin: }
-\tl_put_right:Nn \document { \g_xeCJK_after_end_preamble_hook \tex_ignorespaces:D }
+ \AtEndOfPackage { \__xeCJK_AfterPreamble:n { \punctstyle { plain } } }
+ }
+\int_new:N \l__xeCJK_tmpa_int
+\int_new:N \l__xeCJK_tmpb_int
+\int_new:N \l__xeCJK_tmpc_int
+\dim_new:N \l__xeCJK_tmpa_dim
+\dim_new:N \l__xeCJK_tmpb_dim
+\dim_new:N \l__xeCJK_tmpc_dim
+\tl_new:N \l__xeCJK_tmpa_tl
+\tl_new:N \l__xeCJK_tmpb_tl
+\clist_new:N \l__xeCJK_tmpa_clist
+\clist_new:N \l__xeCJK_tmpb_clist
+\clist_new:N \l__xeCJK_tmpc_clist
+\cs_new_protected_nopar:Npn \__xeCJK_no_break: { \tex_penalty:D \c_ten_thousand }
+\tl_new:N \g__xeCJK_at_end_preamble_hook_tl
+\tl_new:N \g__xeCJK_after_preamble_hook_tl
+\tl_new:N \g__xeCJK_after_end_preamble_hook_tl
+\cs_new_protected:Npn \__xeCJK_AtEndPreamble:n #1
+ { \tl_gput_right:Nn \g__xeCJK_at_end_preamble_hook_tl {#1} }
+\cs_new_protected:Npn \__xeCJK_AfterPreamble:n #1
+ { \tl_gput_right:Nn \g__xeCJK_after_preamble_hook_tl {#1} }
+\cs_new_protected:Npn \__xeCJK_AfterEndPreamble:n #1
+ { \tl_gput_right:Nn \g__xeCJK_after_end_preamble_hook_tl {#1} }
+\AtBeginDocument { \g__xeCJK_after_preamble_hook_tl }
+\tl_put_left:Nn \document { \group_end: \g__xeCJK_at_end_preamble_hook_tl \group_begin: }
+\tl_put_right:Nn \document { \g__xeCJK_after_end_preamble_hook_tl \tex_ignorespaces:D }
\group_begin:
\char_set_lccode:nn { `\Z } { `\t }
\char_set_lccode:nn { `\Y } { `\c }
@@ -100,54 +100,54 @@
\tl_to_lowercase:n
{
\group_end:
- \prg_new_conditional:Npnn \xeCJK_if_outer_macro:c #1 { p , T , F , TF }
+ \prg_new_conditional:Npnn \__xeCJK_if_outer_macro:c #1 { p , T , F , TF }
{
- \exp_last_unbraced:Nf \xeCJK_if_outer_macro_aux:w
+ \exp_last_unbraced:Nf \__xeCJK_if_outer_macro_aux:w
{ \cs_meaning:c {#1} } OUZER ~ MAYRO ; \q_stop
}
- \cs_new_nopar:Npn \xeCJK_if_outer_macro_aux:w #1 OUZER ~ MAYRO ; #2 \q_stop
+ \cs_new_nopar:Npn \__xeCJK_if_outer_macro_aux:w #1 OUZER ~ MAYRO ; #2 \q_stop
{
- \if_cs_exist:w c_xeCJK_prefix_ #1 _aux_tl \cs_end:
+ \if_cs_exist:w c__xeCJK_prefix_ #1 _aux_tl \cs_end:
\prg_return_true: \else: \prg_return_false: \fi:
}
- \tl_new:c { c_xeCJK_prefix_/_aux_tl }
- \tl_new:c { c_xeCJK_prefix_/long/_aux_tl }
- \tl_new:c { c_xeCJK_prefix_/protected/_aux_tl }
- \tl_new:c { c_xeCJK_prefix_/protected/long/_aux_tl }
+ \tl_new:c { c__xeCJK_prefix_/_aux_tl }
+ \tl_new:c { c__xeCJK_prefix_/long/_aux_tl }
+ \tl_new:c { c__xeCJK_prefix_/protected/_aux_tl }
+ \tl_new:c { c__xeCJK_prefix_/protected/long/_aux_tl }
}
-\token_new:Nn \l_xeCJK_peek_search_token { ? }
-\cs_new_protected:Npn \xeCJK_peek_catcode_ignore_spaces:NTF #1#2#3
+\token_new:Nn \l__xeCJK_peek_search_token { ? }
+\cs_new_protected:Npn \__xeCJK_peek_catcode_ignore_spaces:NTF #1#2#3
{
- \cs_set_eq:NN \l_xeCJK_peek_search_token #1
- \tl_set:Nn \xeCJK_peek_true:w { \group_align_safe_end: #2 }
- \tl_set:Nn \xeCJK_peek_false:w { \group_align_safe_end: #3 }
+ \cs_set_eq:NN \l__xeCJK_peek_search_token #1 \prg_do_nothing:
+ \tl_set:Nn \__xeCJK_peek_true:w { \group_align_safe_end: #2 }
+ \tl_set:Nn \__xeCJK_peek_false:w { \group_align_safe_end: #3 }
\group_align_safe_begin:
- \peek_after:Nw \xeCJK_peek_ignore_spaces_execute_branches:
+ \peek_after:Nw \__xeCJK_peek_ignore_spaces_execute_branches:
}
-\cs_new_protected:Npn \xeCJK_peek_catcode_ignore_spaces:NT #1#2
- { \xeCJK_peek_catcode_ignore_spaces:NTF #1 {#2} { } }
-\cs_new_protected:Npn \xeCJK_peek_catcode_ignore_spaces:NF #1#2
- { \xeCJK_peek_catcode_ignore_spaces:NTF #1 { } {#2} }
-\cs_new_nopar:Npn \xeCJK_peek_ignore_spaces_execute_branches:
+\cs_new_protected:Npn \__xeCJK_peek_catcode_ignore_spaces:NT #1#2
+ { \__xeCJK_peek_catcode_ignore_spaces:NTF #1 {#2} { } }
+\cs_new_protected:Npn \__xeCJK_peek_catcode_ignore_spaces:NF #1#2
+ { \__xeCJK_peek_catcode_ignore_spaces:NTF #1 { } {#2} }
+\cs_new_nopar:Npn \__xeCJK_peek_ignore_spaces_execute_branches:
{
\if_meaning:w \l_peek_token \c_space_token
- \tex_afterassignment:D \xeCJK_peek_ignore_spaces_execute_branches_aux:
- \exp_after:wN \cs_set_eq:NN \exp_after:wN \xeCJK_peek_tmp:w
+ \tex_afterassignment:D \__xeCJK_peek_ignore_spaces_execute_branches_aux:
+ \exp_after:wN \cs_set_eq:NN \exp_after:wN \__xeCJK_peek_tmp:w
\else:
- \exp_after:wN \xeCJK_peek_execute_branches_catcode:
+ \exp_after:wN \__xeCJK_peek_execute_branches_catcode:
\fi:
}
-\cs_new_protected_nopar:Npn \xeCJK_peek_ignore_spaces_execute_branches_aux:
- { \peek_after:Nw \xeCJK_peek_ignore_spaces_execute_branches: }
-\cs_new_nopar:Npn \xeCJK_peek_execute_branches_catcode:
+\cs_new_protected_nopar:Npn \__xeCJK_peek_ignore_spaces_execute_branches_aux:
+ { \peek_after:Nw \__xeCJK_peek_ignore_spaces_execute_branches: }
+\cs_new_nopar:Npn \__xeCJK_peek_execute_branches_catcode:
{
- \if_catcode:w \exp_not:N \l_peek_token \exp_not:N \l_xeCJK_peek_search_token
- \exp_after:wN \xeCJK_peek_true:w
+ \if_catcode:w \exp_not:N \l_peek_token \exp_not:N \l__xeCJK_peek_search_token
+ \exp_after:wN \__xeCJK_peek_true:w
\else:
- \exp_after:wN \xeCJK_peek_false:w
+ \exp_after:wN \__xeCJK_peek_false:w
\fi:
}
-\prg_new_conditional:Npnn \xeCJK_if_blank_x:n #1 { p , T , F , TF }
+\prg_new_conditional:Npnn \__xeCJK_if_blank_x:n #1 { p , T , F , TF }
{
\if_int_compare:w \pdftex_strcmp:D { \c_empty_tl } {#1} = \c_zero
\prg_return_true:
@@ -156,20 +156,20 @@
\prg_return_true: \else: \prg_return_false: \fi:
\fi:
}
-\prg_new_conditional:Npnn \xeCJK_if_package_loaded:n #1 { p , T , F , TF }
+\prg_new_conditional:Npnn \__xeCJK_if_package_loaded:n #1 { p , T , F , TF }
{
- \tl_if_exist:cTF { ver@ #1 . \c_xeCJK_pkg_extension_tl }
+ \tl_if_exist:cTF { ver@ #1 . \c__xeCJK_pkg_extension_tl }
{ \prg_return_true: } { \prg_return_false: }
}
-\tl_const:Nx \c_xeCJK_pkg_extension_tl { \@pkgextension }
-\cs_new_nopar:Npn \xeCJK_msg_new:nn { \msg_new:nnn { xeCJK } }
-\cs_new_nopar:Npn \xeCJK_error:n { \msg_error:nn { xeCJK } }
-\cs_new_nopar:Npn \xeCJK_error:nx { \msg_error:nnx { xeCJK } }
-\cs_new_nopar:Npn \xeCJK_warning:n { \msg_warning:nn { xeCJK } }
-\cs_new_nopar:Npn \xeCJK_warning:nx { \msg_warning:nnx { xeCJK } }
-\cs_new_nopar:Npn \xeCJK_warning:nxx { \msg_warning:nnxx { xeCJK } }
-\cs_new_nopar:Npn \xeCJK_info:nx { \msg_info:nnx { xeCJK } }
-\cs_new_nopar:Npn \xeCJK_info:nxx { \msg_info:nnxx { xeCJK } }
+\tl_const:Nx \c__xeCJK_pkg_extension_tl { \@pkgextension }
+\cs_new_nopar:Npn \__xeCJK_msg_new:nn { \msg_new:nnn { xeCJK } }
+\cs_new_nopar:Npn \__xeCJK_error:n { \msg_error:nn { xeCJK } }
+\cs_new_nopar:Npn \__xeCJK_error:nx { \msg_error:nnx { xeCJK } }
+\cs_new_nopar:Npn \__xeCJK_warning:n { \msg_warning:nn { xeCJK } }
+\cs_new_nopar:Npn \__xeCJK_warning:nx { \msg_warning:nnx { xeCJK } }
+\cs_new_nopar:Npn \__xeCJK_warning:nxx { \msg_warning:nnxx { xeCJK } }
+\cs_new_nopar:Npn \__xeCJK_info:nx { \msg_info:nnx { xeCJK } }
+\cs_new_nopar:Npn \__xeCJK_info:nxx { \msg_info:nnxx { xeCJK } }
\keys_define:nn { xeCJK / options }
{
xeCJKactive .choice:,
@@ -180,80 +180,92 @@
\NewDocumentCommand \makexeCJKactive { } { \XeTeXinterchartokenstate = \c_one }
\NewDocumentCommand \makexeCJKinactive { } { \XeTeXinterchartokenstate = \c_zero }
\char_set_catcode_ignore:n { "FEFF }
-\int_const:Nn \xeCJK_Default_class { 0 }
-\int_const:Nn \xeCJK_CJK_class { 1 }
-\int_const:Nn \xeCJK_FullLeft_class { 2 }
-\int_const:Nn \xeCJK_FullRight_class { 3 }
-\int_const:Nn \xeCJK_Boundary_class { 255 }
-\cs_new_protected_nopar:Npn \xeCJK_new_class:n #1
- {
- \exp_args:Nc \newXeTeXintercharclass { xeCJK_#1_class }
- \clist_gclear_new:c { g_xeCJK_#1_range_clist }
- \seq_gput_right:Nv \g_xeCJK_class_seq { xeCJK_#1_class }
- }
-\seq_new:N \g_xeCJK_class_seq
-\xeCJK_new_class:n { HalfLeft }
-\xeCJK_new_class:n { HalfRight }
-\xeCJK_new_class:n { NormalSpace }
-\clist_set:Nn \g_xeCJK_base_class_clist
+\int_const:Nn \c__xeCJK_Default_class_int { 0 }
+\int_const:Nn \c__xeCJK_CJK_class_int { 1 }
+\int_const:Nn \c__xeCJK_FullLeft_class_int { 2 }
+\int_const:Nn \c__xeCJK_FullRight_class_int { 3 }
+\int_const:Nn \c__xeCJK_Boundary_class_int { 255 }
+\cs_new_protected_nopar:Npn \__xeCJK_new_class:n #1
+ {
+ \exp_args:Nc \newXeTeXintercharclass { c__xeCJK_#1_class_int }
+ \clist_gclear_new:c { g__xeCJK_#1_range_clist }
+ \seq_gput_right:Nv \g__xeCJK_class_seq { c__xeCJK_#1_class_int }
+ }
+\seq_new:N \g__xeCJK_class_seq
+\__xeCJK_new_class:n { HalfLeft }
+\__xeCJK_new_class:n { HalfRight }
+\__xeCJK_new_class:n { NormalSpace }
+\clist_set:Nn \g__xeCJK_base_class_clist
{
Default, CJK, FullLeft, FullRight, Boundary,
HalfLeft, HalfRight, NormalSpace
}
-\clist_map_inline:Nn \g_xeCJK_base_class_clist
- { \clist_gclear_new:c { g_xeCJK_#1_range_clist } }
-\clist_new:N \g_xeCJK_CJK_class_clist
-\prop_new:N \g_xeCJK_CJK_class_prop
-\cs_new_protected_nopar:Npn \xeCJK_save_CJK_class:n #1
+\clist_map_inline:Nn \g__xeCJK_base_class_clist
+ { \clist_gclear_new:c { g__xeCJK_#1_range_clist } }
+\clist_new:N \g__xeCJK_CJK_class_clist
+\prop_new:N \g__xeCJK_CJK_class_prop
+\cs_new_protected_nopar:Npn \__xeCJK_save_CJK_class:n #1
{
- \clist_gput_right:Nx \g_xeCJK_CJK_class_clist {#1}
- \prop_gput:Nvx \g_xeCJK_CJK_class_prop { xeCJK_#1_class } {#1}
+ \clist_gput_right:Nx \g__xeCJK_CJK_class_clist {#1}
+ \prop_gput:Nvx \g__xeCJK_CJK_class_prop { c__xeCJK_#1_class_int } {#1}
}
\cs_generate_variant:Nn \prop_gput:Nnn { Nvx }
-\clist_map_function:nN { CJK, FullLeft, FullRight } \xeCJK_save_CJK_class:n
-\cs_new_nopar:Npn \xeCJK_class_num:n #1 { \tl_use:c { xeCJK_#1_class } }
+\clist_map_function:nN { CJK, FullLeft, FullRight } \__xeCJK_save_CJK_class:n
+\cs_new_nopar:Npn \__xeCJK_class_num:n #1 { \tl_use:c { c__xeCJK_#1_class_int } }
\NewDocumentCommand \xeCJKDeclareCharClass { s > { \TrimSpaces } m m }
{
- \xeCJK_declare_char_class:nn {#2} {#3}
+ \__xeCJK_declare_char_class:nn {#2} {#3}
\IfBooleanT {#1} { \xeCJKResetPunctClass }
}
-\cs_new_protected_nopar:Npn \xeCJK_declare_char_class:nn #1#2
+\cs_new_protected_nopar:Npn \__xeCJK_declare_char_class:nn #1#2
{
- \clist_gput_right:cx { g_xeCJK_#1_range_clist } {#2}
+ \clist_gput_right:cx { g__xeCJK_#1_range_clist } {#2}
\clist_map_inline:xn {#2}
{
\str_if_eq_x:nnF {##1} { -> }
{
- \xeCJK_set_char_class_aux:Nn \xeCJK_set_char_class:nnn {##1}
- { \xeCJK_class_num:n {#1} }
+ \__xeCJK_set_char_class_aux:Nn \__xeCJK_set_char_class:nnn {##1}
+ { \__xeCJK_class_num:n {#1} }
}
}
}
-\NewDocumentCommand \xeCJK_set_char_class_aux:Nn
+\NewDocumentCommand \__xeCJK_set_char_class_aux:Nn
{ m > { \SplitArgument { 1 } { -> } } m } { #1 #2 }
\cs_generate_variant:Nn \clist_map_inline:nn { x }
\NewDocumentCommand \xeCJKsetcharclass { s m m m }
{
- \xeCJK_set_char_class:nnn {#2} {#3} {#4}
+ \__xeCJK_set_char_class:nnn {#2} {#3} {#4}
\IfBooleanF {#1} { \xeCJKResetPunctClass }
}
-\cs_new_protected_nopar:Npn \xeCJK_set_char_class:nnn #1#2#3
+\cs_new_protected_nopar:Npn \__xeCJK_set_char_class:nnn #1#2#3
{
- \xeCJK_check_num_range:nnNN {#1} {#2} \l_xeCJK_tmpa_int \l_xeCJK_tmpb_int
- \int_set:Nn \l_xeCJK_tmpc_int {#3}
- \prop_if_in:NVTF \g_xeCJK_CJK_class_prop \l_xeCJK_tmpc_int
- { \loop \char_set_catcode_other:n \l_xeCJK_tmpa_int }
- { \loop }
- \XeTeXcharclass \l_xeCJK_tmpa_int = \l_xeCJK_tmpc_int
- \if_int_compare:w \l_xeCJK_tmpa_int < \l_xeCJK_tmpb_int
- \int_incr:N \l_xeCJK_tmpa_int
- \repeat
+ \__xeCJK_check_num_range:nnNN {#1} {#2} \l__xeCJK_tmpa_int \l__xeCJK_tmpb_int
+ \int_set:Nn \l__xeCJK_tmpc_int {#3}
+ \prop_if_in:NVTF \g__xeCJK_CJK_class_prop \l__xeCJK_tmpc_int
+ { \cs_set_eq:NN \__xeCJK_set_char_catcode:n \char_set_catcode_other:n }
+ { \cs_set_eq:NN \__xeCJK_set_char_catcode:n \use_none:n }
+ \__xeCJK_int_until_do:nn { \l__xeCJK_tmpa_int > \l__xeCJK_tmpb_int }
+ {
+ \__xeCJK_set_char_catcode:n { \l__xeCJK_tmpa_int }
+ \XeTeXcharclass \l__xeCJK_tmpa_int = \l__xeCJK_tmpc_int
+ \int_incr:N \l__xeCJK_tmpa_int
+ }
}
-\cs_new_protected_nopar:Npn \xeCJK_check_num_range:nnNN #1#2#3#4
+\cs_new_protected:Npn \__xeCJK_int_until_do:nn #1#2
{
- \bool_if:nTF { \xeCJK_if_blank_x_p:n {#1} || \xeCJK_if_blank_x_p:n {#2} }
+ \__xeCJK_int_until_do_aux:wn \use_none:n
+ { \reverse_if:N \if_int_compare:w #1#2 }
+ }
+\cs_new_protected:Npn \__xeCJK_int_until_do_aux:wn \use_none:n #1
+ {
+ #1 \exp_after:wN \__xeCJK_int_until_do_aux:wn \fi:
+ \use_none:n {#1}
+ }
+\cs_new_protected_nopar:Npn \__xeCJK_check_num_range:nnNN #1#2#3#4
+ {
+ \bool_if:nTF { \__xeCJK_if_blank_x_p:n {#1} || \__xeCJK_if_blank_x_p:n {#2} }
{
- \int_set:Nn #3 { \xeCJK_if_blank_x:nTF {#1} {#2} {#1} }
+ \int_set:Nn #3 { \__xeCJK_if_blank_x:nTF {#1} {#2} {#1} }
\int_set_eq:NN #3 #4
}
{
@@ -263,18 +275,18 @@
}
\NewDocumentCommand \xeCJKResetPunctClass { }
{
- \xeCJK_declare_char_class:nn { HalfLeft }
+ \__xeCJK_declare_char_class:nn { HalfLeft }
{ "28 , "2D , "5B , "60 , "7B }
- \xeCJK_declare_char_class:nn { HalfRight }
+ \__xeCJK_declare_char_class:nn { HalfRight }
{ "21 , "22 , "25 , "27 , "29 , "2C , "2E , "3A , "3B , "3F , "5D , "7D , }
- \xeCJK_declare_char_class:nn { FullLeft }
+ \__xeCJK_declare_char_class:nn { FullLeft }
{
"2018 , "201C , "2116 , "3008 , "300A , "300C , "300E , "3010 , "3012 ,
"3014 , "3016 , "3018 , "301A , "301D , "3036 , "E76C , "FE59 , "FE5B ,
"FE5D , "FE5F , "FE60 , "FE69 , "FE6B , "FF03 , "FF04 , "FF08 , "FF20 ,
"FF3B , "FF5B , "FFE0 , "FFE1 , "FFE5 , "FFE6 ,
}
- \xeCJK_declare_char_class:nn { FullRight }
+ \__xeCJK_declare_char_class:nn { FullRight }
{
"00B7 , "2019 , "201D , "2014 , "2025 , "2026 , "2030 , "2500 , "3001 ,
"3002 , "3005 , "3006 , "3009 , "300B , "300D , "300F , "3011 , "3015 ,
@@ -288,7 +300,7 @@
"FF6A , "FF6B , "FF6C , "FF6D , "FF6E , "FF6F , "FF70 , "FF9E , "FF9F ,
}
}
-\xeCJK_declare_char_class:nn { CJK }
+\__xeCJK_declare_char_class:nn { CJK }
{
"1100 -> "11FF ,
"2E80 -> "2EFF ,
@@ -326,328 +338,328 @@
\NewDocumentCommand \normalspacedchars { m }
{
\tl_map_inline:nn {#1}
- { \XeTeXcharclass `##1 = \xeCJK_class_num:n { NormalSpace } }
+ { \XeTeXcharclass `##1 = \__xeCJK_class_num:n { NormalSpace } }
}
\normalspacedchars{/}
-\cs_new_protected_nopar:Npn \xeCJK_inter_class_toks:nnn #1#2#3
- { \XeTeXinterchartoks \xeCJK_class_num:n {#1} \xeCJK_class_num:n {#2} = {#3} }
-\cs_generate_variant:Nn \xeCJK_inter_class_toks:nnn { nnc , nnx }
-\cs_new_nopar:Npn \xeCJK_get_inter_class_toks:nn #1#2
- { \tex_the:D \XeTeXinterchartoks \xeCJK_class_num:n {#1} \xeCJK_class_num:n {#2} }
-\cs_new_protected_nopar:Npn \xeCJK_clear_inter_class_toks:nn #1#2
- { \xeCJK_inter_class_toks:nnn {#1} {#2} { \c_empty_tl } }
-\cs_new_protected_nopar:Npn \xeCJK_pre_inter_class_toks:nnn #1#2#3
+\cs_new_protected_nopar:Npn \__xeCJK_inter_class_toks:nnn #1#2#3
+ { \XeTeXinterchartoks \__xeCJK_class_num:n {#1} \__xeCJK_class_num:n {#2} = {#3} }
+\cs_generate_variant:Nn \__xeCJK_inter_class_toks:nnn { nnc , nnx }
+\cs_new_nopar:Npn \__xeCJK_get_inter_class_toks:nn #1#2
+ { \tex_the:D \XeTeXinterchartoks \__xeCJK_class_num:n {#1} \__xeCJK_class_num:n {#2} }
+\cs_new_protected_nopar:Npn \__xeCJK_clear_inter_class_toks:nn #1#2
+ { \__xeCJK_inter_class_toks:nnn {#1} {#2} { \c_empty_tl } }
+\cs_new_protected_nopar:Npn \__xeCJK_pre_inter_class_toks:nnn #1#2#3
{
- \xeCJK_inter_class_toks:nnx {#1} {#2}
- { \exp_not:n {#3} \xeCJK_get_inter_class_toks:nn {#1} {#2} }
+ \__xeCJK_inter_class_toks:nnx {#1} {#2}
+ { \exp_not:n {#3} \__xeCJK_get_inter_class_toks:nn {#1} {#2} }
}
-\cs_new_protected_nopar:Npn \xeCJK_app_inter_class_toks:nnn #1#2#3
+\cs_new_protected_nopar:Npn \__xeCJK_app_inter_class_toks:nnn #1#2#3
{
- \xeCJK_inter_class_toks:nnx {#1} {#2}
- { \xeCJK_get_inter_class_toks:nn {#1} {#2} \exp_not:n {#3} }
+ \__xeCJK_inter_class_toks:nnx {#1} {#2}
+ { \__xeCJK_get_inter_class_toks:nn {#1} {#2} \exp_not:n {#3} }
}
-\cs_generate_variant:Nn \xeCJK_app_inter_class_toks:nnn { nnc }
-\cs_new_protected_nopar:Npn \xeCJK_copy_inter_class_toks:nnnn #1#2#3#4
+\cs_generate_variant:Nn \__xeCJK_app_inter_class_toks:nnn { nnc }
+\cs_new_protected_nopar:Npn \__xeCJK_copy_inter_class_toks:nnnn #1#2#3#4
{
- \xeCJK_inter_class_toks:nnx {#1} {#2}
- { \xeCJK_get_inter_class_toks:nn {#3} {#4} }
+ \__xeCJK_inter_class_toks:nnx {#1} {#2}
+ { \__xeCJK_get_inter_class_toks:nn {#3} {#4} }
}
-\cs_new_protected_nopar:Npn \xeCJK_clear_CJK_toks:
+\cs_new_protected_nopar:Npn \__xeCJK_clear_CJK_toks:
{
- \clist_map_inline:Nn \g_xeCJK_CJK_class_clist
- { \xeCJK_clear_inter_class_toks:nn { Boundary } {##1} }
+ \clist_map_inline:Nn \g__xeCJK_CJK_class_clist
+ { \__xeCJK_clear_inter_class_toks:nn { Boundary } {##1} }
}
\clist_map_inline:nn { Default, HalfLeft, HalfRight, NormalSpace }
{
\clist_map_inline:nn { CJK, FullLeft, FullRight }
{
- \xeCJK_inter_class_toks:nnn {#1} {##1}
+ \__xeCJK_inter_class_toks:nnn {#1} {##1}
{
\c_group_begin_token
\xeCJK_select_font:
- \xeCJK_clear_inter_class_toks:nn {#1} {##1}
- \xeCJK_clear_CJK_toks:
+ \__xeCJK_clear_inter_class_toks:nn {#1} {##1}
+ \__xeCJK_clear_CJK_toks:
}
- \xeCJK_inter_class_toks:nnn {##1} {#1} { \c_group_end_token }
+ \__xeCJK_inter_class_toks:nnn {##1} {#1} { \c_group_end_token }
}
- \xeCJK_app_inter_class_toks:nnn {#1} { CJK } { \CJKsymbol }
+ \__xeCJK_app_inter_class_toks:nnn {#1} { CJK } { \CJKsymbol }
\clist_map_inline:nn { FullLeft, FullRight }
- { \xeCJK_app_inter_class_toks:nnc {#1} {##1} { xeCJK_CJK_and_##1:N } }
+ { \__xeCJK_app_inter_class_toks:nnc {#1} {##1} { __xeCJK_CJK_and_##1:N } }
}
\clist_map_inline:nn { Default, HalfLeft, NormalSpace }
{
- \xeCJK_inter_class_toks:nnn { Boundary } {#1}
+ \__xeCJK_inter_class_toks:nnn { Boundary } {#1}
{
\bool_if:nTF
{
- \l_xeCJK_xecglue_bool &&
+ \l__xeCJK_xecglue_bool &&
\int_compare_p:nNn \etex_lastnodetype:D = \c_eleven &&
- \skip_if_eq_p:nn \tex_lastskip:D \l_xeCJK_space_glue_tl
+ \skip_if_eq_p:nn \tex_lastskip:D \l__xeCJK_space_glue_tl
}
{
\tex_unskip:D
\bool_if:nTF
- { \xeCJK_if_last_node_p:n { CJK } || \xeCJK_if_last_node_p:n { CJK_space } }
+ { \__xeCJK_if_last_node_p:n { CJK } || \__xeCJK_if_last_node_p:n { CJK_space } }
{ \CJKecglue } { \c_space_token }
}
{
- \xeCJK_if_last_node:nTF { CJK } { \CJKecglue }
- { \xeCJK_if_last_node:nT { CJK_space } { \xeCJK_space_or_xecglue: } }
+ \__xeCJK_if_last_node:nTF { CJK } { \CJKecglue }
+ { \__xeCJK_if_last_node:nT { CJK_space } { \__xeCJK_space_or_xecglue: } }
}
}
\str_if_eq_x:nnF {#1} { NormalSpace }
- { \xeCJK_app_inter_class_toks:nnn { CJK } {#1} { \CJKecglue } }
+ { \__xeCJK_app_inter_class_toks:nnn { CJK } {#1} { \CJKecglue } }
}
\clist_map_inline:nn { Default, HalfRight, NormalSpace }
{
- \xeCJK_inter_class_toks:nnn {#1} { Boundary }
+ \__xeCJK_inter_class_toks:nnn {#1} { Boundary }
{
\peek_catcode:NTF \c_space_token
- { { \xeCJK_make_node:n { default_space } } }
- { { \xeCJK_make_node:n { default } } }
+ { { \__xeCJK_make_node:n { default_space } } }
+ { { \__xeCJK_make_node:n { default } } }
}
\str_if_eq_x:nnF {#1} { NormalSpace }
- { \xeCJK_pre_inter_class_toks:nnn {#1} { CJK } { \CJKecglue } }
+ { \__xeCJK_pre_inter_class_toks:nnn {#1} { CJK } { \CJKecglue } }
}
-\xeCJK_inter_class_toks:nnn { Boundary } { CJK } { \xeCJK_Boundary_and_CJK: }
-\cs_new_protected_nopar:Npn \xeCJK_Boundary_and_CJK:
+\__xeCJK_inter_class_toks:nnn { Boundary } { CJK } { \__xeCJK_Boundary_and_CJK: }
+\cs_new_protected_nopar:Npn \__xeCJK_Boundary_and_CJK:
{
- { \xeCJK_check_for_glue: }
+ { \__xeCJK_check_for_glue: }
\c_group_begin_token
- \xeCJK_clear_CJK_toks:
+ \__xeCJK_clear_CJK_toks:
\xeCJK_select_font:
\CJKsymbol
}
-\cs_new_protected_nopar:Npn \xeCJK_check_for_glue:
+\cs_new_protected_nopar:Npn \__xeCJK_check_for_glue:
{
\bool_if:nTF
- { \xeCJK_if_last_node_p:n { CJK } || \xeCJK_if_last_node_p:n { CJK_space } }
+ { \__xeCJK_if_last_node_p:n { CJK } || \__xeCJK_if_last_node_p:n { CJK_space } }
{ \CJKglue }
{
\bool_if:nTF
{
- \xeCJK_if_last_node_p:n { default } ||
+ \__xeCJK_if_last_node_p:n { default } ||
\int_compare_p:nNn \etex_lastnodetype:D = \c_ten ||
- \xeCJK_if_last_node_p:n { default_itcorr }
+ \__xeCJK_if_last_node_p:n { default_itcorr }
}
{ \CJKecglue }
{
\bool_if:nT
{
- \l_xeCJK_xecglue_bool &&
+ \l__xeCJK_xecglue_bool &&
\int_compare_p:nNn \etex_lastnodetype:D = \c_eleven &&
- ( \skip_if_eq_p:nn \tex_lastskip:D \l_xeCJK_space_glue_tl ||
- \dim_compare_p:nNn \tex_lastskip:D = \l_xeCJK_ecglue_dim )
+ ( \skip_if_eq_p:nn \tex_lastskip:D \l__xeCJK_space_glue_tl ||
+ \dim_compare_p:nNn \tex_lastskip:D = \l__xeCJK_ecglue_dim )
}
{
\tex_unskip:D
\bool_if:nTF
{
- \xeCJK_if_last_node_p:n { default_space } ||
+ \__xeCJK_if_last_node_p:n { default_space } ||
\int_compare_p:nNn \etex_lastnodetype:D = \c_ten ||
- \xeCJK_if_last_node_p:n { default } ||
- \xeCJK_if_last_node_p:n { default_itcorr }
+ \__xeCJK_if_last_node_p:n { default } ||
+ \__xeCJK_if_last_node_p:n { default_itcorr }
}
{ \CJKecglue }
{
\bool_if:nTF
{
- \xeCJK_if_last_node_p:n { CJK } ||
- \xeCJK_if_last_node_p:n { CJK_space }
+ \__xeCJK_if_last_node_p:n { CJK } ||
+ \__xeCJK_if_last_node_p:n { CJK_space }
}
- { \bool_if:NTF \l_xeCJK_space_bool \c_space_token \CJKglue }
+ { \bool_if:NTF \l__xeCJK_space_bool \c_space_token \CJKglue }
{ \c_space_token }
}
}
}
}
}
-\tl_set:Nn \l_xeCJK_space_glue_tl
+\tl_set:Nn \l__xeCJK_space_glue_tl
{
\tex_fontdimen:D \c_two \tex_font:D
\@plus \tex_fontdimen:D \c_three \tex_font:D
\@minus \tex_fontdimen:D \c_four \tex_font:D
}
-\xeCJK_inter_class_toks:nnn { CJK } { Boundary }
+\__xeCJK_inter_class_toks:nnn { CJK } { Boundary }
{
\c_group_end_token
- { \xeCJK_make_node:n { CJK } }
- \xeCJK_ignorespaces:
+ { \__xeCJK_make_node:n { CJK } }
+ \__xeCJK_ignorespaces:
}
-\xeCJK_inter_class_toks:nnn { CJK } { CJK } { \xeCJK_CJK_and_CJK:N }
-\cs_new_protected_nopar:Npn \xeCJK_CJK_and_CJK:N #1 { \CJKglue \CJKsymbol {#1} }
+\__xeCJK_inter_class_toks:nnn { CJK } { CJK } { \__xeCJK_CJK_and_CJK:N }
+\cs_new_protected_nopar:Npn \__xeCJK_CJK_and_CJK:N #1 { \CJKglue \CJKsymbol {#1} }
\clist_map_inline:nn { FullLeft, FullRight }
{
- \xeCJK_inter_class_toks:nnn { Boundary } {#1}
+ \__xeCJK_inter_class_toks:nnn { Boundary } {#1}
{
\c_group_begin_token
- \xeCJK_clear_CJK_toks:
+ \__xeCJK_clear_CJK_toks:
\xeCJK_select_font:
- \use:c { xeCJK_CJK_and_#1:N }
+ \use:c { __xeCJK_CJK_and_#1:N }
}
- \xeCJK_inter_class_toks:nnn {#1} { CJK } { \CJKsymbol }
- \xeCJK_inter_class_toks:nnn {#1} { Boundary } { \c_group_end_token \tex_ignorespaces:D }
+ \__xeCJK_inter_class_toks:nnn {#1} { CJK } { \CJKsymbol }
+ \__xeCJK_inter_class_toks:nnn {#1} { Boundary } { \c_group_end_token \tex_ignorespaces:D }
}
-\clist_map_inline:Nn \g_xeCJK_base_class_clist
+\clist_map_inline:Nn \g__xeCJK_base_class_clist
{
\bool_if:nF
{ \str_if_eq_x_p:nn {#1} { FullLeft } || \str_if_eq_x_p:nn {#1} { FullRight } }
{
- \xeCJK_pre_inter_class_toks:nnn { FullLeft } {#1} { \xeCJK_no_break: }
- \xeCJK_pre_inter_class_toks:nnn { FullRight } {#1} { \xeCJK_after_FullRight: }
+ \__xeCJK_pre_inter_class_toks:nnn { FullLeft } {#1} { \__xeCJK_no_break: }
+ \__xeCJK_pre_inter_class_toks:nnn { FullRight } {#1} { \__xeCJK_after_FullRight: }
}
}
\clist_map_inline:nn { CJK, FullLeft, FullRight }
{
\clist_map_inline:nn { FullLeft, FullRight }
- { \xeCJK_inter_class_toks:nnc {#1} {##1} { xeCJK_#1_and_##1:N } }
+ { \__xeCJK_inter_class_toks:nnc {#1} {##1} { __xeCJK_#1_and_##1:N } }
}
-\cs_new_protected_nopar:Npn \xeCJK_punct_rule:n #1
+\cs_new_protected_nopar:Npn \__xeCJK_punct_rule:n #1
{
\tex_vrule:D
- \@width \dim_eval:c { \l_xeCJK_punct_coor_tl/rule/#1 }
+ \@width \dim_eval:c { \l__xeCJK_punct_coor_tl/rule/#1 }
\@depth \c_zero_dim
\@height \c_zero_dim \scan_stop:
}
-\cs_new_protected_nopar:Npn \xeCJK_punct_glue:n #1
+\cs_new_protected_nopar:Npn \__xeCJK_punct_glue:n #1
{
\skip_horizontal:n
{
- \dim_eval:c { \l_xeCJK_punct_coor_tl/glue/#1 }
- \@plus \dim_eval:n { ( \tl_use:c { \l_xeCJK_punct_coor_tl/glue/#1 } ) /4 }
- \@minus \dim_eval:n { ( \tl_use:c { \l_xeCJK_punct_coor_tl/glue/#1 } ) /2 }
+ \dim_eval:c { \l__xeCJK_punct_coor_tl/glue/#1 }
+ \@plus \dim_eval:n { ( \tl_use:c { \l__xeCJK_punct_coor_tl/glue/#1 } ) /4 }
+ \@minus \dim_eval:n { ( \tl_use:c { \l__xeCJK_punct_coor_tl/glue/#1 } ) /2 }
}
}
-\cs_new_protected_nopar:Npn \xeCJK_punct_kern:n #1
- { \tex_kern:D \dim_eval:c { \l_xeCJK_punct_coor_tl/kern/#1 } }
+\cs_new_protected_nopar:Npn \__xeCJK_punct_kern:n #1
+ { \tex_kern:D \dim_eval:c { \l__xeCJK_punct_coor_tl/kern/#1 } }
\cs_generate_variant:Nn \dim_eval:n { c }
-\cs_new_protected_nopar:Npn \xeCJK_before_FullLeft:N #1
+\cs_new_protected_nopar:Npn \__xeCJK_before_FullLeft:N #1
{
- \tl_set:Nx \l_xeCJK_lastpunct_tl {#1}
- \xeCJK_punct_rule:n { l/#1 }
+ \tl_set:Nx \l__xeCJK_lastpunct_tl {#1}
+ \__xeCJK_punct_rule:n { l/#1 }
\CJKpunctsymbol {#1}
}
-\cs_new_protected_nopar:Npn \xeCJK_after_FullRight:
+\cs_new_protected_nopar:Npn \__xeCJK_after_FullRight:
{
- \xeCJK_get_punct_bounds:nV { r } \l_xeCJK_lastpunct_tl
- \xeCJK_punct_rule:n { r/\l_xeCJK_lastpunct_tl }
- \xeCJK_punct_glue:n { r/\l_xeCJK_lastpunct_tl }
+ \__xeCJK_get_punct_bounds:nV { r } \l__xeCJK_lastpunct_tl
+ \__xeCJK_punct_rule:n { r/\l__xeCJK_lastpunct_tl }
+ \__xeCJK_punct_glue:n { r/\l__xeCJK_lastpunct_tl }
}
-\cs_new_protected_nopar:Npn \xeCJK_CJK_and_FullLeft:N #1
+\cs_new_protected_nopar:Npn \__xeCJK_CJK_and_FullLeft:N #1
{
- \xeCJK_get_punct_bounds:nN { l } {#1}
+ \__xeCJK_get_punct_bounds:nN { l } {#1}
\int_compare:nNnF \etex_lastnodetype:D = \c_one
- { \xeCJK_punct_glue:n { l/#1 } }
- \xeCJK_before_FullLeft:N {#1}
- \xeCJK_punct_if_middle:NT {#1}
+ { \__xeCJK_punct_glue:n { l/#1 } }
+ \__xeCJK_before_FullLeft:N {#1}
+ \__xeCJK_punct_if_middle:NT {#1}
{
- \xeCJK_punct_rule:n { m/#1 }
- \xeCJK_punct_glue:n { l/#1 }
+ \__xeCJK_punct_rule:n { m/#1 }
+ \__xeCJK_punct_glue:n { l/#1 }
}
}
-\cs_new_protected_nopar:Npn \xeCJK_CJK_and_FullRight:N #1
+\cs_new_protected_nopar:Npn \__xeCJK_CJK_and_FullRight:N #1
{
- \xeCJK_get_punct_bounds:nN { r } {#1}
- \xeCJK_punct_if_long:NTF {#1} \CJKglue
+ \__xeCJK_get_punct_bounds:nN { r } {#1}
+ \__xeCJK_punct_if_long:NTF {#1} \CJKglue
{
- \xeCJK_no_break:
- \xeCJK_punct_if_middle:NT {#1}
+ \__xeCJK_no_break:
+ \__xeCJK_punct_if_middle:NT {#1}
{
- \xeCJK_punct_glue:n { r/#1 }
- \xeCJK_punct_rule:n { m/#1 }
+ \__xeCJK_punct_glue:n { r/#1 }
+ \__xeCJK_punct_rule:n { m/#1 }
}
}
- \tl_gset:Nx \l_xeCJK_lastpunct_tl {#1}
+ \tl_gset:Nx \l__xeCJK_lastpunct_tl {#1}
\CJKpunctsymbol {#1}
}
-\cs_new_protected_nopar:Npn \xeCJK_FullLeft_and_FullLeft:N #1
+\cs_new_protected_nopar:Npn \__xeCJK_FullLeft_and_FullLeft:N #1
{
- \xeCJK_no_break:
- \xeCJK_get_punct_bounds:nN { l } {#1}
- \xeCJK_get_kern:VN \l_xeCJK_lastpunct_tl {#1}
- \xeCJK_punct_kern:n { \l_xeCJK_lastpunct_tl - #1 }
- \xeCJK_before_FullLeft:N {#1}
+ \__xeCJK_no_break:
+ \__xeCJK_get_punct_bounds:nN { l } {#1}
+ \__xeCJK_get_kern:VN \l__xeCJK_lastpunct_tl {#1}
+ \__xeCJK_punct_kern:n { \l__xeCJK_lastpunct_tl - #1 }
+ \__xeCJK_before_FullLeft:N {#1}
}
-\cs_new_protected_nopar:Npn \xeCJK_FullLeft_and_FullRight:N #1
+\cs_new_protected_nopar:Npn \__xeCJK_FullLeft_and_FullRight:N #1
{
- \xeCJK_no_break:
- \xeCJK_get_punct_bounds:nN { r } {#1}
- \xeCJK_get_kern:VN \l_xeCJK_lastpunct_tl {#1}
- \xeCJK_punct_kern:n { \l_xeCJK_lastpunct_tl - #1 }
- \xeCJK_no_break:
- \tl_set:Nx \l_xeCJK_lastpunct_tl {#1}
+ \__xeCJK_no_break:
+ \__xeCJK_get_punct_bounds:nN { r } {#1}
+ \__xeCJK_get_kern:VN \l__xeCJK_lastpunct_tl {#1}
+ \__xeCJK_punct_kern:n { \l__xeCJK_lastpunct_tl - #1 }
+ \__xeCJK_no_break:
+ \tl_set:Nx \l__xeCJK_lastpunct_tl {#1}
\CJKpunctsymbol {#1}
}
-\cs_new_protected_nopar:Npn \xeCJK_FullRight_and_FullLeft:N #1
+\cs_new_protected_nopar:Npn \__xeCJK_FullRight_and_FullLeft:N #1
{
- \xeCJK_punct_rule:n { r/\l_xeCJK_lastpunct_tl }
- \xeCJK_get_punct_bounds:nN { l } {#1}
- \xeCJK_get_kern:VN \l_xeCJK_lastpunct_tl {#1}
- \xeCJK_punct_kern:n { \l_xeCJK_lastpunct_tl - #1 }
- \xeCJK_punct_nobreak:
- \xeCJK_before_FullLeft:N {#1}
+ \__xeCJK_punct_rule:n { r/\l__xeCJK_lastpunct_tl }
+ \__xeCJK_get_punct_bounds:nN { l } {#1}
+ \__xeCJK_get_kern:VN \l__xeCJK_lastpunct_tl {#1}
+ \__xeCJK_punct_kern:n { \l__xeCJK_lastpunct_tl - #1 }
+ \__xeCJK_punct_nobreak:
+ \__xeCJK_before_FullLeft:N {#1}
}
-\cs_new_protected_nopar:Npn \xeCJK_FullRight_and_FullRight:N #1
- {
- \xeCJK_punct_rule:n { r/\l_xeCJK_lastpunct_tl }
- \xeCJK_get_punct_bounds:nN { r } {#1}
- \xeCJK_get_kern:VN \l_xeCJK_lastpunct_tl {#1}
- \xeCJK_punct_kern:n { \l_xeCJK_lastpunct_tl - #1 }
- \xeCJK_no_break:
- \tl_set:Nx \l_xeCJK_lastpunct_tl {#1}
+\cs_new_protected_nopar:Npn \__xeCJK_FullRight_and_FullRight:N #1
+ {
+ \__xeCJK_punct_rule:n { r/\l__xeCJK_lastpunct_tl }
+ \__xeCJK_get_punct_bounds:nN { r } {#1}
+ \__xeCJK_get_kern:VN \l__xeCJK_lastpunct_tl {#1}
+ \__xeCJK_punct_kern:n { \l__xeCJK_lastpunct_tl - #1 }
+ \__xeCJK_no_break:
+ \tl_set:Nx \l__xeCJK_lastpunct_tl {#1}
\CJKpunctsymbol {#1}
}
- \prg_new_conditional:Npnn \xeCJK_if_last_node:n #1 { p , T , F , TF }
+ \prg_new_conditional:Npnn \__xeCJK_if_last_node:n #1 { p , T , F , TF }
{
- \if_dim:w \dim_use:c { c_xeCJK_#1_node_dim } = \tex_lastkern:D
+ \if_dim:w \dim_use:c { c__xeCJK_#1_node_dim } = \tex_lastkern:D
\prg_return_true: \else: \prg_return_false: \fi:
}
-\cs_new_protected_nopar:Npn \xeCJK_def_node:nn #1#2
+\cs_new_protected_nopar:Npn \__xeCJK_def_node:nn #1#2
{
- \dim_if_exist:cTF { c_xeCJK_#1_node_dim }
+ \dim_if_exist:cTF { c__xeCJK_#1_node_dim }
{ \dim_gset:cn } { \dim_const:cn }
- { c_xeCJK_#1_node_dim } {#2}
+ { c__xeCJK_#1_node_dim } {#2}
}
-\cs_new_protected_nopar:Npn \xeCJK_make_node:n #1
+\cs_new_protected_nopar:Npn \__xeCJK_make_node:n #1
{
- \tex_kern:D - \dim_use:c { c_xeCJK_#1_node_dim }
- \tex_kern:D \dim_use:c { c_xeCJK_#1_node_dim }
+ \tex_kern:D - \dim_use:c { c__xeCJK_#1_node_dim }
+ \tex_kern:D \dim_use:c { c__xeCJK_#1_node_dim }
}
-\xeCJK_def_node:nn { CJK } { 11 sp }
-\xeCJK_def_node:nn { CJK_space } { 12 sp }
-\xeCJK_def_node:nn { default } { 13 sp }
-\xeCJK_def_node:nn { default_space } { 14 sp }
-\xeCJK_def_node:nn { default_itcorr } { 15 sp }
+\__xeCJK_def_node:nn { CJK } { 11 sp }
+\__xeCJK_def_node:nn { CJK_space } { 12 sp }
+\__xeCJK_def_node:nn { default } { 13 sp }
+\__xeCJK_def_node:nn { default_space } { 14 sp }
+\__xeCJK_def_node:nn { default_itcorr } { 15 sp }
\keys_define:nn { xeCJK / options } { CJKglue .tl_set:N = \CJKglue }
\keys_define:nn { xeCJK / options }
{
CJKecglue .code:n =
{
\cs_set:Npn \CJKecglue {#1}
- \settowidth \l_xeCJK_ecglue_dim \CJKecglue
+ \settowidth \l__xeCJK_ecglue_dim \CJKecglue
},
xCJKecglue .choice:,
xCJKecglue / true .code:n =
{
- \bool_set_true:N \l_xeCJK_xecglue_bool
- \cs_set_eq:NN \xeCJK_space_or_xecglue: \CJKecglue
+ \bool_set_true:N \l__xeCJK_xecglue_bool
+ \cs_set_eq:NN \__xeCJK_space_or_xecglue: \CJKecglue
},
xCJKecglue / false .code:n =
{
- \bool_set_false:N \l_xeCJK_xecglue_bool
- \cs_set_eq:NN \xeCJK_space_or_xecglue: \c_space_token
+ \bool_set_false:N \l__xeCJK_xecglue_bool
+ \cs_set_eq:NN \__xeCJK_space_or_xecglue: \c_space_token
},
xCJKecglue / unknown .code:n =
{
- \bool_set_true:N \l_xeCJK_xecglue_bool
+ \bool_set_true:N \l__xeCJK_xecglue_bool
\cs_set:Npn \CJKecglue {#1}
- \settowidth \l_xeCJK_ecglue_dim \CJKecglue
- \cs_set_eq:NN \xeCJK_space_or_xecglue: \CJKecglue
+ \settowidth \l__xeCJK_ecglue_dim \CJKecglue
+ \cs_set_eq:NN \__xeCJK_space_or_xecglue: \CJKecglue
},
xCJKecglue .default:n = { true } ,
}
-\dim_new:N \l_xeCJK_ecglue_dim
-\bool_new:N \l_xeCJK_xecglue_bool
+\dim_new:N \l__xeCJK_ecglue_dim
+\bool_new:N \l__xeCJK_xecglue_bool
\keys_define:nn { xeCJK / options }
{
CJKspace .choice:,
@@ -659,50 +671,50 @@
}
\NewDocumentCommand \CJKspace { }
{
- \bool_set_true:N \l_xeCJK_space_bool
- \cs_set_eq:NN \xeCJK_ignorespaces: \xeCJK_peek_math:
+ \bool_set_true:N \l__xeCJK_space_bool
+ \cs_set_eq:NN \__xeCJK_ignorespaces: \__xeCJK_peek_math:
}
\NewDocumentCommand \CJKnospace { }
{
- \bool_set_false:N \l_xeCJK_space_bool
- \cs_set_eq:NN \xeCJK_ignorespaces: \xeCJK_ignore_spaces:
+ \bool_set_false:N \l__xeCJK_space_bool
+ \cs_set_eq:NN \__xeCJK_ignorespaces: \__xeCJK_ignore_spaces:
}
-\cs_new_protected_nopar:Npn \xeCJK_ignore_spaces:
+\cs_new_protected_nopar:Npn \__xeCJK_ignore_spaces:
{
\peek_catcode:NTF \c_space_token
{
- \xeCJK_if_last_node:nT { CJK }
- { \tex_unkern:D \tex_unkern:D { \xeCJK_make_node:n { CJK_space } } }
- \xeCJK_peek_catcode_ignore_spaces:NTF \c_math_toggle_token
- { \xeCJK_space_or_xecglue: }
+ \__xeCJK_if_last_node:nT { CJK }
+ { \tex_unkern:D \tex_unkern:D { \__xeCJK_make_node:n { CJK_space } } }
+ \__xeCJK_peek_catcode_ignore_spaces:NTF \c_math_toggle_token
+ { \__xeCJK_space_or_xecglue: }
{
\bool_if:nT
{
- \xeCJK_if_outer_macro_p:c { l_peek_token } ||
+ \__xeCJK_if_outer_macro_p:c { l_peek_token } ||
\token_if_cs_p:c { l_peek_token }
}
- { \xeCJK_space_or_xecglue: }
+ { \__xeCJK_space_or_xecglue: }
}
}
{
- \xeCJK_if_outer_macro:cF { l_peek_token }
+ \__xeCJK_if_outer_macro:cF { l_peek_token }
{
\token_if_math_toggle:cTF { l_peek_token } \CJKecglue
{ \cs_if_exist:cF { l_peek_token } \exp_not:N }
}
}
}
-\cs_new_protected_nopar:Npn \xeCJK_peek_math:
+\cs_new_protected_nopar:Npn \__xeCJK_peek_math:
{
\peek_catcode:NTF \c_space_token
{
- \xeCJK_if_last_node:nT { CJK }
- { \tex_unkern:D \tex_unkern:D { \xeCJK_make_node:n { CJK_space } } }
- \xeCJK_peek_catcode_ignore_spaces:NF \c_space_token
- { \xeCJK_space_or_xecglue: }
+ \__xeCJK_if_last_node:nT { CJK }
+ { \tex_unkern:D \tex_unkern:D { \__xeCJK_make_node:n { CJK_space } } }
+ \__xeCJK_peek_catcode_ignore_spaces:NF \c_space_token
+ { \__xeCJK_space_or_xecglue: }
}
{
- \xeCJK_if_outer_macro:cF { l_peek_token }
+ \__xeCJK_if_outer_macro:cF { l_peek_token }
{
\token_if_math_toggle:cTF { l_peek_token } \CJKecglue
{ \cs_if_exist:cF { l_peek_token } \exp_not:N }
@@ -717,48 +729,48 @@
CheckSingle .default:n = { true },
CJKchecksingle .meta:n = { CheckSingle = true } ,
}
-\bool_new:N \l_xeCJK_checksingle_bool
+\bool_new:N \l__xeCJK_checksingle_bool
\NewDocumentCommand \xeCJKenablechecksingle { }
{
- \bool_if:NF \l_xeCJK_checksingle_bool
+ \bool_if:NF \l__xeCJK_checksingle_bool
{
- \bool_set_true:N \l_xeCJK_checksingle_bool
- \cs_set_eq:NN \xeCJK_checksingle_save_CJKsymbol:N \xeCJK_CJK_and_CJK:N
- \cs_set_eq:NN \xeCJK_CJK_and_CJK:N \xeCJK_checksingle:N
+ \bool_set_true:N \l__xeCJK_checksingle_bool
+ \cs_set_eq:NN \__xeCJK_checksingle_save_CJKsymbol:N \__xeCJK_CJK_and_CJK:N
+ \cs_set_eq:NN \__xeCJK_CJK_and_CJK:N \__xeCJK_checksingle:N
}
}
\NewDocumentCommand \xeCJKdisablechecksingle { }
{
- \bool_if:NT \l_xeCJK_checksingle_bool
+ \bool_if:NT \l__xeCJK_checksingle_bool
{
- \bool_set_false:N \l_xeCJK_checksingle_bool
- \cs_set_eq:NN \xeCJK_CJK_and_CJK:N \xeCJK_checksingle_save_CJKsymbol:N
+ \bool_set_false:N \l__xeCJK_checksingle_bool
+ \cs_set_eq:NN \__xeCJK_CJK_and_CJK:N \__xeCJK_checksingle_save_CJKsymbol:N
}
}
-\cs_new_protected_nopar:Npn \xeCJK_checksingle:N #1
+\cs_new_protected_nopar:Npn \__xeCJK_checksingle:N #1
{
\peek_catcode:NTF \c_catcode_other_token
- { \xeCJK_checksingle:NN {#1} }
+ { \__xeCJK_checksingle:NN {#1} }
{
\bool_if:nTF
{
- ! ( \xeCJK_if_outer_macro_p:c { l_peek_token } ) &&
- \xeCJK_if_blank_x_p:n { \token_get_arg_spec:c { l_peek_token } } &&
+ ! ( \__xeCJK_if_outer_macro_p:c { l_peek_token } ) &&
+ \__xeCJK_if_blank_x_p:n { \token_get_arg_spec:c { l_peek_token } } &&
\exp_args:NNc \exp_args:No \tl_if_single_token_p:n { l_peek_token } &&
\exp_args:NNc \exp_after:wN \token_if_other_p:N { l_peek_token }
}
- { \xeCJK_checksingle:NN {#1} }
- { \xeCJK_checksingle_save_CJKsymbol:N {#1} }
+ { \__xeCJK_checksingle:NN {#1} }
+ { \__xeCJK_checksingle_save_CJKsymbol:N {#1} }
}
}
-\cs_new_protected_nopar:Npn \xeCJK_checksingle:NN #1#2
+\cs_new_protected_nopar:Npn \__xeCJK_checksingle:NN #1#2
{
\peek_catcode:NTF \c_catcode_other_token
- { \xeCJK_checksingle_save_CJKsymbol:N {#1} #2 }
+ { \__xeCJK_checksingle_save_CJKsymbol:N {#1} #2 }
{
\bool_if:nTF
{
- ! ( \xeCJK_if_outer_macro_p:c { l_peek_token } ) &&
+ ! ( \__xeCJK_if_outer_macro_p:c { l_peek_token } ) &&
( \token_if_space_p:c { l_peek_token } ||
\token_if_math_toggle_p:c { l_peek_token } ||
\token_if_cs_p:c { l_peek_token } )
@@ -766,71 +778,71 @@
{
\bool_if:nTF { \token_if_space_p:c { l_peek_token } }
{
- \xeCJK_peek_catcode_ignore_spaces:NTF \c_catcode_other_token
- { \xeCJK_checksingle_save_CJKsymbol:N {#1} #2 \c_space_token }
+ \__xeCJK_peek_catcode_ignore_spaces:NTF \c_catcode_other_token
+ { \__xeCJK_checksingle_save_CJKsymbol:N {#1} #2 \c_space_token }
{
\bool_if:nTF
{
- ! ( \xeCJK_if_outer_macro_p:c { l_peek_token } ) &&
+ ! ( \__xeCJK_if_outer_macro_p:c { l_peek_token } ) &&
( \token_if_math_toggle_p:c { l_peek_token } ||
\token_if_cs_p:c { l_peek_token } )
}
- { \xeCJK_checksingle:NNN {#1} {#2} \c_space_token }
- { \xeCJK_checksingle_save_CJKsymbol:N {#1} #2 \c_space_token }
+ { \__xeCJK_checksingle:NNN {#1} {#2} \c_space_token }
+ { \__xeCJK_checksingle_save_CJKsymbol:N {#1} #2 \c_space_token }
}
}
- { \xeCJK_checksingle:NNN {#1} {#2} { } }
+ { \__xeCJK_checksingle:NNN {#1} {#2} { } }
}
- { \xeCJK_checksingle_save_CJKsymbol:N {#1} #2 }
+ { \__xeCJK_checksingle_save_CJKsymbol:N {#1} #2 }
}
}
-\cs_new_protected_nopar:Npn \xeCJK_checksingle:NNN #1#2#3
+\cs_new_protected_nopar:Npn \__xeCJK_checksingle:NNN #1#2#3
{
\bool_if:nTF
{
\token_if_eq_meaning_p:NN \l_peek_token \par ||
\token_if_eq_meaning_p:NN \l_peek_token \[ % \]
}
- { \CJKsymbol {#1} \xeCJK_no_break: #2 }
- { \xeCJK_checksingle_env:NNN {#1} {#2} {#3} }
+ { \CJKsymbol {#1} \__xeCJK_no_break: #2 }
+ { \__xeCJK_checksingle_env:NNN {#1} {#2} {#3} }
}
-\cs_new_protected_nopar:Npn \xeCJK_checksingle_env:NNN #1#2#3
+\cs_new_protected_nopar:Npn \__xeCJK_checksingle_env:NNN #1#2#3
{
\peek_catcode_remove:NTF \c_math_toggle_token
{
\peek_catcode:NTF \c_math_toggle_token
- { \CJKsymbol {#1} \xeCJK_no_break: #2 \c_math_toggle_token }
- { \xeCJK_checksingle_save_CJKsymbol:N {#1} #2#3 \c_math_toggle_token }
+ { \CJKsymbol {#1} \__xeCJK_no_break: #2 \c_math_toggle_token }
+ { \__xeCJK_checksingle_save_CJKsymbol:N {#1} #2#3 \c_math_toggle_token }
}
{
\peek_meaning_remove:NTF \begin
- { \xeCJK_checksingle_env:NNNNn {#1} {#2} {#3} \begin }
+ { \__xeCJK_checksingle_env:NNNNn {#1} {#2} {#3} \begin }
{
\peek_meaning_remove:NTF \end
- { \xeCJK_checksingle_env:NNNNn {#1} {#2} {#3} \end }
- { \xeCJK_checksingle_save_CJKsymbol:N {#1} #2#3 }
+ { \__xeCJK_checksingle_env:NNNNn {#1} {#2} {#3} \end }
+ { \__xeCJK_checksingle_save_CJKsymbol:N {#1} #2#3 }
}
}
}
-\cs_new_protected_nopar:Npn \xeCJK_checksingle_env:NNNNn #1#2#3#4#5
+\cs_new_protected_nopar:Npn \__xeCJK_checksingle_env:NNNNn #1#2#3#4#5
{
- \clist_if_in:NnTF \g_xeCJK_inline_env_clist {#5}
- { \xeCJK_checksingle_save_CJKsymbol:N {#1} #2#3 }
- { \CJKsymbol {#1} \xeCJK_no_break: #2 }
+ \clist_if_in:NnTF \g__xeCJK_inline_env_clist {#5}
+ { \__xeCJK_checksingle_save_CJKsymbol:N {#1} #2#3 }
+ { \CJKsymbol {#1} \__xeCJK_no_break: #2 }
\scan_stop: #4 {#5}
}
\keys_define:nn { xeCJK / options }
{
- InlineEnv .clist_gset:N = \g_xeCJK_inline_env_clist ,
+ InlineEnv .clist_gset:N = \g__xeCJK_inline_env_clist ,
InlineEnv+ .code:n =
{
- \clist_gput_right:Nx \g_xeCJK_inline_env_clist {#1}
- \clist_gremove_duplicates:N \g_xeCJK_inline_env_clist
+ \clist_gput_right:Nx \g__xeCJK_inline_env_clist {#1}
+ \clist_gremove_duplicates:N \g__xeCJK_inline_env_clist
},
InlineEnv- .code:n =
{
\clist_map_inline:xn {#1}
- { \clist_gremove_all:Nn \g_xeCJK_inline_env_clist {##1} }
+ { \clist_gremove_all:Nn \g__xeCJK_inline_env_clist {##1} }
},
}
\cs_generate_variant:Nn \token_if_cs_p:N { c }
@@ -838,14 +850,14 @@
\cs_generate_variant:Nn \token_get_arg_spec:N { c }
\cs_generate_variant:Nn \token_if_math_toggle_p:N { c }
\cs_generate_variant:Nn \token_if_math_toggle:NTF { c }
-\tl_new:N \xeCJK_UL_subclass_patch_tl
-\clist_new:N \g_xeCJK_CJK_subclass_clist
-\cs_new_protected_nopar:Npn \xeCJK_erase_CJKsymbol:
+\tl_new:N \__xeCJK_UL_subclass_patch_tl
+\clist_new:N \g__xeCJK_CJK_subclass_clist
+\cs_new_protected_nopar:Npn \__xeCJK_erase_CJKsymbol:
{
\cs_gset_eq:NN \CJKsymbol_Block \CJKsymbol
\cs_gset_eq:NN \CJKsymbol \prg_do_nothing:
}
-\cs_new_protected_nopar:Npn \xeCJK_restore_CJKsymbol:
+\cs_new_protected_nopar:Npn \__xeCJK_restore_CJKsymbol:
{
\cs_gset_eq:NN \CJKsymbol \CJKsymbol_Block
\CJKsymbol
@@ -856,132 +868,132 @@
\IfBooleanT {#1} { \xeCJKResetPunctClass }
}
\@onlypreamble \xeCJKDeclareSubCJKBlock
-\bool_new:N \l_xeCJK_sub_cancel_bool
+\bool_new:N \l__xeCJK_sub_cancel_bool
\NewDocumentCommand \xeCJKCancelSubCJKBlock { s m }
{
- \bool_if:NF \l_xeCJK_sub_cancel_bool
+ \bool_if:NF \l__xeCJK_sub_cancel_bool
{
- \bool_set_true:N \l_xeCJK_sub_cancel_bool
- \xeCJK_sub_restore_or_cancel:n {#2}
+ \bool_set_true:N \l__xeCJK_sub_cancel_bool
+ \__xeCJK_sub_restore_or_cancel:n {#2}
\IfBooleanT {#1} { \xeCJKResetPunctClass }
}
}
\NewDocumentCommand \xeCJKRestoreSubCJKBlock { s m }
{
- \bool_if:NT \l_xeCJK_sub_cancel_bool
+ \bool_if:NT \l__xeCJK_sub_cancel_bool
{
- \bool_set_false:N \l_xeCJK_sub_cancel_bool
- \xeCJK_sub_restore_or_cancel:n {#2}
+ \bool_set_false:N \l__xeCJK_sub_cancel_bool
+ \__xeCJK_sub_restore_or_cancel:n {#2}
\IfBooleanT {#1} { \xeCJKResetPunctClass }
}
}
-\cs_new_protected_nopar:Npn \xeCJK_sub_restore_or_cancel:n #1
+\cs_new_protected_nopar:Npn \__xeCJK_sub_restore_or_cancel:n #1
{
\clist_map_inline:xn {#1}
{
- \cs_if_free:cTF { xeCJK_ CJK/##1 _class }
- { \xeCJK_error:nx { SubBlock-undefined } {##1} }
+ \int_if_exist:cTF { c__xeCJK_ CJK/##1 _class_int }
{
- \xeCJK_declare_char_class:nn
- { CJK \bool_if:NF \l_xeCJK_sub_cancel_bool { /##1 } }
- { \tl_use:c { g_xeCJK_CJK/##1_range_clist } }
+ \__xeCJK_declare_char_class:nn
+ { CJK \bool_if:NF \l__xeCJK_sub_cancel_bool { /##1 } }
+ { \tl_use:c { g__xeCJK_CJK/##1_range_clist } }
}
+ { \__xeCJK_error:nx { SubBlock-undefined } {##1} }
}
}
-\xeCJK_msg_new:nn { SubBlock-undefined }
+\__xeCJK_msg_new:nn { SubBlock-undefined }
{
The~CJK~sub~block~'#1'~is~undefined.\\\\
- Try~to~use~\token_to_str:N \xeCJKDeclareSubCJKBlock \c_space_tl
+ Try~to~use~\token_to_str:N \xeCJKDeclareSubCJKBlock \
to~declare~it.
}
\NewDocumentCommand \xeCJKDeclareSubCharClass
{ > { \TrimSpaces } m > { \TrimSpaces } m m }
{
- \cs_if_free:cT { xeCJK_ #1/#2 _class }
+ \int_if_exist:cF { c__xeCJK_ #1/#2 _class_int }
{
- \xeCJK_new_class:n { #1/#2 }
- \xeCJK_set_sub_class_toks:nn {#1} {#2}
- \xeCJK_new_sub_key:n {#2}
- \xeCJK_UL_subclass_patch:nn {#1} {#2}
+ \__xeCJK_new_class:n { #1/#2 }
+ \__xeCJK_set_sub_class_toks:nn {#1} {#2}
+ \__xeCJK_new_sub_key:n {#2}
+ \__xeCJK_UL_subclass_patch:nn {#1} {#2}
}
- \xeCJK_declare_char_class:nn { #1/#2 } {#3}
+ \__xeCJK_declare_char_class:nn { #1/#2 } {#3}
}
\@onlypreamble \xeCJKDeclareSubCharClass
-\cs_new_protected_nopar:Npn \xeCJK_set_sub_class_toks:nn #1#2
+\cs_new_protected_nopar:Npn \__xeCJK_set_sub_class_toks:nn #1#2
{
- \clist_map_inline:Nn \g_xeCJK_base_class_clist
+ \clist_map_inline:Nn \g__xeCJK_base_class_clist
{
- \xeCJK_copy_inter_class_toks:nnnn { #1/#2 } {##1} {#1} {##1}
- \xeCJK_copy_inter_class_toks:nnnn {##1} { #1/#2 } {##1} {#1}
+ \__xeCJK_copy_inter_class_toks:nnnn { #1/#2 } {##1} {#1} {##1}
+ \__xeCJK_copy_inter_class_toks:nnnn {##1} { #1/#2 } {##1} {#1}
\str_if_eq_x:nnTF {##1} { CJK }
{
- \xeCJK_pre_inter_class_toks:nnn {##1} { #1/#2 }
- { \xeCJK_switch_font:nn {#1} {#2} }
+ \__xeCJK_pre_inter_class_toks:nnn {##1} { #1/#2 }
+ { \__xeCJK_switch_font:nn {#1} {#2} }
}
{
- \xeCJK_pre_inter_class_toks:nnn {##1} { #1/#2 }
- { \xeCJK_erase_CJKsymbol: }
- \xeCJK_app_inter_class_toks:nnn {##1} { #1/#2 }
- { \xeCJK_switch_font:nn {#1} {#2} \xeCJK_restore_CJKsymbol: }
+ \__xeCJK_pre_inter_class_toks:nnn {##1} { #1/#2 }
+ { \__xeCJK_erase_CJKsymbol: }
+ \__xeCJK_app_inter_class_toks:nnn {##1} { #1/#2 }
+ { \__xeCJK_switch_font:nn {#1} {#2} \__xeCJK_restore_CJKsymbol: }
}
}
- \xeCJK_copy_inter_class_toks:nnnn { #1/#2 } { #1/#2 } {#1} {#1}
- \clist_if_empty:NF \g_xeCJK_CJK_subclass_clist
+ \__xeCJK_copy_inter_class_toks:nnnn { #1/#2 } { #1/#2 } {#1} {#1}
+ \clist_if_empty:NF \g__xeCJK_CJK_subclass_clist
{
- \clist_map_inline:Nn \g_xeCJK_CJK_subclass_clist
+ \clist_map_inline:Nn \g__xeCJK_CJK_subclass_clist
{
- \xeCJK_copy_inter_class_toks:nnnn { #1/#2 } { #1/##1 } {#1} {#1}
- \xeCJK_copy_inter_class_toks:nnnn { #1/##1 } { #1/#2 } {#1} {#1}
- \xeCJK_pre_inter_class_toks:nnn { #1/#2 } { #1/##1 }
- { \xeCJK_switch_font:nn {#2} {##1} }
- \xeCJK_pre_inter_class_toks:nnn { #1/##1 } { #1/#2 }
- { \xeCJK_switch_font:nn {##1} {#2} }
+ \__xeCJK_copy_inter_class_toks:nnnn { #1/#2 } { #1/##1 } {#1} {#1}
+ \__xeCJK_copy_inter_class_toks:nnnn { #1/##1 } { #1/#2 } {#1} {#1}
+ \__xeCJK_pre_inter_class_toks:nnn { #1/#2 } { #1/##1 }
+ { \__xeCJK_switch_font:nn {#2} {##1} }
+ \__xeCJK_pre_inter_class_toks:nnn { #1/##1 } { #1/#2 }
+ { \__xeCJK_switch_font:nn {##1} {#2} }
}
}
- \clist_gput_right:Nn \g_xeCJK_CJK_subclass_clist {#2}
- \xeCJK_save_CJK_class:n { #1/#2 }
+ \clist_gput_right:Nn \g__xeCJK_CJK_subclass_clist {#2}
+ \__xeCJK_save_CJK_class:n { #1/#2 }
\clist_map_inline:nn { CJK, FullLeft, FullRight }
{
- \xeCJK_pre_inter_class_toks:nnn { #1/#2 } {##1}
- { \xeCJK_switch_font:nn {#2} {#1} }
+ \__xeCJK_pre_inter_class_toks:nnn { #1/#2 } {##1}
+ { \__xeCJK_switch_font:nn {#2} {#1} }
}
}
-\cs_new_protected_nopar:Npn \xeCJK_UL_subclass_patch:nn #1#2
+\cs_new_protected_nopar:Npn \__xeCJK_UL_subclass_patch:nn #1#2
{
- \tl_put_right:Nn \xeCJK_UL_subclass_patch_tl
+ \tl_put_right:Nn \__xeCJK_UL_subclass_patch_tl
{
\clist_map_inline:nn { Default, HalfLeft, HalfRight }
{
\str_if_eq_x:nnTF {##1} { HalfLeft }
- { \xeCJK_inter_class_toks:nnn {#1} { #1/#2 } { \CJKecglue \CJKsymbol } }
- { \xeCJK_inter_class_toks:nnn {#1} { #1/#2 } { \CJKsymbol } }
- \xeCJK_inter_class_toks:nnn { Boundary } { #1/#2 }
+ { \__xeCJK_inter_class_toks:nnn {#1} { #1/#2 } { \CJKecglue \CJKsymbol } }
+ { \__xeCJK_inter_class_toks:nnn {#1} { #1/#2 } { \CJKsymbol } }
+ \__xeCJK_inter_class_toks:nnn { Boundary } { #1/#2 }
{
- \xeCJK_erase_CJKsymbol:
- \xeCJK_Boundary_and_CJK:
- \xeCJK_switch_font:nn {#1} {#2}
- \xeCJK_restore_CJKsymbol:
+ \__xeCJK_erase_CJKsymbol:
+ \__xeCJK_Boundary_and_CJK:
+ \__xeCJK_switch_font:nn {#1} {#2}
+ \__xeCJK_restore_CJKsymbol:
}
}
}
}
-\clist_new:N \g_xeCJK_punctstyle_clist
-\clist_set:Nn \g_xeCJK_punctstyle_clist
+\clist_new:N \g__xeCJK_punctstyle_clist
+\clist_set:Nn \g__xeCJK_punctstyle_clist
{ CCT , halfwidth , fullwidth , marginkerning , mixedwidth , plain }
-\clist_map_inline:Nn \g_xeCJK_punctstyle_clist
- { \tl_const:cn { c_xeCJK_ps_#1_tl } {#1} }
+\clist_map_inline:Nn \g__xeCJK_punctstyle_clist
+ { \tl_const:cn { c__xeCJK_ps_#1_tl } {#1} }
\cs_generate_variant:Nn \keys_define:nn { nx }
\keys_define:nn { xeCJK / options }
{
PunctStyle .choice_code:n =
{
- \tl_set:Nx \l_xeCJK_punctstyle_tl { \l_keys_choice_tl }
- \tl_if_eq:NNT \l_xeCJK_punctstyle_tl \c_xeCJK_ps_plain_tl
+ \tl_set:Nx \l__xeCJK_punctstyle_tl { \l_keys_choice_tl }
+ \tl_if_eq:NNT \l__xeCJK_punctstyle_tl \c__xeCJK_ps_plain_tl
{ \xeCJKallowbreakbetweenpuncts }
},
}
\keys_define:nx { xeCJK / options }
- { PunctStyle .generate_choices:n = { \exp_not:V \g_xeCJK_punctstyle_clist } }
+ { PunctStyle .generate_choices:n = { \exp_not:V \g__xeCJK_punctstyle_clist } }
\keys_define:nn { xeCJK / options }
{
PunctStyle / banjiao .meta:n = { PunctStyle = halfwidth },
@@ -989,13 +1001,13 @@
PunctStyle / kaiming .meta:n = { PunctStyle = mixedwidth },
PunctStyle / hangmobanjiao .meta:n = { PunctStyle = marginkerning },
PunctStyle / unknown .code:n =
- { \xeCJK_error:nx { PunctStyle-undefined } \l_keys_value_tl },
+ { \__xeCJK_error:nx { PunctStyle-undefined } \l_keys_value_tl },
}
-\xeCJK_msg_new:nn { PunctStyle-undefined }
+\__xeCJK_msg_new:nn { PunctStyle-undefined }
{
Punctstyle~"#1"~is~not~available. \\\\
You~can~only~use~one~of\\\\
- "\g_xeCJK_punctstyle_clist".\\
+ "\g__xeCJK_punctstyle_clist".\\
}
\keys_define:nn { xeCJK / options }
{
@@ -1003,286 +1015,299 @@
AllowBreakBetweenPuncts / true .code:n = { \xeCJKallowbreakbetweenpuncts },
AllowBreakBetweenPuncts / false .code:n = { \xeCJKnobreakbetweenpuncts },
AllowBreakBetweenPuncts .default:n = { true },
- KaiMingPunct .code:n = { \xeCJK_set_special_punct:nn { mixedwidth } {#1} },
- KaiMingPunct+ .code:n = { \xeCJK_add_special_punct:nn { mixedwidth } {#1} },
- KaiMingPunct- .code:n = { \xeCJK_sub_special_punct:nn { mixedwidth } {#1} },
- LongPunct .code:n = { \xeCJK_set_special_punct:nn { long } {#1} },
- LongPunct+ .code:n = { \xeCJK_add_special_punct:nn { long } {#1} },
- LongPunct- .code:n = { \xeCJK_sub_special_punct:nn { long } {#1} },
- MiddlePunct+ .code:n = { \xeCJK_add_special_punct:nn { middle } {#1} },
- MiddlePunct .code:n = { \xeCJK_set_special_punct:nn { middle } {#1} },
- MiddlePunct- .code:n = { \xeCJK_sub_special_punct:nn { middle } {#1} },
- PunctWidth .tl_gset:N = \g_xeCJK_punct_width_tl ,
+ KaiMingPunct .code:n = { \__xeCJK_set_special_punct:nn { mixedwidth } {#1} },
+ KaiMingPunct+ .code:n = { \__xeCJK_add_special_punct:nn { mixedwidth } {#1} },
+ KaiMingPunct- .code:n = { \__xeCJK_sub_special_punct:nn { mixedwidth } {#1} },
+ LongPunct .code:n = { \__xeCJK_set_special_punct:nn { long } {#1} },
+ LongPunct+ .code:n = { \__xeCJK_add_special_punct:nn { long } {#1} },
+ LongPunct- .code:n = { \__xeCJK_sub_special_punct:nn { long } {#1} },
+ MiddlePunct+ .code:n = { \__xeCJK_add_special_punct:nn { middle } {#1} },
+ MiddlePunct .code:n = { \__xeCJK_set_special_punct:nn { middle } {#1} },
+ MiddlePunct- .code:n = { \__xeCJK_sub_special_punct:nn { middle } {#1} },
+ PunctWidth .tl_gset:N = \g__xeCJK_punct_width_tl ,
}
\NewDocumentCommand \xeCJKallowbreakbetweenpuncts { }
- { \cs_set_eq:NN \xeCJK_punct_nobreak: \xeCJK_zero_glue: }
+ { \cs_set_eq:NN \__xeCJK_punct_nobreak: \__xeCJK_zero_glue: }
\NewDocumentCommand \xeCJKnobreakbetweenpuncts { }
- { \cs_set_eq:NN \xeCJK_punct_nobreak: \xeCJK_no_break: }
-\cs_new_protected_nopar:Npn \xeCJK_zero_glue: { \skip_horizontal:N \c_zero_skip }
-\clist_set:Nn \g_xeCJK_special_ps_clist { mixedwidth , long , middle }
-\clist_map_inline:Nn \g_xeCJK_special_ps_clist
+ { \cs_set_eq:NN \__xeCJK_punct_nobreak: \__xeCJK_no_break: }
+\cs_new_protected_nopar:Npn \__xeCJK_zero_glue: { \skip_horizontal:N \c_zero_skip }
+\clist_set:Nn \g__xeCJK_special_ps_clist { mixedwidth , long , middle }
+\clist_map_inline:Nn \g__xeCJK_special_ps_clist
{
- \tl_new:c { l_xeCJK_#1_punct_tl }
- \prop_new:c { l_xeCJK_#1_punct_prop }
+ \tl_new:c { l__xeCJK_#1_punct_tl }
+ \prop_new:c { l__xeCJK_#1_punct_prop }
}
-\cs_new_protected_nopar:Npn \xeCJK_set_special_punct:nn #1#2
+\cs_new_protected_nopar:Npn \__xeCJK_set_special_punct:nn #1#2
{
- \tl_set:cx { l_xeCJK_#1_punct_tl } {#2}
- \prop_clear:c { l_xeCJK_#1_punct_prop }
- \tl_map_inline:cn { l_xeCJK_#1_punct_tl }
- { \prop_put:cnn { l_xeCJK_#1_punct_prop } {##1} { } }
+ \tl_set:cx { l__xeCJK_#1_punct_tl } {#2}
+ \prop_clear:c { l__xeCJK_#1_punct_prop }
+ \tl_map_inline:cn { l__xeCJK_#1_punct_tl }
+ { \prop_put:cnn { l__xeCJK_#1_punct_prop } {##1} { } }
}
-\cs_new_protected_nopar:Npn \xeCJK_add_special_punct:nn #1#2
+\cs_new_protected_nopar:Npn \__xeCJK_add_special_punct:nn #1#2
{
- \tl_put_right:cx { l_xeCJK_#1_punct_tl } {#2}
- \tl_map_inline:cn { l_xeCJK_#1_punct_tl }
- { \prop_put:cnn { l_xeCJK_#1_punct_prop } {##1} { } }
+ \tl_put_right:cx { l__xeCJK_#1_punct_tl } {#2}
+ \tl_map_inline:cn { l__xeCJK_#1_punct_tl }
+ { \prop_put:cnn { l__xeCJK_#1_punct_prop } {##1} { } }
}
-\cs_new_protected_nopar:Npn \xeCJK_sub_special_punct:nn #1#2
+\cs_new_protected_nopar:Npn \__xeCJK_sub_special_punct:nn #1#2
{
\tl_map_inline:xn {#2}
{
- \tl_remove_all:cn { l_xeCJK_#1_punct_tl } {##1}
- \prop_remove:cn { l_xeCJK_#1_punct_prop } {##1}
+ \tl_remove_all:cn { l__xeCJK_#1_punct_tl } {##1}
+ \prop_remove:cn { l__xeCJK_#1_punct_prop } {##1}
}
}
\cs_generate_variant:Nn \tl_map_inline:nn { x }
\cs_generate_variant:Nn \dim_set:Nn { Nc }
\cs_generate_variant:Nn \dim_add:Nn { Nc }
-\cs_generate_variant:Nn \dim_set_min:Nn { Nc }
-\tl_set:Nn \l_xeCJK_punct_coor_tl { \l_xeCJK_font_coor_tl/\l_xeCJK_punctstyle_tl }
-\cs_new_protected_nopar:Npn \xeCJK_get_punct_bounds:nN #1#2
+\cs_generate_variant:Nn \dim_min:nn { cc }
+\cs_new_protected_nopar:Npn \__xeCJK_dim_set_max:Nn #1#2
+ { \dim_set:Nn #1 { \dim_max:nn {#1} {#2} } }
+\cs_new_protected_nopar:Npn \__xeCJK_dim_set_min:Nn #1#2
+ { \dim_set:Nn #1 { \dim_min:nn {#1} {#2} } }
+\tl_set:Nn \l__xeCJK_punct_coor_tl { \l__xeCJK_font_coor_tl/\l__xeCJK_punctstyle_tl }
+\cs_new_protected_nopar:Npn \__xeCJK_get_punct_bounds:nN #1#2
{
- \tl_if_exist:cF { \l_xeCJK_punct_coor_tl/rule/#1/#2 }
+ \tl_if_exist:cF { \l__xeCJK_punct_coor_tl/rule/#1/#2 }
{
- \tl_if_eq:NNTF \l_xeCJK_punctstyle_tl \c_xeCJK_ps_plain_tl
+ \tl_if_eq:NNTF \l__xeCJK_punctstyle_tl \c__xeCJK_ps_plain_tl
{
\clist_map_inline:nn { glue , rule , bound }
- { \tl_gset:cV { \l_xeCJK_punct_coor_tl/##1/#1/#2 } \c_zero_dim }
- \tl_gset:cV { \l_xeCJK_punct_coor_tl/rule/m/#2 } \c_zero_dim
+ { \tl_gset:cV { \l__xeCJK_punct_coor_tl/##1/#1/#2 } \c_zero_dim }
+ \tl_gset:cV { \l__xeCJK_punct_coor_tl/rule/m/#2 } \c_zero_dim
}
{
- \tl_if_exist:cF { \l_xeCJK_punct_coor_tl/bound/#1/#2 }
- { { \xeCJK_select_font: \xeCJK_get_punct_dimen:N {#2} } }
- \xeCJK_punct_if_long:NTF {#2}
+ \tl_if_exist:cF { \l__xeCJK_punct_coor_tl/bound/#1/#2 }
+ { { \xeCJK_select_font: \__xeCJK_get_punct_dimen:N {#2} } }
+ \__xeCJK_punct_if_long:NTF {#2}
{
- \dim_zero:N \l_xeCJK_tmpa_dim
- \dim_zero:N \l_xeCJK_tmpb_dim
- \dim_zero:N \l_xeCJK_tmpc_dim
+ \dim_zero:N \l__xeCJK_tmpa_dim
+ \dim_zero:N \l__xeCJK_tmpb_dim
+ \dim_zero:N \l__xeCJK_tmpc_dim
}
{
- \dim_set:Nc \l_xeCJK_tmpa_dim { \l_xeCJK_punct_coor_tl/bound/#1/#2 }
- \dim_set:Nc \l_xeCJK_tmpb_dim
- { \l_xeCJK_punct_coor_tl/bound/\str_if_eq_x:nnTF {#1} lrl/#2 }
- \dim_set:Nn \l_xeCJK_tmpc_dim
+ \dim_set:Nc \l__xeCJK_tmpa_dim { \l__xeCJK_punct_coor_tl/bound/#1/#2 }
+ \dim_set:Nc \l__xeCJK_tmpb_dim
+ { \l__xeCJK_punct_coor_tl/bound/\str_if_eq_x:nnTF {#1} lrl/#2 }
+ \dim_set:Nn \l__xeCJK_tmpc_dim
{
- \cs_if_exist_use:cF { g_xeCJK_punct_width/#2 }
+ \cs_if_exist_use:cF { g__xeCJK_punct_width/#2 }
{
- \xeCJK_if_blank_x:nTF \g_xeCJK_punct_width_tl
+ \__xeCJK_if_blank_x:nTF \g__xeCJK_punct_width_tl
{ \c_zero_dim }
- { \g_xeCJK_punct_width_tl }
+ { \g__xeCJK_punct_width_tl }
}
}
- \xeCJK_punct_if_middle:NTF {#2}
+ \__xeCJK_punct_if_middle:NTF {#2}
{
- \dim_set:Nn \l_xeCJK_tmpc_dim
+ \dim_set:Nn \l__xeCJK_tmpc_dim
{
- \dim_compare:nNnTF \l_xeCJK_tmpc_dim > \c_zero_dim
- { \l_xeCJK_tmpc_dim }
+ \dim_compare:nNnTF \l__xeCJK_tmpc_dim > \c_zero_dim
+ { \l__xeCJK_tmpc_dim }
{
- \tl_case:Nnn \l_xeCJK_punctstyle_tl
+ \tl_case:Nnn \l__xeCJK_punctstyle_tl
{
- \c_xeCJK_ps_halfwidth_tl { .5 em }
- \c_xeCJK_ps_mixedwidth_tl { .5 em }
- \c_xeCJK_ps_CCT_tl { .7 em }
- \c_xeCJK_ps_fullwidth_tl { 1 em }
+ \c__xeCJK_ps_halfwidth_tl { .5 em }
+ \c__xeCJK_ps_mixedwidth_tl { .5 em }
+ \c__xeCJK_ps_CCT_tl { .7 em }
+ \c__xeCJK_ps_fullwidth_tl { 1 em }
}
{ 1 em }
}
- - \tl_use:c { \l_xeCJK_punct_coor_tl/dimen/#2 }
+ - \tl_use:c { \l__xeCJK_punct_coor_tl/dimen/#2 }
}
- \dim_set:Nn \l_xeCJK_tmpc_dim { .5 \l_xeCJK_tmpc_dim }
+ \dim_set:Nn \l__xeCJK_tmpc_dim { .5 \l__xeCJK_tmpc_dim }
}
{
- \dim_compare:nNnTF \l_xeCJK_tmpc_dim > \c_zero_dim
+ \dim_compare:nNnTF \l__xeCJK_tmpc_dim > \c_zero_dim
{
- \dim_set:Nn \l_xeCJK_tmpc_dim
+ \dim_set:Nn \l__xeCJK_tmpc_dim
{
- \l_xeCJK_tmpc_dim - \l_xeCJK_tmpb_dim
- - \tl_use:c { \l_xeCJK_punct_coor_tl/dimen/#2 }
+ \l__xeCJK_tmpc_dim - \l__xeCJK_tmpb_dim
+ - \tl_use:c { \l__xeCJK_punct_coor_tl/dimen/#2 }
}
}
{
- \dim_set_eq:NN \l_xeCJK_tmpc_dim \l_xeCJK_tmpa_dim
- \dim_set_min:Nn \l_xeCJK_tmpc_dim \l_xeCJK_tmpb_dim
- \tl_case:Nnn \l_xeCJK_punctstyle_tl
+ \dim_set:Nn \l__xeCJK_tmpc_dim
+ { \dim_min:nn \l__xeCJK_tmpa_dim \l__xeCJK_tmpb_dim }
+ \tl_case:Nnn \l__xeCJK_punctstyle_tl
{
- \c_xeCJK_ps_halfwidth_tl { \prg_do_nothing: }
- \c_xeCJK_ps_mixedwidth_tl
+ \c__xeCJK_ps_halfwidth_tl { \prg_do_nothing: }
+ \c__xeCJK_ps_mixedwidth_tl
{
- \xeCJK_punct_if_mixedwidth:NT {#2}
+ \__xeCJK_punct_if_mixedwidth:NT {#2}
{
- \dim_add:Nn \l_xeCJK_tmpc_dim { .5 \l_xeCJK_tmpa_dim }
- \dim_set_min:Nn \l_xeCJK_tmpc_dim \l_xeCJK_tmpa_dim
+ \dim_add:Nn \l__xeCJK_tmpc_dim { .5 \l__xeCJK_tmpa_dim }
+ \__xeCJK_dim_set_min:Nn \l__xeCJK_tmpc_dim \l__xeCJK_tmpa_dim
}
}
- \c_xeCJK_ps_CCT_tl
+ \c__xeCJK_ps_CCT_tl
{
- \xeCJK_punct_if_mixedwidth:NTF {#2}
- { \dim_add:Nn \l_xeCJK_tmpc_dim { .5 \l_xeCJK_tmpa_dim } }
- { \dim_add:Nn \l_xeCJK_tmpc_dim { .3 \l_xeCJK_tmpa_dim } }
- \dim_set_min:Nn \l_xeCJK_tmpc_dim \l_xeCJK_tmpa_dim
+ \__xeCJK_punct_if_mixedwidth:NTF {#2}
+ { \dim_add:Nn \l__xeCJK_tmpc_dim { .5 \l__xeCJK_tmpa_dim } }
+ { \dim_add:Nn \l__xeCJK_tmpc_dim { .3 \l__xeCJK_tmpa_dim } }
+ \__xeCJK_dim_set_min:Nn \l__xeCJK_tmpc_dim \l__xeCJK_tmpa_dim
}
}
- { \dim_set_eq:NN \l_xeCJK_tmpc_dim \l_xeCJK_tmpa_dim }
+ { \dim_set_eq:NN \l__xeCJK_tmpc_dim \l__xeCJK_tmpa_dim }
}
}
- \dim_set_max:Nn \l_xeCJK_tmpc_dim \c_zero_dim
+ \__xeCJK_dim_set_max:Nn \l__xeCJK_tmpc_dim \c_zero_dim
}
- \tl_gset:cx { \l_xeCJK_punct_coor_tl/rule/#1/#2 }
- { - \dim_use:N \l_xeCJK_tmpa_dim }
- \tl_gset:cx { \l_xeCJK_punct_coor_tl/rule/m/#2 }
- { - \dim_use:N \l_xeCJK_tmpb_dim }
- \tl_gset:cV { \l_xeCJK_punct_coor_tl/glue/#1/#2 } \l_xeCJK_tmpc_dim
+ \tl_gset:cx { \l__xeCJK_punct_coor_tl/rule/#1/#2 }
+ { - \dim_use:N \l__xeCJK_tmpa_dim }
+ \tl_gset:cx { \l__xeCJK_punct_coor_tl/rule/m/#2 }
+ { - \dim_use:N \l__xeCJK_tmpb_dim }
+ \tl_gset:cV { \l__xeCJK_punct_coor_tl/glue/#1/#2 } \l__xeCJK_tmpc_dim
}
}
}
-\cs_generate_variant:Nn \xeCJK_get_punct_bounds:nN { nV }
+\cs_generate_variant:Nn \__xeCJK_get_punct_bounds:nN { nV }
\NewDocumentCommand \xeCJKsetwidth { m m }
- { \tl_map_inline:xn {#1} { \tl_gset:cn { g_xeCJK_punct_width/##1 } {#2} } }
-\prg_new_conditional:Npnn \xeCJK_punct_if_right:N #1 { p , T , F , TF }
+ { \tl_map_inline:xn {#1} { \tl_gset:cn { g__xeCJK_punct_width/##1 } {#2} } }
+\prg_new_conditional:Npnn \__xeCJK_punct_if_right:N #1 { p , T , F , TF }
{
- \tl_if_exist:cTF { \l_xeCJK_punct_coor_tl/glue/r/#1 }
+ \tl_if_exist:cTF { \l__xeCJK_punct_coor_tl/glue/r/#1 }
\prg_return_true: \prg_return_false:
}
-\prg_new_conditional:Npnn \xeCJK_punct_if_both_left_right:NN #1#2 { p , T , F , TF }
+\prg_new_conditional:Npnn \__xeCJK_punct_if_both_left_right:NN #1#2 { p , T , F , TF }
{
\bool_if:nTF
{
- ( \tl_if_exist_p:c { \l_xeCJK_punct_coor_tl/glue/r/#1 } &&
- \tl_if_exist_p:c { \l_xeCJK_punct_coor_tl/glue/r/#2 } ) ||
- ( \tl_if_exist_p:c { \l_xeCJK_punct_coor_tl/glue/l/#1 } &&
- \tl_if_exist_p:c { \l_xeCJK_punct_coor_tl/glue/l/#2 } )
+ ( \tl_if_exist_p:c { \l__xeCJK_punct_coor_tl/glue/r/#1 } &&
+ \tl_if_exist_p:c { \l__xeCJK_punct_coor_tl/glue/r/#2 } ) ||
+ ( \tl_if_exist_p:c { \l__xeCJK_punct_coor_tl/glue/l/#1 } &&
+ \tl_if_exist_p:c { \l__xeCJK_punct_coor_tl/glue/l/#2 } )
}
\prg_return_true: \prg_return_false:
}
\cs_generate_variant:Nn \prg_new_conditional:Npnn { c }
-\clist_map_inline:Nn \g_xeCJK_special_ps_clist
+\clist_map_inline:Nn \g__xeCJK_special_ps_clist
{
- \prg_new_conditional:cpnn { xeCJK_punct_if_#1:N } ##1 { p , T , F , TF }
+ \prg_new_conditional:cpnn { __xeCJK_punct_if_#1:N } ##1 { p , T , F , TF }
{
- \prop_if_in:cnTF { l_xeCJK_#1_punct_prop } {##1}
+ \prop_if_in:cnTF { l__xeCJK_#1_punct_prop } {##1}
\prg_return_true: \prg_return_false:
}
}
-\cs_new_protected_nopar:Npn \xeCJK_get_kern:NN #1#2
+\cs_new_protected_nopar:Npn \__xeCJK_get_kern:NN #1#2
{
- \tl_if_exist:cF { \l_xeCJK_punct_coor_tl/kern/#1-#2 }
+ \tl_if_exist:cF { \l__xeCJK_punct_coor_tl/kern/#1-#2 }
{
- \dim_zero:N \l_xeCJK_tmpa_dim
- \tl_if_eq:NNF \l_xeCJK_punctstyle_tl \c_xeCJK_ps_plain_tl
+ \dim_zero:N \l__xeCJK_tmpa_dim
+ \tl_if_eq:NNF \l__xeCJK_punctstyle_tl \c__xeCJK_ps_plain_tl
{
- \tl_if_exist:cTF { g_xeCJK_punct/kern/#1-#2 }
- { \dim_set:Nc \l_xeCJK_tmpa_dim { g_xeCJK_punct/kern/#1-#2 } }
- { \xeCJK_calc_kern:NN {#1} {#2} }
+ \tl_if_exist:cTF { g__xeCJK_punct/kern/#1-#2 }
+ { \dim_set:Nc \l__xeCJK_tmpa_dim { g__xeCJK_punct/kern/#1-#2 } }
+ { \__xeCJK_calc_kern:NN {#1} {#2} }
}
- \tl_gset:cV { \l_xeCJK_punct_coor_tl/kern/#1-#2 } \l_xeCJK_tmpa_dim
+ \tl_gset:cV { \l__xeCJK_punct_coor_tl/kern/#1-#2 } \l__xeCJK_tmpa_dim
}
}
-\cs_new_protected_nopar:Npn \xeCJK_calc_kern:NN #1#2
+\cs_new_protected_nopar:Npn \__xeCJK_calc_kern:NN #1#2
{
- \tl_if_eq:NNTF \l_xeCJK_punctstyle_tl \c_xeCJK_ps_marginkerning_tl
+ \tl_if_eq:NNTF \l__xeCJK_punctstyle_tl \c__xeCJK_ps_marginkerning_tl
{
- \xeCJK_punct_if_right:NT {#1}
- { \dim_add:Nc \l_xeCJK_tmpa_dim { \l_xeCJK_punct_coor_tl/bound/r/#1 } }
- \xeCJK_punct_if_right:NF {#2}
- { \dim_add:Nc \l_xeCJK_tmpa_dim { \l_xeCJK_punct_coor_tl/bound/l/#2 } }
+ \__xeCJK_punct_if_right:NT {#1}
+ { \dim_add:Nc \l__xeCJK_tmpa_dim { \l__xeCJK_punct_coor_tl/bound/r/#1 } }
+ \__xeCJK_punct_if_right:NF {#2}
+ { \dim_add:Nc \l__xeCJK_tmpa_dim { \l__xeCJK_punct_coor_tl/bound/l/#2 } }
}
{
- \tl_if_eq:NNTF \l_xeCJK_punctstyle_tl \c_xeCJK_ps_fullwidth_tl
- { \xeCJK_calc_kern:NnNN \l_xeCJK_tmpa_dim { 1.5 em } {#1} {#2} }
+ \tl_if_eq:NNTF \l__xeCJK_punctstyle_tl \c__xeCJK_ps_fullwidth_tl
+ { \__xeCJK_calc_kern:NnNN \l__xeCJK_tmpa_dim { 1.5 em } {#1} {#2} }
{
- \xeCJK_punct_if_both_left_right:NNTF {#1} {#2}
+ \__xeCJK_punct_if_both_left_right:NNTF {#1} {#2}
{
- \xeCJK_punct_if_mixedwidth:NT {#1}
+ \__xeCJK_punct_if_mixedwidth:NT {#1}
{
- \xeCJK_calc_kern:NnNN \l_xeCJK_tmpa_dim { 1 em } {#1} {#2}
- \dim_compare:nNnT \l_xeCJK_tmpa_dim < { .1 em }
- { \dim_set:Nc \l_xeCJK_tmpa_dim { \l_xeCJK_punct_coor_tl/bound/l/#1 } }
+ \__xeCJK_calc_kern:NnNN \l__xeCJK_tmpa_dim { 1 em } {#1} {#2}
+ \dim_compare:nNnT \l__xeCJK_tmpa_dim < { .1 em }
+ { \dim_set:Nc \l__xeCJK_tmpa_dim { \l__xeCJK_punct_coor_tl/bound/l/#1 } }
}
}
{
\bool_if:nTF
{
- \xeCJK_punct_if_mixedwidth_p:N {#1} &&
- ! ( \tl_if_eq_p:NN \l_xeCJK_punctstyle_tl \c_xeCJK_ps_halfwidth_tl )
+ \__xeCJK_punct_if_mixedwidth_p:N {#1} &&
+ ! ( \tl_if_eq_p:NN \l__xeCJK_punctstyle_tl \c__xeCJK_ps_halfwidth_tl )
}
{
- \dim_set:Nc \l_xeCJK_tmpa_dim { \l_xeCJK_punct_coor_tl/glue/r/#1 }
- \dim_set:Nn \l_xeCJK_tmpa_dim { .7 \l_xeCJK_tmpa_dim }
+ \dim_set:Nc \l__xeCJK_tmpa_dim { \l__xeCJK_punct_coor_tl/glue/r/#1 }
+ \dim_set:Nn \l__xeCJK_tmpa_dim { .7 \l__xeCJK_tmpa_dim }
}
{
- \xeCJK_calc_kern:NnNN \l_xeCJK_tmpa_dim { 1 em } {#1} {#2}
- \dim_compare:nNnT \l_xeCJK_tmpa_dim < { .1 em }
+ \__xeCJK_calc_kern:NnNN \l__xeCJK_tmpa_dim { 1 em } {#1} {#2}
+ \dim_compare:nNnT \l__xeCJK_tmpa_dim < { .1 em }
{
- \dim_set:Nc \l_xeCJK_tmpa_dim { \l_xeCJK_punct_coor_tl/bound/l/#1 }
- \dim_set_min:Nc \l_xeCJK_tmpa_dim { \l_xeCJK_punct_coor_tl/bound/r/#1 }
- \dim_set:Nc \l_xeCJK_tmpb_dim { \l_xeCJK_punct_coor_tl/bound/l/#2 }
- \dim_set_min:Nc \l_xeCJK_tmpb_dim { \l_xeCJK_punct_coor_tl/bound/r/#2 }
- \dim_set_max:Nn \l_xeCJK_tmpa_dim \l_xeCJK_tmpb_dim
+ \dim_set:Nn \l__xeCJK_tmpa_dim
+ {
+ \dim_max:nn
+ {
+ \dim_min:cc
+ { \l__xeCJK_punct_coor_tl/bound/l/#1 }
+ { \l__xeCJK_punct_coor_tl/bound/r/#1 }
+ }
+ {
+ \dim_min:cc
+ { \l__xeCJK_punct_coor_tl/bound/l/#2 }
+ { \l__xeCJK_punct_coor_tl/bound/r/#2 }
+ }
+ }
}
}
}
}
\bool_if:nT
- { \xeCJK_punct_if_long_p:N {#1} || \xeCJK_punct_if_long_p:N {#2} }
- { \dim_set_max:Nn \l_xeCJK_tmpa_dim { .1 em } }
+ { \__xeCJK_punct_if_long_p:N {#1} || \__xeCJK_punct_if_long_p:N {#2} }
+ { \__xeCJK_dim_set_max:Nn \l__xeCJK_tmpa_dim { .1 em } }
}
- \dim_set_max:Nn \l_xeCJK_tmpa_dim \c_zero_dim
+ \__xeCJK_dim_set_max:Nn \l__xeCJK_tmpa_dim \c_zero_dim
}
-\cs_generate_variant:Nn \xeCJK_get_kern:NN { V }
-\cs_new_protected_nopar:Npn \xeCJK_calc_kern:NnNN #1#2#3#4
+\cs_generate_variant:Nn \__xeCJK_get_kern:NN { V }
+\cs_new_protected_nopar:Npn \__xeCJK_calc_kern:NnNN #1#2#3#4
{
\dim_set:Nn #1
{
#2
- - \tl_use:c { \l_xeCJK_punct_coor_tl/
- \xeCJK_punct_if_right:NTF {#3} { bound } { glue } /l/#3 }
- - \tl_use:c { \l_xeCJK_punct_coor_tl/
- \xeCJK_punct_if_right:NTF {#4} { glue } { bound } /r/#4 }
- - \tl_use:c { \l_xeCJK_punct_coor_tl/dimen/#3 }
- - \tl_use:c { \l_xeCJK_punct_coor_tl/dimen/#4 }
- \xeCJK_punct_if_both_left_right:NNT {#3} {#4}
- { + \tl_use:c { \l_xeCJK_punct_coor_tl/rule/m/#4 } }
- }
- }
-\cs_new_protected_nopar:Npn \xeCJK_get_punct_dimen:N #1
- {
- \xeCJK_get_glyph_bounds:nNN { left } {#1} \l_xeCJK_tmpa_dim
- \tl_gset:cV { \l_xeCJK_punct_coor_tl/bound/l/#1 } \l_xeCJK_tmpa_dim
- \dim_set_eq:NN \l_xeCJK_tmpb_dim \l_xeCJK_tmpa_dim
- \xeCJK_get_glyph_bounds:nNN { right } {#1} \l_xeCJK_tmpa_dim
- \tl_gset:cV { \l_xeCJK_punct_coor_tl/bound/r/#1 } \l_xeCJK_tmpa_dim
- \dim_add:Nn \l_xeCJK_tmpb_dim \l_xeCJK_tmpa_dim
- \tl_gset:cx { \l_xeCJK_punct_coor_tl/dimen/#1 }
- { \dim_eval:n { \etex_fontcharwd:D \tex_font:D `#1 - \l_xeCJK_tmpb_dim } }
+ - \tl_use:c { \l__xeCJK_punct_coor_tl/
+ \__xeCJK_punct_if_right:NTF {#3} { bound } { glue } /l/#3 }
+ - \tl_use:c { \l__xeCJK_punct_coor_tl/
+ \__xeCJK_punct_if_right:NTF {#4} { glue } { bound } /r/#4 }
+ - \tl_use:c { \l__xeCJK_punct_coor_tl/dimen/#3 }
+ - \tl_use:c { \l__xeCJK_punct_coor_tl/dimen/#4 }
+ \__xeCJK_punct_if_both_left_right:NNT {#3} {#4}
+ { + \tl_use:c { \l__xeCJK_punct_coor_tl/rule/m/#4 } }
+ }
+ }
+\cs_new_protected_nopar:Npn \__xeCJK_get_punct_dimen:N #1
+ {
+ \__xeCJK_get_glyph_bounds:nNN { left } {#1} \l__xeCJK_tmpa_dim
+ \tl_gset:cV { \l__xeCJK_punct_coor_tl/bound/l/#1 } \l__xeCJK_tmpa_dim
+ \dim_set_eq:NN \l__xeCJK_tmpb_dim \l__xeCJK_tmpa_dim
+ \__xeCJK_get_glyph_bounds:nNN { right } {#1} \l__xeCJK_tmpa_dim
+ \tl_gset:cV { \l__xeCJK_punct_coor_tl/bound/r/#1 } \l__xeCJK_tmpa_dim
+ \dim_add:Nn \l__xeCJK_tmpb_dim \l__xeCJK_tmpa_dim
+ \tl_gset:cx { \l__xeCJK_punct_coor_tl/dimen/#1 }
+ { \dim_eval:n { \etex_fontcharwd:D \tex_font:D `#1 - \l__xeCJK_tmpb_dim } }
\bool_if:nT
{
- \xeCJK_punct_if_long_p:N {#1} &&
+ \__xeCJK_punct_if_long_p:N {#1} &&
! ( \str_if_eq_x_p:nn {#1} { … } || \str_if_eq_x_p:nn {#1} { ‥ } )
}
{
- \clist_map_inline:Nn \g_xeCJK_punctstyle_clist
+ \clist_map_inline:Nn \g__xeCJK_punctstyle_clist
{
- \str_if_eq_x:nnF \c_xeCJK_ps_plain_tl {##1}
+ \str_if_eq_x:nnF \c__xeCJK_ps_plain_tl {##1}
{
- \tl_gset:cx { \l_xeCJK_font_coor_tl/##1/kern/#1-#1 }
- { - \dim_use:N \l_xeCJK_tmpb_dim }
+ \tl_gset:cx { \l__xeCJK_font_coor_tl/##1/kern/#1-#1 }
+ { - \dim_use:N \l__xeCJK_tmpb_dim }
}
}
}
}
-\cs_new_protected_nopar:Npn \xeCJK_get_glyph_bounds:nNN #1#2#3
+\cs_new_protected_nopar:Npn \__xeCJK_get_glyph_bounds:nNN #1#2#3
{
\dim_set:Nn #3
{
@@ -1297,7 +1322,7 @@
}
}
\NewDocumentCommand \xeCJKsetkern { m m m }
- { \tl_gset:cn { g_xeCJK_punct/kern/#1-#2 } {#3} }
+ { \tl_gset:cn { g__xeCJK_punct/kern/#1-#2 } {#3} }
\keys_define:nn { xeCJK / options }
{
AutoFallBack .choice:,
@@ -1306,530 +1331,530 @@
AutoFallBack .default:n = { true },
fallback .meta:n = { AutoFallBack = true },
}
-\bool_new:N \l_xeCJK_fallback_bool
+\bool_new:N \l__xeCJK_fallback_bool
\NewDocumentCommand \xeCJKenablefallback { }
{
- \bool_if:NF \l_xeCJK_fallback_bool
+ \bool_if:NF \l__xeCJK_fallback_bool
{
- \bool_set_true:N \l_xeCJK_fallback_bool
- \cs_set_eq:NN \xeCJK_fallback_save_CJKsymbol:N \CJKsymbol
- \cs_set_eq:NN \CJKsymbol \xeCJK_fallback_testsymbol:N
+ \bool_set_true:N \l__xeCJK_fallback_bool
+ \cs_set_eq:NN \__xeCJK_fallback_save_CJKsymbol:N \CJKsymbol
+ \cs_set_eq:NN \CJKsymbol \__xeCJK_fallback_testsymbol:N
}
}
\NewDocumentCommand \xeCJKdisablefallback { }
{
- \bool_if:NT \l_xeCJK_fallback_bool
+ \bool_if:NT \l__xeCJK_fallback_bool
{
- \bool_set_false:N \l_xeCJK_fallback_bool
- \cs_set_eq:NN \CJKsymbol \xeCJK_fallback_save_CJKsymbol:N
+ \bool_set_false:N \l__xeCJK_fallback_bool
+ \cs_set_eq:NN \CJKsymbol \__xeCJK_fallback_save_CJKsymbol:N
}
}
-\cs_new_protected_nopar:Npn \xeCJK_fallback_testsymbol:N #1
+\cs_new_protected_nopar:Npn \__xeCJK_fallback_testsymbol:N #1
{
\font_glyph_if_exist:NnTF \tex_font:D {`#1}
- { \xeCJK_fallback_save_CJKsymbol:N {#1} }
+ { \__xeCJK_fallback_save_CJKsymbol:N {#1} }
{
- \xeCJK_family_if_exist:xTF { \xeCJK@family/FallBack }
+ \__xeCJK_family_if_exist:xTF { \l_xeCJK_family_tl/FallBack }
{ {
- \tl_put_right:Nn \xeCJK@family { /FallBack }
+ \tl_put_right:Nn \l_xeCJK_family_tl { /FallBack }
\xeCJK_select_font:
- \xeCJK_fallback_testsymbol:N {#1}
+ \__xeCJK_fallback_testsymbol:N {#1}
} }
{
- \xeCJK_warning:nx { fallback } {#1}
- \xeCJK_fallback_save_CJKsymbol:N {#1}
+ \__xeCJK_warning:nx { fallback } {#1}
+ \__xeCJK_fallback_save_CJKsymbol:N {#1}
}
}
}
-\xeCJK_msg_new:nn { fallback }
+\__xeCJK_msg_new:nn { fallback }
{
- CJKfamily~'\xeCJK@family'~
- ( \prop_get:NV \g_xeCJK_family_prop \xeCJK@family )~
+ CJKfamily~'\l_xeCJK_family_tl'~
+ ( \prop_get:NV \g__xeCJK_family_prop \l_xeCJK_family_tl )~
does~not~contain~glyph~'#1'~(U+\int_to_hexadecimal:n {`#1}).\\
}
\NewDocumentCommand \setCJKfallbackfamilyfont { m O{} m }
{
\exp_args:Nx \tl_if_in:nnTF {#3} { , }
- { \xeCJK_set_family_fallback:nnn {#1} {#2} {#3} }
- { \xeCJK_set_family:nnn { #1/FallBack } {#2} {#3} }
+ { \__xeCJK_set_family_fallback:nnn {#1} {#2} {#3} }
+ { \xeCJK_set_family:xnn { #1/FallBack } {#2} {#3} }
}
-\cs_new_protected_nopar:Npn \xeCJK_set_family_fallback:nnn #1#2#3
+\cs_new_protected_nopar:Npn \__xeCJK_set_family_fallback:nnn #1#2#3
{
\group_begin:
- \tl_set:Nx \l_xeCJK_family_fb_tl {#1}
- \prop_get:NVNF \g_xeCJK_family_prop \l_xeCJK_family_fb_tl \l_xeCJK_fontname_tl
- { \tl_clear:N \l_xeCJK_fontname_tl }
+ \tl_set:Nx \l__xeCJK_family_fb_tl {#1}
+ \prop_get:NVNF \g__xeCJK_family_prop \l__xeCJK_family_fb_tl \l__xeCJK_fontname_tl
+ { \tl_clear:N \l__xeCJK_fontname_tl }
\clist_map_inline:xn {#3}
{
- \tl_put_right:Nn \l_xeCJK_family_fb_tl { /FallBack }
- \xeCJK_get_sub_features:nn \l_xeCJK_family_fb_tl {##1}
- \clist_put_left:cx { l_xeCJK_ \l_xeCJK_family_fb_tl _fontfeat_clist } {#2}
- \xeCJK_set_family:ncc \l_xeCJK_family_fb_tl
- { l_xeCJK_ \l_xeCJK_family_fb_tl _fontfeat_clist }
- { l_xeCJK_ \l_xeCJK_family_fb_tl _fontname_tl }
+ \tl_put_right:Nn \l__xeCJK_family_fb_tl { /FallBack }
+ \__xeCJK_get_sub_features:nn \l__xeCJK_family_fb_tl {##1}
+ \clist_put_left:cx { l__xeCJK_ \l__xeCJK_family_fb_tl _fontfeat_clist } {#2}
+ \xeCJK_set_family:xcc \l__xeCJK_family_fb_tl
+ { l__xeCJK_ \l__xeCJK_family_fb_tl _fontfeat_clist }
+ { l__xeCJK_ \l__xeCJK_family_fb_tl _fontname_tl }
}
\group_end:
}
-\bool_new:N \g_xeCJK_AutoFakeBold_bool
-\bool_new:N \g_xeCJK_AutoFakeSlant_bool
-\fp_new:N \g_xeCJK_EmboldenFactor_fp
-\fp_new:N \g_xeCJK_SlantFactor_fp
+\bool_new:N \g__xeCJK_AutoFakeBold_bool
+\bool_new:N \g__xeCJK_AutoFakeSlant_bool
+\fp_new:N \g__xeCJK_EmboldenFactor_fp
+\fp_new:N \g__xeCJK_SlantFactor_fp
\keys_define:nn { xeCJK / options }
{
AutoFakeBold .choice:,
AutoFakeBold / true .code:n =
- { \bool_set_true:N \g_xeCJK_AutoFakeBold_bool },
+ { \bool_set_true:N \g__xeCJK_AutoFakeBold_bool },
AutoFakeBold / false .code:n =
- { \bool_set_false:N \g_xeCJK_AutoFakeBold_bool },
+ { \bool_set_false:N \g__xeCJK_AutoFakeBold_bool },
AutoFakeBold / unknown .code:n =
{
- \bool_set_true:N \g_xeCJK_AutoFakeBold_bool
- \fp_set:Nn \g_xeCJK_EmboldenFactor_fp { \l_keys_value_tl }
+ \bool_set_true:N \g__xeCJK_AutoFakeBold_bool
+ \fp_set:Nn \g__xeCJK_EmboldenFactor_fp { \l_keys_value_tl }
},
AutoFakeBold .default:n = { true },
AutoFakeSlant .choice:,
AutoFakeSlant / true .code:n =
- { \bool_set_true:N \g_xeCJK_AutoFakeSlant_bool },
+ { \bool_set_true:N \g__xeCJK_AutoFakeSlant_bool },
AutoFakeSlant / false .code:n =
- { \bool_set_false:N \g_xeCJK_AutoFakeSlant_bool },
+ { \bool_set_false:N \g__xeCJK_AutoFakeSlant_bool },
AutoFakeSlant / unknown .code:n =
{
- \bool_set_true:N \g_xeCJK_AutoFakeSlant_bool
- \fp_set:Nn \g_xeCJK_SlantFactor_fp { \l_keys_value_tl }
+ \bool_set_true:N \g__xeCJK_AutoFakeSlant_bool
+ \fp_set:Nn \g__xeCJK_SlantFactor_fp { \l_keys_value_tl }
},
AutoFakeSlant .default:n = { true },
- EmboldenFactor .fp_set:N = \g_xeCJK_EmboldenFactor_fp,
- SlantFactor .fp_set:N = \g_xeCJK_SlantFactor_fp,
+ EmboldenFactor .fp_set:N = \g__xeCJK_EmboldenFactor_fp,
+ SlantFactor .fp_set:N = \g__xeCJK_SlantFactor_fp,
BoldFont .meta:n = { AutoFakeBold = true },
boldfont .meta:n = { AutoFakeBold = true },
SlantFont .meta:n = { AutoFakeSlant = true },
slantfont .meta:n = { AutoFakeSlant = true },
}
\cs_generate_variant:Nn \keys_set_known:nnN { nx }
-\clist_new:N \g_xeCJK_sub_key_clist
-\cs_new_protected_nopar:Npn \xeCJK_new_sub_key:n #1
+\clist_new:N \g__xeCJK_sub_key_clist
+\cs_new_protected_nopar:Npn \__xeCJK_new_sub_key:n #1
{
- \clist_gput_right:Nx \g_xeCJK_sub_key_clist {#1}
+ \clist_gput_right:Nx \g__xeCJK_sub_key_clist {#1}
\keys_define:nn { xeCJK / features }
{
#1 .code:n =
{
- \xeCJK_if_blank_x:nTF {##1}
+ \__xeCJK_if_blank_x:nTF {##1}
{
- \bool_set_false:c { l_xeCJK_copy_#1_bool }
- \bool_set_false:c { l_xeCJK_add_#1_bool }
- \tl_put_right:Nx \l_xeCJK_family_tl { /#1 }
+ \bool_set_false:c { l__xeCJK_copy_#1_bool }
+ \bool_set_false:c { l__xeCJK_add_#1_bool }
+ \tl_put_right:Nx \l__xeCJK_family_tl { /#1 }
}
{
- \clist_put_right:Nx \l_xeCJK_sub_key_clist {#1}
+ \clist_put_right:Nx \l__xeCJK_sub_key_clist {#1}
\str_if_eq_x:nnTF {##1} *
{
- \bool_set_true:c { l_xeCJK_copy_#1_bool }
- \bool_set_false:c { l_xeCJK_add_#1_bool }
+ \bool_set_true:c { l__xeCJK_copy_#1_bool }
+ \bool_set_false:c { l__xeCJK_add_#1_bool }
}
{
- \bool_set_false:c { l_xeCJK_copy_#1_bool }
- \bool_set_true:c { l_xeCJK_add_#1_bool }
- \xeCJK_get_sub_features:nn {#1} {##1}
+ \bool_set_false:c { l__xeCJK_copy_#1_bool }
+ \bool_set_true:c { l__xeCJK_add_#1_bool }
+ \__xeCJK_get_sub_features:nn {#1} {##1}
}
}
},
#1 .default:n = \c_empty_tl,
}
}
-\cs_generate_variant:Nn \xeCJK_new_sub_key:n { x }
-\cs_new_protected_nopar:Npn \xeCJK_get_sub_features:nn #1#2
+\cs_generate_variant:Nn \__xeCJK_new_sub_key:n { x }
+\cs_new_protected_nopar:Npn \__xeCJK_get_sub_features:nn #1#2
{
- \tl_set:Nx \l_xeCJK_tmpa_tl {#2}
- \clist_clear:N \l_xeCJK_sub_fontfeat_clist
- \xeCJK_gobble_brace:N \l_xeCJK_tmpa_tl
- \exp_args:No \tl_if_head_eq_charcode:nNTF \l_xeCJK_tmpa_tl [ % ]
+ \tl_set:Nx \l__xeCJK_tmpa_tl {#2}
+ \clist_clear:N \l__xeCJK_sub_fontfeat_clist
+ \__xeCJK_gobble_brace:N \l__xeCJK_tmpa_tl
+ \exp_args:No \tl_if_head_eq_charcode:nNTF \l__xeCJK_tmpa_tl [ % ]
{
- \exp_after:wN \xeCJK_get_sub_features_aux:n \l_xeCJK_tmpa_tl \c_empty_tl
- \xeCJK_if_blank_x:nT \l_xeCJK_sub_fontname_tl
+ \exp_after:wN \__xeCJK_get_sub_features_aux:n \l__xeCJK_tmpa_tl \c_empty_tl
+ \__xeCJK_if_blank_x:nT \l__xeCJK_sub_fontname_tl
{
- \tl_set:Nx \l_xeCJK_sub_fontname_tl \l_xeCJK_tmpa_tl
- \clist_clear:N \l_xeCJK_sub_fontfeat_clist
+ \tl_set:Nx \l__xeCJK_sub_fontname_tl \l__xeCJK_tmpa_tl
+ \clist_clear:N \l__xeCJK_sub_fontfeat_clist
}
}
- { \tl_set:Nx \l_xeCJK_sub_fontname_tl \l_xeCJK_tmpa_tl }
- \xeCJK_if_blank_x:nTF \l_xeCJK_sub_fontname_tl
- { \tl_set:Nx \l_xeCJK_sub_fontname_tl \l_xeCJK_fontname_tl }
- { \tl_replace_all:Nnx \l_xeCJK_sub_fontname_tl * \l_xeCJK_fontname_tl }
- \clist_set:cx { l_xeCJK_#1_fontfeat_clist } \l_xeCJK_sub_fontfeat_clist
- \tl_set:cx { l_xeCJK_#1_fontname_tl } \l_xeCJK_sub_fontname_tl
+ { \tl_set:Nx \l__xeCJK_sub_fontname_tl \l__xeCJK_tmpa_tl }
+ \__xeCJK_if_blank_x:nTF \l__xeCJK_sub_fontname_tl
+ { \tl_set:Nx \l__xeCJK_sub_fontname_tl \l__xeCJK_fontname_tl }
+ { \tl_replace_all:Nnx \l__xeCJK_sub_fontname_tl * \l__xeCJK_fontname_tl }
+ \clist_set:cx { l__xeCJK_#1_fontfeat_clist } \l__xeCJK_sub_fontfeat_clist
+ \tl_set:cx { l__xeCJK_#1_fontname_tl } \l__xeCJK_sub_fontname_tl
}
-\cs_new_protected_nopar:Npn \xeCJK_gobble_brace:N #1
+\cs_new_protected_nopar:Npn \__xeCJK_gobble_brace:N #1
{
\exp_args:No \tl_if_head_is_group:nT #1
{
\exp_last_unbraced:NNo \tl_set:Nn #1 #1
- \xeCJK_gobble_brace:N #1
+ \__xeCJK_gobble_brace:N #1
}
}
-\cs_new_protected_nopar:Npn \xeCJK_get_sub_features_aux:n [#1] #2
+\cs_new_protected_nopar:Npn \__xeCJK_get_sub_features_aux:n [#1] #2
{
- \clist_set:Nx \l_xeCJK_sub_fontfeat_clist {#1}
- \tl_set:Nx \l_xeCJK_sub_fontname_tl {#2}
+ \clist_set:Nx \l__xeCJK_sub_fontfeat_clist {#1}
+ \tl_set:Nx \l__xeCJK_sub_fontname_tl {#2}
}
-\xeCJK_new_sub_key:n { FallBack }
-\cs_new_nopar:Npn \xeCJK_map_features_id:n #1
- { \prop_get:Nn \g_xeCJK_features_id_prop {#1} }
-\prop_new:N \g_xeCJK_features_id_prop
-\prop_put:Nnn \g_xeCJK_features_id_prop { bf } { Bold }
-\prop_put:Nnn \g_xeCJK_features_id_prop { it } { Italic }
-\prop_put:Nnn \g_xeCJK_features_id_prop { bfit } { BoldItalic }
-\prop_put:Nnn \g_xeCJK_features_id_prop { sl } { Slanted }
-\prop_put:Nnn \g_xeCJK_features_id_prop { bfsl } { BoldSlanted }
-\prop_map_inline:Nn \g_xeCJK_features_id_prop
+\__xeCJK_new_sub_key:n { FallBack }
+\cs_new_nopar:Npn \__xeCJK_map_features_id:n #1
+ { \prop_get:Nn \g__xeCJK_features_id_prop {#1} }
+\prop_new:N \g__xeCJK_features_id_prop
+\prop_put:Nnn \g__xeCJK_features_id_prop { bf } { Bold }
+\prop_put:Nnn \g__xeCJK_features_id_prop { it } { Italic }
+\prop_put:Nnn \g__xeCJK_features_id_prop { bfit } { BoldItalic }
+\prop_put:Nnn \g__xeCJK_features_id_prop { sl } { Slanted }
+\prop_put:Nnn \g__xeCJK_features_id_prop { bfsl } { BoldSlanted }
+\prop_map_inline:Nn \g__xeCJK_features_id_prop
{
\keys_define:nn { xeCJK / features }
{
- #2Font .tl_set_x:c = { l_xeCJK_fontname_#1_tl },
- #2Features .tl_set_x:c = { l_xeCJK_fontfeat_#1_clist } ,
+ #2Font .tl_set_x:c = { l__xeCJK_fontname_#1_tl },
+ #2Features .tl_set_x:c = { l__xeCJK_fontfeat_#1_clist } ,
}
}
\keys_define:nn { xeCJK / features }
{
AutoFakeBold .choice:,
AutoFakeBold / false .code:n =
- { \bool_set_false:N \l_xeCJK_AutoFakeBold_bool },
+ { \bool_set_false:N \l__xeCJK_AutoFakeBold_bool },
AutoFakeBold / unknown .code:n =
{
- \bool_set_true:N \l_xeCJK_AutoFakeBold_bool
- \fp_set:Nn \l_xeCJK_EmboldenFactor_fp { \l_keys_value_tl }
+ \bool_set_true:N \l__xeCJK_AutoFakeBold_bool
+ \fp_set:Nn \l__xeCJK_EmboldenFactor_fp { \l_keys_value_tl }
},
- AutoFakeBold .default:n = { \g_xeCJK_EmboldenFactor_fp },
+ AutoFakeBold .default:n = { \g__xeCJK_EmboldenFactor_fp },
AutoFakeSlant .choice:,
AutoFakeSlant / false .code:n =
- { \bool_set_false:N \l_xeCJK_AutoFakeSlant_bool },
+ { \bool_set_false:N \l__xeCJK_AutoFakeSlant_bool },
AutoFakeSlant / unknown .code:n =
{
- \bool_set_true:N \l_xeCJK_AutoFakeSlant_bool
- \fp_set:Nn \l_xeCJK_SlantFactor_fp { \l_keys_value_tl }
+ \bool_set_true:N \l__xeCJK_AutoFakeSlant_bool
+ \fp_set:Nn \l__xeCJK_SlantFactor_fp { \l_keys_value_tl }
},
- AutoFakeSlant .default:n = { \g_xeCJK_SlantFactor_fp },
+ AutoFakeSlant .default:n = { \g__xeCJK_SlantFactor_fp },
Mono .choice:,
Mono / Exspace .code:n =
{
- \xeCJK_set_monoexspace:
- \tl_clear:N \l_xeCJK_monoscale_tl
+ \__xeCJK_set_monoexspace:
+ \tl_clear:N \l__xeCJK_monoscale_tl
},
Mono / Scale .code:n =
{
- \xeCJK_set_monoscale:
- \tl_set:Nx \l_xeCJK_monoscale_tl { Scale = { \fp_use:N \g_xeCJK_monoscale_fp } }
+ \__xeCJK_set_monoscale:
+ \tl_set:Nx \l__xeCJK_monoscale_tl { Scale = { \fp_use:N \g__xeCJK_monoscale_fp } }
}
}
-\cs_new_protected_nopar:Npn \xeCJK_set_init:
+\cs_new_protected_nopar:Npn \__xeCJK_set_init:
{
- \tl_clear:N \l_xeCJK_monoscale_tl
- \int_gincr:N \g_xeCJK_fontspec_int
- \prop_clear:N \l_xeCJK_add_font_prop
- \prop_map_inline:Nn \g_xeCJK_features_id_prop
+ \tl_clear:N \l__xeCJK_monoscale_tl
+ \int_gincr:N \g__xeCJK_fontspec_int
+ \prop_clear:N \l__xeCJK_add_font_prop
+ \prop_map_inline:Nn \g__xeCJK_features_id_prop
{
- \tl_clear:c { l_xeCJK_fontname_##1_tl }
- \clist_clear:c { l_xeCJK_fontfeat_##1_clist }
+ \tl_clear:c { l__xeCJK_fontname_##1_tl }
+ \clist_clear:c { l__xeCJK_fontfeat_##1_clist }
}
- \clist_clear:N \l_xeCJK_pass_features_clist
- \clist_clear:N \l_xeCJK_sub_key_clist
- \clist_map_inline:Nn \g_xeCJK_sub_key_clist
+ \clist_clear:N \l__xeCJK_pass_features_clist
+ \clist_clear:N \l__xeCJK_sub_key_clist
+ \clist_map_inline:Nn \g__xeCJK_sub_key_clist
{
- \bool_set_false:c { l_xeCJK_copy_##1_bool }
- \bool_set_false:c { l_xeCJK_add_##1_bool }
+ \bool_set_false:c { l__xeCJK_copy_##1_bool }
+ \bool_set_false:c { l__xeCJK_add_##1_bool }
}
- \bool_set_eq:NN \l_xeCJK_AutoFakeBold_bool \g_xeCJK_AutoFakeBold_bool
- \bool_set_eq:NN \l_xeCJK_AutoFakeSlant_bool \g_xeCJK_AutoFakeSlant_bool
- \fp_set_eq:NN \l_xeCJK_EmboldenFactor_fp \g_xeCJK_EmboldenFactor_fp
- \fp_set_eq:NN \l_xeCJK_SlantFactor_fp \g_xeCJK_SlantFactor_fp
+ \bool_set_eq:NN \l__xeCJK_AutoFakeBold_bool \g__xeCJK_AutoFakeBold_bool
+ \bool_set_eq:NN \l__xeCJK_AutoFakeSlant_bool \g__xeCJK_AutoFakeSlant_bool
+ \fp_set_eq:NN \l__xeCJK_EmboldenFactor_fp \g__xeCJK_EmboldenFactor_fp
+ \fp_set_eq:NN \l__xeCJK_SlantFactor_fp \g__xeCJK_SlantFactor_fp
}
-\cs_new_protected_nopar:Npn \xeCJK_set_family:nnn #1#2#3
+\cs_new_protected_nopar:Npn \xeCJK_set_family:xnn #1#2#3
{
\group_begin:
- \xeCJK_set_init:
- \tl_set:Nx \l_xeCJK_family_tl {#1}
- \clist_set:Nx \l_xeCJK_fontoptions_clist {#2}
- \tl_set:Nx \l_xeCJK_fontname_tl {#3}
+ \__xeCJK_set_init:
+ \tl_set:Nx \l__xeCJK_family_tl {#1}
+ \clist_set:Nx \l__xeCJK_fontoptions_clist {#2}
+ \tl_set:Nx \l__xeCJK_fontname_tl {#3}
\keys_set_known:nxN { xeCJK / features }
- { \g_xeCJK_default_features_clist, #2 } \l_xeCJK_pass_features_clist
- \xeCJK_parse_features:
- \xeCJK_pass_features:
- \xeCJK_check_family:V \l_xeCJK_family_tl
- \cs_gset_protected_nopar:cpx { xeCJK/family/\l_xeCJK_family_tl }
- {
- \exp_not:n { \fontspec_set_family:Nnn \l_xeCJK_fontspec_family_tl }
- { \l_xeCJK_pass_features_clist } { \l_xeCJK_fontname_tl }
- \prop_gput:NnV \exp_not:N \g_xeCJK_family_name_prop
- { \l_xeCJK_family_tl } \exp_not:N \l_xeCJK_fontspec_family_tl
- \cs_gset_protected_nopar:cpx { xeCJK/family/\l_xeCJK_family_tl }
+ { \g__xeCJK_default_features_clist, #2 } \l__xeCJK_pass_features_clist
+ \__xeCJK_parse_features:
+ \__xeCJK_pass_features:
+ \__xeCJK_check_family:V \l__xeCJK_family_tl
+ \cs_gset_protected_nopar:cpx { __xeCJK/family/\l__xeCJK_family_tl }
+ {
+ \exp_not:n { \fontspec_set_family:Nnn \l__xeCJK_fontspec_family_tl }
+ { \l__xeCJK_pass_features_clist } { \l__xeCJK_fontname_tl }
+ \prop_gput:NnV \exp_not:N \g__xeCJK_family_name_prop
+ { \l__xeCJK_family_tl } \exp_not:N \l__xeCJK_fontspec_family_tl
+ \cs_gset_protected_nopar:cpx { __xeCJK/family/\l__xeCJK_family_tl }
\exp_not:n
{ {
\exp_not:N \fontencoding { \g_fontspec_encoding_tl }
- \exp_not:N \fontfamily { \l_xeCJK_fontspec_family_tl }
+ \exp_not:N \fontfamily { \l__xeCJK_fontspec_family_tl }
\exp_not:N \selectfont
} }
}
- \xeCJK_save_family_info:
- \xeCJK_add_sub_block:
+ \__xeCJK_save_family_info:
+ \__xeCJK_add_sub_block:
\group_end:
}
-\cs_generate_variant:Nn \xeCJK_set_family:nnn { ncc }
-\cs_new_protected_nopar:Npn \xeCJK_check_family:n #1
+\cs_generate_variant:Nn \xeCJK_set_family:xnn { xcc }
+\cs_new_protected_nopar:Npn \__xeCJK_check_family:n #1
{
- \prop_get:NnNT \g_xeCJK_family_prop {#1} \l_xeCJK_tmpa_tl
+ \prop_get:NnNT \g__xeCJK_family_prop {#1} \l__xeCJK_tmpa_tl
{
- \prop_gpop:NnNT \g_xeCJK_family_name_prop {#1} \l_xeCJK_tmpa_tl { }
- \xeCJK_warning:nxx { CJKfamily-redef } {#1} \l_xeCJK_tmpa_tl
+ \prop_gpop:NnNT \g__xeCJK_family_name_prop {#1} \l__xeCJK_tmpa_tl { }
+ \__xeCJK_warning:nxx { CJKfamily-redef } {#1} \l__xeCJK_tmpa_tl
}
}
-\cs_generate_variant:Nn \xeCJK_check_family:n { V }
-\xeCJK_msg_new:nn { CJKfamily-redef } { Redefining~CJKfamily~`#1'~(#2). }
-\cs_new_protected_nopar:Npn \xeCJK_add_font:nn #1#2
+\cs_generate_variant:Nn \__xeCJK_check_family:n { V }
+\__xeCJK_msg_new:nn { CJKfamily-redef } { Redefining~CJKfamily~`#1'~(#2). }
+\cs_new_protected_nopar:Npn \__xeCJK_add_font:nn #1#2
{
- \prop_put:Nxx \l_xeCJK_add_font_prop
- { \xeCJK_map_features_id:n {#1} Font } {#2}
+ \prop_put:Nxx \l__xeCJK_add_font_prop
+ { \__xeCJK_map_features_id:n {#1} Font } {#2}
}
-\cs_new_protected_nopar:Npn \xeCJK_add_font_if_new:nn #1#2
+\cs_new_protected_nopar:Npn \__xeCJK_add_font_if_new:nn #1#2
{
- \prop_put_if_new:Nxx \l_xeCJK_add_font_prop
- { \xeCJK_map_features_id:n {#1} Font } {#2}
+ \prop_put_if_new:Nxx \l__xeCJK_add_font_prop
+ { \__xeCJK_map_features_id:n {#1} Font } {#2}
}
-\cs_generate_variant:Nn \xeCJK_add_font:nn { nx, nc, nV, nv }
-\cs_generate_variant:Nn \xeCJK_add_font_if_new:nn { nx, nc, nV, nv }
+\cs_generate_variant:Nn \__xeCJK_add_font:nn { nx, nc, nV, nv }
+\cs_generate_variant:Nn \__xeCJK_add_font_if_new:nn { nx, nc, nV, nv }
\cs_generate_variant:Nn \prop_put:Nnn { Nxx }
\cs_generate_variant:Nn \prop_get:Nn { NV }
\cs_generate_variant:Nn \prop_get:NnNF { Nx }
\cs_generate_variant:Nn \prop_if_in:NnF { Nx }
\cs_generate_variant:Nn \prop_put_if_new:Nnn { Nxx }
-\cs_new_protected_nopar:Npn \xeCJK_add_fake_bold:n #1
+\cs_new_protected_nopar:Npn \__xeCJK_add_fake_bold:n #1
{
- \clist_put_left:cx { l_xeCJK_fontfeat_#1_clist }
- { FakeBold = { \fp_use:N \l_xeCJK_EmboldenFactor_fp } }
+ \clist_put_left:cx { l__xeCJK_fontfeat_#1_clist }
+ { FakeBold = { \fp_use:N \l__xeCJK_EmboldenFactor_fp } }
}
-\cs_new_protected_nopar:Npn \xeCJK_add_fake_slant:n #1
+\cs_new_protected_nopar:Npn \__xeCJK_add_fake_slant:n #1
{
- \clist_put_left:cx { l_xeCJK_fontfeat_#1_clist }
- { FakeSlant = { \fp_use:N \l_xeCJK_SlantFactor_fp } }
+ \clist_put_left:cx { l__xeCJK_fontfeat_#1_clist }
+ { FakeSlant = { \fp_use:N \l__xeCJK_SlantFactor_fp } }
}
-\cs_new_protected_nopar:Npn \xeCJK_parse_features:
- { \prop_map_inline:Nn \g_xeCJK_features_id_prop { \xeCJK_parse_features:n {##1} } }
-\cs_new_protected_nopar:Npn \xeCJK_parse_features:n #1
+\cs_new_protected_nopar:Npn \__xeCJK_parse_features:
+ { \prop_map_inline:Nn \g__xeCJK_features_id_prop { \__xeCJK_parse_features:n {##1} } }
+\cs_new_protected_nopar:Npn \__xeCJK_parse_features:n #1
{
- \xeCJK_if_font_select:nTF {#1}
+ \__xeCJK_if_font_select:nTF {#1}
{
- \xeCJK_add_font:nv {#1} { l_xeCJK_fontname_#1_tl }
- \xeCJK_if_it_or_sl:nTF {#1}
+ \__xeCJK_add_font:nv {#1} { l__xeCJK_fontname_#1_tl }
+ \__xeCJK_if_it_or_sl:nTF {#1}
{
- \xeCJK_if_font_select:nF {bf#1}
- { \xeCJK_add_font_if_new:nv {bf#1} { l_xeCJK_fontname_#1_tl } }
+ \__xeCJK_if_font_select:nF {bf#1}
+ { \__xeCJK_add_font_if_new:nv {bf#1} { l__xeCJK_fontname_#1_tl } }
}
{
\str_if_eq_x:nnT {#1} {bf}
{
\clist_map_inline:nn { it , sl }
{
- \xeCJK_if_font_select:nF {bf##1}
- { \xeCJK_add_font:nV {bf##1} \l_xeCJK_fontname_bf_tl }
+ \__xeCJK_if_font_select:nF {bf##1}
+ { \__xeCJK_add_font:nV {bf##1} \l__xeCJK_fontname_bf_tl }
}
}
}
}
- { \xeCJK_set_fake:n {#1} }
+ { \__xeCJK_set_fake:n {#1} }
}
-\prg_new_conditional:Npnn \xeCJK_if_font_select:n #1 { p, T, F, TF }
+\prg_new_conditional:Npnn \__xeCJK_if_font_select:n #1 { p, T, F, TF }
{
- \exp_args:Nc \xeCJK_if_blank_x:nTF { l_xeCJK_fontname_#1_tl }
+ \exp_args:Nc \__xeCJK_if_blank_x:nTF { l__xeCJK_fontname_#1_tl }
\prg_return_false: \prg_return_true:
}
-\prg_new_conditional:Npnn \xeCJK_if_it_or_sl:n #1 { p, T, F, TF }
+\prg_new_conditional:Npnn \__xeCJK_if_it_or_sl:n #1 { p, T, F, TF }
{
\bool_if:nTF { \str_if_eq_x_p:nn { it } {#1} || \str_if_eq_x_p:nn { sl } {#1} }
\prg_return_true: \prg_return_false:
}
-\cs_new_protected_nopar:Npn \xeCJK_set_fake:n #1
+\cs_new_protected_nopar:Npn \__xeCJK_set_fake:n #1
{
\str_if_eq_x:nnTF {#1} { bf }
- { \bool_if:NT \l_xeCJK_AutoFakeBold_bool { \xeCJK_add_fake_bold:n {#1} } }
+ { \bool_if:NT \l__xeCJK_AutoFakeBold_bool { \__xeCJK_add_fake_bold:n {#1} } }
{
- \bool_if:NTF \l_xeCJK_AutoFakeSlant_bool
+ \bool_if:NTF \l__xeCJK_AutoFakeSlant_bool
{
\bool_if:nT
- { \xeCJK_if_it_or_sl_p:n {#1} ||
- ( \str_if_eq_x_p:nn {#1} {bfit} && ! ( \xeCJK_if_font_select_p:n {it} ) ) ||
- ( \str_if_eq_x_p:nn {#1} {bfsl} && ! ( \xeCJK_if_font_select_p:n {sl} ) )
+ { \__xeCJK_if_it_or_sl_p:n {#1} ||
+ ( \str_if_eq_x_p:nn {#1} {bfit} && ! ( \__xeCJK_if_font_select_p:n {it} ) ) ||
+ ( \str_if_eq_x_p:nn {#1} {bfsl} && ! ( \__xeCJK_if_font_select_p:n {sl} ) )
}
- { \xeCJK_add_fake_slant:n {#1} }
+ { \__xeCJK_add_fake_slant:n {#1} }
}
- { \xeCJK_if_it_or_sl:nT {#1} { \xeCJK_map_it_sl:n {#1} } }
+ { \__xeCJK_if_it_or_sl:nT {#1} { \__xeCJK_map_it_sl:n {#1} } }
\bool_if:nT
- { \l_xeCJK_AutoFakeBold_bool
- && ! ( \xeCJK_if_it_or_sl_p:n {#1} )
- && ! ( \xeCJK_if_font_select_p:n {bf} )
+ { \l__xeCJK_AutoFakeBold_bool
+ && ! ( \__xeCJK_if_it_or_sl_p:n {#1} )
+ && ! ( \__xeCJK_if_font_select_p:n {bf} )
}
- { \xeCJK_add_fake_bold:n {#1} }
+ { \__xeCJK_add_fake_bold:n {#1} }
}
- \xeCJK_add_font_if_new:nn {#1} *
+ \__xeCJK_add_font_if_new:nn {#1} *
}
-\cs_new_protected_nopar:Npn \xeCJK_map_it_sl:n #1
+\cs_new_protected_nopar:Npn \__xeCJK_map_it_sl:n #1
{
- \xeCJK_if_map_font_select:nT {#1}
+ \__xeCJK_if_map_font_select:nT {#1}
{
- \xeCJK_add_font:nx {#1} { \xeCJK_get_map_font:n {#1} }
- \xeCJK_if_font_select:nF {bf#1}
- { \xeCJK_add_font_if_new:nx {bf#1} { \xeCJK_get_map_font:n {#1} } }
+ \__xeCJK_add_font:nx {#1} { \__xeCJK_get_map_font:n {#1} }
+ \__xeCJK_if_font_select:nF {bf#1}
+ { \__xeCJK_add_font_if_new:nx {bf#1} { \__xeCJK_get_map_font:n {#1} } }
}
}
-\cs_new_nopar:Npn \xeCJK_get_map_font:n #1
- { \tl_use:c { l_xeCJK_fontname_\str_if_eq_x:nnTF {#1} {it} {sl} {it} _tl } }
-\prg_new_conditional:Npnn \xeCJK_if_map_font_select:n #1 { p, T, F, TF }
+\cs_new_nopar:Npn \__xeCJK_get_map_font:n #1
+ { \tl_use:c { l__xeCJK_fontname_\str_if_eq_x:nnTF {#1} {it} {sl} {it} _tl } }
+\prg_new_conditional:Npnn \__xeCJK_if_map_font_select:n #1 { p, T, F, TF }
{
- \xeCJK_if_blank_x:nTF { \xeCJK_get_map_font:n {#1} }
+ \__xeCJK_if_blank_x:nTF { \__xeCJK_get_map_font:n {#1} }
\prg_return_false: \prg_return_true:
}
-\cs_new_protected_nopar:Npn \xeCJK_pass_features:
+\cs_new_protected_nopar:Npn \__xeCJK_pass_features:
{
- \prop_map_inline:Nn \g_xeCJK_features_id_prop
+ \prop_map_inline:Nn \g__xeCJK_features_id_prop
{
- \clist_if_empty:cF { l_xeCJK_fontfeat_##1_clist }
+ \clist_if_empty:cF { l__xeCJK_fontfeat_##1_clist }
{
- \clist_put_right:Nx \l_xeCJK_pass_features_clist
- { ##2Features = { \tl_use:c { l_xeCJK_fontfeat_##1_clist } } }
+ \clist_put_right:Nx \l__xeCJK_pass_features_clist
+ { ##2Features = { \tl_use:c { l__xeCJK_fontfeat_##1_clist } } }
}
}
- \prop_map_inline:Nn \l_xeCJK_add_font_prop
- { \clist_put_right:Nx \l_xeCJK_pass_features_clist { ##1 = { ##2 } } }
- \xeCJK_if_blank_x:nF \l_xeCJK_monoscale_tl
- { \clist_put_right:Nx \l_xeCJK_pass_features_clist \l_xeCJK_monoscale_tl }
+ \prop_map_inline:Nn \l__xeCJK_add_font_prop
+ { \clist_put_right:Nx \l__xeCJK_pass_features_clist { ##1 = { ##2 } } }
+ \__xeCJK_if_blank_x:nF \l__xeCJK_monoscale_tl
+ { \clist_put_right:Nx \l__xeCJK_pass_features_clist \l__xeCJK_monoscale_tl }
}
-\prop_new:N \g_xeCJK_family_prop
-\prop_new:N \g_xeCJK_family_name_prop
-\prop_new:N \g_xeCJK_family_options_prop
-\cs_new_protected_nopar:Npn \xeCJK_save_family_info:
+\prop_new:N \g__xeCJK_family_prop
+\prop_new:N \g__xeCJK_family_name_prop
+\prop_new:N \g__xeCJK_family_options_prop
+\cs_new_protected_nopar:Npn \__xeCJK_save_family_info:
{
\group_begin:
- \clist_map_inline:Nn \g_xeCJK_CJK_subclass_clist
+ \clist_map_inline:Nn \g__xeCJK_CJK_subclass_clist
{
- \clist_remove_all:Nn \l_xeCJK_fontoptions_clist {##1}
- \clist_remove_all:Nn \l_xeCJK_fontoptions_clist { ##1 = }
+ \clist_remove_all:Nn \l__xeCJK_fontoptions_clist {##1}
+ \clist_remove_all:Nn \l__xeCJK_fontoptions_clist { ##1 = }
}
- \prop_gput:NVV \g_xeCJK_family_prop \l_xeCJK_family_tl \l_xeCJK_fontname_tl
- \prop_gput:NVV \g_xeCJK_family_options_prop \l_xeCJK_family_tl \l_xeCJK_fontoptions_clist
+ \prop_gput:NVV \g__xeCJK_family_prop \l__xeCJK_family_tl \l__xeCJK_fontname_tl
+ \prop_gput:NVV \g__xeCJK_family_options_prop \l__xeCJK_family_tl \l__xeCJK_fontoptions_clist
\group_end:
}
-\cs_new_protected_nopar:Npn \xeCJK_add_sub_block:
+\cs_new_protected_nopar:Npn \__xeCJK_add_sub_block:
{
- \clist_remove_duplicates:N \l_xeCJK_sub_key_clist
- \clist_map_inline:Nn \l_xeCJK_sub_key_clist
+ \clist_remove_duplicates:N \l__xeCJK_sub_key_clist
+ \clist_map_inline:Nn \l__xeCJK_sub_key_clist
{
- \tl_set:Nx \l_xeCJK_sub_family_tl { \l_xeCJK_family_tl/##1 }
- \bool_if:cT { l_xeCJK_copy_##1_bool }
+ \tl_set:Nx \l__xeCJK_sub_family_tl { \l__xeCJK_family_tl/##1 }
+ \bool_if:cT { l__xeCJK_copy_##1_bool }
{
- \xeCJK_check_family:V \l_xeCJK_sub_family_tl
- \prop_get:NVNT \g_xeCJK_family_prop \l_xeCJK_family_tl \l_xeCJK_tmpa_tl
- { \prop_gput:NVV \g_xeCJK_family_prop \l_xeCJK_sub_family_tl \l_xeCJK_tmpa_tl }
- \prop_get:NVNT \g_xeCJK_family_options_prop \l_xeCJK_family_tl \l_xeCJK_tmpa_clist
+ \__xeCJK_check_family:V \l__xeCJK_sub_family_tl
+ \prop_get:NVNT \g__xeCJK_family_prop \l__xeCJK_family_tl \l__xeCJK_tmpa_tl
+ { \prop_gput:NVV \g__xeCJK_family_prop \l__xeCJK_sub_family_tl \l__xeCJK_tmpa_tl }
+ \prop_get:NVNT \g__xeCJK_family_options_prop \l__xeCJK_family_tl \l__xeCJK_tmpa_clist
{
- \clist_remove_all:Nn \l_xeCJK_tmpa_clist { ##1 = * }
- \prop_gput:NVV \g_xeCJK_family_options_prop \l_xeCJK_sub_family_tl \l_xeCJK_tmpa_clist
+ \clist_remove_all:Nn \l__xeCJK_tmpa_clist { ##1 = * }
+ \prop_gput:NVV \g__xeCJK_family_options_prop \l__xeCJK_sub_family_tl \l__xeCJK_tmpa_clist
}
- \cs_gset_protected_nopar:cpx { xeCJK/family/\l_xeCJK_sub_family_tl }
+ \cs_gset_protected_nopar:cpx { __xeCJK/family/\l__xeCJK_sub_family_tl }
{
- \xeCJK_family_if_exist:xT { \l_xeCJK_family_tl }
+ \__xeCJK_family_if_exist:xT { \l__xeCJK_family_tl }
{
- \prop_get:NnNT \exp_not:N \g_xeCJK_family_name_prop
- { \l_xeCJK_family_tl } \exp_not:N \l_xeCJK_tmpa_tl
+ \prop_get:NnNT \exp_not:N \g__xeCJK_family_name_prop
+ { \l__xeCJK_family_tl } \exp_not:N \l__xeCJK_tmpa_tl
{
- \prop_gput:NnV \exp_not:N \g_xeCJK_family_name_prop
- { \l_xeCJK_sub_family_tl } \exp_not:N \l_xeCJK_tmpa_tl
- \cs_gset_protected_nopar:cpx { xeCJK/family/\l_xeCJK_sub_family_tl }
+ \prop_gput:NnV \exp_not:N \g__xeCJK_family_name_prop
+ { \l__xeCJK_sub_family_tl } \exp_not:N \l__xeCJK_tmpa_tl
+ \cs_gset_protected_nopar:cpx { __xeCJK/family/\l__xeCJK_sub_family_tl }
\exp_not:n
{ {
\exp_not:N \fontencoding { \g_fontspec_encoding_tl }
- \exp_not:N \fontfamily { \l_xeCJK_tmpa_tl }
+ \exp_not:N \fontfamily { \l__xeCJK_tmpa_tl }
\exp_not:N \selectfont
} }
}
}
}
}
- \bool_if:cT { l_xeCJK_add_##1_bool }
+ \bool_if:cT { l__xeCJK_add_##1_bool }
{
- \xeCJK_set_family:ncc \l_xeCJK_sub_family_tl
- { l_xeCJK_##1_fontfeat_clist } { l_xeCJK_##1_fontname_tl }
+ \xeCJK_set_family:xcc \l__xeCJK_sub_family_tl
+ { l__xeCJK_##1_fontfeat_clist } { l__xeCJK_##1_fontname_tl }
}
}
}
-\cs_new_protected_nopar:Npn \xeCJK_copy_family:nn #1#2
+\cs_new_protected_nopar:Npn \__xeCJK_copy_family:nn #1#2
{
- \xeCJK_family_if_exist:xT {#2}
+ \__xeCJK_family_if_exist:xT {#2}
{
\tl_map_inline:nn
- { \g_xeCJK_family_prop \g_xeCJK_family_options_prop \g_xeCJK_family_name_prop }
- { \prop_get:NnNT ##1 {#2} \l_xeCJK_tmpa_tl { \prop_gput:NnV ##1 {#1} \l_xeCJK_tmpa_tl } }
- \cs_gset_eq:cc { xeCJK/family/#1 } { xeCJK/family/#2 }
+ { \g__xeCJK_family_prop \g__xeCJK_family_options_prop \g__xeCJK_family_name_prop }
+ { \prop_get:NnNT ##1 {#2} \l__xeCJK_tmpa_tl { \prop_gput:NnV ##1 {#1} \l__xeCJK_tmpa_tl } }
+ \cs_gset_eq:cc { __xeCJK/family/#1 } { __xeCJK/family/#2 }
}
}
-\cs_generate_variant:Nn \xeCJK_copy_family:nn { xx }
-\tl_set:Nn \l_xeCJK_font_coor_tl { xeCJK/\xeCJK@family/\f@series/\f@shape/\f@size }
+\cs_generate_variant:Nn \__xeCJK_copy_family:nn { xx }
+\tl_set:Nn \l__xeCJK_font_coor_tl { __xeCJK/\l_xeCJK_family_tl/\f@series/\f@shape/\f@size }
\cs_new_protected_nopar:Npn \xeCJK_select_font:
{
- \cs_if_exist_use:cF { \l_xeCJK_font_coor_tl }
+ \cs_if_exist_use:cF { \l__xeCJK_font_coor_tl }
{
- \tl_set:Nx \l_xeCJK_current_coor_tl \l_xeCJK_font_coor_tl
- \xeCJK_family_if_exist:xTF { \xeCJK@family }
- { \use:c { xeCJK/family/\xeCJK@family } }
+ \tl_set:Nx \l__xeCJK_current_coor_tl \l__xeCJK_font_coor_tl
+ \__xeCJK_family_if_exist:xTF { \l_xeCJK_family_tl }
+ { \use:c { __xeCJK/family/\l_xeCJK_family_tl } }
{ \use_none:nnnn }
- \exp_last_unbraced:NNV \cs_gset_eq:cN \l_xeCJK_current_coor_tl \tex_font:D
+ \exp_last_unbraced:NNV \cs_gset_eq:cN \l__xeCJK_current_coor_tl \tex_font:D
}
}
\cs_new_eq:NN \xeCJK@setfont \xeCJK_select_font:
-\cs_new_protected_nopar:Npn \xeCJK_switch_font:nn #1#2
+\cs_new_protected_nopar:Npn \__xeCJK_switch_font:nn #1#2
{
\str_if_eq_x:nnF {#1} {#2}
{
- \xeCJK_info:nxx { CJK-block } {#1} {#2}
- \tl_remove_all:Nn \xeCJK@family { /#1 }
+ \__xeCJK_info:nxx { CJK-block } {#1} {#2}
+ \tl_remove_all:Nn \l_xeCJK_family_tl { /#1 }
\str_if_eq_x:nnF {#2} { CJK }
{
- \tl_set:Nx \l_xeCJK_tmpa_tl \xeCJK@family
- \tl_put_right:Nx \xeCJK@family { /#2 }
- \xeCJK_family_if_exist:xF \xeCJK@family
+ \tl_set:Nx \l__xeCJK_tmpa_tl \l_xeCJK_family_tl
+ \tl_put_right:Nx \l_xeCJK_family_tl { /#2 }
+ \__xeCJK_family_if_exist:xF \l_xeCJK_family_tl
{
- \xeCJK_family_if_exist:xTF { \CJKfamilydefault/#2 }
- { \xeCJK_copy_family:xx \xeCJK@family { \CJKfamilydefault/#2 } }
- { \xeCJK_copy_family:xx \xeCJK@family \l_xeCJK_tmpa_tl }
+ \__xeCJK_family_if_exist:xTF { \CJKfamilydefault/#2 }
+ { \__xeCJK_copy_family:xx \l_xeCJK_family_tl { \CJKfamilydefault/#2 } }
+ { \__xeCJK_copy_family:xx \l_xeCJK_family_tl \l__xeCJK_tmpa_tl }
}
}
}
\xeCJK_select_font:
}
-\xeCJK_msg_new:nn { CJK-block } { Switch~from~block~'#1'~to~'#2'. }
-\prg_new_protected_conditional:Npnn \xeCJK_family_if_exist:x #1 { T, F, TF }
+\__xeCJK_msg_new:nn { CJK-block } { Switch~from~block~'#1'~to~'#2'. }
+\prg_new_protected_conditional:Npnn \__xeCJK_family_if_exist:x #1 { T, F, TF }
{
- \cs_if_free:cTF { xeCJK/family/#1 }
+ \cs_if_free:cTF { __xeCJK/family/#1 }
{ \prg_return_false: }
{
- \prop_get:NxNF \g_xeCJK_family_name_prop {#1} \l_xeCJK_family_name_tl
- { \use:c { xeCJK/family/#1 } }
+ \prop_get:NxNF \g__xeCJK_family_name_prop {#1} \l__xeCJK_family_name_tl
+ { \use:c { __xeCJK/family/#1 } }
\prg_return_true:
}
}
\cs_generate_variant:Nn \prop_get:NnNTF { Nx }
\NewDocumentCommand \CJKfamily { m }
{
- \cs_if_exist:cTF { xeCJK/family/#1 }
- { \tl_set:Nx \xeCJK@family {#1} }
+ \cs_if_exist:cTF { __xeCJK/family/#1 }
+ { \tl_set:Nx \l_xeCJK_family_tl {#1} }
{
- \seq_if_in:NxF \g_xeCJK_unknown_family_seq {#1}
+ \seq_if_in:NxF \g__xeCJK_unknown_family_seq {#1}
{
- \seq_gput_right:Nx \g_xeCJK_unknown_family_seq {#1}
- \xeCJK_warning:nx { CJKfamily-Unknown } {#1}
+ \seq_gput_right:Nx \g__xeCJK_unknown_family_seq {#1}
+ \__xeCJK_warning:nx { CJKfamily-Unknown } {#1}
}
}
\tex_ignorespaces:D
}
-\seq_new:N \g_xeCJK_unknown_family_seq
-\xeCJK_msg_new:nn { CJKfamily-Unknown }
+\seq_new:N \g__xeCJK_unknown_family_seq
+\__xeCJK_msg_new:nn { CJKfamily-Unknown }
{
Unknown~CJK~family~'#1'~is~ignored.\\\\
Try~to~use~
@@ -1843,90 +1868,88 @@
[...]{...}~to~define~it.
}
\NewDocumentCommand \setCJKfamilyfont { m O{} m }
- { \xeCJK_set_family:nnn {#1} {#2} {#3} }
+ { \xeCJK_set_family:xnn {#1} {#2} {#3} }
\NewDocumentCommand \newCJKfontfamily { o m O{} m }
{
- \IfNoValueTF {#1}
- { \tl_set:Nx \l_xeCJK_family_tl { \cs_to_str:N #2 } }
- { \tl_set:Nx \l_xeCJK_family_tl {#1} }
- \xeCJK_set_family:nnn \l_xeCJK_family_tl {#3} {#4}
- \cs_new_protected_nopar:Npx #2 { \exp_not:N \CJKfamily { \l_xeCJK_family_tl } }
+ \tl_set:Nx \l__xeCJK_family_tl { \IfNoValueTF {#1} { \cs_to_str:N #2 } {#1} }
+ \xeCJK_set_family:xnn \l__xeCJK_family_tl {#3} {#4}
+ \cs_new_protected_nopar:Npx #2 { \exp_not:N \CJKfamily { \l__xeCJK_family_tl } }
}
-\int_new:N \g_xeCJK_fontspec_int
-\int_gdecr:N \g_xeCJK_fontspec_int
+\int_new:N \g__xeCJK_fontspec_int
+\int_gdecr:N \g__xeCJK_fontspec_int
\NewDocumentCommand \CJKfontspec { O{} m }
{
- \tl_set:Nx \l_xeCJK_CJKfontspec_id_tl { CJKfontspec/#1/#2/id }
- \cs_if_free:cT \l_xeCJK_CJKfontspec_id_tl
+ \tl_set:Nx \l__xeCJK_CJKfontspec_id_tl { CJKfontspec/#1/#2/id }
+ \cs_if_free:cT \l__xeCJK_CJKfontspec_id_tl
{
- \int_gincr:N \g_xeCJK_fontspec_int
- \tl_gset:Nx \g_xeCJK_family_spec_tl
- { CJKfontspec ( \int_use:N \g_xeCJK_fontspec_int ) }
- \xeCJK_set_family:nnn \g_xeCJK_family_spec_tl {#1} {#2}
- \tl_gset:cx \l_xeCJK_CJKfontspec_id_tl \g_xeCJK_family_spec_tl
+ \int_gincr:N \g__xeCJK_fontspec_int
+ \tl_gset:Nx \g__xeCJK_family_spec_tl
+ { CJKfontspec ( \int_use:N \g__xeCJK_fontspec_int ) }
+ \xeCJK_set_family:xnn \g__xeCJK_family_spec_tl {#1} {#2}
+ \tl_gset:cx \l__xeCJK_CJKfontspec_id_tl \g__xeCJK_family_spec_tl
}
- \exp_args:Nv \CJKfamily \l_xeCJK_CJKfontspec_id_tl
+ \exp_args:Nv \CJKfamily \l__xeCJK_CJKfontspec_id_tl
\tex_ignorespaces:D
}
-\clist_new:N \g_xeCJK_default_features_clist
+\clist_new:N \g__xeCJK_default_features_clist
\NewDocumentCommand \defaultCJKfontfeatures { m }
- { \clist_gset:Nn \g_xeCJK_default_features_clist {#1} }
+ { \clist_gset:Nn \g__xeCJK_default_features_clist {#1} }
\defaultCJKfontfeatures { Script = CJK }
\@onlypreamble \defaultCJKfontfeatures
\NewDocumentCommand \addCJKfontfeatures { m }
{
- \prop_if_in:NVTF \g_xeCJK_family_prop \xeCJK@family
+ \prop_if_in:NVTF \g__xeCJK_family_prop \l_xeCJK_family_tl
{
\group_begin:
- \clist_set:Nx \l_xeCJK_tmpa_clist {#1}
- \prop_get:NVN \g_xeCJK_family_prop \xeCJK@family \l_xeCJK_tmpa_tl
- \clist_map_inline:Nn \g_xeCJK_CJK_subclass_clist
+ \clist_set:Nx \l__xeCJK_tmpa_clist {#1}
+ \prop_get:NVN \g__xeCJK_family_prop \l_xeCJK_family_tl \l__xeCJK_tmpa_tl
+ \clist_map_inline:Nn \g__xeCJK_CJK_subclass_clist
{
- \clist_if_in:NnT \l_xeCJK_tmpa_clist {##1}
+ \clist_if_in:NnT \l__xeCJK_tmpa_clist {##1}
{
- \clist_remove_all:Nn \l_xeCJK_tmpa_clist {##1}
- \prop_get:NxNF \g_xeCJK_family_prop { \xeCJK@family/##1 } \l_xeCJK_tmpb_tl
+ \clist_remove_all:Nn \l__xeCJK_tmpa_clist {##1}
+ \prop_get:NxNF \g__xeCJK_family_prop { \l_xeCJK_family_tl/##1 } \l__xeCJK_tmpb_tl
{
- \prop_get:NxNF \g_xeCJK_family_prop
- { \CJKfamilydefault/##1 } \l_xeCJK_tmpb_tl
- { \tl_set:Nx \l_xeCJK_tmpb_tl \l_xeCJK_tmpa_tl }
+ \prop_get:NxNF \g__xeCJK_family_prop
+ { \CJKfamilydefault/##1 } \l__xeCJK_tmpb_tl
+ { \tl_set:Nx \l__xeCJK_tmpb_tl \l__xeCJK_tmpa_tl }
}
- \clist_set:Nx \l_xeCJK_tmpa_clist
- { ##1 = { [ \l_xeCJK_tmpa_clist ] { \l_xeCJK_tmpb_tl } } }
+ \clist_set:Nx \l__xeCJK_tmpa_clist
+ { ##1 = { [ \l__xeCJK_tmpa_clist ] { \l__xeCJK_tmpb_tl } } }
\clist_map_break:
}
}
- \prop_get:NVNF \g_xeCJK_family_options_prop \xeCJK@family \l_xeCJK_tmpb_clist
- { \clist_clear:N \l_xeCJK_tmpb_clist }
- \clist_clear:N \l_xeCJK_tmpc_clist
- \clist_map_inline:Nn \l_xeCJK_tmpb_clist
+ \prop_get:NVNF \g__xeCJK_family_options_prop \l_xeCJK_family_tl \l__xeCJK_tmpb_clist
+ { \clist_clear:N \l__xeCJK_tmpb_clist }
+ \clist_clear:N \l__xeCJK_tmpc_clist
+ \clist_map_inline:Nn \l__xeCJK_tmpb_clist
{
- \clist_if_in:NnF \l_xeCJK_tmpa_clist {##1}
- { \clist_put_right:Nn \l_xeCJK_tmpc_clist {##1} }
+ \clist_if_in:NnF \l__xeCJK_tmpa_clist {##1}
+ { \clist_put_right:Nn \l__xeCJK_tmpc_clist {##1} }
}
- \clist_put_left:NV \l_xeCJK_tmpa_clist \l_xeCJK_tmpc_clist
+ \clist_put_left:NV \l__xeCJK_tmpa_clist \l__xeCJK_tmpc_clist
\use:x
- { \group_end: \exp_not:N \CJKfontspec [ \l_xeCJK_tmpa_clist ] { \l_xeCJK_tmpa_tl } }
+ { \group_end: \exp_not:N \CJKfontspec [ \l__xeCJK_tmpa_clist ] { \l__xeCJK_tmpa_tl } }
}
- { \xeCJK_warning:n { addCJKfontfeature-ignored } }
+ { \__xeCJK_warning:n { addCJKfontfeature-ignored } }
\tex_ignorespaces:D
}
\cs_new_eq:NN \addCJKfontfeature \addCJKfontfeatures
-\xeCJK_msg_new:nn { addCJKfontfeature-ignored }
+\__xeCJK_msg_new:nn { addCJKfontfeature-ignored }
{
- \tl_to_str:N \addCJKfontfeature (s)~ignored.\\\\
+ \token_to_str:N \addCJKfontfeature (s)~ignored.\\\\
It~cannot~be~used~with~a~font~that~wasn't~selected~by~xeCJK.
}
\NewDocumentCommand \setCJKmainfont { O{} m }
- { \xeCJK_set_family:nnn \CJKrmdefault {#1} {#2} }
+ { \xeCJK_set_family:xnn \CJKrmdefault {#1} {#2} }
\cs_new_eq:NN \setCJKromanfont \setCJKmainfont
\NewDocumentCommand \setCJKsansfont { O{} m }
- { \xeCJK_set_family:nnn \CJKsfdefault {#1} {#2} }
-\cs_if_free:NT \CJKrmdefault { \tl_set:Nn \CJKrmdefault { rm } }
-\cs_if_free:NT \CJKsfdefault { \tl_set:Nn \CJKsfdefault { sf } }
-\cs_if_free:NT \CJKttdefault { \tl_set:Nn \CJKttdefault { tt } }
-\cs_if_free:NT \CJKfamilydefault { \tl_set:Nn \CJKfamilydefault { \CJKrmdefault } }
-\tl_new:c { xeCJK/family/\CJKfamilydefault }
+ { \xeCJK_set_family:xnn \CJKsfdefault {#1} {#2} }
+\tl_if_exist:NF \CJKrmdefault { \tl_set:Nn \CJKrmdefault { rm } }
+\tl_if_exist:NF \CJKsfdefault { \tl_set:Nn \CJKsfdefault { sf } }
+\tl_if_exist:NF \CJKttdefault { \tl_set:Nn \CJKttdefault { tt } }
+\tl_if_exist:NF \CJKfamilydefault { \tl_set:Nn \CJKfamilydefault { \CJKrmdefault } }
+\tl_new:c { __xeCJK/family/\CJKfamilydefault }
\AtEndOfPackage
{
\etex_protected:D \tl_put_right:Nn \normalfont { \CJKfamily \CJKfamilydefault }
@@ -1941,160 +1964,160 @@
\@onlypreamble \setCJKmonofont
\@onlypreamble \setCJKromanfont
\NewDocumentCommand \setCJKmathfont { O{} m }
- { \xeCJK_set_family:nnn \c_xeCJK_math_tl {#1} {#2} }
-\tl_const:Nn \c_xeCJK_math_tl { CJKmath }
-\keys_define:nn { xeCJK / options } { CJKmath .bool_gset:N = \g_xeCJK_math_bool }
+ { \xeCJK_set_family:xnn \c__xeCJK_math_tl {#1} {#2} }
+\tl_const:Nn \c__xeCJK_math_tl { CJKmath }
+\keys_define:nn { xeCJK / options } { CJKmath .bool_gset:N = \g__xeCJK_math_bool }
\NewDocumentCommand \xeCJKsetmathcode { m m m m }
{
- \xeCJK_check_num_range:nnNN {#1} {#2} \l_xeCJK_tmpa_int \l_xeCJK_tmpb_int
- \int_set:Nn \l_xeCJK_tmpc_int { \xeCJK_math_type:n {#3} }
- \loop
- \XeTeXmathcode
- \l_xeCJK_tmpa_int = \l_xeCJK_tmpc_int \use:c { sym #4 } \l_xeCJK_tmpa_int
- \if_int_compare:w \l_xeCJK_tmpa_int < \l_xeCJK_tmpb_int
- \int_incr:N \l_xeCJK_tmpa_int
- \repeat
+ \__xeCJK_check_num_range:nnNN {#1} {#2} \l__xeCJK_tmpa_int \l__xeCJK_tmpb_int
+ \int_set:Nn \l__xeCJK_tmpc_int { \__xeCJK_math_type:n {#3} }
+ \int_set:Nn \l_tmpa_int { \use:c { sym #4 } }
+ \__xeCJK_int_until_do:nn { \l__xeCJK_tmpa_int > \l__xeCJK_tmpb_int }
+ {
+ \XeTeXmathcode \l__xeCJK_tmpa_int = \l__xeCJK_tmpc_int \l_tmpa_int \l__xeCJK_tmpa_int
+ \int_incr:N \l__xeCJK_tmpa_int
+ }
}
-\cs_new_eq:NN \xeCJK_math_type:n \mathchar@type
-\cs_new_protected_nopar:Npn \xeCJK_set_mathfont:
+\cs_new_eq:NN \__xeCJK_math_type:n \mathchar@type
+\cs_new_protected_nopar:Npn \__xeCJK_set_mathfont:
{
- \xeCJK_family_if_exist:xTF \c_xeCJK_math_tl
- { \tl_set:Nx \l_xeCJK_tmpa_tl \c_xeCJK_math_tl }
+ \__xeCJK_family_if_exist:xTF \c__xeCJK_math_tl
+ { \tl_set:Nx \l__xeCJK_tmpa_tl \c__xeCJK_math_tl }
{
- \xeCJK_family_if_exist:xTF \CJKfamilydefault
- { \tl_set:Nx \l_xeCJK_tmpa_tl \CJKfamilydefault }
- { \tl_set_eq:NN \l_xeCJK_tmpa_tl \q_no_value }
+ \__xeCJK_family_if_exist:xTF \CJKfamilydefault
+ { \tl_set:Nx \l__xeCJK_tmpa_tl \CJKfamilydefault }
+ { \tl_set_eq:NN \l__xeCJK_tmpa_tl \q_no_value }
}
- \prop_get:NVNT \g_xeCJK_family_name_prop \l_xeCJK_tmpa_tl \l_xeCJK_math_family_tl
+ \prop_get:NVNT \g__xeCJK_family_name_prop \l__xeCJK_tmpa_tl \l__xeCJK_math_family_tl
{
- \DeclareSymbolFont \c_xeCJK_math_tl \g_fontspec_encoding_tl
- \l_xeCJK_math_family_tl \mddefault \shapedefault
- \SetSymbolFont \c_xeCJK_math_tl { bold } \g_fontspec_encoding_tl
- \l_xeCJK_math_family_tl \bfdefault \shapedefault
+ \DeclareSymbolFont \c__xeCJK_math_tl \g_fontspec_encoding_tl
+ \l__xeCJK_math_family_tl \mddefault \shapedefault
+ \SetSymbolFont \c__xeCJK_math_tl { bold } \g_fontspec_encoding_tl
+ \l__xeCJK_math_family_tl \bfdefault \shapedefault
\clist_map_inline:nn { CJK, FullLeft, FullRight }
{
- \clist_map_inline:cn { g_xeCJK_##1_range_clist }
+ \clist_map_inline:cn { g__xeCJK_##1_range_clist }
{
- \xeCJK_set_char_class_aux:Nn \xeCJKsetmathcode {####1}
- \mathalpha \c_xeCJK_math_tl
+ \__xeCJK_set_char_class_aux:Nn \xeCJKsetmathcode {####1}
+ \mathalpha \c__xeCJK_math_tl
}
}
}
}
-\xeCJK_AtEndPreamble:n
+\__xeCJK_AtEndPreamble:n
{
\normalfont
- \prop_if_empty:NTF \g_xeCJK_family_prop
- { \xeCJK_warning:n { no-CJKfamily } }
- { \bool_if:NT \g_xeCJK_math_bool { \xeCJK_set_mathfont: } }
+ \prop_if_empty:NTF \g__xeCJK_family_prop
+ { \__xeCJK_warning:n { no-CJKfamily } }
+ { \bool_if:NT \g__xeCJK_math_bool { \__xeCJK_set_mathfont: } }
}
-\xeCJK_msg_new:nn { no-CJKfamily }
+\__xeCJK_msg_new:nn { no-CJKfamily }
{
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.\\
}
-\fp_new:N \g_xeCJK_monoscale_fp
-\dim_new:N \g_xeCJK_exspace_dim
+\fp_new:N \g__xeCJK_monoscale_fp
+\dim_new:N \g__xeCJK_exspace_dim
\NewDocumentCommand \setCJKmonoscale { }
{
\CJKflexiblespacing
- \xeCJK_set_monoscale:
- \addCJKfontfeatures { Scale = \fp_use:N \g_xeCJK_monoscale_fp }
+ \__xeCJK_set_monoscale:
+ \addCJKfontfeatures { Scale = \fp_use:N \g__xeCJK_monoscale_fp }
}
-\cs_new_protected_nopar:Npn \xeCJK_set_monoscale:
+\cs_new_protected_nopar:Npn \__xeCJK_set_monoscale:
{
\group_begin:
\fontfamily \ttdefault \selectfont
- \fp_gset:Nn \g_xeCJK_monoscale_fp
+ \fp_gset:Nn \g__xeCJK_monoscale_fp
{ \dim_to_fp:n { \c_two \tex_fontdimen:D \c_two \tex_font:D } / ( \f@size ) }
\group_end:
}
-\NewDocumentCommand \setCJKmonoexspace { } { \xeCJK_set_monoexspace: }
-\cs_new_protected_nopar:Npn \xeCJK_set_monoexspace:
+\NewDocumentCommand \setCJKmonoexspace { } { \__xeCJK_set_monoexspace: }
+\cs_new_protected_nopar:Npn \__xeCJK_set_monoexspace:
{
\group_begin:
\fontfamily \ttdefault \selectfont
- \dim_gset:Nn \g_xeCJK_exspace_dim
+ \dim_gset:Nn \g__xeCJK_exspace_dim
{ \c_two \tex_fontdimen:D \c_two \tex_font:D - \f@size \p@ }
\group_end:
}
\NewDocumentCommand \CJKfixedspacing { }
{
- \bool_if:NF \l_xeCJK_fixed_spacing_bool
+ \bool_if:NF \l__xeCJK_fixed_spacing_bool
{
- \bool_set_true:N \l_xeCJK_fixed_spacing_bool
- \tl_set_eq:NN \l_xeCJK_flexible_punctstyle_tl \l_xeCJK_punctstyle_tl
- \bool_set_eq:NN \l_xeCJK_fixed_xecglue_bool \l_xeCJK_xecglue_bool
- \cs_set_eq:NN \xeCJK_flexible_ecglue: \CJKecglue
- \cs_set_eq:NN \xeCJK_flexible_cjkglue: \CJKglue
- \xeCJK_set_monoexspace:
+ \bool_set_true:N \l__xeCJK_fixed_spacing_bool
+ \tl_set_eq:NN \l__xeCJK_flexible_punctstyle_tl \l__xeCJK_punctstyle_tl
+ \bool_set_eq:NN \l__xeCJK_fixed_xecglue_bool \l__xeCJK_xecglue_bool
+ \cs_set_eq:NN \__xeCJK_flexible_ecglue: \CJKecglue
+ \cs_set_eq:NN \__xeCJK_flexible_cjkglue: \CJKglue
+ \__xeCJK_set_monoexspace:
\xeCJKsetup
{
PunctStyle = plain ,
- CJKglue = { \skip_horizontal:N \g_xeCJK_exspace_dim } ,
- CJKecglue = { \skip_horizontal:n { .5\g_xeCJK_exspace_dim } } ,
+ CJKglue = { \skip_horizontal:N \g__xeCJK_exspace_dim } ,
+ CJKecglue = { \skip_horizontal:n { .5\g__xeCJK_exspace_dim } } ,
xCJKecglue = false ,
}
}
}
\NewDocumentCommand \CJKflexiblespacing { }
{
- \bool_if:NT \l_xeCJK_fixed_spacing_bool
+ \bool_if:NT \l__xeCJK_fixed_spacing_bool
{
- \bool_set_false:N \l_xeCJK_fixed_spacing_bool
+ \bool_set_false:N \l__xeCJK_fixed_spacing_bool
\exp_args:Nx \xeCJKsetup
{
- PunctStyle = { \l_xeCJK_flexible_punctstyle_tl } ,
- CJKglue = { \xeCJK_flexible_cjkglue: } ,
- CJKecglue = { \xeCJK_flexible_ecglue: } ,
- xCJKecglue = { \bool_if:NTF \l_xeCJK_fixed_xecglue_bool { true } { false } } ,
+ PunctStyle = { \l__xeCJK_flexible_punctstyle_tl } ,
+ CJKglue = { \__xeCJK_flexible_cjkglue: } ,
+ CJKecglue = { \__xeCJK_flexible_ecglue: } ,
+ xCJKecglue = { \bool_if:NTF \l__xeCJK_fixed_xecglue_bool { true } { false } } ,
}
}
}
-\bool_new:N \l_xeCJK_fixed_spacing_bool
-\xeCJK_AfterPreamble:n { \tl_put_right:Nn \verbatim@font \CJKfixedspacing }
+\bool_new:N \l__xeCJK_fixed_spacing_bool
+\__xeCJK_AfterPreamble:n { \tl_put_right:Nn \verbatim@font \CJKfixedspacing }
\NewDocumentCommand \setCJKmonofont { s t+ O{} m }
{
\IfBooleanTF {#1}
- { \xeCJK_set_family:nnn \CJKttdefault { Mono = Scale, #3 } {#4} }
+ { \xeCJK_set_family:xnn \CJKttdefault { Mono = Scale, #3 } {#4} }
{
\IfBooleanTF {#2}
- { \xeCJK_set_family:nnn \CJKttdefault { Mono = Exspace, #3 } {#4} }
- { \xeCJK_set_family:nnn \CJKttdefault {#3} {#4} }
+ { \xeCJK_set_family:xnn \CJKttdefault { Mono = Exspace, #3 } {#4} }
+ { \xeCJK_set_family:xnn \CJKttdefault {#3} {#4} }
}
}
-\bool_new:N \g_xeCJK_indent_bool
+\bool_new:N \g__xeCJK_indent_bool
\keys_define:nn { xeCJK / options }
{
- CJKnumber .bool_set:N = \g_xeCJK_number_bool ,
- indentfirst .bool_set:N = \g_xeCJK_indent_bool ,
+ CJKnumber .bool_set:N = \g__xeCJK_number_bool ,
+ indentfirst .bool_set:N = \g__xeCJK_indent_bool ,
normalindentfirst .meta:n = { indentfirst = false } ,
quiet .code:n =
{
\msg_redirect_module:nnn { xeCJK } { warning } { info }
\msg_redirect_module:nnn { xeCJK } { info } { none }
- \xeCJK_if_package_loaded:nF { fontspec }
+ \__xeCJK_if_package_loaded:nF { fontspec }
{ \PassOptionsToPackage { quiet } { fontspec } }
},
silent .code:n =
{
\msg_redirect_module:nnn { xeCJK } { warning } { none }
\msg_redirect_module:nnn { xeCJK } { info } { none }
- \xeCJK_if_package_loaded:nF { fontspec }
+ \__xeCJK_if_package_loaded:nF { fontspec }
{ \PassOptionsToPackage { silent } { fontspec } }
},
unknown .code:n =
{
- \xeCJK_if_package_loaded:nTF { fontspec }
- { \xeCJK_error:nx { key-unknown } { \l_keys_key_tl } }
+ \__xeCJK_if_package_loaded:nTF { fontspec }
+ { \__xeCJK_error:nx { key-unknown } { \l_keys_key_tl } }
{ \PassOptionsToPackage { \l_keys_key_tl } { fontspec } }
},
}
-\xeCJK_msg_new:nn { key-unknown }
+\__xeCJK_msg_new:nn { key-unknown }
{
- Sorry,~but~\l__keys_module_tl\c_space_tl does~not~have~a~key~called~'#1'.\\\\
+ Sorry,~but~\l__keys_module_tl \ does~not~have~a~key~called~'#1'.\\\\
The~key~'#1'~is~being~ignored.
}
\keys_set:nn { xeCJK / options }
@@ -2119,7 +2142,7 @@
\cs_new_nopar:Npn \CJKpunctsymbol #1 {#1}
\ProcessKeysOptions { xeCJK / options }
\RequirePackage { fontspec } [ 2011/09/13 ]
-\bool_if:NT \g_xeCJK_indent_bool
+\bool_if:NT \g__xeCJK_indent_bool
{
\cs_set_eq:NN \@afterindentfalse \@afterindenttrue
\@afterindenttrue
@@ -2137,63 +2160,65 @@
\NewDocumentCommand \xeCJKplainchr { } { \punctstyle { plain } }
\NewDocumentCommand \CJKsetecglue { m } { \xeCJKsetup { CJKecglue = {#1} } }
\cs_new_eq:NN \xeCJKsetecglue \CJKsetecglue
-\cs_new_protected_nopar:Npn \xeCJK_fix_itcorr:
+\cs_new_protected_nopar:Npn \__xeCJK_fix_itcorr:
{
\scan_stop:
- \xeCJK_if_last_node:nTF { default }
+ \__xeCJK_if_last_node:nTF { default }
{
\tex_unkern:D \tex_unkern:D
- \xeCJK_itcorr_aux
- { \xeCJK_make_node:n { default_itcorr } }
+ \__xeCJK_itcorr_aux
+ { \__xeCJK_make_node:n { default_itcorr } }
}
- { \xeCJK_itcorr_aux }
+ { \__xeCJK_itcorr_aux }
}
-\cs_new_eq:NN \xeCJK_itcorr_aux \/
+\cs_new_eq:NN \__xeCJK_itcorr_aux \/
\cs_set_protected_nopar:Npn \/
{
\int_compare:nNnTF \XeTeXinterchartokenstate > \c_zero
- { \xeCJK_fix_itcorr: } { \xeCJK_itcorr_aux }
+ { \__xeCJK_fix_itcorr: } { \__xeCJK_itcorr_aux }
}
\cs_set_eq:NN \@@italiccorr \/
-\xeCJK_AfterEndPreamble:n
+\__xeCJK_AfterEndPreamble:n
{
\int_compare:nNnF
- { \c_three + ( \seq_count:N \g_xeCJK_class_seq ) } = \xe@alloc@intercharclass
+ { \c_three + ( \seq_count:N \g__xeCJK_class_seq ) } = \xe@alloc@intercharclass
{
\int_step_inline:nnnn \c_four \c_one \xe@alloc@intercharclass
{
- \seq_if_in:NnF \g_xeCJK_class_seq {#1}
- { \xeCJK_set_others_toks:n {#1} }
+ \seq_if_in:NnF \g__xeCJK_class_seq {#1}
+ { \__xeCJK_set_others_toks:n {#1} }
}
}
}
-\cs_new_protected_nopar:Npn \xeCJK_set_others_toks:n #1
+\cs_new_protected_nopar:Npn \__xeCJK_set_others_toks:n #1
{
- \int_set:Nn \xeCJK_Others_class {#1}
- \clist_map_inline:Nn \g_xeCJK_CJK_class_clist
+ \int_set:Nn \c__xeCJK_Others_class_int {#1}
+ \clist_map_inline:Nn \g__xeCJK_CJK_class_clist
{
- \xeCJK_copy_inter_class_toks:nnnn {##1} { Others } {##1} { NormalSpace }
- \xeCJK_copy_inter_class_toks:nnnn { Others } {##1} { NormalSpace } {##1}
- \exp_args:Nnnx \xeCJK_app_inter_class_toks:nnn {##1} { Others }
- { \xeCJK_get_inter_class_toks:nn { Default } { Others } }
- \exp_args:Nnnx \xeCJK_pre_inter_class_toks:nnn { Others } {##1}
- { \xeCJK_get_inter_class_toks:nn { Others } { Default } }
- \xeCJK_if_blank_x:nT { \xeCJK_get_inter_class_toks:nn { Others } { Boundary } }
+ \__xeCJK_copy_inter_class_toks:nnnn {##1} { Others } {##1} { NormalSpace }
+ \__xeCJK_copy_inter_class_toks:nnnn { Others } {##1} { NormalSpace } {##1}
+ \exp_args:Nnnx \__xeCJK_app_inter_class_toks:nnn {##1} { Others }
+ { \__xeCJK_get_inter_class_toks:nn { Default } { Others } }
+ \exp_args:Nnnx \__xeCJK_pre_inter_class_toks:nnn { Others } {##1}
+ { \__xeCJK_get_inter_class_toks:nn { Others } { Default } }
+ \__xeCJK_if_blank_x:nT
+ { \__xeCJK_get_inter_class_toks:nn { Others } { Boundary } }
{
- \xeCJK_copy_inter_class_toks:nnnn
+ \__xeCJK_copy_inter_class_toks:nnnn
{ Others } { Boundary } { Default } { Boundary }
}
- \xeCJK_if_blank_x:nT { \xeCJK_get_inter_class_toks:nn { Boundary } { Others } }
+ \__xeCJK_if_blank_x:nT
+ { \__xeCJK_get_inter_class_toks:nn { Boundary } { Others } }
{
- \xeCJK_copy_inter_class_toks:nnnn
+ \__xeCJK_copy_inter_class_toks:nnnn
{ Boundary } { Others } { Boundary } { Default }
}
}
}
-\int_new:N \xeCJK_Others_class
-\cs_new_protected_nopar:Npn \xeCJK_patch:Nnn #1#2#3
+\int_new:N \c__xeCJK_Others_class_int
+\cs_new_protected_nopar:Npn \__xeCJK_patch:Nnn #1#2#3
{ \tl_put_left:Nn #1 {#2} \tl_put_right:Nn #1 {#3} }
-\xeCJK_AfterPreamble:n
+\__xeCJK_AfterPreamble:n
{
\tl_map_inline:nn
{
@@ -2201,37 +2226,34 @@
\textquoteleft \textquoteright \textquotedblleft \textquotedblright
}
{
- \xeCJK_patch:Nnn #1
- { \xeCJK_group_begin: \makexeCJKinactive }
- { \xeCJK_group_end: }
+ \__xeCJK_patch:Nnn #1
+ { \__xeCJK_group_begin: \makexeCJKinactive }
+ { \__xeCJK_group_end: }
}
- \xeCJK_patch:Nnn \tipaencoding { \makexeCJKinactive } { }
- \cs_set_eq:NN \xeCJK_aux_r \r
- \cs_set_protected_nopar:Npn \r #1 { { \makexeCJKinactive \xeCJK_aux_r {#1} } }
- \xeCJK_if_package_loaded:nT { pifont }
+ \__xeCJK_patch:Nnn \tipaencoding { \makexeCJKinactive } { }
+ \cs_set_eq:NN \__xeCJK_aux_r \r
+ \cs_set_protected_nopar:Npn \r #1 { { \makexeCJKinactive \__xeCJK_aux_r {#1} } }
+ \__xeCJK_if_package_loaded:nT { pifont }
{
\RenewDocumentCommand \Pifont { m }
- {
- \fontencoding {U} \fontfamily {#1} \fontseries {m} \fontshape {n}
- \selectfont \makexeCJKinactive
- }
+ { \makexeCJKinactive \usefont {U} {#1} {m} {n} }
}
}
-\cs_new_eq:NN \xeCJK_group_begin: \group_begin:
-\cs_new_eq:NN \xeCJK_group_end: \group_end:
-\xeCJK_AfterEndPreamble:n
+\cs_new_eq:NN \__xeCJK_group_begin: \group_begin:
+\cs_new_eq:NN \__xeCJK_group_end: \group_end:
+\__xeCJK_AfterEndPreamble:n
{
\bool_if:nT
{
- \xeCJK_if_package_loaded_p:n { hyperref } &&
+ \__xeCJK_if_package_loaded_p:n { hyperref } &&
\tl_if_exist_p:N \pdfstringdefPreHook
}
{
- \tl_put_right:Nn \pdfstringdefPreHook
+ \tl_gput_right:Nn \pdfstringdefPreHook
{
\cs_set_eq:NN \makexeCJKinactive \prg_do_nothing:
- \cs_set_eq:NN \xeCJK_group_begin: \prg_do_nothing:
- \cs_set_eq:NN \xeCJK_group_end: \prg_do_nothing:
+ \cs_set_eq:NN \__xeCJK_group_begin: \prg_do_nothing:
+ \cs_set_eq:NN \__xeCJK_group_end: \prg_do_nothing:
\cs_set_eq:NN \CJKfamily \use_none:n
}
}
@@ -2241,56 +2263,56 @@
{ \cs_set_eq:NN \CJK@ifundefined \cs_if_free:NTF }
\NewDocumentCommand \xeCJKcaption { o m }
{
- \IfValueT {#1} { \XeTeXdefaultencoding "#1" }
- \cs_set_nopar:Npx \xeCJK_reset_at_catcode:
+ \IfNoValueF {#1} { \XeTeXdefaultencoding "#1" }
+ \cs_set_nopar:Npx \__xeCJK_reset_at_catcode:
{
\exp_not:n { \char_set_catcode:nn { `\@ } }
{ \char_value_catcode:n { `\@ } }
}
\char_set_catcode_letter:N \@
\file_input:n { #2.cpx }
- \xeCJK_reset_at_catcode:
+ \__xeCJK_reset_at_catcode:
\XeTeXdefaultencoding "UTF-8"
}
-\cs_new_protected_nopar:Npn \xeCJK_ULprepunctchar:n #1
+\cs_new_protected_nopar:Npn \__xeCJK_ULprepunctchar:n #1
{
- { \makexeCJKinactive \CJKpunctsymbol {#1} \xeCJK_no_break: }
+ { \makexeCJKinactive \CJKpunctsymbol {#1} \__xeCJK_no_break: }
\tex_ignorespaces:D
}
-\cs_new_protected_nopar:Npn \xeCJK_ULpostpunctchar:n #1
+\cs_new_protected_nopar:Npn \__xeCJK_ULpostpunctchar:n #1
{
{ \makexeCJKinactive \CJKpunctsymbol {#1} }
- \xeCJK_ignorespaces:
+ \__xeCJK_ignorespaces:
}
-\cs_new_protected_nopar:Npn \xeCJK_ULroutines:
+\cs_new_protected_nopar:Npn \__xeCJK_ULroutines:
{
- \xeCJK_inter_class_toks:nnn { Default } { CJK } { \CJKecglue \CJKsymbol }
- \xeCJK_inter_class_toks:nnn { HalfLeft } { CJK } { \CJKsymbol }
- \xeCJK_inter_class_toks:nnn { HalfRight } { CJK } { \CJKecglue \CJKsymbol }
- \xeCJK_inter_class_toks:nnn { Boundary } { CJK } { \xeCJK_Boundary_and_CJK: }
+ \__xeCJK_inter_class_toks:nnn { Default } { CJK } { \CJKecglue \CJKsymbol }
+ \__xeCJK_inter_class_toks:nnn { HalfLeft } { CJK } { \CJKsymbol }
+ \__xeCJK_inter_class_toks:nnn { HalfRight } { CJK } { \CJKecglue \CJKsymbol }
+ \__xeCJK_inter_class_toks:nnn { Boundary } { CJK } { \__xeCJK_Boundary_and_CJK: }
\clist_map_inline:nn { Default, HalfLeft, HalfRight, Boundary }
{
- \xeCJK_inter_class_toks:nnn {##1} { FullLeft } { \xeCJK_ULprepunctchar:n }
- \xeCJK_inter_class_toks:nnn {##1} { FullRight } { \xeCJK_ULpostpunctchar:n }
+ \__xeCJK_inter_class_toks:nnn {##1} { FullLeft } { \__xeCJK_ULprepunctchar:n }
+ \__xeCJK_inter_class_toks:nnn {##1} { FullRight } { \__xeCJK_ULpostpunctchar:n }
}
- \xeCJK_UL_subclass_patch_tl
+ \__xeCJK_UL_subclass_patch_tl
}
-\xeCJK_AfterPreamble:n
+\__xeCJK_AfterPreamble:n
{
\cs_if_exist:NT \UL@hook
{
\addto@hook \UL@hook
{
- \cs_set_eq:NN \xeCJK_UL_CJKsymbol \CJKsymbol
- \cs_set_eq:NN \xeCJK_UL_CJKpunctsymbol \CJKpunctsymbol
+ \cs_set_eq:NN \__xeCJK_UL_CJKsymbol \CJKsymbol
+ \cs_set_eq:NN \__xeCJK_UL_CJKpunctsymbol \CJKpunctsymbol
\cs_set_protected_nopar:Npn \CJKsymbol #1
{
- { \xeCJK_select_font: \xeCJK_UL_CJKsymbol {#1} }
- { \xeCJK_make_node:n { CJK } } \xeCJK_ignorespaces:
+ { \xeCJK_select_font: \__xeCJK_UL_CJKsymbol {#1} }
+ { \__xeCJK_make_node:n { CJK } } \__xeCJK_ignorespaces:
}
\cs_set_protected_nopar:Npn \CJKpunctsymbol #1
- { { \xeCJK_select_font: \xeCJK_UL_CJKpunctsymbol {#1} } }
- \xeCJK_ULroutines:
+ { { \xeCJK_select_font: \__xeCJK_UL_CJKpunctsymbol {#1} } }
+ \__xeCJK_ULroutines:
}
}
\cs_if_exist:NT \XeTeX@CJKfntef@hook
@@ -2299,15 +2321,15 @@
{ \xeCJK_select_font: \makexeCJKinactive }
}
}
-\bool_if:NT \g_xeCJK_number_bool
+\bool_if:NT \g__xeCJK_number_bool
{
\tl_set:Nn \CJK@UnicodeEnc { UTF8 }
\cs_set_protected_nopar:Npn \CJKaddEncHook #1#2
- { \cs_set_nopar:cpn { xeCJK_enc_#1 } {#2} }
+ { \cs_set_nopar:cpn { __xeCJK_enc_#1 } {#2} }
\cs_set_protected_nopar:Npn \Unicode #1#2
{ \tex_char:D \int_eval:n { (#1) * \c_two_hundred_fifty_six + (#2) } }
\RequirePackage { CJKnumb }
- \use:c { xeCJK_enc_\CJK@UnicodeEnc }
+ \use:c { __xeCJK_enc_\CJK@UnicodeEnc }
\tl_set:Nn \CJK@tenthousand { 万 }
\tl_set:Nn \CJK@hundredmillion { 亿 }
}