diff options
author | Karl Berry <karl@freefriends.org> | 2014-04-29 21:51:20 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-04-29 21:51:20 +0000 |
commit | a3f31ac7e2d7229a032c7609c1d97404f52b885a (patch) | |
tree | d3197e805f2eee93c37a3af9b985cb818a3330c6 /Master/texmf-dist/source/xelatex/xecjk | |
parent | 30e11d658c0df10f5739383e0e4e92e6e440c617 (diff) |
xecjk (29apr14)
git-svn-id: svn://tug.org/texlive/trunk@33753 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/xelatex/xecjk')
-rw-r--r-- | Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx | 279 | ||||
-rw-r--r-- | Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins | 4 |
2 files changed, 141 insertions, 142 deletions
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} %</!config&!xunextra> -\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} %</driver|package> @@ -217,13 +217,13 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ {\ExplFileName.\ExplFileExtension} %</driver> %<config> {\ExplFileName.cfg} -%<xunextra> {\ExplFileName.def} +%<xunextra> {xunicode-extra.def} %<package|fntef|listings|xunicode>\ProvidesExplPackage %<package> {\ExplFileName} %<fntef> {xeCJKfntef} %<listings> {xeCJK-listings} %<xunicode> {xunicode-addon} - {\ExplFileDate}{3.2.10}{\ExplFileDescription} + {\ExplFileDate}{3.2.11}{\ExplFileDescription} %<xunextra>\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: |