From a3f31ac7e2d7229a032c7609c1d97404f52b885a Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 29 Apr 2014 21:51:20 +0000 Subject: xecjk (29apr14) git-svn-id: svn://tug.org/texlive/trunk@33753 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf | Bin 1204452 -> 1191081 bytes .../doc/xelatex/xecjk/xunicode-symbols.pdf | Bin 345752 -> 348357 bytes Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx | 279 ++++++++++----------- Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins | 4 +- .../texmf-dist/tex/xelatex/xecjk/config/xeCJK.cfg | 4 +- .../tex/xelatex/xecjk/xeCJK-listings.sty | 8 +- Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty | 195 +++++++------- Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty | 8 +- .../tex/xelatex/xecjk/xunicode-addon.sty | 6 +- .../tex/xelatex/xecjk/xunicode-extra.def | 8 +- 10 files changed, 252 insertions(+), 260 deletions(-) diff --git a/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf b/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf index eece64dc08e..a4b43b02364 100644 Binary files a/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf and b/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf differ diff --git a/Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.pdf b/Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.pdf index 6dbf3c151e7..a8db2c9915f 100644 Binary files a/Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.pdf and b/Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.pdf differ diff --git a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx index 8aca28134f8..6322a2bb99d 100644 --- a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx +++ b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx @@ -95,7 +95,7 @@ CJK scripts fonts (TrueType or OpenType). \askforoverwritefalse \preamble -$Id: xeCJK.dtx 549 2014-03-01 09:06:08Z sobenlee $ +$Id: xeCJK.dtx 644 2014-04-29 09:45:49Z sobenlee $ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ ----------------------------------------------------------------- Author: @@ -201,7 +201,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} % -\GetIdInfo$Id: xeCJK.dtx 549 2014-03-01 09:06:08Z sobenlee $ +\GetIdInfo$Id: xeCJK.dtx 644 2014-04-29 09:45:49Z sobenlee $ %<*driver|package> {Typesetting CJK scripts with XeLaTeX} % @@ -217,13 +217,13 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ {\ExplFileName.\ExplFileExtension} % % {\ExplFileName.cfg} -% {\ExplFileName.def} +% {xunicode-extra.def} %\ProvidesExplPackage % {\ExplFileName} % {xeCJKfntef} % {xeCJK-listings} % {xunicode-addon} - {\ExplFileDate}{3.2.10}{\ExplFileDescription} + {\ExplFileDate}{3.2.11}{\ExplFileDescription} %\ExplSyntaxOff %<*driver> \let\xeCJKrevnum\ExplFileVersion @@ -239,6 +239,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ \usepackage{xeCJKfntef} \usepackage{geometry} \usepackage[toc]{multitoc} +\usepackage{indentfirst} \fvset{formatcom=\xeCJKVerbAddon} \linespread{1.1} \setlist{noitemsep,topsep=1ex} @@ -269,16 +270,11 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ \def\ctexkitrev#1{% \href{http://code.google.com/p/ctex-kit/source/detail?r=#1} {\texttt{ctex-kit} rev#1}} +\DeclareDocumentCommand\package{om}{% + \begingroup\edef\x{\endgroup\lowercase{% + \noexpand\href{http://www.ctan.org/pkg/\IfNoValueTF{#1}{#2}{#1}}}}% + \x{\pkg{#2}}} \ExplSyntaxOn -\cs_new_nopar:Npn \package #1 - { - \href - { - http://mirrors.ctan.org/help/Catalogue/entries/ - \tl_expandable_lowercase:n {#1} .html - } - { \pkg {#1} } - } \NewDocumentCommand \PrintPunctList { O{7} m m } { \par @@ -355,7 +351,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % \changes{v3.2.4}{2013/07/02}{遵循 \hologo{LaTeX3} 变量需要预先声明的原则。} % \changes{v3.2.6}{2013/07/29}{\texttt{case} 类函数的用法与 \hologo{LaTeX3} 同步。} % -% \CheckSum{9023} +% \CheckSum{9005} % \GetFileInfo{\jobname.dtx} % % \title{\bfseries\pkg{xeCJK} 宏包} @@ -382,9 +378,8 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % \pkg{xeCJK} 使用了 \XeTeX 的一些最新特性,需要 \XeTeX{} |0.9995.0 [2009/06/29]| 以 % 后的版本。\pkg{xeCJK} 依赖 \package{everypage} 和 \hologo{LaTeX3} 项目的宏包套件 % \package{l3kernel} 和 \package{l3packages} 。 -% \pkg{xeCJK} 还需要通过 \package{fontspec} 宏包来调用系统字 -% 体。将在 \ref{subsec:opts}~节介绍的功能选项 |indentfirst| 选项需要 -% \package{indentfirst} 宏包的支持。\pkg{xeCJK} 会自动根据需要载入这些宏包。 +% \pkg{xeCJK} 还需要通过 \package{fontspec} 宏包来调用系统字体。 +% \pkg{xeCJK} 会自动根据需要载入这些宏包。 % % \pkg{xeCJK} 的原始作者是孙文昌,2009 年 5 月起宏包被收入 \ctexkit\ 项目进行 % 维护,目前主要维护者是刘海洋\footnote{\email{leoliu.pku@gmail.com}} 和 @@ -472,15 +467,8 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % 最后还需要在命令行下执行 |mktexlsr|,刷新文件名数据库以便 \TeX 系统能够找到它。 % \end{function} % -% \begin{function}[EXP,updated=2012-11-22]{indentfirst} -% \begin{syntax} -% indentfirst = \meta{\TTF} -% \end{syntax} -% 是否使用 \pkg{indentfirst} 宏包,使得跟在章节标题后面的第一段首行也缩进。\bigskip -% \end{function} -% -% 请注意,\pkg{xeCJK} 宏包中只有上述 |LocalConfig|、和 |indentfirst| 这两个选项需要 -% 在调用 \pkg{xeCJK} 时设置,而不能通过 \cs{xeCJKsetup} 来设置。 +% 请注意,\pkg{xeCJK} 宏包中只有上述 |LocalConfig| 选项需要在调用 \pkg{xeCJK} 时 +% 设置,而不能通过 \cs{xeCJKsetup} 来设置。 % % \begin{function}{xeCJKactive} % \begin{syntax} @@ -1466,7 +1454,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ using~your~TeX~package~manager~or~from~CTAN.\\ \str_if_eq:nnT {#1} { expl3 } { Loading~xeCJK~will~abort! } } -\@ifpackagelater { expl3 } { 2013/07/20 } { } +\@ifpackagelater { expl3 } { 2014/01/01 } { } { \msg_critical:nnn { xeCJK } { l3-too-old } { expl3 } } % \end{macrocode} % @@ -1573,7 +1561,14 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ \tl_use:N \l_@@_shipout_hook_tl } } -\cs_new_protected:Npn \@@_add_to_shipout:n #1 +% \end{macrocode} +% \end{macro} +% +% \begin{macro}[internal]{\xeCJK_add_to_shipout:n} +% \changes{v3.2.11}{2014/03/14}{不再使用内部名字。} +% 往 \cs{shipout} 盒子中加入钩子。 +% \begin{macrocode} +\cs_new_protected:Npn \xeCJK_add_to_shipout:n #1 { \tl_put_right:Nn \l_@@_shipout_hook_tl {#1} } \tl_new:N \l_@@_shipout_hook_tl \bool_new:N \l_@@_shipout_hook_bool @@ -2032,14 +2027,17 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % \end{macrocode} % \end{macro} % +% \changes{v3.2.11}{2014/04/10} +% {左右角括号 \texttt{U+2329} 和 \texttt{U+232A} 是西文标点符号。} +% % \begin{macro}[var,internal] % {\c_@@_HalfLeft_chars_clist,\c_@@_HalfRight_chars_clist,\c_@@_NormalSpace_chars_clist} % \hypertarget{CJKcharclass}{西文半角左/右标点和前后原始间距的字符类。} % \begin{macrocode} \clist_const:Nn \c_@@_HalfLeft_chars_clist - { "28 , "2D , "5B , "60 , "7B } + { "28 , "2D , "5B , "60 , "7B , "2329 } \clist_const:Nn \c_@@_HalfRight_chars_clist - { "21 , "22 , "25 , "27 , "29 , "2C , "2E , "3A , "3B , "3F , "5D , "7D } + { "21 , "22 , "25 , "27 , "29 , "2C , "2E , "3A , "3B , "3F , "5D , "7D , "232A } \clist_const:Nn \c_@@_NormalSpace_chars_clist { "2F } % \end{macrocode} % \end{macro} @@ -2058,9 +2056,9 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ \clist_const:Nn \c_@@_OP_chars_clist { "2018 , "201C , - "2329 , "3008 , "300A , "300C , "300E , "3010 , "3014 , "3016 , "3018 , "301A , - "301D , "FE17 , "FE35 , "FE37 , "FE39 , "FE3B , "FE3D , "FE3F , "FE41 , "FE43 , - "FE47 , "FE59 , "FE5B , "FE5D , "FF08 , "FF3B , "FF5B , "FF5F , "FF62 + "3008 , "300A , "300C , "300E , "3010 , "3014 , "3016 , "3018 , "301A , "301D , + "FE17 , "FE35 , "FE37 , "FE39 , "FE3B , "FE3D , "FE3F , "FE41 , "FE43 , "FE47 , + "FE59 , "FE5B , "FE5D , "FF08 , "FF3B , "FF5B , "FF5F , "FF62 } % \end{macrocode} % \end{macro} @@ -2093,10 +2091,10 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ \clist_const:Nn \c_@@_CL_chars_clist { "00B7 , "2019 , "201D , "2014 , "2015 , "2025 , "2026 , "2027 , "2500 , - "232A , "3001 , "3002 , "3009 , "300B , "300D , "300F , "3011 , "3015 , "3017 , - "3019 , "301B , "301E , "301F , "FE11 , "FE12 , "FE18 , "FE36 , "FE38 , "FE3A , - "FE3C , "FE3E , "FE40 , "FE42 , "FE44 , "FE48 , "FE50 , "FE52 , "FE5A , "FE5C , - "FE5E , "FF09 , "FF0C , "FF0E , "FF3D , "FF5D , "FF60 , "FF61 , "FF63 , "FF64 + "3001 , "3002 , "3009 , "300B , "300D , "300F , "3011 , "3015 , "3017 , "3019 , + "301B , "301E , "301F , "FE11 , "FE12 , "FE18 , "FE36 , "FE38 , "FE3A , "FE3C , + "FE3E , "FE40 , "FE42 , "FE44 , "FE48 , "FE50 , "FE52 , "FE5A , "FE5C , "FE5E , + "FF09 , "FF0C , "FF0E , "FF3D , "FF5D , "FF60 , "FF61 , "FF63 , "FF64 } % \end{macrocode} % \end{macro} @@ -4961,7 +4959,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ { \xeCJK_class_group_begin: \tl_set_eq:NN \l_@@_fallback_family_tl \l_xeCJK_family_tl - \xeCJK_fallback_loop:Nn {#1} { \l_@@_fallback_family_tl/FallBack } + \xeCJK_fallback_loop:Nn {#1} { \l_xeCJK_family_tl/FallBack } \xeCJK_class_group_end: } } @@ -4979,23 +4977,24 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ { \xeCJK_family_if_exist:xTF {#2} { - \xeCJK_select_font:x {#2} - \tl_set:Nx \l_@@_fallback_family_tl {#2} + \tl_set:Nx \l_xeCJK_family_tl {#2} + \tl_set_eq:NN \CJK@family \l_@@_fontspec_family_tl + \xeCJK_select_font: \xeCJK_glyph_if_exist:NTF {#1} { \@@_fallback_save_CJKsymbol:N {#1} } - { \xeCJK_fallback_loop:Nn {#1} { \l_@@_fallback_family_tl/FallBack } } + { \xeCJK_fallback_loop:Nn {#1} { \l_xeCJK_family_tl/FallBack } } } { - \str_if_eq_x:nnTF { \CJKfamilydefault } { \l_xeCJK_family_tl } + \str_if_eq_x:nnTF { \CJKfamilydefault } { \l_@@_fallback_family_tl } { \@@_warning:nxxx { missing-glyph } - { \l_@@_fallback_family_tl } {#1} + { \l_xeCJK_family_tl } {#1} { \int_to_hexadecimal:n { `#1 } } \@@_fallback_save_CJKsymbol:N {#1} } { - \tl_set:Nx \l_xeCJK_family_tl { \CJKfamilydefault } - \xeCJK_fallback_loop:Nn {#1} { \l_xeCJK_family_tl } + \tl_set:Nx \l_@@_fallback_family_tl { \CJKfamilydefault } + \xeCJK_fallback_loop:Nn {#1} { \l_@@_fallback_family_tl } } } } @@ -5298,8 +5297,11 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ \exp_not:n { \fontspec_set_family:Nnn \l_@@_fontspec_family_tl } { \exp_not:V \l_@@_fontspec_options_clist } { \exp_not:V \l_@@_font_name_tl } - \@@_gset_family_nfss_cs:xx {#1} { \exp_not:N \l_@@_fontspec_family_tl } - \group_end: + \@@_gset_family_nfss_cs:xx + {#1} { \exp_not:N \l_@@_fontspec_family_tl } + \exp_not:N \exp_args:NNNo \group_end: + \tl_set:Nn \exp_not:N \l_@@_fontspec_family_tl + { \exp_not:N \l_@@_fontspec_family_tl } } } \tl_new:N \l_@@_fontspec_family_tl @@ -5313,7 +5315,10 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ \prop_gpop:NnNT \g_@@_family_font_name_prop {#1} \l_@@_tmp_tl { \prop_gpop:NnNT \g_@@_family_name_prop {#1} \l_@@_tmp_tl - { \cs_undefine:c { \@@_family_nfss_csname:n {#1} } } + { + \cs_undefine:c { \@@_family_csname:n {#1} } + \cs_undefine:c { \@@_family_nfss_csname:n {#1} } + } \@@_warning:nxx { CJKfamily-redef } {#1} { \l_@@_tmp_tl } } } @@ -5412,13 +5417,9 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ { \xeCJK_family_if_exist:xT { \l_@@_family_name_tl } { - \prop_get:NnNT \exp_not:N \g_@@_family_name_prop - { \l_@@_family_name_tl } \exp_not:N \l_@@_fontspec_family_tl - { - \@@_gset_family_nfss_cs:xx - { \l_@@_sub_family_name_tl } - { \exp_not:N \l_@@_fontspec_family_tl } - } + \@@_gset_family_nfss_cs:xx + { \l_@@_sub_family_name_tl } + { \exp_not:N \l_@@_fontspec_family_tl } } } } @@ -5429,11 +5430,12 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % \begin{macrocode} \cs_new_protected_nopar:Npn \@@_copy_family:nn #1#2 { - \xeCJK_family_if_exist:xT {#2} + \xeCJK_family_if_exist:nT {#2} { + \prop_gput:NnV \g_@@_family_name_prop + {#1} \l_@@_fontspec_family_tl \tl_map_inline:nn { - \g_@@_family_name_prop \g_@@_family_font_name_prop \g_@@_family_font_options_prop } @@ -5452,28 +5454,18 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % % \subsection{字体切换} % -% \begin{macro}[internal]{\l_xeCJK_current_font_tl,\xeCJK_select_font:,\xeCJK_select_font:x} +% \begin{macro}[internal]{\l_xeCJK_current_font_tl,\xeCJK_select_font:} % 缓存当前字体的原始格式,以加速编译。 % \begin{macrocode} \tl_new:N \l_xeCJK_current_font_tl -\tl_set:Nn \l_xeCJK_current_font_tl { \@@_font_csname:n { \l_xeCJK_family_tl } } +\tl_set:Nn \l_xeCJK_current_font_tl { \@@_font_csname:n { \CJK@family } } \cs_new_nopar:Npn \@@_font_csname:n #1 { xeCJK/#1/\f@series/\f@shape/\f@size } \cs_new_protected_nopar:Npn \xeCJK_select_font: { - \cs_if_exist_use:cF { \l_xeCJK_current_font_tl } + \exp_args:Nc \cs_if_exist_use:NF { \l_xeCJK_current_font_tl } { - \tl_set:Nx \l_@@_current_coor_tl { \l_xeCJK_current_font_tl } \@@_family_use:x { \l_xeCJK_family_tl } - \xeCJK_font_gset_to_current:c { \l_@@_current_coor_tl } - } - } -\cs_new_protected_nopar:Npn \xeCJK_select_font:x #1 - { - \cs_if_exist_use:cF { \@@_font_csname:n {#1} } - { - \tl_set:Nx \l_@@_current_coor_tl { \@@_font_csname:n {#1} } - \@@_family_use:x {#1} - \xeCJK_font_gset_to_current:c { \l_@@_current_coor_tl } + \xeCJK_font_gset_to_current:c { \l_xeCJK_current_font_tl } } } \tl_new:N \l_@@_current_coor_tl @@ -5506,10 +5498,8 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % \begin{macrocode} \cs_new_protected_nopar:Npn \@@_block_select_font:n #1 { - \cs_if_exist_use:cF { \@@_font_csname:n { \l_xeCJK_family_tl/#1 } } + \exp_args:Nc \cs_if_exist_use:NF { \@@_font_csname:n { \CJK@family/#1 } } { - \tl_set:Nx \l_@@_current_coor_tl - { \@@_font_csname:n { \l_xeCJK_family_tl/#1 } } \xeCJK_family_if_exist:xF { \l_xeCJK_family_tl/#1 } { \@@_copy_family:xx { \l_xeCJK_family_tl/#1 } @@ -5520,7 +5510,8 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ } } \@@_family_use:x { \l_xeCJK_family_tl/#1 } - \xeCJK_font_gset_to_current:c { \l_@@_current_coor_tl } + \xeCJK_font_gset_to_current:c + { \@@_font_csname:n { \CJK@family/#1 } } } } % \end{macrocode} @@ -5547,15 +5538,20 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % \end{macrocode} % \end{macro} % -% \begin{macro}[TF,internal]{\xeCJK_family_if_exist:x} +% \begin{macro}[TF,internal]{\xeCJK_family_if_exist:n} % \begin{macrocode} -\prg_new_protected_conditional:Npnn \xeCJK_family_if_exist:x #1 { T , F , TF } +\prg_new_protected_conditional:Npnn \xeCJK_family_if_exist:n #1 { T , F , TF } { - \cs_if_exist:cTF { \@@_family_nfss_csname:n {#1} } - { \use_i:nn } - { \cs_if_exist_use:cTF { \@@_family_csname:n {#1} } } - { \prg_return_true: } { \prg_return_false: } + \prop_get:NnNTF \g_@@_family_name_prop {#1} \l_@@_fontspec_family_tl + { \prg_return_true: } + { + \exp_args:Nc \cs_if_exist_use:NTF { \@@_family_csname:n {#1} } + { \prg_return_true: } { \prg_return_false: } + } } +\cs_generate_variant:Nn \xeCJK_family_if_exist:nT { x } +\cs_generate_variant:Nn \xeCJK_family_if_exist:nF { x } +\cs_generate_variant:Nn \xeCJK_family_if_exist:nTF { x } % \end{macrocode} % \end{macro} % @@ -5575,7 +5571,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ \xeCJK_family_if_exist:xTF {#3} { \tl_set:Nx \l_xeCJK_family_tl {#3} - \tl_set_eq:NN \xeCJK@family \l_xeCJK_family_tl + \tl_set_eq:NN \CJK@family \l_@@_fontspec_family_tl \IfBooleanT {#1} { \@@_family_use:x {#3} } } { \@@_family_unknown_warning:x {#3} } @@ -5588,14 +5584,14 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ \xeCJK_family_if_exist:xTF {#1} { \tl_set:Nx \l_xeCJK_family_tl {#1} - \tl_set_eq:NN \xeCJK@family \l_xeCJK_family_tl + \tl_set_eq:NN \CJK@family \l_@@_fontspec_family_tl } { \@@_family_unknown_warning:x {#1} } } % \end{macrocode} % \end{macro} % -% \begin{macro}[var,internal]{\l_xeCJK_family_tl} +% \begin{macro}[var,internal]{\l_xeCJK_family_tl,\CJK@family} % 用于保存文档当前正在使用的 CJK 字体族。 % \changes{v3.2.0}{2013/04/14}{不将其初始化为 \cs{CJKfamilydefault}。} % \begin{macrocode} @@ -5603,6 +5599,14 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % \end{macrocode} % \end{macro} % +% \begin{macro}[var,internal]{\CJK@family} +% 用于保存实际的字体族名称。 +% \changes{v3.2.11}{2014/03/29}{引入 \cs{CJK@family} 保存实际的字体族名。} +% \begin{macrocode} +\tl_new:N \CJK@family +% \end{macrocode} +% \end{macro} +% % \begin{macro}[internal]{\@@_gobble_CJKfamily:} % \begin{macrocode} \cs_new_protected_nopar:Npn \@@_gobble_CJKfamily: @@ -5724,7 +5728,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ { \prop_get:NnNTF \g_@@_fontspec_prop { CJKfontspec/#1/#2/id } \l_xeCJK_family_tl - { \tl_set_eq:NN \xeCJK@family \l_xeCJK_family_tl } + { \xeCJK_switch_family:n { \l_xeCJK_family_tl } } { \@@_fontspec:xnn { CJKfontspec ( \int_eval:n { \g_@@_family_int + \c_one } ) } @@ -5975,16 +5979,14 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % \begin{macrocode} \cs_new_protected_nopar:Npn \xeCJK_set_mathfont: { - \xeCJK_family_if_exist:xTF { \c_@@_math_tl } - { \tl_set:Nx \l_@@_tmp_tl { \c_@@_math_tl } } + \xeCJK_family_if_exist:xF { \c_@@_math_tl } + { \use:n } { - \xeCJK_family_if_exist:xTF { \CJKfamilydefault } - { \tl_set:Nx \l_@@_tmp_tl { \CJKfamilydefault } } - { \use_none:nnnnn } + \xeCJK_family_if_exist:xF { \CJKfamilydefault } + { \use:n } { \use_none:n } } - \prop_get:NVNT \g_@@_family_name_prop \l_@@_tmp_tl \l_@@_tmp_tl { - \tl_const:Nx \c_@@_math_family_tl { \l_@@_tmp_tl } + \tl_const:Nx \c_@@_math_family_tl { \l_@@_fontspec_family_tl } \DeclareSymbolFont { \c_@@_math_tl } { \c_@@_encoding_tl } { \c_@@_math_family_tl } { \mddefault } { \shapedefault } \cs_if_free:cF @@ -6136,7 +6138,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ \l_@@_reset_shipout_skip_hook_tl } } - \@@_add_to_shipout:n { \l_@@_off_verb_addon_tl } + \xeCJK_add_to_shipout:n { \l_@@_off_verb_addon_tl } \xeCJKsetup { xCJKecglue = false } } \tl_new:N \l_@@_reset_shipout_skip_hook_tl @@ -6213,7 +6215,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ \cs_set_eq:NN \xeCJK_CJK_and_Boundary:w \@@_shipout_boundary:w } } - \@@_add_to_shipout:n { \xeCJKOffVerbAddon } + \xeCJK_add_to_shipout:n { \xeCJKOffVerbAddon } \xeCJKsetup { xCJKecglue = false } } \skip_if_eq:nnTF { \l_@@_verb_exspace_skip } { \c_zero_skip } @@ -6251,17 +6253,17 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % \begin{macrocode} \cs_new_protected_nopar:Npn \@@_set_verb_exspace: { - \tl_if_exist:cTF { xeCJK/verb/\l_xeCJK_family_tl/\curr@fontshape/\f@size } + \tl_if_exist:cTF { xeCJK/verb/\CJK@family/\curr@fontshape/\f@size } { \skip_set:Nn \l_@@_verb_exspace_skip - { \use:c { xeCJK/verb/\l_xeCJK_family_tl/\curr@fontshape/\f@size } } + { \use:c { xeCJK/verb/\CJK@family/\curr@fontshape/\f@size } } } { - \tl_set:Nx \l_@@_current_coor_tl { \l_xeCJK_family_tl/\curr@fontshape } + \tl_set:Nx \l_@@_current_coor_tl { \CJK@family/\curr@fontshape } \prop_get:NVNTF \g_@@_scale_family_prop \l_@@_current_coor_tl \l_xeCJK_family_tl { - \tl_set_eq:NN \xeCJK@family \l_xeCJK_family_tl + \xeCJK_switch_family:n { \l_xeCJK_family_tl } \skip_zero:N \l_@@_verb_exspace_skip } { @@ -6293,7 +6295,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ } } { - \tl_const:cx { xeCJK/verb/\l_xeCJK_family_tl/\curr@fontshape/\f@size } + \tl_const:cx { xeCJK/verb/\CJK@family/\curr@fontshape/\f@size } { \skip_use:N \l_@@_verb_exspace_skip } } } @@ -6307,8 +6309,8 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ { \fp_set:Nn \l_@@_scale_factor_fp { #1 / #2 } \@@_warning:nxx { scale-factor } - { \fp_eval:n { round - ( \l_@@_scale_factor_fp , 4 ) } } - { \fp_eval:n { round + ( #2 / #1 , 4 ) } } + { \fp_eval:n { trunc ( \l_@@_scale_factor_fp , 4 ) } } + { \fp_eval:n { ceil ( #2 / #1 , 4 ) } } \xeCJK_add_font_features:Nnx \c_true_bool { } { Scale = { \fp_use:N \l_@@_scale_factor_fp } } \prop_gput:NVV \g_@@_scale_family_prop @@ -6432,14 +6434,24 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % \end{macrocode} % \end{macro} % -% \begin{macro}{indentfirst} -% 首行是否缩进。 +% \begin{macro}{CJKnumber,indentfirst} +% \changes{v3.2.11}{2014/03/14}{放弃 \texttt{indentfirst} 和 \texttt{CJKnumber} 选项。} +% \texttt{CJKnumber} 和 \texttt{indentfirst} 是过时选项。 % \begin{macrocode} \keys_define:nn { xeCJK / options } { - CJKnumber .bool_gset:N = \g_@@_number_bool , - indentfirst .bool_gset:N = \g_@@_indent_bool , - normalindentfirst .meta:n = { indentfirst = false } + CJKnumber .code:n = + { \@@_warning:nxx { option-deprecated } { \l_keys_key_tl } { CJKnumb } } , + indentfirst .code:n = + { \@@_warning:nxx { option-deprecated } { \l_keys_key_tl } { indentfirst } } , + normalindentfirst .code:n = + { \@@_warning:nxx { option-deprecated } { \l_keys_key_tl } { } } + } +\@@_msg_new:nn { option-deprecated } + { + The~`#1'~option~is~deprecated.\\ + \tl_if_empty:nF {#2} + { You~may~load~the~package~`#2'~after~xeCJK~to~use~its~function.\\ } } % \end{macrocode} % \end{macro} @@ -6501,10 +6513,8 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ CheckFullRight = false , CJKspace = false , CJKmath = false , - CJKnumber = false , xeCJKactive = true , LocalConfig = true , - indentfirst = true , LoadFandol = true , Verb = env , EmboldenFactor = 4 , @@ -6535,19 +6545,14 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % \end{macrocode} % \end{macro} % -% 章节标题后面的首个段落的首行是否缩进。 % \changes{v3.1.0}{2012/11/21}{改用 \pkg{indentfirst} 宏包处理缩进的问题。} -% \begin{macrocode} -\bool_if:NT \g_@@_indent_bool { \RequirePackage { indentfirst } } -% \end{macrocode} % % 对不能通过 \cs{xeCJKsetup} 设置的选项给出警告。 % \begin{macrocode} \keys_define:nn { xeCJK / options } { - LocalConfig .code:n = { \@@_warning:nx { option-invalid } { \l_keys_key_tl } } , - CJKnumber .code:n = { \@@_warning:nx { option-invalid } { \l_keys_key_tl } } , - indentfirst .code:n = { \@@_warning:nx { option-invalid } { \l_keys_key_tl } } + LocalConfig .code:n = + { \@@_warning:nx { option-invalid } { \l_keys_key_tl } } } \@@_msg_new:nn { option-invalid } { @@ -7137,24 +7142,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ } % \end{macrocode} % -% \begin{macro}[internal]{\xeCJKcaption} -% 可以使用 \pkg{CJK} 宏包中的 |.cpx| 文件。 -% \begin{macrocode} -\cs_if_exist:NF \CJK@ifundefined - { \cs_set_eq:NN \CJK@ifundefined \cs_if_free:NTF } -\NewDocumentCommand \xeCJKcaption { o m } - { - \IfNoValueF {#1} { \XeTeXdefaultencoding "#1" } - \use:x - { - \char_set_catcode_letter:n { 64 } - \file_input:n { #2.cpx } - \char_set_catcode:nn { 64 } { \char_value_catcode:n { 64 } } - } - \XeTeXdefaultencoding "UTF-8" - } -% \end{macrocode} -% \end{macro} +% \changes{v3.2.11}{2014/03/14}{删除 \cs{xeCJKcaption}。} % % 由于 \pkg{xeCJK} 禁止 \pkg{CJKulem} 的载入,因此当使用 \pkg{ctex} 宏包的 |fntef| % 选项时,就会出现 \cs{normalem} 没有定义的问题。此时改用 \pkg{xeCJKfntef} 以便 @@ -7190,6 +7178,17 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ } % \end{macrocode} % +% 由于 \pkg{xeCJK} 假装 \pkg{CJK} 已经被引入了,导致 \pkg{everysel} 判断错误, +% 从而给出 \cs{selectfont} 已经被修改的警告,并加入不必要的内容。需要在它判断 +% 之前取消定义。 +% \begin{macrocode} +\@@_at_end_preamble:n + { + \xeCJK_if_package_loaded:nT { everysel } + { \cs_undefine:c { ver@CJK . \c_@@_package_ext_tl } } + } +% \end{macrocode} +% % \changes{v3.2.4}{2013/06/25}{不再使用 \texttt{CJKnumber} 选项,可以在 % \pkg{xeCJK} 之后直接使用 \pkg{CJKnumb} 宏包得到中文数字。} % @@ -7229,17 +7228,17 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ { (#1) * \c_two_hundred_fifty_six + (#2) } \cs_new_protected_nopar:Npn \xeCJK_unicode_char:nn #1#2 { \tex_char:D \etex_numexpr:D \@@_calc_unicode:nn {#1} {#2} \scan_stop: } -\bool_if:NT \g_@@_number_bool { \RequirePackage { CJKnumb } } % \end{macrocode} % \end{macro} % -% 最后引入本地配置文件。 +% 最后引入本地配置文件。使用 \cs{@pushfilename} 和 \cs{@pushfilename} 是为了使 +% 配置文件可以不受 \hologo{LaTeX3} 语法环境的影响。 % \begin{macrocode} \bool_if:NT \g_@@_config_bool { - \tl_const:Nn \c_@@_config_ext_tl { cfg } - \@onefilewithoptions - { \g_@@_config_name_tl } [ ] [ ] { \c_@@_config_ext_tl } + \@pushfilename + \file_input:n { \g_@@_config_name_tl .cfg } + \@popfilename } % \end{macrocode} % @@ -7826,7 +7825,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ \cs_set_eq:NN \CJKf@global \scan_stop: \int_zero:N \CJK@nest \CJK@postUnderdot } -\@@_add_to_shipout:n { \l_@@_fntef_shipout_tl } +\xeCJK_add_to_shipout:n { \l_@@_fntef_shipout_tl } % \end{macrocode} % \end{macro} % @@ -7958,7 +7957,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ \tex_noindent:D \bool_gset_false:N \g_@@_listings_IVS_bool \tl_put_left:Nn \lst@numberstyle { \l_@@_restore_listings_toks_tl } - \@@_add_to_shipout:n { \l_@@_restore_listings_toks_tl } + \xeCJK_add_to_shipout:n { \l_@@_restore_listings_toks_tl } \lst@ifbreaklines \cs_set_eq:NN \@@_listings_CJK_toks: \@@_listings_breaklines_toks: \fi: diff --git a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins index b8ab2e55ecc..e33c7b7ec8f 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: `install') %% -%% $Id: xeCJK.dtx 549 2014-03-01 09:06:08Z sobenlee $ +%% $Id: xeCJK.dtx 644 2014-04-29 09:45:49Z sobenlee $ %% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ %% ----------------------------------------------------------------- %% Author: @@ -37,7 +37,7 @@ \askforoverwritefalse \preamble -$Id: xeCJK.dtx 549 2014-03-01 09:06:08Z sobenlee $ +$Id: xeCJK.dtx 644 2014-04-29 09:45:49Z sobenlee $ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ ----------------------------------------------------------------- Author: diff --git a/Master/texmf-dist/tex/xelatex/xecjk/config/xeCJK.cfg b/Master/texmf-dist/tex/xelatex/xecjk/config/xeCJK.cfg index 0fff3a187b1..fa687609118 100644 --- a/Master/texmf-dist/tex/xelatex/xecjk/config/xeCJK.cfg +++ b/Master/texmf-dist/tex/xelatex/xecjk/config/xeCJK.cfg @@ -6,11 +6,11 @@ %% %% xeCJK.dtx (with options: `config') %% -\GetIdInfo$Id: xeCJK.dtx 549 2014-03-01 09:06:08Z sobenlee $ +\GetIdInfo$Id: xeCJK.dtx 644 2014-04-29 09:45:49Z sobenlee $ {Configuration file for xeCJK package} \ProvidesExplFile {\ExplFileName.cfg} - {\ExplFileDate}{3.2.10}{\ExplFileDescription} + {\ExplFileDate}{3.2.11}{\ExplFileDescription} %% %% diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty index e9624519555..b8b0f238be6 100644 --- a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty +++ b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty @@ -6,7 +6,7 @@ %% %% xeCJK.dtx (with options: `listings') %% -%% $Id: xeCJK.dtx 549 2014-03-01 09:06:08Z sobenlee $ +%% $Id: xeCJK.dtx 644 2014-04-29 09:45:49Z sobenlee $ %% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ %% ----------------------------------------------------------------- %% Author: @@ -33,11 +33,11 @@ %% \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} -\GetIdInfo$Id: xeCJK.dtx 549 2014-03-01 09:06:08Z sobenlee $ +\GetIdInfo$Id: xeCJK.dtx 644 2014-04-29 09:45:49Z sobenlee $ {xeCJK patch file for listings} \ProvidesExplPackage {xeCJK-listings} - {\ExplFileDate}{3.2.10}{\ExplFileDescription} + {\ExplFileDate}{3.2.11}{\ExplFileDescription} \DeclareOption* { \PassOptionsToPackage { \CurrentOption } { xeCJK } } \ProcessOptions \scan_stop: \RequirePackage { xeCJK } @@ -56,7 +56,7 @@ \tex_noindent:D \bool_gset_false:N \g__xeCJK_listings_IVS_bool \tl_put_left:Nn \lst@numberstyle { \l__xeCJK_restore_listings_toks_tl } - \__xeCJK_add_to_shipout:n { \l__xeCJK_restore_listings_toks_tl } + \xeCJK_add_to_shipout:n { \l__xeCJK_restore_listings_toks_tl } \lst@ifbreaklines \cs_set_eq:NN \__xeCJK_listings_CJK_toks: \__xeCJK_listings_breaklines_toks: \fi: diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty index 5f586a2ffcb..da0bef436b0 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 549 2014-03-01 09:06:08Z sobenlee $ +%% $Id: xeCJK.dtx 644 2014-04-29 09:45:49Z sobenlee $ %% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ %% ----------------------------------------------------------------- %% Author: @@ -33,11 +33,11 @@ %% \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} -\GetIdInfo$Id: xeCJK.dtx 549 2014-03-01 09:06:08Z sobenlee $ +\GetIdInfo$Id: xeCJK.dtx 644 2014-04-29 09:45:49Z sobenlee $ {Typesetting CJK scripts with XeLaTeX} \ProvidesExplPackage {\ExplFileName} - {\ExplFileDate}{3.2.10}{\ExplFileDescription} + {\ExplFileDate}{3.2.11}{\ExplFileDescription} \msg_new:nnn { xeCJK } { Require-XeTeX } { The~xeCJK~package~requires~XeTeX~to~function.\\\\ @@ -81,7 +81,7 @@ using~your~TeX~package~manager~or~from~CTAN.\\ \str_if_eq:nnT {#1} { expl3 } { Loading~xeCJK~will~abort! } } -\@ifpackagelater { expl3 } { 2013/07/20 } { } +\@ifpackagelater { expl3 } { 2014/01/01 } { } { \msg_critical:nnn { xeCJK } { l3-too-old } { expl3 } } \RequirePackage { xtemplate } \@ifpackagelater { xtemplate } { 2012/11/10 } { } @@ -143,7 +143,7 @@ \tl_use:N \l__xeCJK_shipout_hook_tl } } -\cs_new_protected:Npn \__xeCJK_add_to_shipout:n #1 +\cs_new_protected:Npn \xeCJK_add_to_shipout:n #1 { \tl_put_right:Nn \l__xeCJK_shipout_hook_tl {#1} } \tl_new:N \l__xeCJK_shipout_hook_tl \bool_new:N \l__xeCJK_shipout_hook_bool @@ -403,16 +403,16 @@ \xeCJK_new_class:n { NormalSpace } \xeCJK_new_class:n { IVS } \clist_const:Nn \c__xeCJK_HalfLeft_chars_clist - { "28 , "2D , "5B , "60 , "7B } + { "28 , "2D , "5B , "60 , "7B , "2329 } \clist_const:Nn \c__xeCJK_HalfRight_chars_clist - { "21 , "22 , "25 , "27 , "29 , "2C , "2E , "3A , "3B , "3F , "5D , "7D } + { "21 , "22 , "25 , "27 , "29 , "2C , "2E , "3A , "3B , "3F , "5D , "7D , "232A } \clist_const:Nn \c__xeCJK_NormalSpace_chars_clist { "2F } \clist_const:Nn \c__xeCJK_OP_chars_clist { "2018 , "201C , - "2329 , "3008 , "300A , "300C , "300E , "3010 , "3014 , "3016 , "3018 , "301A , - "301D , "FE17 , "FE35 , "FE37 , "FE39 , "FE3B , "FE3D , "FE3F , "FE41 , "FE43 , - "FE47 , "FE59 , "FE5B , "FE5D , "FF08 , "FF3B , "FF5B , "FF5F , "FF62 + "3008 , "300A , "300C , "300E , "3010 , "3014 , "3016 , "3018 , "301A , "301D , + "FE17 , "FE35 , "FE37 , "FE39 , "FE3B , "FE3D , "FE3F , "FE41 , "FE43 , "FE47 , + "FE59 , "FE5B , "FE5D , "FF08 , "FF3B , "FF5B , "FF5F , "FF62 } \clist_const:Nn \c__xeCJK_PR_chars_clist { "20A9 , "FE69 , "FF04 , "FFE1 , "FFE5 , "FFE6 } @@ -424,10 +424,10 @@ \clist_const:Nn \c__xeCJK_CL_chars_clist { "00B7 , "2019 , "201D , "2014 , "2015 , "2025 , "2026 , "2027 , "2500 , - "232A , "3001 , "3002 , "3009 , "300B , "300D , "300F , "3011 , "3015 , "3017 , - "3019 , "301B , "301E , "301F , "FE11 , "FE12 , "FE18 , "FE36 , "FE38 , "FE3A , - "FE3C , "FE3E , "FE40 , "FE42 , "FE44 , "FE48 , "FE50 , "FE52 , "FE5A , "FE5C , - "FE5E , "FF09 , "FF0C , "FF0E , "FF3D , "FF5D , "FF60 , "FF61 , "FF63 , "FF64 + "3001 , "3002 , "3009 , "300B , "300D , "300F , "3011 , "3015 , "3017 , "3019 , + "301B , "301E , "301F , "FE11 , "FE12 , "FE18 , "FE36 , "FE38 , "FE3A , "FE3C , + "FE3E , "FE40 , "FE42 , "FE44 , "FE48 , "FE50 , "FE52 , "FE5A , "FE5C , "FE5E , + "FF09 , "FF0C , "FF0E , "FF3D , "FF5D , "FF60 , "FF61 , "FF63 , "FF64 } \clist_const:Nn \c__xeCJK_NS_chars_clist { @@ -2259,7 +2259,7 @@ { \xeCJK_class_group_begin: \tl_set_eq:NN \l__xeCJK_fallback_family_tl \l_xeCJK_family_tl - \xeCJK_fallback_loop:Nn {#1} { \l__xeCJK_fallback_family_tl/FallBack } + \xeCJK_fallback_loop:Nn {#1} { \l_xeCJK_family_tl/FallBack } \xeCJK_class_group_end: } } @@ -2267,23 +2267,24 @@ { \xeCJK_family_if_exist:xTF {#2} { - \xeCJK_select_font:x {#2} - \tl_set:Nx \l__xeCJK_fallback_family_tl {#2} + \tl_set:Nx \l_xeCJK_family_tl {#2} + \tl_set_eq:NN \CJK@family \l__xeCJK_fontspec_family_tl + \xeCJK_select_font: \xeCJK_glyph_if_exist:NTF {#1} { \__xeCJK_fallback_save_CJKsymbol:N {#1} } - { \xeCJK_fallback_loop:Nn {#1} { \l__xeCJK_fallback_family_tl/FallBack } } + { \xeCJK_fallback_loop:Nn {#1} { \l_xeCJK_family_tl/FallBack } } } { - \str_if_eq_x:nnTF { \CJKfamilydefault } { \l_xeCJK_family_tl } + \str_if_eq_x:nnTF { \CJKfamilydefault } { \l__xeCJK_fallback_family_tl } { \__xeCJK_warning:nxxx { missing-glyph } - { \l__xeCJK_fallback_family_tl } {#1} + { \l_xeCJK_family_tl } {#1} { \int_to_hexadecimal:n { `#1 } } \__xeCJK_fallback_save_CJKsymbol:N {#1} } { - \tl_set:Nx \l_xeCJK_family_tl { \CJKfamilydefault } - \xeCJK_fallback_loop:Nn {#1} { \l_xeCJK_family_tl } + \tl_set:Nx \l__xeCJK_fallback_family_tl { \CJKfamilydefault } + \xeCJK_fallback_loop:Nn {#1} { \l__xeCJK_fallback_family_tl } } } } @@ -2509,8 +2510,11 @@ \exp_not:n { \fontspec_set_family:Nnn \l__xeCJK_fontspec_family_tl } { \exp_not:V \l__xeCJK_fontspec_options_clist } { \exp_not:V \l__xeCJK_font_name_tl } - \__xeCJK_gset_family_nfss_cs:xx {#1} { \exp_not:N \l__xeCJK_fontspec_family_tl } - \group_end: + \__xeCJK_gset_family_nfss_cs:xx + {#1} { \exp_not:N \l__xeCJK_fontspec_family_tl } + \exp_not:N \exp_args:NNNo \group_end: + \tl_set:Nn \exp_not:N \l__xeCJK_fontspec_family_tl + { \exp_not:N \l__xeCJK_fontspec_family_tl } } } \tl_new:N \l__xeCJK_fontspec_family_tl @@ -2519,7 +2523,10 @@ \prop_gpop:NnNT \g__xeCJK_family_font_name_prop {#1} \l__xeCJK_tmp_tl { \prop_gpop:NnNT \g__xeCJK_family_name_prop {#1} \l__xeCJK_tmp_tl - { \cs_undefine:c { \__xeCJK_family_nfss_csname:n {#1} } } + { + \cs_undefine:c { \__xeCJK_family_csname:n {#1} } + \cs_undefine:c { \__xeCJK_family_nfss_csname:n {#1} } + } \__xeCJK_warning:nxx { CJKfamily-redef } {#1} { \l__xeCJK_tmp_tl } } } @@ -2597,23 +2604,20 @@ { \xeCJK_family_if_exist:xT { \l__xeCJK_family_name_tl } { - \prop_get:NnNT \exp_not:N \g__xeCJK_family_name_prop - { \l__xeCJK_family_name_tl } \exp_not:N \l__xeCJK_fontspec_family_tl - { - \__xeCJK_gset_family_nfss_cs:xx - { \l__xeCJK_sub_family_name_tl } - { \exp_not:N \l__xeCJK_fontspec_family_tl } - } + \__xeCJK_gset_family_nfss_cs:xx + { \l__xeCJK_sub_family_name_tl } + { \exp_not:N \l__xeCJK_fontspec_family_tl } } } } \cs_new_protected_nopar:Npn \__xeCJK_copy_family:nn #1#2 { - \xeCJK_family_if_exist:xT {#2} + \xeCJK_family_if_exist:nT {#2} { + \prop_gput:NnV \g__xeCJK_family_name_prop + {#1} \l__xeCJK_fontspec_family_tl \tl_map_inline:nn { - \g__xeCJK_family_name_prop \g__xeCJK_family_font_name_prop \g__xeCJK_family_font_options_prop } @@ -2628,24 +2632,14 @@ } \cs_generate_variant:Nn \__xeCJK_copy_family:nn { xx } \tl_new:N \l_xeCJK_current_font_tl -\tl_set:Nn \l_xeCJK_current_font_tl { \__xeCJK_font_csname:n { \l_xeCJK_family_tl } } +\tl_set:Nn \l_xeCJK_current_font_tl { \__xeCJK_font_csname:n { \CJK@family } } \cs_new_nopar:Npn \__xeCJK_font_csname:n #1 { xeCJK/#1/\f@series/\f@shape/\f@size } \cs_new_protected_nopar:Npn \xeCJK_select_font: { - \cs_if_exist_use:cF { \l_xeCJK_current_font_tl } + \exp_args:Nc \cs_if_exist_use:NF { \l_xeCJK_current_font_tl } { - \tl_set:Nx \l__xeCJK_current_coor_tl { \l_xeCJK_current_font_tl } \__xeCJK_family_use:x { \l_xeCJK_family_tl } - \xeCJK_font_gset_to_current:c { \l__xeCJK_current_coor_tl } - } - } -\cs_new_protected_nopar:Npn \xeCJK_select_font:x #1 - { - \cs_if_exist_use:cF { \__xeCJK_font_csname:n {#1} } - { - \tl_set:Nx \l__xeCJK_current_coor_tl { \__xeCJK_font_csname:n {#1} } - \__xeCJK_family_use:x {#1} - \xeCJK_font_gset_to_current:c { \l__xeCJK_current_coor_tl } + \xeCJK_font_gset_to_current:c { \l_xeCJK_current_font_tl } } } \tl_new:N \l__xeCJK_current_coor_tl @@ -2663,10 +2657,8 @@ \__xeCJK_msg_new:nn { CJK-block } { Switch~from~block~`#1'~to~`#2'. } \cs_new_protected_nopar:Npn \__xeCJK_block_select_font:n #1 { - \cs_if_exist_use:cF { \__xeCJK_font_csname:n { \l_xeCJK_family_tl/#1 } } + \exp_args:Nc \cs_if_exist_use:NF { \__xeCJK_font_csname:n { \CJK@family/#1 } } { - \tl_set:Nx \l__xeCJK_current_coor_tl - { \__xeCJK_font_csname:n { \l_xeCJK_family_tl/#1 } } \xeCJK_family_if_exist:xF { \l_xeCJK_family_tl/#1 } { \__xeCJK_copy_family:xx { \l_xeCJK_family_tl/#1 } @@ -2677,7 +2669,8 @@ } } \__xeCJK_family_use:x { \l_xeCJK_family_tl/#1 } - \xeCJK_font_gset_to_current:c { \l__xeCJK_current_coor_tl } + \xeCJK_font_gset_to_current:c + { \__xeCJK_font_csname:n { \CJK@family/#1 } } } } \cs_new_nopar:Npn \__xeCJK_family_csname:n #1 { xeCJK/family/#1 } @@ -2694,13 +2687,18 @@ } } \cs_generate_variant:Nn \prop_gput:Nnn { Nxx } -\prg_new_protected_conditional:Npnn \xeCJK_family_if_exist:x #1 { T , F , TF } +\prg_new_protected_conditional:Npnn \xeCJK_family_if_exist:n #1 { T , F , TF } { - \cs_if_exist:cTF { \__xeCJK_family_nfss_csname:n {#1} } - { \use_i:nn } - { \cs_if_exist_use:cTF { \__xeCJK_family_csname:n {#1} } } - { \prg_return_true: } { \prg_return_false: } + \prop_get:NnNTF \g__xeCJK_family_name_prop {#1} \l__xeCJK_fontspec_family_tl + { \prg_return_true: } + { + \exp_args:Nc \cs_if_exist_use:NTF { \__xeCJK_family_csname:n {#1} } + { \prg_return_true: } { \prg_return_false: } + } } +\cs_generate_variant:Nn \xeCJK_family_if_exist:nT { x } +\cs_generate_variant:Nn \xeCJK_family_if_exist:nF { x } +\cs_generate_variant:Nn \xeCJK_family_if_exist:nTF { x } \NewDocumentCommand \CJKfamily { t+ t- m } { \xeCJK_if_blank_x:nTF {#3} @@ -2714,7 +2712,7 @@ \xeCJK_family_if_exist:xTF {#3} { \tl_set:Nx \l_xeCJK_family_tl {#3} - \tl_set_eq:NN \xeCJK@family \l_xeCJK_family_tl + \tl_set_eq:NN \CJK@family \l__xeCJK_fontspec_family_tl \IfBooleanT {#1} { \__xeCJK_family_use:x {#3} } } { \__xeCJK_family_unknown_warning:x {#3} } @@ -2727,11 +2725,12 @@ \xeCJK_family_if_exist:xTF {#1} { \tl_set:Nx \l_xeCJK_family_tl {#1} - \tl_set_eq:NN \xeCJK@family \l_xeCJK_family_tl + \tl_set_eq:NN \CJK@family \l__xeCJK_fontspec_family_tl } { \__xeCJK_family_unknown_warning:x {#1} } } \tl_new:N \l_xeCJK_family_tl +\tl_new:N \CJK@family \cs_new_protected_nopar:Npn \__xeCJK_gobble_CJKfamily: { \cs_set_eq:NN \CJKfamily \__xeCJK_gobble_CJKfamily:wn } \DeclareExpandableDocumentCommand \__xeCJK_gobble_CJKfamily:wn { t+ t- m } { } @@ -2818,7 +2817,7 @@ { \prop_get:NnNTF \g__xeCJK_fontspec_prop { CJKfontspec/#1/#2/id } \l_xeCJK_family_tl - { \tl_set_eq:NN \xeCJK@family \l_xeCJK_family_tl } + { \xeCJK_switch_family:n { \l_xeCJK_family_tl } } { \__xeCJK_fontspec:xnn { CJKfontspec ( \int_eval:n { \g__xeCJK_family_int + \c_one } ) } @@ -3014,16 +3013,14 @@ \tl_const:Nn \c__xeCJK_math_tl { CJKmath } \cs_new_protected_nopar:Npn \xeCJK_set_mathfont: { - \xeCJK_family_if_exist:xTF { \c__xeCJK_math_tl } - { \tl_set:Nx \l__xeCJK_tmp_tl { \c__xeCJK_math_tl } } + \xeCJK_family_if_exist:xF { \c__xeCJK_math_tl } + { \use:n } { - \xeCJK_family_if_exist:xTF { \CJKfamilydefault } - { \tl_set:Nx \l__xeCJK_tmp_tl { \CJKfamilydefault } } - { \use_none:nnnnn } + \xeCJK_family_if_exist:xF { \CJKfamilydefault } + { \use:n } { \use_none:n } } - \prop_get:NVNT \g__xeCJK_family_name_prop \l__xeCJK_tmp_tl \l__xeCJK_tmp_tl { - \tl_const:Nx \c__xeCJK_math_family_tl { \l__xeCJK_tmp_tl } + \tl_const:Nx \c__xeCJK_math_family_tl { \l__xeCJK_fontspec_family_tl } \DeclareSymbolFont { \c__xeCJK_math_tl } { \c__xeCJK_encoding_tl } { \c__xeCJK_math_family_tl } { \mddefault } { \shapedefault } \cs_if_free:cF @@ -3141,7 +3138,7 @@ \l__xeCJK_reset_shipout_skip_hook_tl } } - \__xeCJK_add_to_shipout:n { \l__xeCJK_off_verb_addon_tl } + \xeCJK_add_to_shipout:n { \l__xeCJK_off_verb_addon_tl } \xeCJKsetup { xCJKecglue = false } } \tl_new:N \l__xeCJK_reset_shipout_skip_hook_tl @@ -3203,7 +3200,7 @@ \cs_set_eq:NN \xeCJK_CJK_and_Boundary:w \__xeCJK_shipout_boundary:w } } - \__xeCJK_add_to_shipout:n { \xeCJKOffVerbAddon } + \xeCJK_add_to_shipout:n { \xeCJKOffVerbAddon } \xeCJKsetup { xCJKecglue = false } } \skip_if_eq:nnTF { \l__xeCJK_verb_exspace_skip } { \c_zero_skip } @@ -3232,17 +3229,17 @@ \cs_new_eq:NN \CJKfixedspacing \xeCJKVerbAddon \cs_new_protected_nopar:Npn \__xeCJK_set_verb_exspace: { - \tl_if_exist:cTF { xeCJK/verb/\l_xeCJK_family_tl/\curr@fontshape/\f@size } + \tl_if_exist:cTF { xeCJK/verb/\CJK@family/\curr@fontshape/\f@size } { \skip_set:Nn \l__xeCJK_verb_exspace_skip - { \use:c { xeCJK/verb/\l_xeCJK_family_tl/\curr@fontshape/\f@size } } + { \use:c { xeCJK/verb/\CJK@family/\curr@fontshape/\f@size } } } { - \tl_set:Nx \l__xeCJK_current_coor_tl { \l_xeCJK_family_tl/\curr@fontshape } + \tl_set:Nx \l__xeCJK_current_coor_tl { \CJK@family/\curr@fontshape } \prop_get:NVNTF \g__xeCJK_scale_family_prop \l__xeCJK_current_coor_tl \l_xeCJK_family_tl { - \tl_set_eq:NN \xeCJK@family \l_xeCJK_family_tl + \xeCJK_switch_family:n { \l_xeCJK_family_tl } \skip_zero:N \l__xeCJK_verb_exspace_skip } { @@ -3268,7 +3265,7 @@ } } { - \tl_const:cx { xeCJK/verb/\l_xeCJK_family_tl/\curr@fontshape/\f@size } + \tl_const:cx { xeCJK/verb/\CJK@family/\curr@fontshape/\f@size } { \skip_use:N \l__xeCJK_verb_exspace_skip } } } @@ -3276,8 +3273,8 @@ { \fp_set:Nn \l__xeCJK_scale_factor_fp { #1 / #2 } \__xeCJK_warning:nxx { scale-factor } - { \fp_eval:n { round - ( \l__xeCJK_scale_factor_fp , 4 ) } } - { \fp_eval:n { round + ( #2 / #1 , 4 ) } } + { \fp_eval:n { trunc ( \l__xeCJK_scale_factor_fp , 4 ) } } + { \fp_eval:n { ceil ( #2 / #1 , 4 ) } } \xeCJK_add_font_features:Nnx \c_true_bool { } { Scale = { \fp_use:N \l__xeCJK_scale_factor_fp } } \prop_gput:NVV \g__xeCJK_scale_family_prop @@ -3364,9 +3361,18 @@ \bool_new:N \g__xeCJK_config_bool \keys_define:nn { xeCJK / options } { - CJKnumber .bool_gset:N = \g__xeCJK_number_bool , - indentfirst .bool_gset:N = \g__xeCJK_indent_bool , - normalindentfirst .meta:n = { indentfirst = false } + CJKnumber .code:n = + { \__xeCJK_warning:nxx { option-deprecated } { \l_keys_key_tl } { CJKnumb } } , + indentfirst .code:n = + { \__xeCJK_warning:nxx { option-deprecated } { \l_keys_key_tl } { indentfirst } } , + normalindentfirst .code:n = + { \__xeCJK_warning:nxx { option-deprecated } { \l_keys_key_tl } { } } + } +\__xeCJK_msg_new:nn { option-deprecated } + { + The~`#1'~option~is~deprecated.\\ + \tl_if_empty:nF {#2} + { You~may~load~the~package~`#2'~after~xeCJK~to~use~its~function.\\ } } \keys_define:nn { xeCJK / options } { @@ -3408,10 +3414,8 @@ CheckFullRight = false , CJKspace = false , CJKmath = false , - CJKnumber = false , xeCJKactive = true , LocalConfig = true , - indentfirst = true , LoadFandol = true , Verb = env , EmboldenFactor = 4 , @@ -3430,12 +3434,10 @@ \RequirePackage { fontspec } [ 2012/05/01 ] \RequirePackage { xunicode-addon } \tl_const:Nx \c__xeCJK_encoding_tl { \g_fontspec_encoding_tl } -\bool_if:NT \g__xeCJK_indent_bool { \RequirePackage { indentfirst } } \keys_define:nn { xeCJK / options } { - LocalConfig .code:n = { \__xeCJK_warning:nx { option-invalid } { \l_keys_key_tl } } , - CJKnumber .code:n = { \__xeCJK_warning:nx { option-invalid } { \l_keys_key_tl } } , - indentfirst .code:n = { \__xeCJK_warning:nx { option-invalid } { \l_keys_key_tl } } + LocalConfig .code:n = + { \__xeCJK_warning:nx { option-invalid } { \l_keys_key_tl } } } \__xeCJK_msg_new:nn { option-invalid } { @@ -3792,19 +3794,6 @@ { \xeCJK_if_package_loaded_p:n { cprotect } && \cs_if_exist_p:N \icprotect } { \exp_after:wN \tex_let:D \cs:w cprotect \cs_end: \icprotect } } -\cs_if_exist:NF \CJK@ifundefined - { \cs_set_eq:NN \CJK@ifundefined \cs_if_free:NTF } -\NewDocumentCommand \xeCJKcaption { o m } - { - \IfNoValueF {#1} { \XeTeXdefaultencoding "#1" } - \use:x - { - \char_set_catcode_letter:n { 64 } - \file_input:n { #2.cpx } - \char_set_catcode:nn { 64 } { \char_value_catcode:n { 64 } } - } - \XeTeXdefaultencoding "UTF-8" - } \cs_if_eq:NNTF \ifCTEX@fntef \tex_iftrue:D { \AtEndOfPackage { \RequirePackage { xeCJKfntef } } } { @@ -3826,6 +3815,11 @@ \xeCJK_if_package_loaded:nT { listings } { \RequirePackage { xeCJK-listings } } } +\__xeCJK_at_end_preamble:n + { + \xeCJK_if_package_loaded:nT { everysel } + { \cs_undefine:c { ver@CJK . \c__xeCJK_package_ext_tl } } + } \cs_new_protected:Npn \CJKaddEncHook #1#2 { \str_if_eq:nnT {#1} { \CJK@UnicodeEnc } @@ -3857,12 +3851,11 @@ { (#1) * \c_two_hundred_fifty_six + (#2) } \cs_new_protected_nopar:Npn \xeCJK_unicode_char:nn #1#2 { \tex_char:D \etex_numexpr:D \__xeCJK_calc_unicode:nn {#1} {#2} \scan_stop: } -\bool_if:NT \g__xeCJK_number_bool { \RequirePackage { CJKnumb } } \bool_if:NT \g__xeCJK_config_bool { - \tl_const:Nn \c__xeCJK_config_ext_tl { cfg } - \@onefilewithoptions - { \g__xeCJK_config_name_tl } [ ] [ ] { \c__xeCJK_config_ext_tl } + \@pushfilename + \file_input:n { \g__xeCJK_config_name_tl .cfg } + \@popfilename } %% %% This package consists of the file xeCJK.dtx, diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty index 98abe872794..3ff1e97b1ec 100644 --- a/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty +++ b/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty @@ -6,7 +6,7 @@ %% %% xeCJK.dtx (with options: `fntef') %% -%% $Id: xeCJK.dtx 549 2014-03-01 09:06:08Z sobenlee $ +%% $Id: xeCJK.dtx 644 2014-04-29 09:45:49Z sobenlee $ %% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ %% ----------------------------------------------------------------- %% Author: @@ -33,11 +33,11 @@ %% \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} -\GetIdInfo$Id: xeCJK.dtx 549 2014-03-01 09:06:08Z sobenlee $ +\GetIdInfo$Id: xeCJK.dtx 644 2014-04-29 09:45:49Z sobenlee $ {xeCJK patch file for ulem/CJKfntef} \ProvidesExplPackage {xeCJKfntef} - {\ExplFileDate}{3.2.10}{\ExplFileDescription} + {\ExplFileDate}{3.2.11}{\ExplFileDescription} \PassOptionsToPackage { normalem } { ulem } \DeclareOption* { \PassOptionsToPackage { \CurrentOption } { ulem } } \ProcessOptions \scan_stop: @@ -431,7 +431,7 @@ \cs_set_eq:NN \CJKf@global \scan_stop: \int_zero:N \CJK@nest \CJK@postUnderdot } -\__xeCJK_add_to_shipout:n { \l__xeCJK_fntef_shipout_tl } +\xeCJK_add_to_shipout:n { \l__xeCJK_fntef_shipout_tl } \cs_new_protected:Npn \__xeCJK_make_under_symbol:n #1 { \hbox_set:Nn \l__xeCJK_tmp_box { ^^^^4e00 } diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty b/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty index 83a3b0f01e3..d814ec5465b 100644 --- a/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty +++ b/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty @@ -6,7 +6,7 @@ %% %% xeCJK.dtx (with options: `xunicode') %% -%% $Id: xeCJK.dtx 549 2014-03-01 09:06:08Z sobenlee $ +%% $Id: xeCJK.dtx 644 2014-04-29 09:45:49Z sobenlee $ %% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ %% ----------------------------------------------------------------- %% Author: @@ -33,11 +33,11 @@ %% \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} -\GetIdInfo$Id: xeCJK.dtx 549 2014-03-01 09:06:08Z sobenlee $ +\GetIdInfo$Id: xeCJK.dtx 644 2014-04-29 09:45:49Z sobenlee $ {addon file for xunicode} \ProvidesExplPackage {xunicode-addon} - {\ExplFileDate}{3.2.10}{\ExplFileDescription} + {\ExplFileDate}{3.2.11}{\ExplFileDescription} \pdftex_if_engine:T { \msg_new:nnnn { xunicode-addon } { cannot-use-pdftex } diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def b/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def index 05390f50817..d683be3750f 100644 --- a/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def +++ b/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def @@ -6,7 +6,7 @@ %% %% xeCJK.dtx (with options: `xunextra') %% -%% $Id: xeCJK.dtx 549 2014-03-01 09:06:08Z sobenlee $ +%% $Id: xeCJK.dtx 644 2014-04-29 09:45:49Z sobenlee $ %% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ %% ----------------------------------------------------------------- %% Author: @@ -31,11 +31,11 @@ %% The Current Maintainer of this work are Leo Liu and Qing Lee. %% ----------------------------------------------------------------- %% -\GetIdInfo$Id: xeCJK.dtx 549 2014-03-01 09:06:08Z sobenlee $ +\GetIdInfo$Id: xeCJK.dtx 644 2014-04-29 09:45:49Z sobenlee $ {extra definition for xunicode} \ProvidesExplFile - {\ExplFileName.def} - {\ExplFileDate}{3.2.10}{\ExplFileDescription} + {xunicode-extra.def} + {\ExplFileDate}{3.2.11}{\ExplFileDescription} \ExplSyntaxOff \DeclareUTFComposite\textsuperscript \DeclareUTFComposite\textsubscript -- cgit v1.2.3