summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/xelatex/xecjk
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-04-01 20:57:33 +0000
committerKarl Berry <karl@freefriends.org>2017-04-01 20:57:33 +0000
commit2eecb3520617a4ec9b242167d8af56aafde4a9af (patch)
tree90f9936ac11ca33092e1536a823ae0e4ce81940f /Master/texmf-dist/source/xelatex/xecjk
parent5112bfa157654c21370044635eb59293b8c8d895 (diff)
xecjk (1apr17)
git-svn-id: svn://tug.org/texlive/trunk@43672 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/xelatex/xecjk')
-rw-r--r--Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx162
1 files changed, 86 insertions, 76 deletions
diff --git a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
index 8a3f5bbdfd9..e73a8c7ce6b 100644
--- a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
+++ b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
@@ -194,7 +194,7 @@ Copyright and Licence
%<*package|config|fntef|listings|xunicode|xunextra>
%<!(config|xunextra)>\NeedsTeXFormat{LaTeX2e}
%<!(config|xunextra)>\RequirePackage{expl3}
-%<+!driver>\GetIdInfo$Id: xeCJK.dtx efd7a18 2017-02-23 02:07:20 +0800 Qing Lee <sobenlee@gmail.com> $
+%<+!driver>\GetIdInfo$Id: xeCJK.dtx 832988e 2017-04-01 21:33:23 +0800 Qing Lee <sobenlee@gmail.com> $
%<package> {Typesetting CJK scripts with XeLaTeX}
%<config> {Configuration file for xeCJK package}
%<fntef> {xeCJK font effect}
@@ -207,7 +207,7 @@ Copyright and Licence
%<listings>\ProvidesExplPackage{xeCJK-listings}
%<xunicode>\ProvidesExplPackage{xunicode-addon}
%<xunextra>\ProvidesExplFile{xunicode-extra.def}
-%<!driver> {\ExplFileDate}{3.4.6}{\ExplFileDescription}
+%<!driver> {\ExplFileDate}{3.4.7}{\ExplFileDescription}
%</package|config|fntef|listings|xunicode|xunextra>
%<*driver>
\documentclass{ctxdoc}
@@ -275,7 +275,7 @@ Copyright and Licence
% \changes{v3.3.2}{2015/05/15}{随 Unicode 7.0.0 更新简繁汉字映射。}
% \changes{v3.3.3}{2015/09/25}{更新 \hologo{LaTeX3} 代码。}
%
-% \CheckSum{10171}
+% \CheckSum{10155}
% \GetFileId{xeCJK.sty}
%
% \title{\bfseries\pkg{xeCJK} 宏包}
@@ -4201,34 +4201,34 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
+% \changes{v3.4.7}{2017/03/20}{简化 \texttt{CheckSingle} 的实现,不再展开宏。}
+%
% \begin{macro}[internal]{\xeCJK_check_single:Nw}
+% \begin{macro}[aux]{\@@_check_single_end:N}
% \begin{macrocode}
\cs_new_protected_nopar:Npn \xeCJK_check_single:Nw #1
{
+ \group_align_safe_begin:
\peek_catcode:NTF \c_catcode_letter_token
{ \xeCJK_check_single:NNw #1 }
{
- \group_align_safe_begin:
\token_if_other:NTF \l_peek_token
- { \group_align_safe_end: \xeCJK_check_single:NNw #1 }
- {
- \group_align_safe_end:
- \bool_if:nTF
- {
- \str_if_eq_x_p:nn { \token_get_arg_spec:N \l_peek_token } { } &&
- \exp_args:No \tl_if_single_token_p:n \l_peek_token &&
- ( \exp_after:wN \token_if_other_p:N \l_peek_token ||
- \exp_after:wN \token_if_letter_p:N \l_peek_token )
- }
- { \exp_after:wN \xeCJK_check_single:NNw \exp_after:wN #1 }
- { \@@_check_single_save:N #1 }
- }
+ { \xeCJK_check_single:NNw }
+ { \@@_check_single_end:N }
+ #1
}
}
+\cs_new_protected_nopar:Npn \@@_check_single_end:N
+ {
+ \group_align_safe_end:
+ \@@_check_single_save:N
+ }
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \begin{macro}[internal]{\xeCJK_check_single:NNw}
+% \begin{macro}[aux]{\@@_check_single_aux:nNNw}
% \changes{v3.1.1}{2012/12/04}{改进定义,减少使用 \texttt{peek} 函数的次数。}
% \changes{v3.2.7}{2013/08/30}{与 \tn{CJKspace} 兼容。}
% 使用 \cs{group_align_safe_begin:} 和 \cs{group_align_safe_end:} 是为了防止在表格
@@ -4241,49 +4241,71 @@ Copyright and Licence
\bool_if:NTF \l_@@_peek_ignore_spaces_bool
{
\bool_if:NTF \l_@@_reserve_space_bool
- { \@@_check_single_save:N #1 #2 ~ }
+ { \@@_check_single_end:N #1 #2 ~ }
{ \@@_check_single_space:NN #1#2 }
}
- { \@@_check_single_save:N #1 #2 }
+ { \@@_check_single_end:N #1 #2 }
}
{
- \group_align_safe_begin:
\token_if_other:NTF \l_peek_token
{
- \group_align_safe_end:
\bool_if:NTF \l_@@_peek_ignore_spaces_bool
- { \@@_check_single_space:NN #1#2 }
- { \@@_check_single_save:N #1 #2 }
+ { \@@_check_single_space:NN }
+ { \@@_check_single_end:N }
}
{
- \token_if_cs:NTF \l_peek_token
- {
- \group_align_safe_end:
- \bool_if:NTF \l_@@_peek_ignore_spaces_bool
- { \xeCJK_check_single_cs:NNn #1#2 { ~ } }
- { \xeCJK_check_single_cs:NNn #1#2 { } }
- }
- {
- \group_align_safe_end:
- \bool_if:nTF
- {
- \l_@@_plain_equation_bool &&
- \token_if_math_toggle_p:N \l_peek_token
- }
- {
- \bool_if:NTF \l_@@_peek_ignore_spaces_bool
- { \xeCJK_check_single_equation:NNnNw #1 #2 { ~ } }
- { \xeCJK_check_single_equation:NNnNw #1 #2 { } }
- }
- {
- \bool_if:NTF \l_@@_peek_ignore_spaces_bool
- { \@@_check_single_save:N #1 #2 ~ }
- { \@@_check_single_save:N #1 #2 }
- }
- }
+ \bool_if:NTF \l_@@_peek_ignore_spaces_bool
+ { \@@_check_single_aux:nNNw { ~ } }
+ { \@@_check_single_aux:nNNw { } }
}
+ #1 #2
}
}
+\cs_new_protected_nopar:Npn \@@_check_single_aux:nNNw #1#2#3
+ {
+ \token_if_cs:NTF \l_peek_token
+ { \xeCJK_check_single_cs:NNn }
+ { \xeCJK_check_single_end:NNnw }
+ #2 #3 {#1}
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}[internal]{\xeCJK_check_single_end:NNnw}
+% \begin{macro}[aux]{\@@_check_single_end_aux:NNn,\@@_check_single_end_equation:NNnw}
+% \begin{macrocode}
+\cs_new_protected_nopar:Npn \@@_check_single_end_aux:NNn #1#2#3
+ { \@@_check_single_end:N #1 #2 #3 }
+\cs_new_eq:NN \xeCJK_check_single_end:NNnw \@@_check_single_end_aux:NNn
+\cs_new_protected_nopar:Npn \@@_check_single_end_equation:NNnw
+ {
+ \token_if_math_toggle:NTF \l_peek_token
+ { \xeCJK_check_single_equation:NNnNw }
+ { \@@_check_single_end_aux:NNn }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{PlainEquation}
+% \changes{v3.1.1}{2012/12/06}{增加 \texttt{PlainEquation} 选项。}
+% \begin{macrocode}
+\keys_define:nn { xeCJK / options }
+ {
+ PlainEquation .choice: ,
+ PlainEquation / true .code:n =
+ {
+ \cs_set_eq:NN \xeCJK_check_single_end:NNnw
+ \@@_check_single_end_equation:NNnw
+ } ,
+ PlainEquation / false .code:n =
+ {
+ \cs_set_eq:NN \xeCJK_check_single_end:NNnw
+ \@@_check_single_end_aux:NNn
+ } ,
+ PlainEquation .default:n = { true } ,
+ }
% \end{macrocode}
% \end{macro}
%
@@ -4298,10 +4320,10 @@ Copyright and Licence
\xeCJK_if_CJK_class:NTF #2
{
\xeCJK_if_CJK_class:NTF \l_peek_token
- { \@@_check_single_save:N #1 #2 }
- { \@@_check_single_save:N #1 #2 ~ }
+ { \@@_check_single_end:N #1 #2 }
+ { \@@_check_single_end:N #1 #2 ~ }
}
- { \@@_check_single_save:N #1 #2 ~ }
+ { \@@_check_single_end:N #1 #2 ~ }
}
% \end{macrocode}
% \end{macro}
@@ -4312,10 +4334,10 @@ Copyright and Licence
{
\peek_catcode:NTF \c_math_toggle_token
{
- \xeCJK_widow_penalty: \@@_check_single_save:N #1
+ \xeCJK_widow_penalty: \@@_check_single_end:N #1
\xeCJK_make_node:n { CJK-widow } #2 #4
}
- { \@@_check_single_save:N #1 #2#3#4 }
+ { \@@_check_single_end:N #1 #2#3#4 }
}
% \end{macrocode}
% \end{macro}
@@ -4342,16 +4364,16 @@ Copyright and Licence
% \begin{macrocode}
\cs_new_protected_nopar:Npn \xeCJK_check_single_cs:NNn #1#2#3
{
- \group_align_safe_begin:
\tl_case:NoF \l_peek_token
{ \l_@@_check_single_cs_case_tl }
- { \group_align_safe_end: \use_iii:nnn }
+ { \use_iii:nnn }
{ \xeCJK_check_single_env:nnNn }
{
- \xeCJK_widow_penalty: \@@_check_single_save:N #1
+ \xeCJK_widow_penalty:
+ \@@_check_single_end:N #1
\xeCJK_make_node:n { CJK-widow } #2#3
}
- { \@@_check_single_save:N #1 #2#3 }
+ { \@@_check_single_end:N #1 #2#3 }
}
\tl_new:N \l_@@_check_single_cs_case_tl
\cs_generate_variant:Nn \tl_case:NnF { No }
@@ -4362,11 +4384,10 @@ Copyright and Licence
% \begin{macrocode}
\cs_new_protected_nopar:Npn \xeCJK_check_single_env:nnNn #1#2#3#4
{
- \group_align_safe_begin:
\str_case_x:noTF {#4}
{ \l_@@_inline_env_case_tl }
- { \group_align_safe_end: #2 }
- { \group_align_safe_end: #1 }
+ {#2}
+ {#1}
#3 {#4}
}
\cs_generate_variant:Nn \str_case_x:nnTF { no }
@@ -4379,7 +4400,7 @@ Copyright and Licence
% \begin{macrocode}
\xeCJK_cs_case_keys_define:nNNnn { NewLineCS }
\l_@@_new_line_cs_case_tl \l_@@_new_line_cs_seq
- { \group_align_safe_end: \use_ii:nnn }
+ { \use_ii:nnn }
{
\tl_concat:NNN \l_@@_check_single_cs_case_tl
\l_@@_new_line_cs_case_tl \l_@@_env_cs_case_tl
@@ -4391,7 +4412,7 @@ Copyright and Licence
% \begin{macrocode}
\xeCJK_cs_case_keys_define:nNNnn { EnvCS }
\l_@@_env_cs_case_tl \l_@@_env_cs_seq
- { \group_align_safe_end: \use:n }
+ { \use:n }
{
\tl_concat:NNN \l_@@_check_single_cs_case_tl
\l_@@_new_line_cs_case_tl \l_@@_env_cs_case_tl
@@ -4405,7 +4426,7 @@ Copyright and Licence
% \begin{macrocode}
\keys_define:nn { xeCJK / options }
{
- InlineEnv .code:n =
+ InlineEnv .code:n =
{
\seq_set_from_clist:Nn \l_@@_inline_env_seq {#1}
\@@_update_inline_env_case_tl:
@@ -4442,14 +4463,6 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{PlainEquation}
-% \changes{v3.1.1}{2012/12/06}{增加 \texttt{PlainEquation} 选项。}
-% \begin{macrocode}
-\keys_define:nn { xeCJK / options }
- { PlainEquation .bool_set:N = \l_@@_plain_equation_bool }
-% \end{macrocode}
-% \end{macro}
-%
% \subsection{增加 CJK 子分区}
%
% \begin{macro}[internal]{\g_@@_CJK_sub_class_seq}
@@ -12469,14 +12482,11 @@ This is an example. 这是一个例子}
\documentclass{minimal}
\usepackage{xeCJK}
\setCJKmainfont{SimSun}
-\catcode`\。=\active
-\def。{.}
-\def\foo{一}
\long\def\showtext{一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十。
\[x^2+y^2\]
-一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十\foo
+一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十。
$$x^2+y^2$$
-一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十\foo
+一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十。
\begin{equation}
x^2+y^2
\end{equation}