summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdfbin1332344 -> 1334701 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.pdfbin348358 -> 289666 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.tex1
-rw-r--r--Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-simp.map11
-rw-r--r--Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-simp.tecbin35008 -> 35057 bytes
-rw-r--r--Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-trad.map10
-rw-r--r--Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-trad.tecbin34434 -> 34498 bytes
-rw-r--r--Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx253
-rw-r--r--Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins12
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty10
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg4
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty124
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty11
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty76
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def10
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
--- a/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf
+++ b/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf
Binary files 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
--- a/Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.pdf
+++ b/Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.pdf
Binary files 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: <http://www.unicode.org/Public/UNIDATA/Unihan.zip>
;
; 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
--- a/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-simp.tec
+++ b/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-simp.tec
Binary files 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: <http://www.unicode.org/Public/UNIDATA/Unihan.zip>
;
; 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
--- a/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-trad.tec
+++ b/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-trad.tec
Binary files 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 <leoliu.pku@gmail.com>
Qing Lee <sobenlee@gmail.com>
- 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).
%<fntef> {xeCJKfntef}
%<listings> {xeCJK-listings}
%<xunicode> {xunicode-addon}
- {\ExplFileDate}{3.3.2}{\ExplFileDescription}
+ {\ExplFileDate}{3.3.3}{\ExplFileDescription}
%<xunextra>\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 <leoliu.pku@gmail.com>
%% Qing Lee <sobenlee@gmail.com>
%%
-%% 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 <leoliu.pku@gmail.com>
Qing Lee <sobenlee@gmail.com>
- 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 <leoliu.pku@gmail.com>
%% Qing Lee <sobenlee@gmail.com>
%%
-%% 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 <sobenlee@gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx 2667062 2016-02-01 12:02:59 +0800 Qing Lee <sobenlee@gmail.com> $
{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 <sobenlee@gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx 2667062 2016-02-01 12:02:59 +0800 Qing Lee <sobenlee@gmail.com> $
{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 <leoliu.pku@gmail.com>
%% Qing Lee <sobenlee@gmail.com>
%%
-%% 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 <sobenlee@gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx 2667062 2016-02-01 12:02:59 +0800 Qing Lee <sobenlee@gmail.com> $
{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 <leoliu.pku@gmail.com>
%% Qing Lee <sobenlee@gmail.com>
%%
-%% 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 <sobenlee@gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx 2667062 2016-02-01 12:02:59 +0800 Qing Lee <sobenlee@gmail.com> $
{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 <leoliu.pku@gmail.com>
%% Qing Lee <sobenlee@gmail.com>
%%
-%% 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 <sobenlee@gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx 2667062 2016-02-01 12:02:59 +0800 Qing Lee <sobenlee@gmail.com> $
{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 <leoliu.pku@gmail.com>
%% Qing Lee <sobenlee@gmail.com>
%%
-%% 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 <sobenlee@gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx 2667062 2016-02-01 12:02:59 +0800 Qing Lee <sobenlee@gmail.com> $
{extra definition for xunicode}
\ProvidesExplFile
{xunicode-extra.def}
- {\ExplFileDate}{3.3.2}{\ExplFileDescription}
+ {\ExplFileDate}{3.3.3}{\ExplFileDescription}
\ExplSyntaxOff
\DeclareUTFComposite\textsuperscript
\DeclareUTFComposite\textsubscript