summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-11-05 23:10:56 +0000
committerKarl Berry <karl@freefriends.org>2014-11-05 23:10:56 +0000
commit614e92fcfb7bbf20b314eafeac08856e5b337f05 (patch)
tree1161d4db72a4fbe6780125390fd3d23eb6866bb6 /Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
parentb3a15e5c9eaee42f3ea8d48970d289643293e145 (diff)
xecjk (5nov14)
git-svn-id: svn://tug.org/texlive/trunk@35520 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty')
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty137
1 files changed, 82 insertions, 55 deletions
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
index 04fcb138ffb..017220fe745 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 692 2014-06-20 12:25:35Z sobenlee $
+%% $Id: xeCJK.dtx 729 2014-11-05 13:46:36Z sobenlee@gmail.com $
%% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%% -----------------------------------------------------------------
%% Author:
@@ -33,11 +33,11 @@
%%
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\GetIdInfo$Id: xeCJK.dtx 692 2014-06-20 12:25:35Z sobenlee $
+\GetIdInfo$Id: xeCJK.dtx 729 2014-11-05 13:46:36Z sobenlee@gmail.com $
{Typesetting CJK scripts with XeLaTeX}
\ProvidesExplPackage
{\ExplFileName}
- {\ExplFileDate}{3.2.13}{\ExplFileDescription}
+ {\ExplFileDate}{3.2.14}{\ExplFileDescription}
\msg_new:nnn { xeCJK } { Require-XeTeX }
{
The~xeCJK~package~requires~XeTeX~to~function.\\\\
@@ -54,7 +54,7 @@
using~your~TeX~package~manager~or~from~CTAN.\\
\str_if_eq:nnT {#1} { expl3 } { Loading~xeCJK~will~abort! }
}
-\@ifpackagelater { expl3 } { 2014/05/06 } { }
+\@ifpackagelater { expl3 } { 2014/07/20 } { }
{ \msg_critical:nnn { xeCJK } { l3-too-old } { expl3 } }
\prg_new_conditional:Npnn \xeCJK_if_package_loaded:n #1 { p , T , F , TF }
{
@@ -680,7 +680,8 @@
\xeCJK_if_last_node_p:n { CJK } ||
\xeCJK_if_last_node_p:n { CJK-space }
}
- { \xeCJK_remove_node: \CJKecglue } { ~ }
+ { \xeCJK_remove_node: \CJKecglue }
+ { \xeCJK_space_glue: }
}
{
\bool_if:nTF
@@ -701,7 +702,10 @@
{
\int_gset_eq:NN \g__xeCJK_spacefactor_int \tex_spacefactor:D
\peek_meaning_remove:NTF \tex_italiccorrection:D
- { \tex_italiccorrection:D { \xeCJK_make_node:n { default } } }
+ {
+ \tex_italiccorrection:D
+ { \xeCJK_make_node:n { default } }
+ }
{
\token_if_space:NTF \l_peek_token
{ { \xeCJK_make_node:n { default-space } } }
@@ -727,7 +731,8 @@
\xeCJK_if_last_node_p:n { CJK } ||
\xeCJK_if_last_node_p:n { CJK-space }
}
- { \xeCJK_remove_node: \CJKecglue } { ~ }
+ { \xeCJK_remove_node: \CJKecglue }
+ { \xeCJK_space_glue: }
}
{
\xeCJK_if_last_node:nT { CJK-space }
@@ -738,7 +743,10 @@
{
\int_gset_eq:NN \g__xeCJK_spacefactor_int \tex_spacefactor:D
\peek_meaning_remove:NTF \tex_italiccorrection:D
- { \tex_italiccorrection:D { \xeCJK_make_node:n { normalspace } } }
+ {
+ \tex_italiccorrection:D
+ { \xeCJK_make_node:n { normalspace } }
+ }
{
\token_if_space:NTF \l_peek_token
{ { \xeCJK_make_node:n { default-space } } }
@@ -768,38 +776,41 @@
\int_compare_p:nNn \etex_lastnodetype:D = \c_ten
}
{ \xeCJK_remove_node: \CJKecglue }
+ { \xeCJK_check_for_xglue: }
+ }
+ }
+ }
+\cs_new_eq:NN \xeCJK_check_for_xglue: \prg_do_nothing:
+\cs_new_protected_nopar:Npn \__xeCJK_check_for_xglue:
+ {
+ \bool_if:nT
+ {
+ \int_compare_p:nNn \etex_lastnodetype:D = \c_eleven &&
+ ( \skip_if_eq_p:nn \tex_lastskip:D \c_xeCJK_space_skip_tl ||
+ \skip_if_eq_p:nn \tex_lastskip:D \l__xeCJK_ecglue_skip )
+ }
+ {
+ \tex_unskip:D
+ \bool_if:nTF
+ {
+ \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_remove_node: \CJKecglue }
+ {
+ \bool_if:nTF
{
- \bool_if:nT
- {
- \l__xeCJK_xecglue_bool &&
- \int_compare_p:nNn \etex_lastnodetype:D = \c_eleven &&
- ( \skip_if_eq_p:nn \tex_lastskip:D \c_xeCJK_space_skip_tl ||
- \skip_if_eq_p:nn \tex_lastskip:D \l__xeCJK_ecglue_skip )
- }
- {
- \tex_unskip:D
- \bool_if:nTF
- {
- \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_remove_node: \CJKecglue }
- {
- \bool_if:nTF
- {
- \xeCJK_if_last_node_p:n { CJK } ||
- \xeCJK_if_last_node_p:n { CJK-space }
- }
- {
- \xeCJK_remove_node:
- \bool_if:NTF \l__xeCJK_reserve_space_bool
- { ~ } { \CJKglue }
- }
- { ~ }
- }
- }
+ \xeCJK_if_last_node_p:n { CJK } ||
+ \xeCJK_if_last_node_p:n { CJK-space }
+ }
+ {
+ \xeCJK_remove_node:
+ \bool_if:NTF \l__xeCJK_reserve_space_bool
+ { \xeCJK_space_glue: }
+ { \CJKglue }
}
+ { \xeCJK_space_glue: }
}
}
}
@@ -808,25 +819,34 @@
\if_dim:w \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_declare_node:n #1
{
+ \int_gincr:N \g__xeCJK_node_int
\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 } { \g__xeCJK_node_int sp }
}
+\int_new:N \g__xeCJK_node_int
+\int_gset_eq:NN \g__xeCJK_node_int \c_ten
\cs_new_protected_nopar:Npn \xeCJK_make_node:n #1
{
- \tex_kern:D - \use:c { c__xeCJK_#1_node_dim }
- \tex_kern:D \use:c { c__xeCJK_#1_node_dim }
+ \exp_after:wN \__xeCJK_make_node:N
+ \cs:w c__xeCJK_#1_node_dim \exp_after:wN \cs_end:
+ \exp_after:wN \tex_spacefactor:D \int_use:N \tex_spacefactor:D \exp_stop_f:
+ }
+\cs_new_protected_nopar:Npn \__xeCJK_make_node:N #1
+ {
+ \tex_kern:D - #1
+ \tex_kern:D #1
}
\cs_new_protected_nopar:Npn \xeCJK_remove_node:
{ \tex_unkern:D \tex_unkern:D }
-\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 { CJK-nobreak } { 15 sp }
-\xeCJK_def_node:nn { normalspace } { 16 sp }
+\xeCJK_declare_node:n { CJK }
+\xeCJK_declare_node:n { CJK-space }
+\xeCJK_declare_node:n { default }
+\xeCJK_declare_node:n { default-space }
+\xeCJK_declare_node:n { CJK-nobreak }
+\xeCJK_declare_node:n { normalspace }
\keys_define:nn { xeCJK / options }
{
CJKglue .code:n =
@@ -848,11 +868,13 @@
{
\bool_set_true:N \l__xeCJK_xecglue_bool
\cs_set_eq:NN \xeCJK_space_or_xecglue: \CJKecglue
+ \cs_set_eq:NN \xeCJK_check_for_xglue: \__xeCJK_check_for_xglue:
} ,
xCJKecglue / false .code:n =
{
\bool_set_false:N \l__xeCJK_xecglue_bool
- \cs_set_eq:NN \xeCJK_space_or_xecglue: \c_space_tl
+ \cs_set_eq:NN \xeCJK_space_or_xecglue: \xeCJK_space_glue:
+ \xeCJK_cs_clear:N \xeCJK_check_for_xglue:
} ,
xCJKecglue / unknown .code:n =
{
@@ -860,9 +882,11 @@
\cs_set_protected_nopar:Npn \CJKecglue {#1}
\xeCJK_glue_to_skip:nN {#1} \l__xeCJK_ecglue_skip
\cs_set_eq:NN \xeCJK_space_or_xecglue: \CJKecglue
+ \cs_set_eq:NN \xeCJK_check_for_xglue: \__xeCJK_check_for_xglue:
} ,
xCJKecglue .default:n = { true }
}
+\cs_new_eq:NN \xeCJK_space_glue: \c_space_tl
\skip_new:N \l__xeCJK_ecglue_skip
\bool_new:N \l__xeCJK_xecglue_bool
\keys_define:nn { xeCJK / options }
@@ -976,7 +1000,10 @@
\cs_new_protected_nopar:Npn \__xeCJK_punct_offset:NN #1#2
{ \__xeCJK_punct_kern:n { - \__xeCJK_use_punct_dim:nnn { offset } {#1} {#2} } }
\cs_new_protected_nopar:Npn \__xeCJK_punct_kern:n #1
- { \tex_kern:D #1 \exp_stop_f: }
+ {
+ \dim_compare:nNnF {#1} = \c_zero_dim
+ { \tex_kern:D #1 \exp_stop_f: }
+ }
\cs_new_protected_nopar:Npn \__xeCJK_punct_glue:NN #1#2
{ \__xeCJK_punct_hskip:n { \__xeCJK_punct_skip:nn {#1} {#2} } }
\cs_new_eq:NN \__xeCJK_punct_hskip:n \skip_horizontal:n
@@ -2299,7 +2326,7 @@
\__xeCJK_msg_new:nn { missing-glyph }
{
CJKfamily~`\__xeCJK_msg_family_map:n {#1}'~
- ( \prop_get:Nn \g__xeCJK_family_font_name_prop {#1} )~
+ ( \prop_item:Nn \g__xeCJK_family_font_name_prop {#1} )~
does~not~contain~glyph~`#2'~(U+#3).\\
}
\NewDocumentCommand \setCJKfallbackfamilyfont { m O { } m }
@@ -3134,9 +3161,9 @@
\__xeCJK_shipout_punct_breakable_kern:n \__xeCJK_punct_breakable_kern:n
\tl_set:Nx \l__xeCJK_off_verb_addon_tl
{
- \exp_not:c
- { bool_set_ \bool_if:NTF \l__xeCJK_xecglue_bool { true } { false } :N }
- \l__xeCJK_xecglue_bool
+ \bool_if:NTF \l__xeCJK_xecglue_bool
+ { \xeCJKsetup { xCJKecglue = true } }
+ { \xeCJKsetup { xCJKecglue = false } }
\exp_not:n
{
\cs_set_eq:NN \CJKglue \__xeCJK_shipout_CJKglue:
@@ -3509,7 +3536,7 @@
\bool_if:nT { \g__xeCJK_math_bool && \cs_if_exist_p:N \Url@MathSetup }
{ \tl_put_right:Nn \Url@MathSetup { \__xeCJK_update_url_font: } }
}
-\cs_if_free:NF \fontspec_setup_maths:
+\@ifpackagelater { fontspec } { 2014/06/21 } { }
{
\cs_gset_protected_nopar:Npx \fontspec_setup_maths:
{