From 863ce92b4332ab5f92ba66276c388bbb99e59be5 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 3 Feb 2016 23:03:09 +0000 Subject: xecjk (2feb16) git-svn-id: svn://tug.org/texlive/trunk@39568 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf | Bin 1332344 -> 1334701 bytes .../doc/xelatex/xecjk/xunicode-symbols.pdf | Bin 348358 -> 289666 bytes .../doc/xelatex/xecjk/xunicode-symbols.tex | 1 - .../misc/xetex/fontmapping/xecjk/han-simp.map | 11 +- .../misc/xetex/fontmapping/xecjk/han-simp.tec | Bin 35008 -> 35057 bytes .../misc/xetex/fontmapping/xecjk/han-trad.map | 10 +- .../misc/xetex/fontmapping/xecjk/han-trad.tec | Bin 34434 -> 34498 bytes Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx | 253 +++++++++++++-------- Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins | 12 +- .../tex/xelatex/xecjk/xeCJK-listings.sty | 10 +- Master/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg | 4 +- Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty | 124 +++++----- Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty | 11 +- .../tex/xelatex/xecjk/xunicode-addon.sty | 76 ++++--- .../tex/xelatex/xecjk/xunicode-extra.def | 10 +- 15 files changed, 304 insertions(+), 218 deletions(-) diff --git a/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf b/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf index 402979e9811..e9195d2b53d 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 2620c9fd7f2..3ae85e497a2 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/doc/xelatex/xecjk/xunicode-symbols.tex b/Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.tex index afc5f10b1a9..800185cd9e3 100644 --- a/Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.tex +++ b/Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.tex @@ -10,7 +10,6 @@ \usepackage[margin=2cm]{geometry} \usepackage{fontspec} \usepackage{xunicode-addon} -\usepackage{l3str} \usepackage{longtable,tabu,booktabs} \usepackage{zref-base} diff --git a/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-simp.map b/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-simp.map index 18d75642e5e..844b51d3f8c 100644 --- a/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-simp.map +++ b/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-simp.map @@ -1,9 +1,9 @@ ; TECkit mapping for conversion of traditional Chinese characters to simplified Chinese characters -; Source file name: Unihan_Variants.txt +; from the Unicode Unihan database: ; ; Unihan_Variants.txt -; Date: 2014-05-09 18:17:02 GMT [JHJ] -; Unicode version: 7.0.0 +; Date: 2015-04-30 18:38:20 GMT [JHJ] +; Unicode version: 8.0.0 ; LHSName "traditional" @@ -64,6 +64,7 @@ U+477C <> U+478D U+4788 <> U+27E51 U+48A8 <> U+28479 U+4947 <> U+4982 +U+4951 <> U+9FCF U+4969 <> U+28C56 U+4971 <> U+497E U+4998 <> U+28E04 @@ -227,6 +228,7 @@ U+53C3 <> U+53C2 U+53C4 <> U+53C1 U+53E2 <> U+4E1B U+53F0 <> U+53F0 +U+540C <> U+540C U+540E <> U+540E U+5412 <> U+54A4 U+5433 <> U+5434 @@ -2210,6 +2212,7 @@ U+93B0 <> U+9552 U+93B2 <> U+954B U+93B3 <> U+954D U+93B5 <> U+9553 +U+93B6 <> U+9FD4 U+93B7 <> U+28C3E U+93BF <> U+954E U+93C3 <> U+955E @@ -2901,6 +2904,8 @@ U+9F9C <> U+9F9F U+9FAD <> U+29A0E U+9FAF <> U+28C46 U+9FC1 <> U+4724 +U+9FD0 <> U+4CA4 +U+9FD2 <> U+9FD3 U+20325 <> U+201BF U+203E2 <> U+20257 U+20786 <> U+206C6 diff --git a/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-simp.tec b/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-simp.tec index 0533c759144..39193c2a5cb 100644 Binary files a/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-simp.tec and b/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-simp.tec differ diff --git a/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-trad.map b/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-trad.map index 0c9ada6b895..cd4b0cd46a4 100644 --- a/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-trad.map +++ b/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-trad.map @@ -2,8 +2,8 @@ ; from the Unicode Unihan database: ; ; Unihan_Variants.txt -; Date: 2014-05-09 18:17:02 GMT [JHJ] -; Unicode version: 7.0.0 +; Date: 2015-04-30 18:38:20 GMT [JHJ] +; Unicode version: 8.0.0 ; LHSName "simplified" @@ -124,6 +124,7 @@ U+4CA0 <> U+9C06 U+4CA1 <> U+9C0C U+4CA2 <> U+9C27 U+4CA3 <> U+4C77 +U+4CA4 <> U+9FD0 U+4D13 <> U+9CFE U+4D14 <> U+9D41 U+4D15 <> U+9D37 @@ -336,7 +337,7 @@ U+53F6 <> U+8449 U+53F7 <> U+865F U+53F9 <> U+5606 U+53FD <> U+5630 -U+540C <> U+8855 +U+540C <> U+540C U+540E <> U+540E U+5411 <> U+66CF U+5413 <> U+5687 @@ -2684,6 +2685,9 @@ U+9F99 <> U+9F8D U+9F9A <> U+9F94 U+9F9B <> U+9F95 U+9F9F <> U+9F9C +U+9FCF <> U+4951 +U+9FD3 <> U+9FD2 +U+9FD4 <> U+93B6 U+201B2 <> U+5123 U+201BF <> U+20325 U+20242 <> U+3493 diff --git a/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-trad.tec b/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-trad.tec index d4dcaea918e..2145970b1f3 100644 Binary files a/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-trad.tec and b/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-trad.tec differ diff --git a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx index 4d90a151a17..605160b3509 100644 --- a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx +++ b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx @@ -143,9 +143,9 @@ CJK scripts fonts (TrueType or OpenType). Leo Liu Qing Lee - Copyright (C) 2007--2015 Wenchang Sun - (C) 2009--2015 Leo Liu - (C) 2012--2015 Qing Lee + Copyright (C) 2007--2010 Wenchang Sun + (C) 2009--2016 Leo Liu + (C) 2012--2016 Qing Lee This file may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 @@ -268,7 +268,7 @@ CJK scripts fonts (TrueType or OpenType). % {xeCJKfntef} % {xeCJK-listings} % {xunicode-addon} - {\ExplFileDate}{3.3.2}{\ExplFileDescription} + {\ExplFileDate}{3.3.3}{\ExplFileDescription} %\ExplSyntaxOff %<*driver> \let\xeCJKrevnum\ExplFileVersion @@ -320,12 +320,17 @@ CJK scripts fonts (TrueType or OpenType). \def\ctexkit{\href{https://github.com/CTeX-org/ctex-kit/}{\texttt{ctex-kit}}} \def\ctexkitrev#1{% \href{https://github.com/CTeX-org/ctex-kit/commit/#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}}} \makeatletter \ExplSyntaxOn +\DeclareDocumentCommand \package { o m } + { + \exp_args:Nx \href + { + http \token_to_str:N : //www.ctan.org/pkg/ + \IfNoValueTF {#1} { \str_fold_case:n {#2} } {#1} + } + { \pkg {#2} } + } \NewDocumentCommand \PrintPunctList { O{7} m m } { \par @@ -446,8 +451,9 @@ CJK scripts fonts (TrueType or OpenType). % \changes{v3.2.4}{2013/07/02}{遵循 \hologo{LaTeX3} 变量需要预先声明的原则。} % \changes{v3.2.6}{2013/07/29}{\texttt{case} 类函数的用法与 \hologo{LaTeX3} 同步。} % \changes{v3.3.2}{2015/05/15}{随 Unicode 7.0.0 更新简繁汉字映射。} +% \changes{v3.3.3}{2015/09/25}{更新 \hologo{LaTeX3} 代码。} % -% \CheckSum{9799} +% \CheckSum{9814} % \GetFileInfo{\jobname.dtx} % % \title{\bfseries\pkg{xeCJK} 宏包} @@ -604,7 +610,7 @@ CJK scripts fonts (TrueType or OpenType). % CJKecglue = \Arg{glue} % \end{syntax} % 设置 CJK 文字与西文、CJK 文字与行内数学公式之间的间距,默认值是一个空格。使用这个 -% 选项设置的 |glue| 最好也要用一定的弹性。请注意,这里设置的 |glue| 只影响 +% 选项设置的 \meta{glue} 最好也要用一定的弹性。请注意,这里设置的 \meta{glue} 只影响 % \pkg{xeCJK} 根据需要自动添加的空白,源文件中直接输入的 CJK 文字与西文之间的空格不 % 受影响(直接输出)。有时候 \pkg{xeCJK} 可能不能正确地调整间距,需要手动加空格。 % \end{function} @@ -734,7 +740,7 @@ CJK scripts fonts (TrueType or OpenType). % % \begin{function}[EXP]{LongPunct,LongPunct+,LongPunct-} % \begin{syntax} -% LongPunct = \Arg{( — ― ─ ‥ … )} +% LongPunct = \Arg{( — ‥ … )} % \end{syntax} % 设置长标点,例如破折号“——”与省略号“……”,允许在长标点前后 % 断行,但是禁止在它们之间断行。 @@ -742,7 +748,7 @@ CJK scripts fonts (TrueType or OpenType). % % \begin{function}[EXP]{MiddlePunct,MiddlePunct+,MiddlePunct-} % \begin{syntax} -% MiddlePunct = \Arg{( — ― ─ · · ・ )} +% MiddlePunct = \Arg{( – — · · ・ )} % \end{syntax} % 设置居中显示的标点,例如间隔号“\textbf{·}”。对于在 CJK 文字之间的居中标点, % \pkg{xeCJK} 会根据不同的标点处理格式,调整居中标点与前后文字之间的空白,保证 @@ -1733,7 +1739,7 @@ CJK scripts fonts (TrueType or OpenType). instead~of~plain~"latex"~or~"pdflatex"~or~"lualatex".\\ Loading~xeCJK~will~abort! } -\xetex_if_engine:F { \msg_critical:nn { xeCJK } { Require-XeTeX } } +\sys_if_engine_xetex:F { \msg_critical:nn { xeCJK } { Require-XeTeX } } % \end{macrocode} % % 应该使用较新版本的 \pkg{expl3} 宏包。 @@ -1746,7 +1752,7 @@ CJK scripts fonts (TrueType or OpenType). using~your~TeX~package~manager~or~from~CTAN.\\ \str_if_eq:nnT {#1} { expl3 } { Loading~xeCJK~will~abort! } } -\@ifpackagelater { expl3 } { 2014/07/20 } { } +\@ifpackagelater { expl3 } { 2015/09/24 } { } { \msg_critical:nnn { xeCJK } { l3-too-old } { expl3 } } % \end{macrocode} % @@ -1856,15 +1862,15 @@ CJK scripts fonts (TrueType or OpenType). } { \AtBeginDocument { \g_@@_after_preamble_hook_tl } - \cs_new_protected_nopar:Npn \@@_document_left_hook: + \cs_new_protected_nopar:Npn \xeCJK@document@left@hook { \group_end: \g_@@_at_end_preamble_hook_tl \group_begin: } - \cs_new_protected_nopar:Npn \@@_document_right_hook: + \cs_new_protected_nopar:Npn \xeCJK@document@right@hook { \scan_stop: \g_@@_after_end_preamble_hook_tl \tex_ignorespaces:D } \cs_gset_nopar:Npx \document { - \@@_document_left_hook: + \xeCJK@document@left@hook \exp_not:o { \document } - \@@_document_right_hook: + \xeCJK@document@right@hook } } % \end{macrocode} @@ -2169,7 +2175,7 @@ CJK scripts fonts (TrueType or OpenType). % 的显性或隐性记号。 % \begin{macrocode} \cs_new_nopar:Npn \xeCJK_token_value_class:N #1 - { \XeTeXcharclass \xeCJK_token_value_charcode:N #1 } + { \xetex_charclass:D \xeCJK_token_value_charcode:N #1 } % \end{macrocode} % \end{macro} % @@ -2179,8 +2185,8 @@ CJK scripts fonts (TrueType or OpenType). % 当记号 |#1| 的 \texttt{charcode} 大于等于 \texttt{0x10000} 时,\XeTeX\ % \texttt{0.9999.0} 版以前的 \tn{meaning} 的返回结果比较特殊\footnote{参见 % \url{http://tug.org/pipermail/xetex/2013-January/023967.html} 和 -% \url{http://tex.stackexchange.com/a/64848}。},需要特别处理。同时使用较新版本中 -% 提供的原语设置 \texttt{mathcode}。\texttt{0.9999.0} 版以后的 \XeTeX 的 \tn{meaning} +% \url{http://tex.stackexchange.com/a/64848}。},需要特别处理。 +% \texttt{0.9999.0} 版以后的 \XeTeX 的 \tn{meaning} % 对于超出 BMP 的字符,会返回两个字符,分别对应于其 UTF-16 编码的首尾代理^^A % \footnote{参见 \url{http://tug.org/pipermail/xetex/2013-June/024543.html}。}。 % 这一 Bug 在 TeX Live 2015 的 \texttt{0.99992} 版中得到修复^^A @@ -2195,7 +2201,6 @@ CJK scripts fonts (TrueType or OpenType). { \cs_new_nopar:Npn \@@_get_charcode:w ##1 ~ ##2 ~ ##3 \q_stop { \int_eval:n { `##3 } } - \cs_new_eq:NN \xeCJK_xetex_mathcode:w \Umathcode } { \tl_if_empty:nTF {#5} @@ -2209,12 +2214,10 @@ CJK scripts fonts (TrueType or OpenType). { ( `##3 - "D800 ) * "400 + ( `##4 - "DC00 ) + "10000 } } } - \cs_new_eq:NN \xeCJK_xetex_mathcode:w \Umathcode } { \cs_new_nopar:Npn \@@_get_charcode:w ##1 ~ ##2 ~ ##3##4 \q_stop { \int_eval:n { \tl_if_empty:nTF { ##4 } { `##3 } { "20000 } } } - \cs_new_eq:NN \xeCJK_xetex_mathcode:w \XeTeXmathcode } } } @@ -2266,8 +2269,8 @@ CJK scripts fonts (TrueType or OpenType). % % \begin{macro}[internal]{\makexeCJKactive, \makexeCJKinactive} % \begin{macrocode} -\NewDocumentCommand \makexeCJKactive { } { \XeTeXinterchartokenstate = \c_one } -\NewDocumentCommand \makexeCJKinactive { } { \XeTeXinterchartokenstate = \c_zero } +\NewDocumentCommand \makexeCJKactive { } { \xetex_interchartokenstate:D = \c_one } +\NewDocumentCommand \makexeCJKinactive { } { \xetex_interchartokenstate:D = \c_zero } % \end{macrocode} % \end{macro} % @@ -2361,14 +2364,25 @@ CJK scripts fonts (TrueType or OpenType). % \end{tabular} % \end{center} % +% \changes{v3.3.3}{2016/01/20}{兼容 \LaTeXe{} 2016/02/01 的字符类设置。} % \begin{macro}[internal]{Default,CJK,FullLeft,FullRight,Boundary} -% 这五类是 \XeTeX\ 预定义的类别。 +% \LaTeXe{} 2016/02/01 不再预设置 CJK 字符类。 % \begin{macrocode} \xeCJK_save_class:nn { Default } { \c_zero } -\xeCJK_save_class:nn { CJK } { \c_one } -\xeCJK_save_class:nn { FullLeft } { \c_two } -\xeCJK_save_class:nn { FullRight } { \c_three } \xeCJK_save_class:nn { Boundary } { \c_two_hundred_fifty_five } +\int_compare:nNnTF { \xetex_charclass:D "4E00 } = \c_one + { + \xeCJK_save_class:nn { CJK } { \c_one } + \xeCJK_save_class:nn { FullLeft } { \c_two } + \xeCJK_save_class:nn { FullRight } { \c_three } + \int_const:Nn \c_@@_class_begin_int { \c_three } + } + { + \xeCJK_new_class:n { CJK } + \xeCJK_new_class:n { FullLeft } + \xeCJK_new_class:n { FullRight } + \int_const:Nn \c_@@_class_begin_int { \c_zero } + } % \end{macrocode} % \end{macro} % @@ -2399,7 +2413,7 @@ CJK scripts fonts (TrueType or OpenType). { "28 , "5B , "60 , "7B , "2329 } \clist_const:Nn \c_@@_HalfRight_chars_clist { "21 , "22 , "25 , "27 , "29 , "2C , "2E , "3A , "3B , "3F , "5D , "7D , "232A } -\clist_const:Nn \c_@@_NormalSpace_chars_clist { "2D , "2F , "5C , "2013 } +\clist_const:Nn \c_@@_NormalSpace_chars_clist { "2D , "2F , "5C } % \end{macrocode} % \end{macro} % @@ -2445,6 +2459,11 @@ CJK scripts fonts (TrueType or OpenType). % \end{macrocode} % \end{macro} % +% \changes{v3.3.3}{2015/12/12} +% {把 EN DASH(\texttt{U+2013})作为半字线连接号归入 \texttt{FullRight} 类。} +% \changes{v3.3.3}{2015/12/12} +% {不再把 \texttt{U+2015} 和 \texttt{U+2500} 归入 \texttt{FullRight} 类。} +% % \begin{macro}[var,internal]{\c_@@_CL_chars_clist} % Close Punctuation (CL) % \PrintPunctList{CL}{Close Punctuation} @@ -2452,7 +2471,7 @@ CJK scripts fonts (TrueType or OpenType). % \begin{macrocode} \clist_const:Nn \c_@@_CL_chars_clist { - "00B7 , "2019 , "201D , "2014 , "2015 , "2025 , "2026 , "2027 , "2500 , + "00B7 , "2019 , "201D , "2013 , "2014 , "2025 , "2026 , "2027 , "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 , @@ -2542,6 +2561,7 @@ CJK scripts fonts (TrueType or OpenType). % \end{macro} % % \begin{macro}[var,internal]{\c_@@_CJK_chars_clist} +% \changes{v3.3.3}{2015/06/25}{补充 Ext-E。} % CJK 字符类,包括文字和标点符号。 % \begin{macrocode} \clist_const:Nn \c_@@_CJK_chars_clist @@ -2664,6 +2684,10 @@ CJK scripts fonts (TrueType or OpenType). % \begin{macrocode} "2B740 -> "2B81F , % \end{macrocode} +% \item CJK Unified Ideographs Extension-E (中日韩统一表意文字扩展 E) +% \begin{macrocode} + "2B820 -> "2CEA1 , +% \end{macrocode} % \item CJK Compatibility Ideographs Supplement (中日韩兼容表意文字增补) % \begin{macrocode} "2F800 -> "2FA1F @@ -2826,12 +2850,15 @@ CJK scripts fonts (TrueType or OpenType). % \changes{v3.2.7}{2013/08/29}{修正 \file{unicode-letters.tex} 中谚文符号 % \tn{catcode} 不准的问题。} % \begin{macrocode} -\int_set:Nn \l_@@_begin_int { "AC00 } -\int_set:Nn \l_@@_end_int { "D7A3 } -\xeCJK_int_until_do:nn { \l_@@_begin_int > \l_@@_end_int } +\token_if_letter:NF ^^^^ac00 { - \char_set_catcode_letter:n { \l_@@_begin_int } - \int_incr:N \l_@@_begin_int + \int_set:Nn \l_@@_begin_int { "AC00 } + \int_set:Nn \l_@@_end_int { "D7A3 } + \xeCJK_int_until_do:nn { \l_@@_begin_int > \l_@@_end_int } + { + \char_set_catcode_letter:n { \l_@@_begin_int } + \int_incr:N \l_@@_begin_int + } } % \end{macrocode} % @@ -2845,7 +2872,7 @@ CJK scripts fonts (TrueType or OpenType). \int_set:Nn \l_@@_tmp_int {#3} \xeCJK_int_until_do:nn { \l_@@_begin_int > \l_@@_end_int } { - \XeTeXcharclass \l_@@_begin_int = \l_@@_tmp_int + \xetex_charclass:D \l_@@_begin_int = \l_@@_tmp_int \int_incr:N \l_@@_begin_int } } @@ -2861,7 +2888,7 @@ CJK scripts fonts (TrueType or OpenType). { \int_set:Nn \l_@@_tmp_int { \xeCJK_class_num:n {#2} } \clist_map_inline:cn { c_@@_#1_chars_clist } - { \XeTeXcharclass ##1 = \l_@@_tmp_int } + { \xetex_charclass:D ##1 = \l_@@_tmp_int } } % \end{macrocode} % \end{macro} @@ -2872,7 +2899,7 @@ CJK scripts fonts (TrueType or OpenType). \NewDocumentCommand \normalspacedchars { m } { \tl_map_inline:nn {#1} - { \XeTeXcharclass `##1 = \xeCJK_class_num:n { NormalSpace } } + { \xetex_charclass:D `##1 = \xeCJK_class_num:n { NormalSpace } } } % \end{macrocode} % \end{macro} @@ -2914,7 +2941,7 @@ CJK scripts fonts (TrueType or OpenType). % 在相邻类别之间插入内容。 % \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} } + { \xetex_interchartoks:D \xeCJK_class_num:n {#1} ~ \xeCJK_class_num:n {#2} = {#3} } \cs_generate_variant:Nn \xeCJK_inter_class_toks:nnn { nnc , nnx } % \end{macrocode} % \end{macro} @@ -2923,7 +2950,7 @@ CJK scripts fonts (TrueType or OpenType). % 取出相邻类别之间的内容。 % \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} } + { \tex_the:D \xetex_interchartoks:D \xeCJK_class_num:n {#1} ~ \xeCJK_class_num:n {#2} } % \end{macrocode} % \end{macro} % @@ -4610,14 +4637,14 @@ CJK scripts fonts (TrueType or OpenType). % % \changes{v3.2.7}{2013/08/22}{实现自定义行首/尾标点符号宽度功能。} % -% \tn{XeTeXglyphbouds} 可以得到一个字符的左右边距,用于标点压缩。如果它不可用,则 +% \tn{XeTeXglyphbounds} 可以得到一个字符的左右边距,用于标点压缩。如果它不可用,则 % 在文档中只能使用 |plain| 这一标点格式原样输出标点。 % \begin{macrocode} -\cs_if_exist:NF \XeTeXglyphbounds +\cs_if_exist:NF \xetex_glyphbounds:D { \@@_msg_new:nn { XeTeX-too-old } { - \token_to_str:N \XeTeXglyphbounds \ is~not~defined.\\ + \token_to_str:N \xetex_glyphbounds:D \ is~not~defined.\\ CJK~punctuation~kerning~will~not~be~available.\\\\ You~have~to~update~XeTeX~to~the~version~0.9995.0~or~later. } @@ -5329,8 +5356,8 @@ CJK scripts fonts (TrueType or OpenType). % \begin{macrocode} \cs_new_nopar:Npn \xeCJK_glyph_bounds:NN #1#2 { - \dim_use:N \XeTeXglyphbounds #1 ~ - \XeTeXcharglyph \xeCJK_token_value_charcode:N #2 \exp_stop_f: + \dim_use:N \xetex_glyphbounds:D #1 ~ + \xetex_charglyph:D \xeCJK_token_value_charcode:N #2 \exp_stop_f: } % \end{macrocode} % \end{macro} @@ -6540,7 +6567,7 @@ CJK scripts fonts (TrueType or OpenType). \@@_check_num_range:nnNN {#1} {#2} \l_@@_begin_int \l_@@_end_int \xeCJK_int_until_do:nn { \l_@@_begin_int > \l_@@_end_int } { - \tex_global:D \xeCJK_xetex_mathcode:w + \tex_global:D \utex_mathcode:D \l_@@_begin_int = #3 ~ #4 \l_@@_begin_int \int_incr:N \l_@@_begin_int } @@ -6761,7 +6788,7 @@ CJK scripts fonts (TrueType or OpenType). { \int_set:Nn \l_@@_tmp_int { \xeCJK_class_num:n {#1} } \clist_map_inline:cn { c_@@_#1_chars_clist } - { \XeTeXcharclass ##1 = \l_@@_tmp_int } + { \xetex_charclass:D ##1 = \l_@@_tmp_int } } \bool_new:N \l_@@_verb_addon_bool \cs_new_eq:NN \CJKfixedspacing \xeCJKVerbAddon @@ -6866,7 +6893,7 @@ CJK scripts fonts (TrueType or OpenType). \xeCJK_glyph_if_exist:NTF { ^^^^2423 } { ^^^^2423 } { - \int_compare:nNnTF { \XeTeXfonttype \tex_font:D } = \c_zero + \int_compare:nNnTF { \xetex_fonttype:D \tex_font:D } = \c_zero { \str_if_eq_x:nnTF { \f@family } { \ttdefault } { \c_catcode_other_space_tl } @@ -7049,13 +7076,19 @@ CJK scripts fonts (TrueType or OpenType). WidowPenalty = \c_ten_thousand , NoBreakCS = { \footnote \footnotemark \nobreak } , KaiMingPunct = { ^^^^3002 ^^^^ff0e ^^^^ff1f ^^^^ff01 } , - LongPunct = { ^^^^2014 ^^^^2015 ^^^^2500 ^^^^2025 ^^^^2026 } , - MiddlePunct = { ^^^^2014 ^^^^2015 ^^^^2027 ^^^^2500 ^^^^00b7 ^^^^30fb ^^^^ff65 } , + LongPunct = { ^^^^2014 ^^^^2025 ^^^^2026 } , + MiddlePunct = { ^^^^2013 ^^^^2014 ^^^^2027 ^^^^00b7 ^^^^30fb ^^^^ff65 } , AllowBreakBetweenPuncts = false } \defaultCJKfontfeatures { Script = CJK } % \end{macrocode} % +% 半字线连接号\footnote{见\href{http://www.moe.gov.cn/ewebeditor/uploadfile/2015/01/13/20150113092346124.pdf} +% {《夹用英文的中文文本的标点符号用法(草案)》5.13 节。}}应为半角宽度。 +% \begin{macrocode} +\xeCJKsetwidth{^^^^2013}{0.5em} +% \end{macrocode} +% % 执行宏包选项,并载入 \pkg{fontspec} 宏包和 \pkg{xunicode-addon}。 % \begin{macrocode} \ProcessKeysOptions { xeCJK / options } @@ -7450,7 +7483,7 @@ CJK scripts fonts (TrueType or OpenType). % \begin{macrocode} \cs_new_protected_nopar:Npn \xeCJK@italiccorr { - \int_compare:nNnTF \XeTeXinterchartokenstate > \c_zero + \int_compare:nNnTF \xetex_interchartokenstate:D > \c_zero { \xeCJK_if_last_node:nTF { default } { @@ -7513,10 +7546,11 @@ CJK scripts fonts (TrueType or OpenType). \@@_after_end_preamble:n { \int_compare:nNnF - { \c_three + \seq_count:N \g_@@_new_class_seq } = + { \c_@@_class_begin_int + \seq_count:N \g_@@_new_class_seq } = { \g_@@_xetex_allocator_int } { - \int_step_inline:nnnn \c_four \c_one \g_@@_xetex_allocator_int + \int_step_inline:nnnn + { \c_@@_class_begin_int + \c_one } \c_one \g_@@_xetex_allocator_int { \seq_if_in:NnF \g_@@_new_class_seq {#1} { \@@_set_others_toks:n {#1} } @@ -7565,9 +7599,9 @@ CJK scripts fonts (TrueType or OpenType). % \begin{macrocode} \tl_map_inline:nn { - \textellipsis \textemdash \textperiodcentered \textcentereddot - \textquoteleft \textquoteright \textquotedblleft \textquotedblright - \textcdot \textgrq \textgrqq + \textellipsis \textendash \textemdash \textperiodcentered + \textcentereddot \textquoteleft \textquoteright \textquotedblleft + \textquotedblright \textcdot \textgrq \textgrqq } { \AtBeginUTFCommand [#1] { \@@_group_begin: \makexeCJKinactive } @@ -7598,9 +7632,9 @@ CJK scripts fonts (TrueType or OpenType). % 符号命令,它的输入方式为 |>`w| 或者 |\accpsilivaria{w}|。前者比较特殊,如果 % 与 \pkg{xeCJK} 一起使用,\XeTeX\ 会出现如下错误。 % \begin{verbatim} -% ! Cannot use \XeTeXglyphbounds with grmn1000; not a native platform font. -% \xeCJK_glyph_bounds:NN ...use:N \XeTeXglyphbounds -% #1 \XeTeXcharglyph \xeCJK_... +% ! Cannot use \xetex_glyphbounds:D with grmn1000; not a native platform font. +% \xeCJK_glyph_bounds:NN ...use:N \xetex_glyphbounds:D +% #1 \xetex_charglyph:D \xeCJK_... % \end{verbatim} % 这个不好处理,只修改后者。 % \begin{macrocode} @@ -7638,7 +7672,7 @@ CJK scripts fonts (TrueType or OpenType). \char_set_catcode_other:n { 183 } \cs_new_protected_nopar:Npn \@@_Default_Bxii: { - \int_compare:nNnTF \XeTeXinterchartokenstate > \c_zero + \int_compare:nNnTF \xetex_interchartokenstate:D > \c_zero { \@@_group_begin: \makexeCJKinactive ^^b7 \@@_group_end: } { ^^b7 } } @@ -7742,14 +7776,21 @@ CJK scripts fonts (TrueType or OpenType). } % \end{macrocode} % -% 由于 \pkg{xeCJK} 假装 \pkg{CJK} 已经被引入了,导致 \pkg{everysel} 判断错误, -% 从而给出 \tn{selectfont} 已经被修改的警告,并加入不必要的内容。需要在它判断 -% 之前取消定义。 +% +% \changes{v3.3.3}{2015/12/12}{解决与 \pkg{microtype} 宏包的兼容问题。} +% 由于 \pkg{xeCJK} 假装 \pkg{CJK} 已经被引入了,这回导致 \pkg{everysel} 和 +% \pkg{microtype} 等宏包判断错误。需要在它们判断之前取消定义。 % \begin{macrocode} \@@_at_end_preamble:n { - \xeCJK_if_package_loaded:nT { everysel } - { \cs_undefine:c { ver@CJK . \c_@@_package_ext_tl } } + \clist_map_inline:nn { everysel , microtype } + { + \xeCJK_if_package_loaded:nT {#1} + { + \cs_undefine:c { ver@CJK . \c_@@_package_ext_tl } + \clist_map_break: + } + } } % \end{macrocode} % @@ -7779,11 +7820,10 @@ CJK scripts fonts (TrueType or OpenType). { \cs_new_eq:NN \Unicode \xeCJK_unicode_char:nn } } } -\str_if_eq_x:nnTF - { \token_to_str:N \Ucharcat } { \token_to_meaning:N \Ucharcat } +\cs_if_exist:NTF \utex_charcat:D { \cs_new_protected_nopar:Npn \xeCJK_char_from_charcode:Nn #1#2 - { \tl_const:Nx #1 { \Ucharcat \int_eval:n {#2} ~ \c_eleven } } + { \tl_const:Nx #1 { \char_generate:nn {#2} { \c_eleven } } } } { \cs_new_protected_nopar:Npn \xeCJK_char_from_charcode:Nn #1#2 @@ -9059,8 +9099,9 @@ CJK scripts fonts (TrueType or OpenType). % \end{macro} % % -% \begin{macro}[internal]{CJKfilltwosides} +% \begin{macro}{CJKfilltwosides} % \changes{v3.2.4}{2012/06/26}{改用 \texttt{minipage} 和 \LaTeX 表格(\texttt{tabular})来实现。} +% \changes{v3.3.3}{2015/05/30}{确保进入水平模式。} % 使用 \texttt{minipage} 和 \LaTeX 表格(\texttt{tabular})来定义 |CJKfilltwosides| 环境。 % 可选参数 |#1| 表示环境的垂直对齐位置,默认居中;参数 |#2| 表示环境的宽度。 % 带星号的环境,如果 |#2| 不大于零或者不大于环境最长文本行的宽度,则取环境的自然宽度。 @@ -9076,6 +9117,7 @@ CJK scripts fonts (TrueType or OpenType). } \NewEnviron { CJKfilltwosides* } [ 2 ] [ c ] { + \xeCJK_leave_vmode: \cs_set_eq:NN \CJKglue \xeCJK_fntef_hfilll: \tl_set:Nn \arraystretch { 1 } \cs_if_free:NF \extrarowheight @@ -9594,15 +9636,19 @@ CJK scripts fonts (TrueType or OpenType). % 些符号命令的默认设置。 % % \begin{macrocode} -\pdftex_if_engine:T +\bool_if:nF + { + \sys_if_engine_xetex_p: || + \sys_if_engine_luatex_p: + } { - \msg_new:nnnn { xunicode-addon } { cannot-use-pdftex } + \msg_new:nnnn { xunicode-addon } { xetex-luatex } { This~package~requires~either~XeTeX~or~LuaTeX~to~function.} { You~must~change~your~typesetting~engine~to,~e.g.,\\ "xelatex"~or~"lualatex"~instead~of~plain~"latex"~or~"pdflatex". } - \msg_critical:nn { xunicode-addon } { cannot-use-pdftex } + \msg_critical:nn { xunicode-addon } { xetex-luatex } } \RequirePackage { xparse } % \end{macrocode} @@ -9611,28 +9657,34 @@ CJK scripts fonts (TrueType or OpenType). % % \begin{macrocode} \clist_new:N \g_@@_encname_clist +\tl_if_exist:NT \UTFencname + { \clist_gput_right:Nx \g_@@_encname_clist { \UTFencname } } \DeclareOption* - { \clist_gput_left:NV \g_@@_encname_clist \CurrentOption } + { \clist_gput_right:NV \g_@@_encname_clist \CurrentOption } \ProcessOptions \scan_stop: -\tl_if_exist:NT \UTFencname - { \clist_gput_left:Nx \g_@@_encname_clist { \UTFencname } } % \end{macrocode} % % 若 \pkg{xunicode} 已经被调用,则在宏包结束的时候,重新设置 \tn{UTFencname} % 对应的编码命令。否则设置 \tn{UTFencname},如果使用的是 \hologo{LuaLaTeX},则 % 需要作一些设置,使得 \pkg{xunicode} 可用。 % +% \changes{v3.3.3}{2016/02/01}{使用新的 Unicode 编码名称 \texttt{TU}。} +% % \begin{macrocode} \@ifpackageloaded { xunicode } { } { \clist_get:NNF \g_@@_encname_clist \UTFencname { - \xetex_if_engine:TF - { \tl_set:Nn \UTFencname { EU1 } } - { \tl_set:Nn \UTFencname { EU2 } } - \clist_set_eq:NN \g_@@_encname_clist \UTFencname + \file_if_exist:nTF { tuenc.def } + { \tl_set:Nn \UTFencname { TU } } + { + \sys_if_engine_xetex:TF + { \tl_set:Nn \UTFencname { EU1 } } + { \tl_set:Nn \UTFencname { EU2 } } + } + \clist_gset_eq:NN \g_@@_encname_clist \UTFencname } - \xetex_if_engine:TF + \sys_if_engine_xetex:TF { \RequirePackage { xunicode } } { \cs_set_eq:NN \@@_tmp:w \XeTeXpicfile @@ -9641,7 +9693,7 @@ CJK scripts fonts (TrueType or OpenType). \cs_set_eq:NN \XeTeXpicfile \@@_tmp:w } } -\AtEndOfPackage { \ReloadXunicode { \g_@@_encname_clist } } +\AtEndOfPackage { \@@_reload:N \g_@@_encname_clist } % \end{macrocode} % % \begin{macro}[internal]{\ReloadXunicode} @@ -9651,42 +9703,42 @@ CJK scripts fonts (TrueType or OpenType). \RenewDocumentCommand \ReloadXunicode { m } { \clist_set:Nx \l_@@_encname_clist {#1} - \clist_remove_duplicates:N \l_@@_encname_clist + \@@_reload:N \l_@@_encname_clist + } +\cs_new_protected:Npn \@@_reload:N #1 + { + \cs_set_eq:NN \@@_tmp:w \iftipaonetoken + \cs_set_eq:NN \iftipaonetoken \scan_stop: \use:x { \ExplSyntaxOff \char_set_catcode_letter:n { 64 } - \@@_reload:N \exp_not:N \l_@@_encname_clist + \exp_not:N \clist_map_function:NN \exp_not:N #1 \@@_reload_aux:n \bool_if:NTF \l__kernel_expl_bool { \ExplSyntaxOn } { \ExplSyntaxOff } \char_set_catcode:nn { 64 } { \char_value_catcode:n { 64 } } } + \cs_set_eq:NN \iftipaonetoken \@@_tmp:w } -\cs_new_protected:Npn \@@_reload:N #1 +\cs_new_protected:Npn \@@_reload_aux:n #1 { - \cs_set_eq:NN \@@_tmp:w \iftipaonetoken - \cs_set_eq:NN \iftipaonetoken \scan_stop: - \clist_map_inline:Nn #1 + \cs_if_exist:cTF { T@ #1 } { - \cs_if_exist:cTF { T@ ##1 } - { - \tl_set:Nx \UTFencname {##1} - \clist_gput_right:Nx \g_@@_encname_clist {##1} - \file_input:n { xunicode.sty } - \file_input:n { xunicode-extra.def } - } - { \msg_error:nnn { xunicode-addon } { encoding-unknown } {##1} } + \tl_set:Nn \UTFencname {#1} + \clist_if_in:NnF \g_@@_encname_clist {#1} + { \clist_gput_right:Nn \g_@@_encname_clist {#1} } + \file_input:n { xunicode.sty } + \file_input:n { xunicode-extra.def } } - \cs_set_eq:NN \iftipaonetoken \@@_tmp:w - \clist_gremove_duplicates:N \g_@@_encname_clist + { \msg_error:nnn { xunicode-addon } { encoding-unknown } {#1} } } \clist_new:N \l_@@_encname_clist \msg_new:nnnn { xunicode-addon } { encoding-unknown } { Encoding~scheme~"#1"~unknown. } { You~may~use \\\\ - \token_to_str:N \usepackage [ #1 , \encodingdefault ] {fontenc} \\\\ + \token_to_str:N \usepackage [ #1 , \encodingdefault ] \{fontenc\} \\\\ before~xunicode-addon~or~xunicode. } % \end{macrocode} @@ -12563,7 +12615,6 @@ int main() \usepackage[margin=2cm]{geometry} \usepackage{fontspec} \usepackage{xunicode-addon} -\usepackage{l3str} \usepackage{longtable,tabu,booktabs} \usepackage{zref-base} diff --git a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins index 8ccb6dd5dbc..1047b2d3483 100644 --- a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins +++ b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins @@ -13,9 +13,9 @@ %% Leo Liu %% Qing Lee %% -%% Copyright (C) 2007--2015 Wenchang Sun -%% (C) 2009--2015 Leo Liu -%% (C) 2012--2015 Qing Lee +%% Copyright (C) 2007--2010 Wenchang Sun +%% (C) 2009--2016 Leo Liu +%% (C) 2012--2016 Qing Lee %% %% This file may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -83,9 +83,9 @@ Leo Liu Qing Lee - Copyright (C) 2007--2015 Wenchang Sun - (C) 2009--2015 Leo Liu - (C) 2012--2015 Qing Lee + Copyright (C) 2007--2010 Wenchang Sun + (C) 2009--2016 Leo Liu + (C) 2012--2016 Qing Lee This file may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty index 2ff396c76be..e4b52dd35c6 100644 --- a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty +++ b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty @@ -13,9 +13,9 @@ %% Leo Liu %% Qing Lee %% -%% Copyright (C) 2007--2015 Wenchang Sun -%% (C) 2009--2015 Leo Liu -%% (C) 2012--2015 Qing Lee +%% Copyright (C) 2007--2010 Wenchang Sun +%% (C) 2009--2016 Leo Liu +%% (C) 2012--2016 Qing Lee %% %% This file may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -31,11 +31,11 @@ %% \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} -\GetIdInfo$Id: xeCJK.dtx 7321d12 2015-05-15 23:07:58 +0800 Qing Lee $ +\GetIdInfo$Id: xeCJK.dtx 2667062 2016-02-01 12:02:59 +0800 Qing Lee $ {xeCJK patch file for listings} \ProvidesExplPackage {xeCJK-listings} - {\ExplFileDate}{3.3.2}{\ExplFileDescription} + {\ExplFileDate}{3.3.3}{\ExplFileDescription} \DeclareOption* { \PassOptionsToPackage { \CurrentOption } { xeCJK } } \ProcessOptions \scan_stop: \RequirePackage { xeCJK } diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg index 7cf00c1becc..76461f6fdd3 100644 --- a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg +++ b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg @@ -6,11 +6,11 @@ %% %% xeCJK.dtx (with options: `config') %% -\GetIdInfo$Id: xeCJK.dtx 7321d12 2015-05-15 23:07:58 +0800 Qing Lee $ +\GetIdInfo$Id: xeCJK.dtx 2667062 2016-02-01 12:02:59 +0800 Qing Lee $ {Configuration file for xeCJK package} \ProvidesExplFile {\ExplFileName.cfg} - {\ExplFileDate}{3.3.2}{\ExplFileDescription} + {\ExplFileDate}{3.3.3}{\ExplFileDescription} %% %% diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty index 565ad48c4e2..78ae492ed29 100644 --- a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty +++ b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty @@ -13,9 +13,9 @@ %% Leo Liu %% Qing Lee %% -%% Copyright (C) 2007--2015 Wenchang Sun -%% (C) 2009--2015 Leo Liu -%% (C) 2012--2015 Qing Lee +%% Copyright (C) 2007--2010 Wenchang Sun +%% (C) 2009--2016 Leo Liu +%% (C) 2012--2016 Qing Lee %% %% This file may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -31,11 +31,11 @@ %% \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} -\GetIdInfo$Id: xeCJK.dtx 7321d12 2015-05-15 23:07:58 +0800 Qing Lee $ +\GetIdInfo$Id: xeCJK.dtx 2667062 2016-02-01 12:02:59 +0800 Qing Lee $ {Typesetting CJK scripts with XeLaTeX} \ProvidesExplPackage {\ExplFileName} - {\ExplFileDate}{3.3.2}{\ExplFileDescription} + {\ExplFileDate}{3.3.3}{\ExplFileDescription} \msg_new:nnn { xeCJK } { Require-XeTeX } { The~xeCJK~package~requires~XeTeX~to~function.\\\\ @@ -43,7 +43,7 @@ instead~of~plain~"latex"~or~"pdflatex"~or~"lualatex".\\ Loading~xeCJK~will~abort! } -\xetex_if_engine:F { \msg_critical:nn { xeCJK } { Require-XeTeX } } +\sys_if_engine_xetex:F { \msg_critical:nn { xeCJK } { Require-XeTeX } } \msg_new:nnn { xeCJK } { l3-too-old } { Support~package~`#1'~too~old. \\\\ @@ -52,7 +52,7 @@ using~your~TeX~package~manager~or~from~CTAN.\\ \str_if_eq:nnT {#1} { expl3 } { Loading~xeCJK~will~abort! } } -\@ifpackagelater { expl3 } { 2014/07/20 } { } +\@ifpackagelater { expl3 } { 2015/09/24 } { } { \msg_critical:nnn { xeCJK } { l3-too-old } { expl3 } } \prg_new_conditional:Npnn \xeCJK_if_package_loaded:n #1 { p , T , F , TF } { @@ -120,15 +120,15 @@ } { \AtBeginDocument { \g__xeCJK_after_preamble_hook_tl } - \cs_new_protected_nopar:Npn \__xeCJK_document_left_hook: + \cs_new_protected_nopar:Npn \xeCJK@document@left@hook { \group_end: \g__xeCJK_at_end_preamble_hook_tl \group_begin: } - \cs_new_protected_nopar:Npn \__xeCJK_document_right_hook: + \cs_new_protected_nopar:Npn \xeCJK@document@right@hook { \scan_stop: \g__xeCJK_after_end_preamble_hook_tl \tex_ignorespaces:D } \cs_gset_nopar:Npx \document { - \__xeCJK_document_left_hook: + \xeCJK@document@left@hook \exp_not:o { \document } - \__xeCJK_document_right_hook: + \xeCJK@document@right@hook } } \__xeCJK_after_preamble:n @@ -324,7 +324,7 @@ \fi: } \cs_new_nopar:Npn \xeCJK_token_value_class:N #1 - { \XeTeXcharclass \xeCJK_token_value_charcode:N #1 } + { \xetex_charclass:D \xeCJK_token_value_charcode:N #1 } \cs_new_nopar:Npn \xeCJK_token_value_charcode:N #1 { \exp_after:wN \__xeCJK_get_charcode:w \token_to_meaning:N #1 \q_stop } \group_begin: @@ -334,7 +334,6 @@ { \cs_new_nopar:Npn \__xeCJK_get_charcode:w ##1 ~ ##2 ~ ##3 \q_stop { \int_eval:n { `##3 } } - \cs_new_eq:NN \xeCJK_xetex_mathcode:w \Umathcode } { \tl_if_empty:nTF {#5} @@ -348,12 +347,10 @@ { ( `##3 - "D800 ) * "400 + ( `##4 - "DC00 ) + "10000 } } } - \cs_new_eq:NN \xeCJK_xetex_mathcode:w \Umathcode } { \cs_new_nopar:Npn \__xeCJK_get_charcode:w ##1 ~ ##2 ~ ##3##4 \q_stop { \int_eval:n { \tl_if_empty:nTF { ##4 } { `##3 } { "20000 } } } - \cs_new_eq:NN \xeCJK_xetex_mathcode:w \XeTeXmathcode } } } @@ -380,8 +377,8 @@ xeCJKactive / false .code:n = { \makexeCJKinactive } , xeCJKactive .default:n = { true } } -\NewDocumentCommand \makexeCJKactive { } { \XeTeXinterchartokenstate = \c_one } -\NewDocumentCommand \makexeCJKinactive { } { \XeTeXinterchartokenstate = \c_zero } +\NewDocumentCommand \makexeCJKactive { } { \xetex_interchartokenstate:D = \c_one } +\NewDocumentCommand \makexeCJKinactive { } { \xetex_interchartokenstate:D = \c_zero } \char_set_catcode_ignore:n { "FEFF } \seq_new:N \g__xeCJK_class_seq \seq_new:N \g__xeCJK_new_class_seq @@ -414,10 +411,20 @@ Please~take~another~name. \\ } \xeCJK_save_class:nn { Default } { \c_zero } -\xeCJK_save_class:nn { CJK } { \c_one } -\xeCJK_save_class:nn { FullLeft } { \c_two } -\xeCJK_save_class:nn { FullRight } { \c_three } \xeCJK_save_class:nn { Boundary } { \c_two_hundred_fifty_five } +\int_compare:nNnTF { \xetex_charclass:D "4E00 } = \c_one + { + \xeCJK_save_class:nn { CJK } { \c_one } + \xeCJK_save_class:nn { FullLeft } { \c_two } + \xeCJK_save_class:nn { FullRight } { \c_three } + \int_const:Nn \c__xeCJK_class_begin_int { \c_three } + } + { + \xeCJK_new_class:n { CJK } + \xeCJK_new_class:n { FullLeft } + \xeCJK_new_class:n { FullRight } + \int_const:Nn \c__xeCJK_class_begin_int { \c_zero } + } \xeCJK_new_class:n { HalfLeft } \xeCJK_new_class:n { HalfRight } \xeCJK_new_class:n { NormalSpace } @@ -427,7 +434,7 @@ { "28 , "5B , "60 , "7B , "2329 } \clist_const:Nn \c__xeCJK_HalfRight_chars_clist { "21 , "22 , "25 , "27 , "29 , "2C , "2E , "3A , "3B , "3F , "5D , "7D , "232A } -\clist_const:Nn \c__xeCJK_NormalSpace_chars_clist { "2D , "2F , "5C , "2013 } +\clist_const:Nn \c__xeCJK_NormalSpace_chars_clist { "2D , "2F , "5C } \clist_const:Nn \c__xeCJK_OP_chars_clist { "2018 , "201C , @@ -444,7 +451,7 @@ } \clist_const:Nn \c__xeCJK_CL_chars_clist { - "00B7 , "2019 , "201D , "2014 , "2015 , "2025 , "2026 , "2027 , "2500 , + "00B7 , "2019 , "201D , "2013 , "2014 , "2025 , "2026 , "2027 , "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 , @@ -507,6 +514,7 @@ "20000 -> "2A6DF , "2A700 -> "2B73F , "2B740 -> "2B81F , + "2B820 -> "2CEA1 , "2F800 -> "2FA1F } \clist_const:Nn \c__xeCJK_CM_chars_clist @@ -572,12 +580,15 @@ \int_set:Nn #4 { \int_max:nn {#1} { \IfNoValueTF {#2} {#1} {#2} } } } } -\int_set:Nn \l__xeCJK_begin_int { "AC00 } -\int_set:Nn \l__xeCJK_end_int { "D7A3 } -\xeCJK_int_until_do:nn { \l__xeCJK_begin_int > \l__xeCJK_end_int } +\token_if_letter:NF ^^^^ac00 { - \char_set_catcode_letter:n { \l__xeCJK_begin_int } - \int_incr:N \l__xeCJK_begin_int + \int_set:Nn \l__xeCJK_begin_int { "AC00 } + \int_set:Nn \l__xeCJK_end_int { "D7A3 } + \xeCJK_int_until_do:nn { \l__xeCJK_begin_int > \l__xeCJK_end_int } + { + \char_set_catcode_letter:n { \l__xeCJK_begin_int } + \int_incr:N \l__xeCJK_begin_int + } } \cs_new_protected_nopar:Npn \xeCJK_set_char_class:nnn #1#2#3 { @@ -585,7 +596,7 @@ \int_set:Nn \l__xeCJK_tmp_int {#3} \xeCJK_int_until_do:nn { \l__xeCJK_begin_int > \l__xeCJK_end_int } { - \XeTeXcharclass \l__xeCJK_begin_int = \l__xeCJK_tmp_int + \xetex_charclass:D \l__xeCJK_begin_int = \l__xeCJK_tmp_int \int_incr:N \l__xeCJK_begin_int } } @@ -593,12 +604,12 @@ { \int_set:Nn \l__xeCJK_tmp_int { \xeCJK_class_num:n {#2} } \clist_map_inline:cn { c__xeCJK_#1_chars_clist } - { \XeTeXcharclass ##1 = \l__xeCJK_tmp_int } + { \xetex_charclass:D ##1 = \l__xeCJK_tmp_int } } \NewDocumentCommand \normalspacedchars { m } { \tl_map_inline:nn {#1} - { \XeTeXcharclass `##1 = \xeCJK_class_num:n { NormalSpace } } + { \xetex_charclass:D `##1 = \xeCJK_class_num:n { NormalSpace } } } \NewDocumentCommand \xeCJKResetPunctClass { } { @@ -617,10 +628,10 @@ } \xeCJKResetCharClass \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} } + { \xetex_interchartoks:D \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} } + { \tex_the:D \xetex_interchartoks:D \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} { \prg_do_nothing: } } \cs_new_protected_nopar:Npn \xeCJK_pre_inter_class_toks:nnn #1#2#3 @@ -1674,11 +1685,11 @@ { \__xeCJK_switch_font:nn {#2} {#1} } } } -\cs_if_exist:NF \XeTeXglyphbounds +\cs_if_exist:NF \xetex_glyphbounds:D { \__xeCJK_msg_new:nn { XeTeX-too-old } { - \token_to_str:N \XeTeXglyphbounds \ is~not~defined.\\ + \token_to_str:N \xetex_glyphbounds:D \ is~not~defined.\\ CJK~punctuation~kerning~will~not~be~available.\\\\ You~have~to~update~XeTeX~to~the~version~0.9995.0~or~later. } @@ -2261,8 +2272,8 @@ \cs_generate_variant:Nn \xeCJK_calc_punct_dimen:N { f } \cs_new_nopar:Npn \xeCJK_glyph_bounds:NN #1#2 { - \dim_use:N \XeTeXglyphbounds #1 ~ - \XeTeXcharglyph \xeCJK_token_value_charcode:N #2 \exp_stop_f: + \dim_use:N \xetex_glyphbounds:D #1 ~ + \xetex_charglyph:D \xeCJK_token_value_charcode:N #2 \exp_stop_f: } \keys_define:nn { xeCJK / options } { @@ -3149,7 +3160,7 @@ \__xeCJK_check_num_range:nnNN {#1} {#2} \l__xeCJK_begin_int \l__xeCJK_end_int \xeCJK_int_until_do:nn { \l__xeCJK_begin_int > \l__xeCJK_end_int } { - \tex_global:D \xeCJK_xetex_mathcode:w + \tex_global:D \utex_mathcode:D \l__xeCJK_begin_int = #3 ~ #4 \l__xeCJK_begin_int \int_incr:N \l__xeCJK_begin_int } @@ -3326,7 +3337,7 @@ { \int_set:Nn \l__xeCJK_tmp_int { \xeCJK_class_num:n {#1} } \clist_map_inline:cn { c__xeCJK_#1_chars_clist } - { \XeTeXcharclass ##1 = \l__xeCJK_tmp_int } + { \xetex_charclass:D ##1 = \l__xeCJK_tmp_int } } \bool_new:N \l__xeCJK_verb_addon_bool \cs_new_eq:NN \CJKfixedspacing \xeCJKVerbAddon @@ -3400,7 +3411,7 @@ \xeCJK_glyph_if_exist:NTF { ^^^^2423 } { ^^^^2423 } { - \int_compare:nNnTF { \XeTeXfonttype \tex_font:D } = \c_zero + \int_compare:nNnTF { \xetex_fonttype:D \tex_font:D } = \c_zero { \str_if_eq_x:nnTF { \f@family } { \ttdefault } { \c_catcode_other_space_tl } @@ -3530,11 +3541,12 @@ WidowPenalty = \c_ten_thousand , NoBreakCS = { \footnote \footnotemark \nobreak } , KaiMingPunct = { ^^^^3002 ^^^^ff0e ^^^^ff1f ^^^^ff01 } , - LongPunct = { ^^^^2014 ^^^^2015 ^^^^2500 ^^^^2025 ^^^^2026 } , - MiddlePunct = { ^^^^2014 ^^^^2015 ^^^^2027 ^^^^2500 ^^^^00b7 ^^^^30fb ^^^^ff65 } , + LongPunct = { ^^^^2014 ^^^^2025 ^^^^2026 } , + MiddlePunct = { ^^^^2013 ^^^^2014 ^^^^2027 ^^^^00b7 ^^^^30fb ^^^^ff65 } , AllowBreakBetweenPuncts = false } \defaultCJKfontfeatures { Script = CJK } +\xeCJKsetwidth{^^^^2013}{0.5em} \ProcessKeysOptions { xeCJK / options } \RequirePackage { fontspec } [ 2012/05/01 ] \RequirePackage { xunicode-addon } @@ -3764,7 +3776,7 @@ \tl_replace_once:Nnn \sw@slant { \fix@penalty } { \xeCJK@fix@penalty } \cs_new_protected_nopar:Npn \xeCJK@italiccorr { - \int_compare:nNnTF \XeTeXinterchartokenstate > \c_zero + \int_compare:nNnTF \xetex_interchartokenstate:D > \c_zero { \xeCJK_if_last_node:nTF { default } { @@ -3800,10 +3812,11 @@ \__xeCJK_after_end_preamble:n { \int_compare:nNnF - { \c_three + \seq_count:N \g__xeCJK_new_class_seq } = + { \c__xeCJK_class_begin_int + \seq_count:N \g__xeCJK_new_class_seq } = { \g__xeCJK_xetex_allocator_int } { - \int_step_inline:nnnn \c_four \c_one \g__xeCJK_xetex_allocator_int + \int_step_inline:nnnn + { \c__xeCJK_class_begin_int + \c_one } \c_one \g__xeCJK_xetex_allocator_int { \seq_if_in:NnF \g__xeCJK_new_class_seq {#1} { \__xeCJK_set_others_toks:n {#1} } @@ -3839,9 +3852,9 @@ \cs_new_eq:NN \__xeCJK_group_end: \group_end: \tl_map_inline:nn { - \textellipsis \textemdash \textperiodcentered \textcentereddot - \textquoteleft \textquoteright \textquotedblleft \textquotedblright - \textcdot \textgrq \textgrqq + \textellipsis \textendash \textemdash \textperiodcentered + \textcentereddot \textquoteleft \textquoteright \textquotedblleft + \textquotedblright \textcdot \textgrq \textgrqq } { \AtBeginUTFCommand [#1] { \__xeCJK_group_begin: \makexeCJKinactive } @@ -3881,7 +3894,7 @@ \char_set_catcode_other:n { 183 } \cs_new_protected_nopar:Npn \__xeCJK_Default_Bxii: { - \int_compare:nNnTF \XeTeXinterchartokenstate > \c_zero + \int_compare:nNnTF \xetex_interchartokenstate:D > \c_zero { \__xeCJK_group_begin: \makexeCJKinactive ^^b7 \__xeCJK_group_end: } { ^^b7 } } @@ -3960,8 +3973,14 @@ } \__xeCJK_at_end_preamble:n { - \xeCJK_if_package_loaded:nT { everysel } - { \cs_undefine:c { ver@CJK . \c__xeCJK_package_ext_tl } } + \clist_map_inline:nn { everysel , microtype } + { + \xeCJK_if_package_loaded:nT {#1} + { + \cs_undefine:c { ver@CJK . \c__xeCJK_package_ext_tl } + \clist_map_break: + } + } } \cs_new_protected:Npn \CJKaddEncHook #1#2 { @@ -3980,11 +3999,10 @@ { \cs_new_eq:NN \Unicode \xeCJK_unicode_char:nn } } } -\str_if_eq_x:nnTF - { \token_to_str:N \Ucharcat } { \token_to_meaning:N \Ucharcat } +\cs_if_exist:NTF \utex_charcat:D { \cs_new_protected_nopar:Npn \xeCJK_char_from_charcode:Nn #1#2 - { \tl_const:Nx #1 { \Ucharcat \int_eval:n {#2} ~ \c_eleven } } + { \tl_const:Nx #1 { \char_generate:nn {#2} { \c_eleven } } } } { \cs_new_protected_nopar:Npn \xeCJK_char_from_charcode:Nn #1#2 diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty index de0230a2d9c..6eb48c1f651 100644 --- a/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty +++ b/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty @@ -13,9 +13,9 @@ %% Leo Liu %% Qing Lee %% -%% Copyright (C) 2007--2015 Wenchang Sun -%% (C) 2009--2015 Leo Liu -%% (C) 2012--2015 Qing Lee +%% Copyright (C) 2007--2010 Wenchang Sun +%% (C) 2009--2016 Leo Liu +%% (C) 2012--2016 Qing Lee %% %% This file may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -31,11 +31,11 @@ %% \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} -\GetIdInfo$Id: xeCJK.dtx 7321d12 2015-05-15 23:07:58 +0800 Qing Lee $ +\GetIdInfo$Id: xeCJK.dtx 2667062 2016-02-01 12:02:59 +0800 Qing Lee $ {xeCJK font effect} \ProvidesExplPackage {xeCJKfntef} - {\ExplFileDate}{3.3.2}{\ExplFileDescription} + {\ExplFileDate}{3.3.3}{\ExplFileDescription} \PassOptionsToPackage { normalem } { ulem } \DeclareOption* { \PassOptionsToPackage { \CurrentOption } { ulem } } \ProcessOptions \scan_stop: @@ -977,6 +977,7 @@ } \NewEnviron { CJKfilltwosides* } [ 2 ] [ c ] { + \xeCJK_leave_vmode: \cs_set_eq:NN \CJKglue \xeCJK_fntef_hfilll: \tl_set:Nn \arraystretch { 1 } \cs_if_free:NF \extrarowheight diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty b/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty index a578dfd8b21..e033226ccfe 100644 --- a/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty +++ b/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty @@ -13,9 +13,9 @@ %% Leo Liu %% Qing Lee %% -%% Copyright (C) 2007--2015 Wenchang Sun -%% (C) 2009--2015 Leo Liu -%% (C) 2012--2015 Qing Lee +%% Copyright (C) 2007--2010 Wenchang Sun +%% (C) 2009--2016 Leo Liu +%% (C) 2012--2016 Qing Lee %% %% This file may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -31,38 +31,46 @@ %% \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} -\GetIdInfo$Id: xeCJK.dtx 7321d12 2015-05-15 23:07:58 +0800 Qing Lee $ +\GetIdInfo$Id: xeCJK.dtx 2667062 2016-02-01 12:02:59 +0800 Qing Lee $ {addon file for xunicode} \ProvidesExplPackage {xunicode-addon} - {\ExplFileDate}{3.3.2}{\ExplFileDescription} -\pdftex_if_engine:T + {\ExplFileDate}{3.3.3}{\ExplFileDescription} +\bool_if:nF { - \msg_new:nnnn { xunicode-addon } { cannot-use-pdftex } + \sys_if_engine_xetex_p: || + \sys_if_engine_luatex_p: + } + { + \msg_new:nnnn { xunicode-addon } { xetex-luatex } { This~package~requires~either~XeTeX~or~LuaTeX~to~function.} { You~must~change~your~typesetting~engine~to,~e.g.,\\ "xelatex"~or~"lualatex"~instead~of~plain~"latex"~or~"pdflatex". } - \msg_critical:nn { xunicode-addon } { cannot-use-pdftex } + \msg_critical:nn { xunicode-addon } { xetex-luatex } } \RequirePackage { xparse } \clist_new:N \g__xunadd_encname_clist +\tl_if_exist:NT \UTFencname + { \clist_gput_right:Nx \g__xunadd_encname_clist { \UTFencname } } \DeclareOption* - { \clist_gput_left:NV \g__xunadd_encname_clist \CurrentOption } + { \clist_gput_right:NV \g__xunadd_encname_clist \CurrentOption } \ProcessOptions \scan_stop: -\tl_if_exist:NT \UTFencname - { \clist_gput_left:Nx \g__xunadd_encname_clist { \UTFencname } } \@ifpackageloaded { xunicode } { } { \clist_get:NNF \g__xunadd_encname_clist \UTFencname { - \xetex_if_engine:TF - { \tl_set:Nn \UTFencname { EU1 } } - { \tl_set:Nn \UTFencname { EU2 } } - \clist_set_eq:NN \g__xunadd_encname_clist \UTFencname + \file_if_exist:nTF { tuenc.def } + { \tl_set:Nn \UTFencname { TU } } + { + \sys_if_engine_xetex:TF + { \tl_set:Nn \UTFencname { EU1 } } + { \tl_set:Nn \UTFencname { EU2 } } + } + \clist_gset_eq:NN \g__xunadd_encname_clist \UTFencname } - \xetex_if_engine:TF + \sys_if_engine_xetex:TF { \RequirePackage { xunicode } } { \cs_set_eq:NN \__xunadd_tmp:w \XeTeXpicfile @@ -71,46 +79,46 @@ \cs_set_eq:NN \XeTeXpicfile \__xunadd_tmp:w } } -\AtEndOfPackage { \ReloadXunicode { \g__xunadd_encname_clist } } +\AtEndOfPackage { \__xunadd_reload:N \g__xunadd_encname_clist } \RenewDocumentCommand \ReloadXunicode { m } { \clist_set:Nx \l__xunadd_encname_clist {#1} - \clist_remove_duplicates:N \l__xunadd_encname_clist + \__xunadd_reload:N \l__xunadd_encname_clist + } +\cs_new_protected:Npn \__xunadd_reload:N #1 + { + \cs_set_eq:NN \__xunadd_tmp:w \iftipaonetoken + \cs_set_eq:NN \iftipaonetoken \scan_stop: \use:x { \ExplSyntaxOff \char_set_catcode_letter:n { 64 } - \__xunadd_reload:N \exp_not:N \l__xunadd_encname_clist + \exp_not:N \clist_map_function:NN \exp_not:N #1 \__xunadd_reload_aux:n \bool_if:NTF \l__kernel_expl_bool { \ExplSyntaxOn } { \ExplSyntaxOff } \char_set_catcode:nn { 64 } { \char_value_catcode:n { 64 } } } + \cs_set_eq:NN \iftipaonetoken \__xunadd_tmp:w } -\cs_new_protected:Npn \__xunadd_reload:N #1 +\cs_new_protected:Npn \__xunadd_reload_aux:n #1 { - \cs_set_eq:NN \__xunadd_tmp:w \iftipaonetoken - \cs_set_eq:NN \iftipaonetoken \scan_stop: - \clist_map_inline:Nn #1 + \cs_if_exist:cTF { T@ #1 } { - \cs_if_exist:cTF { T@ ##1 } - { - \tl_set:Nx \UTFencname {##1} - \clist_gput_right:Nx \g__xunadd_encname_clist {##1} - \file_input:n { xunicode.sty } - \file_input:n { xunicode-extra.def } - } - { \msg_error:nnn { xunicode-addon } { encoding-unknown } {##1} } + \tl_set:Nn \UTFencname {#1} + \clist_if_in:NnF \g__xunadd_encname_clist {#1} + { \clist_gput_right:Nn \g__xunadd_encname_clist {#1} } + \file_input:n { xunicode.sty } + \file_input:n { xunicode-extra.def } } - \cs_set_eq:NN \iftipaonetoken \__xunadd_tmp:w - \clist_gremove_duplicates:N \g__xunadd_encname_clist + { \msg_error:nnn { xunicode-addon } { encoding-unknown } {#1} } } \clist_new:N \l__xunadd_encname_clist \msg_new:nnnn { xunicode-addon } { encoding-unknown } { Encoding~scheme~"#1"~unknown. } { You~may~use \\\\ - \token_to_str:N \usepackage [ #1 , \encodingdefault ] {fontenc} \\\\ + \token_to_str:N \usepackage [ #1 , \encodingdefault ] \{fontenc\} \\\\ before~xunicode-addon~or~xunicode. } \RenewDocumentCommand \DeclareUTFmathsymbols { m } diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def b/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def index 6a5b9d45c37..242904283f7 100644 --- a/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def +++ b/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def @@ -13,9 +13,9 @@ %% Leo Liu %% Qing Lee %% -%% Copyright (C) 2007--2015 Wenchang Sun -%% (C) 2009--2015 Leo Liu -%% (C) 2012--2015 Qing Lee +%% Copyright (C) 2007--2010 Wenchang Sun +%% (C) 2009--2016 Leo Liu +%% (C) 2012--2016 Qing Lee %% %% This file may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -29,11 +29,11 @@ %% The Current Maintainer of this work are Leo Liu and Qing Lee. %% ----------------------------------------------------------------- %% -\GetIdInfo$Id: xeCJK.dtx 7321d12 2015-05-15 23:07:58 +0800 Qing Lee $ +\GetIdInfo$Id: xeCJK.dtx 2667062 2016-02-01 12:02:59 +0800 Qing Lee $ {extra definition for xunicode} \ProvidesExplFile {xunicode-extra.def} - {\ExplFileDate}{3.3.2}{\ExplFileDescription} + {\ExplFileDate}{3.3.3}{\ExplFileDescription} \ExplSyntaxOff \DeclareUTFComposite\textsuperscript \DeclareUTFComposite\textsubscript -- cgit v1.2.3