summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-05-15 21:47:05 +0000
committerKarl Berry <karl@freefriends.org>2015-05-15 21:47:05 +0000
commitff006c2d366e4f0f3503a131959ab1ae04ea5e5f (patch)
tree5bd1fb5973b570c58af7743d199882d28b2a17fd
parentda5eaf8777934443b5a33ff8ed1d8c195c1e3034 (diff)
xecjk (15may15)
git-svn-id: svn://tug.org/texlive/trunk@37409 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/README4
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-CM.tex (renamed from Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-IVS.tex)6
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdfbin1320714 -> 1332344 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/xunicode-combine-marks.tex (renamed from Master/texmf-dist/doc/xelatex/xecjk/example/xunicode-combine-marks.tex)0
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/xunicode-commands.tex (renamed from Master/texmf-dist/doc/xelatex/xecjk/example/xunicode-commands.tex)0
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.pdfbin344859 -> 348358 bytes
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.tex (renamed from Master/texmf-dist/doc/xelatex/xecjk/example/xunicode-symbols.tex)0
-rw-r--r--Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/full-stop.map1
-rw-r--r--Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/fullwidth-stop.map1
-rw-r--r--Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-simp.map13
-rw-r--r--Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-simp.tecbin35064 -> 35008 bytes
-rw-r--r--Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-trad.map51
-rw-r--r--Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/han-trad.tecbin34515 -> 34434 bytes
-rw-r--r--Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx590
-rw-r--r--Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins120
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty106
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg (renamed from Master/texmf-dist/tex/xelatex/xecjk/config/xeCJK.cfg)4
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty182
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty14
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty24
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def14
21 files changed, 710 insertions, 420 deletions
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/README b/Master/texmf-dist/doc/xelatex/xecjk/README
index 0d48976eddd..6145bc6f7b7 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/README
+++ b/Master/texmf-dist/doc/xelatex/xecjk/README
@@ -30,7 +30,7 @@ This package consists of the file xeCJK.dtx,
xeCJK-example-CJKfntef.tex,
xeCJK-example-punctstyle.tex,
xeCJK-example-verbatim.tex,
- xeCJK-example-IVS.tex,
+ xeCJK-example-CM.tex,
xeCJK-example-listings.tex,
xunicode-symbols.tex,
xunicode-commands.tex,
@@ -44,7 +44,7 @@ This package consists of the file xeCJK.dtx,
If you are interested in the process of development you may observe
- http://code.google.com/p/ctex-kit/updates/list
+ https://github.com/CTeX-org/ctex-kit
Author:
Wenchang Sun <sunwch@nankai.edu.cn>
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-IVS.tex b/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-CM.tex
index 8ede24432de..9d8ba25dc91 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-IVS.tex
+++ b/Master/texmf-dist/doc/xelatex/xecjk/example/xeCJK-example-CM.tex
@@ -1,10 +1,10 @@
%%
-%% This is file `xeCJK-example-IVS.tex',
+%% This is file `xeCJK-example-CM.tex',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
-%% xeCJK.dtx (with options: `ex-IVS')
+%% xeCJK.dtx (with options: `ex-cm')
%%
\documentclass{article}
\usepackage{xeCJK}
@@ -39,4 +39,4 @@
\end{document}
%%
%%
-%% End of file `xeCJK-example-IVS.tex'.
+%% End of file `xeCJK-example-CM.tex'.
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf b/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf
index f9b34dbc5f0..402979e9811 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/example/xunicode-combine-marks.tex b/Master/texmf-dist/doc/xelatex/xecjk/xunicode-combine-marks.tex
index 26da502dbbf..26da502dbbf 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/example/xunicode-combine-marks.tex
+++ b/Master/texmf-dist/doc/xelatex/xecjk/xunicode-combine-marks.tex
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/example/xunicode-commands.tex b/Master/texmf-dist/doc/xelatex/xecjk/xunicode-commands.tex
index 8688f11ff18..8688f11ff18 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/example/xunicode-commands.tex
+++ b/Master/texmf-dist/doc/xelatex/xecjk/xunicode-commands.tex
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.pdf b/Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.pdf
index 8af7a6431a0..2620c9fd7f2 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/example/xunicode-symbols.tex b/Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.tex
index afc5f10b1a9..afc5f10b1a9 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/example/xunicode-symbols.tex
+++ b/Master/texmf-dist/doc/xelatex/xecjk/xunicode-symbols.tex
diff --git a/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/full-stop.map b/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/full-stop.map
index 11c7ae3af62..6f38a7b3eda 100644
--- a/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/full-stop.map
+++ b/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/full-stop.map
@@ -1,4 +1,5 @@
; TECkit mapping for conversion of `FULLWIDTH FULL STOP' to `IDEOGRAPHIC FULL STOP'
+;
LHSName "FULLWIDTH FULL STOP"
RHSName "IDEOGRAPHIC FULL STOP"
diff --git a/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/fullwidth-stop.map b/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/fullwidth-stop.map
index 76f5bc3c34f..0b030edb532 100644
--- a/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/fullwidth-stop.map
+++ b/Master/texmf-dist/fonts/misc/xetex/fontmapping/xecjk/fullwidth-stop.map
@@ -1,4 +1,5 @@
; TECkit mapping for conversion of `IDEOGRAPHIC FULL STOP' to `FULLWIDTH FULL STOP'
+;
LHSName "IDEOGRAPHIC FULL STOP"
RHSName "FULLWIDTH FULL STOP"
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 77c537bc40c..18d75642e5e 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,11 +1,13 @@
; 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
+;
-LHSName "traditional"
-RHSName "simplified"
-LHSDescription "Unicode 6.2.0 traditional Chinese characters"
-RHSDescription "Unicode 6.2.0 simplified Chinese characters"
+LHSName "traditional"
+RHSName "simplified"
pass(Unicode)
@@ -2898,6 +2900,7 @@ U+9F95 <> U+9F9B
U+9F9C <> U+9F9F
U+9FAD <> U+29A0E
U+9FAF <> U+28C46
+U+9FC1 <> U+4724
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 066dc1bd832..0533c759144 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 7d02ac98fa0..0c9ada6b895 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
@@ -1,11 +1,13 @@
; TECkit mapping for conversion of simplified Chinese characters to traditional 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
+;
-LHSName "simplified"
-RHSName "traditional"
-LHSDescription "Unicode 6.2.0 simplified Chinese characters"
-RHSDescription "Unicode 6.2.0 traditional Chinese characters"
+LHSName "simplified"
+RHSName "traditional"
pass(Unicode)
@@ -87,6 +89,7 @@ U+464A <> U+27735
U+464C <> U+4661
U+4653 <> U+896C
U+4723 <> U+8A22
+U+4724 <> U+9FC1
U+4725 <> U+27A59
U+4727 <> U+4700
U+4729 <> U+8B8C
@@ -147,7 +150,7 @@ U+4E34 <> U+81E8
U+4E3A <> U+70BA
U+4E3D <> U+9E97
U+4E3E <> U+8209
-U+4E48 <> U+9EBC
+U+4E48 <> U+5E7A
U+4E49 <> U+7FA9
U+4E4C <> U+70CF
U+4E50 <> U+6A02
@@ -192,7 +195,7 @@ U+4F27 <> U+5096
U+4F2A <> U+507D
U+4F2B <> U+4F47
U+4F53 <> U+9AD4
-U+4F59 <> U+9918
+U+4F59 <> U+4F59
U+4F63 <> U+50AD
U+4F65 <> U+50C9
U+4FA0 <> U+4FE0
@@ -240,7 +243,7 @@ U+5199 <> U+5BEB
U+519B <> U+8ECD
U+519C <> U+8FB2
U+51AF <> U+99AE
-U+51B2 <> U+885D
+U+51B2 <> U+6C96
U+51B3 <> U+6C7A
U+51B5 <> U+6CC1
U+51BB <> U+51CD
@@ -305,7 +308,7 @@ U+536B <> U+885B
U+5374 <> U+537B
U+5382 <> U+5EE0
U+5385 <> U+5EF3
-U+5386 <> U+6B77
+U+5386 <> U+66C6
U+5389 <> U+53B2
U+538B <> U+58D3
U+538C <> U+53AD
@@ -328,13 +331,13 @@ U+53D8 <> U+8B8A
U+53D9 <> U+6558
U+53E0 <> U+758A
U+53EA <> U+96BB
-U+53F0 <> U+81FA
+U+53F0 <> U+53F0
U+53F6 <> U+8449
U+53F7 <> U+865F
U+53F9 <> U+5606
U+53FD <> U+5630
U+540C <> U+8855
-U+540E <> U+5F8C
+U+540E <> U+540E
U+5411 <> U+66CF
U+5413 <> U+5687
U+5415 <> U+5442
@@ -504,7 +507,7 @@ U+5C1D <> U+5617
U+5C27 <> U+582F
U+5C34 <> U+5C37
U+5C38 <> U+5C4D
-U+5C3D <> U+76E1
+U+5C3D <> U+5118
U+5C42 <> U+5C64
U+5C43 <> U+5C53
U+5C49 <> U+5C5C
@@ -578,21 +581,21 @@ U+5F2F <> U+5F4E
U+5F39 <> U+5F48
U+5F3A <> U+5F37
U+5F52 <> U+6B78
-U+5F53 <> U+7576
+U+5F53 <> U+5679
U+5F55 <> U+9304
U+5F5D <> U+5F5E
U+5F5F <> U+5F60
U+5F66 <> U+5F65
U+5F68 <> U+5F72
U+5F7B <> U+5FB9
-U+5F81 <> U+5FB5
+U+5F81 <> U+5F81
U+5F84 <> U+5F91
U+5F95 <> U+5FA0
U+5FA1 <> U+79A6
U+5FB5 <> U+5FB5
U+5FC6 <> U+61B6
U+5FCF <> U+61FA
-U+5FD7 <> U+8A8C
+U+5FD7 <> U+5FD7
U+5FE7 <> U+6182
U+5FFE <> U+613E
U+6000 <> U+61F7
@@ -634,7 +637,7 @@ U+60EF <> U+6163
U+6120 <> U+614D
U+6124 <> U+61A4
U+6126 <> U+6192
-U+613F <> U+9858
+U+613F <> U+613F
U+6151 <> U+61FE
U+61D1 <> U+61E3
U+61D2 <> U+61F6
@@ -761,7 +764,7 @@ U+6769 <> U+69AA
U+6770 <> U+5091
U+677E <> U+9B06
U+677F <> U+95C6
-U+6781 <> U+6975
+U+6781 <> U+6781
U+6784 <> U+69CB
U+679E <> U+6A05
U+67A2 <> U+6A1E
@@ -1111,7 +1114,7 @@ U+7859 <> U+78D1
U+785A <> U+7904
U+786E <> U+78BA
U+7875 <> U+78E0
-U+7877 <> U+9E7C
+U+7877 <> U+7906
U+788D <> U+7919
U+789B <> U+78E7
U+789C <> U+78E3
@@ -1190,7 +1193,7 @@ U+7CAA <> U+7CDE
U+7CAE <> U+7CE7
U+7CC1 <> U+7CDD
U+7CC7 <> U+9931
-U+7CFB <> U+7E6B
+U+7CFB <> U+4FC2
U+7D27 <> U+7DCA
U+7D2F <> U+7E8D
U+7D77 <> U+7E36
@@ -1377,7 +1380,7 @@ U+80C0 <> U+8139
U+80C1 <> U+8105
U+80C6 <> U+81BD
U+80DC <> U+52DD
-U+80E1 <> U+9B0D
+U+80E1 <> U+885A
U+80E7 <> U+6727
U+80E8 <> U+8156
U+80EA <> U+81DA
@@ -1385,7 +1388,7 @@ U+80EB <> U+811B
U+80F6 <> U+81A0
U+8109 <> U+8108
U+810D <> U+81BE
-U+810F <> U+9AD2
+U+810F <> U+81DF
U+8110 <> U+81CD
U+8111 <> U+8166
U+8113 <> U+81BF
@@ -1446,7 +1449,7 @@ U+835D <> U+8434
U+835E <> U+854E
U+835F <> U+8588
U+8360 <> U+85BA
-U+8361 <> U+8569
+U+8361 <> U+76EA
U+8363 <> U+69AE
U+8364 <> U+8477
U+8365 <> U+6ECE
@@ -1525,7 +1528,7 @@ U+86F3 <> U+8784
U+86F4 <> U+8810
U+8715 <> U+86FB
U+8717 <> U+8778
-U+8721 <> U+881F
+U+8721 <> U+8721
U+8747 <> U+8805
U+8748 <> U+87C8
U+8749 <> U+87EC
@@ -1933,7 +1936,7 @@ U+9171 <> U+91AC
U+917D <> U+91C5
U+917E <> U+91C3
U+917F <> U+91C0
-U+91C7 <> U+63A1
+U+91C7 <> U+57F0
U+91CA <> U+91CB
U+91CC <> U+88E1
U+9274 <> U+9452
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 3b28011319b..d4dcaea918e 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 d5fbd5ef710..4d90a151a17 100644
--- a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
+++ b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
@@ -38,7 +38,7 @@ This package consists of the file xeCJK.dtx,
xeCJK-example-CJKfntef.tex,
xeCJK-example-punctstyle.tex,
xeCJK-example-verbatim.tex,
- xeCJK-example-IVS.tex,
+ xeCJK-example-CM.tex,
xeCJK-example-listings.tex,
xunicode-symbols.tex,
xunicode-commands.tex,
@@ -52,7 +52,7 @@ This package consists of the file xeCJK.dtx,
If you are interested in the process of development you may observe
- http://code.google.com/p/ctex-kit/updates/list
+ https://github.com/CTeX-org/ctex-kit
Author:
Wenchang Sun <sunwch@nankai.edu.cn>
@@ -90,13 +90,52 @@ CJK scripts fonts (TrueType or OpenType).
%</internal>
%<*install>
+\newread\inputcheck
+\openin\inputcheck=xeCJK.ver
+\ifeof\inputcheck
+ \def\xeCJKPutVersion{\string\GetIdInfo$Id$}
+\else
+ \input xeCJK.ver
+\fi
+\closein\inputcheck
+
\input l3docstrip.tex
+
+\def\checkOption<#1{%
+ \ifcase
+ \ifx*#10\else \ifx/#11\else
+ \ifx+#12\else \ifx-#13\else
+ \ifx<#14\else \ifx @#15\else
+ \ifx.#16\else
+ 7\fi\fi\fi\fi\fi\fi\fi\relax
+ \expandafter\starOption\or
+ \expandafter\slashOption\or
+ \expandafter\plusOption\or
+ \expandafter\minusOption\or
+ \expandafter\verbOption\or
+ \expandafter\moduleOption\or
+ \expandafter\expOption\or
+ \expandafter\doOption\fi
+ #1%
+}
+\def\expOption .#1>#2\endLine{%
+ \maybeMsg{<.#1 . >}%
+ \Evaluate{#1}%
+ \begingroup
+ \catcode`\\=0 \catcode`\{=1 \catcode`\}=2
+ \xdef\expandedLineStuff{\scantokens{#2\noexpand}}%
+ \endgroup
+ \def\do##1##2##3{%
+ \if1\Expr{##2}\StreamPut##1{\expandedLineStuff}\fi
+ }%
+ \activefiles
+}
+
\keepsilent
\askforoverwritefalse
+
\preamble
-$Id: xeCJK.dtx 750 2014-12-26 08:13:35Z sobenlee@gmail.com $
-$URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
-----------------------------------------------------------------
Author:
Wenchang Sun <sunwch@nankai.edu.cn>
@@ -104,9 +143,9 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
Leo Liu <leoliu.pku@gmail.com>
Qing Lee <sobenlee@gmail.com>
- Copyright (C) 2007--2014 Wenchang Sun
- (C) 2009--2014 Leo Liu
- (C) 2012--2014 Qing Lee
+ Copyright (C) 2007--2015 Wenchang Sun
+ (C) 2009--2015 Leo Liu
+ (C) 2012--2015 Qing Lee
This file may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -144,7 +183,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
xeCJK-example-CJKfntef.tex,
xeCJK-example-punctstyle.tex,
xeCJK-example-verbatim.tex,
- xeCJK-example-IVS.tex,
+ xeCJK-example-CM.tex,
xeCJK-example-listings.tex,
xunicode-symbols.tex,
xunicode-commands.tex,
@@ -161,35 +200,36 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\declarepostamble\emptypostamble
\endpostamble
-\generate{
- \usedir{source/xelatex/xecjk}
- \file{xeCJK.ins}{\from{\jobname.dtx}{install}}
- \usedir{tex/xelatex/xecjk}
- \file{xeCJK.sty}{\from{\jobname.dtx}{package}}
- \file{xeCJKfntef.sty}{\from{\jobname.dtx}{fntef}}
- \file{xeCJK-listings.sty}{\from{\jobname.dtx}{listings}}
- \file{xunicode-addon.sty}{\from{\jobname.dtx}{xunicode}}
- \file{xunicode-extra.def}{\from{\jobname.dtx}{xunextra}}
- \usepreamble\emptypreamble
- \usepostamble\emptypostamble
- \usedir{tex/xelatex/xecjk/config}
- \file{xeCJK.cfg}{\from{\jobname.dtx}{config}}
- \usedir{doc/xelatex/xecjk/example}
- \file{xeCJK-example-autofake.tex}{\from{\jobname.dtx}{ex-autofake}}
- \file{xeCJK-example-fallback.tex}{\from{\jobname.dtx}{ex-fallback}}
- \file{xeCJK-example-subCJKblock.tex}{\from{\jobname.dtx}{ex-block}}
- \file{xeCJK-example-CJKecglue.tex}{\from{\jobname.dtx}{ex-ecglue}}
- \file{xeCJK-example-checksingle.tex}{\from{\jobname.dtx}{ex-single}}
- \file{xeCJK-example-CJKfntef.tex}{\from{\jobname.dtx}{ex-fntef}}
- \file{xeCJK-example-punctstyle.tex}{\from{\jobname.dtx}{ex-punctstyle}}
- \file{xeCJK-example-verbatim.tex}{\from{\jobname.dtx}{ex-verb}}
- \file{xeCJK-example-IVS.tex}{\from{\jobname.dtx}{ex-IVS}}
- \file{xeCJK-example-listings.tex}{\from{\jobname.dtx}{ex-listings}}
- \file{xunicode-symbols.tex}{\from{\jobname.dtx}{xunicode-symbols}}
- \nopreamble\nopostamble
- \usedir{doc/xelatex/xecjk}
- \file{README.txt}{\from{\jobname.dtx}{readme}}
-}
+\generate
+ {
+ \usedir{source/xelatex/xecjk}
+ \file{xeCJK.ins} {\from{\jobname.dtx}{install}}
+ \usedir{tex/xelatex/xecjk}
+ \file{xeCJK.sty} {\from{\jobname.dtx}{package}}
+ \file{xeCJKfntef.sty} {\from{\jobname.dtx}{fntef}}
+ \file{xeCJK-listings.sty} {\from{\jobname.dtx}{listings}}
+ \file{xunicode-addon.sty} {\from{\jobname.dtx}{xunicode}}
+ \file{xunicode-extra.def} {\from{\jobname.dtx}{xunextra}}
+ \usepreamble\emptypreamble
+ \usepostamble\emptypostamble
+ \usedir{tex/xelatex/xecjk/config}
+ \file{xeCJK.cfg} {\from{\jobname.dtx}{config}}
+ \usedir{doc/xelatex/xecjk/example}
+ \file{xeCJK-example-autofake.tex} {\from{\jobname.dtx}{ex-autofake}}
+ \file{xeCJK-example-fallback.tex} {\from{\jobname.dtx}{ex-fallback}}
+ \file{xeCJK-example-subCJKblock.tex} {\from{\jobname.dtx}{ex-block}}
+ \file{xeCJK-example-CJKecglue.tex} {\from{\jobname.dtx}{ex-ecglue}}
+ \file{xeCJK-example-checksingle.tex} {\from{\jobname.dtx}{ex-single}}
+ \file{xeCJK-example-CJKfntef.tex} {\from{\jobname.dtx}{ex-fntef}}
+ \file{xeCJK-example-punctstyle.tex} {\from{\jobname.dtx}{ex-punctstyle}}
+ \file{xeCJK-example-verbatim.tex} {\from{\jobname.dtx}{ex-verb}}
+ \file{xeCJK-example-CM.tex} {\from{\jobname.dtx}{ex-cm}}
+ \file{xeCJK-example-listings.tex} {\from{\jobname.dtx}{ex-listings}}
+ \file{xunicode-symbols.tex} {\from{\jobname.dtx}{xunicode-symbols}}
+ \nopreamble\nopostamble
+ \usedir{doc/xelatex/xecjk}
+ \file{README.txt} {\from{\jobname.dtx}{readme}}
+ }
\endbatchfile
%</install>
@@ -201,7 +241,12 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
%</!config&!xunextra>
-\GetIdInfo$Id: xeCJK.dtx 750 2014-12-26 08:13:35Z sobenlee@gmail.com $
+%<.!driver>\xeCJKPutVersion
+%<*driver>
+\InputIfFileExists{xeCJK.ver}{}{
+ \def\xeCJKGetVersionInfo{\GetIdInfo$Id$}}
+\xeCJKGetVersionInfo
+%</driver>
%<*driver|package>
{Typesetting CJK scripts with XeLaTeX}
%</driver|package>
@@ -223,7 +268,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%<fntef> {xeCJKfntef}
%<listings> {xeCJK-listings}
%<xunicode> {xunicode-addon}
- {\ExplFileDate}{3.3.0}{\ExplFileDescription}
+ {\ExplFileDate}{3.3.2}{\ExplFileDescription}
%<xunextra>\ExplSyntaxOff
%<*driver>
\let\xeCJKrevnum\ExplFileVersion
@@ -272,10 +317,9 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\AtBeginDocument{\DeleteShortVerb{\"}\MakeShortVerb{\|}}
\def\contentsname{目录}
\DeclareUrlCommand\email{\def\UrlLeft##1\UrlRight{\href{mailto:##1}{##1}}}
-\def\ctexkit{\href{http://code.google.com/p/ctex-kit/}{\texttt{ctex-kit}}}
+\def\ctexkit{\href{https://github.com/CTeX-org/ctex-kit/}{\texttt{ctex-kit}}}
\def\ctexkitrev#1{%
- \href{http://code.google.com/p/ctex-kit/source/detail?r=#1}
- {\texttt{ctex-kit} rev#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}}}}%
@@ -401,8 +445,9 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \changes{v3.2.3}{2013/06/07}{提供四个 TECkit 映射文件用于句号转换和简繁互换。}
% \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 更新简繁汉字映射。}
%
-% \CheckSum{9717}
+% \CheckSum{9799}
% \GetFileInfo{\jobname.dtx}
%
% \title{\bfseries\pkg{xeCJK} 宏包}
@@ -583,6 +628,14 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% 来说也不能正确处理。
% \end{function}
%
+% \begin{function}[added=2015-04-08]{WidowPenalty}
+% \begin{syntax}
+% WidowPenalty = \Arg{penalty|(10000)}
+% \end{syntax}
+% 使用 \texttt{CheckSingle} 选项后,设置段末三个汉字之间的 penalty。
+% 初始值为 $10000$,即禁止在它们之间折行。
+% \end{function}
+%
% \begin{function}[added=2012-12-06]{PlainEquation}
% \begin{syntax}
% PlainEquation = \meta{\TFF}
@@ -2122,34 +2175,51 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%
% \begin{macro}[internal]{\xeCJK_token_value_charcode:N}
% \changes{v3.2.4}{2013/06/30}{考虑 \texttt{charcode} 超出 BMP 的情况。}
+% \changes{v3.3.1}{2015/05/08}{\texttt{0.99992} 版修复了 \tn{meaning} 的 Bug。}
% 当记号 |#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} 对于超出 BMP 的字符,会返回两个字符,分别对应于其 UTF-16 编码的
-% 首尾代理。\footnote{参见 \url{http://tug.org/pipermail/xetex/2013-June/024543.html}。}
+% 提供的原语设置 \texttt{mathcode}。\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
+% \footnote{参见\url{http://tug.org/pipermail/xetex/2015-May/025941.html}}。
% \begin{macrocode}
\cs_new_nopar:Npn \xeCJK_token_value_charcode:N #1
- { \exp_after:wN \@@_token_value_charcode:w \token_to_meaning:N #1 \q_stop }
-\fp_compare:nNnTF { \int_use:N \xetex_XeTeXversion:D \XeTeXrevision } > { 0.9998 }
- {
- \cs_new_nopar:Npn \@@_token_value_charcode:w #1 ~ #2 ~ #3#4 \q_stop
- {
- \int_eval:n
- {
- \tl_if_empty:nTF {#4}
- { `#3 }
- { ( `#3 - "D800 ) * "400 + ( `#4 - "DC00 ) + "10000 }
- }
- }
- \cs_new_eq:NN \xeCJK_xetex_mathcode:w \Umathcode
- }
- {
- \cs_new_nopar:Npn \@@_token_value_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
- }
+ { \exp_after:wN \@@_get_charcode:w \token_to_meaning:N #1 \q_stop }
+\group_begin:
+ \cs_set:Npn \@@_tmp:w #1 ~ #2 ~ #3#4#5 \q_stop
+ {
+ \tl_if_empty:nTF { #4#5 }
+ {
+ \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}
+ {
+ \cs_new_nopar:Npn \@@_get_charcode:w ##1 ~ ##2 ~ ##3##4 \q_stop
+ {
+ \int_eval:n
+ {
+ \tl_if_empty:nTF { ##4 }
+ { `##3 }
+ { ( `##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
+ }
+ }
+ }
+ \exp_after:wN \@@_tmp:w \token_to_meaning:N ^^^^^20000 { } \q_stop
+\group_end:
% \end{macrocode}
% \end{macro}
%
@@ -2265,10 +2335,11 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \end{macro}
%
% \changes{v3.2.0}{2013/05/20}{增加 \texttt{IVS} 字符类用于处理异体字选择符。}
+% \changes{v3.3.1}{2015/01/22}{\texttt{IVS} 字符类更名为 \texttt{CM}。}
%
% \pkg{xeCJK} 需要以下字符类别用于字符输出。其中 |Default|、|CJK|、|FullLeft|、
% |FullRight|、|Boundary| 为 \XeTeX\ 中预定义的类别,\pkg{xeCJK} 新增加了\
-% |HalfLeft|、|HalfRight|、|NormalSpace| 和 |IVS|。其中异体字选择符
+% |HalfLeft|、|HalfRight|、|NormalSpace| 和 |CM|。其中异体字选择符
% (Ideographic Variation Selectors)\footnote{\url{http://www.unicode.org/reports/tr37/}}
% 需要 \XeTeX\ |0.9999.0| 以上的版本^^A
% \footnote{\url{http://tug.org/pipermail/xetex/2013-March/024118.html}}和相关字体的支持。
@@ -2284,7 +2355,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% |HalfRight| & 半角右标点 & , . ? ) ] \} \\
% |NormalSpace| & 前后原始间距的符号 & / \\
% |Boundary| & 边界 & 空格 \\
-% |IVS| & 异体字选择符 & “回字有四样写法”\\
+% |CM| & 组合标识 & 异体字选择符\\
% |HangulJamo| & 朝鲜文字母 & |ᄻ||ᆟ||ᇫ|\\
% \bottomrule
% \end{tabular}
@@ -2303,13 +2374,13 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%
% \changes{v3.2.15}{2014/11/10}{增加 \texttt{HangulJamo} 字符类。}
%
-% \begin{macro}[internal]{HalfLeft,HalfRight,NormalSpace,IVS,HangulJamo}
+% \begin{macro}[internal]{HalfLeft,HalfRight,NormalSpace,CM,HangulJamo}
% 新增西文半角左/右标点、前后原始间距的符号和异体字选择符类。
% \begin{macrocode}
\xeCJK_new_class:n { HalfLeft }
\xeCJK_new_class:n { HalfRight }
\xeCJK_new_class:n { NormalSpace }
-\xeCJK_new_class:n { IVS }
+\xeCJK_new_class:n { CM }
\xeCJK_new_class:n { HangulJamo }
% \end{macrocode}
% \end{macro}
@@ -2430,7 +2501,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%
% \begin{macro}[var,internal]{\c_@@_CJ_chars_clist}
% Conditional Japanese Starter (CJ)。这类字符的禁则是可选的^^A
-% \footnote{\url{https://code.google.com/p/ctex-kit/issues/detail?id=166}},
+% \footnote{\url{https://github.com/CTeX-org/ctex-kit/issues/165}},
% 为实现的简单计,我们把它们归入 CJK 类,即没有禁则。
% \PrintPunctList{CJ}{Conditional Japanese Starter}
% \begin{macrocode}
@@ -2603,13 +2674,30 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[var,internal]{\c_@@_IVS_chars_clist}
-% 包括日文假名浊点和异体字选择符。
+% \begin{macro}[var,internal]{\c_@@_CM_chars_clist}
+% \changes{v3.3.1}{2015/01/22}{补充音调符号。}
+% 包括日文假名浊点和异体字选择符。组合标识是最好是归入 256 类,即透明类,不会影响
+% 状态。但也会产生一定问题。比如下面的例子,位于行尾的“二”造成分组不匹配。
+% \begin{verbatim}
+% \XeTeXinterchartokenstate=1
+% \XeTeXcharclass`二=256
+% \XeTeXinterchartoks 255 1 = {\bgroup}
+% \XeTeXinterchartoks 1 255 = {\egroup}
+% \XeTeXinterchartoks 1 1 = {x}
+% \font\zhfont="SimSun"
+% \zhfont
+% 一二三二
+% \bye
+% \end{verbatim}
% \begin{macrocode}
-\clist_const:Nn \c_@@_IVS_chars_clist
+\clist_const:Nn \c_@@_CM_chars_clist
{
% \end{macrocode}
% \begin{itemize}[nosep,leftmargin=0pt]
+% \item Diacritics (音调符号)
+% \begin{macrocode}
+ "302A -> "302F ,
+% \end{macrocode}
% \item 日文假名浊点
% \begin{macrocode}
"3099 -> "309A ,
@@ -2670,7 +2758,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\tl_const:cn { \@@_CJK_class_tl:c { \@@_class_csname:n {#1} } } {#1}
}
\clist_map_function:nN
- { CJK , FullLeft , FullRight , IVS , HangulJamo } \@@_save_CJK_class:n
+ { CJK , FullLeft , FullRight , CM , HangulJamo } \@@_save_CJK_class:n
% \end{macrocode}
% \end{macro}
%
@@ -2708,7 +2796,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
{ \xeCJK_class_num:n {#1} }
}
}
- \xeCJK_set_char_class:nnn { "3099 } { "309A } { \xeCJK_class_num:n { IVS } }
+ \xeCJK_set_char_class:nnn { "3099 } { "309A } { \xeCJK_class_num:n { CM } }
}
\NewDocumentCommand \@@_set_char_class_aux:Nnw
{ m > { \SplitArgument { 1 } { -> } } m } { #1 #2 }
@@ -2810,7 +2898,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
{
\xeCJK_declare_char_class:nV { CJK } \c_@@_CJK_chars_clist
\xeCJK_declare_char_class:nV { NormalSpace } \c_@@_NormalSpace_chars_clist
- \xeCJK_declare_char_class:nV { IVS } \c_@@_IVS_chars_clist
+ \xeCJK_declare_char_class:nV { CM } \c_@@_CM_chars_clist
\xeCJK_declare_char_class:nV { HangulJamo } \c_@@_HangulJamo_chars_clist
\xeCJKResetPunctClass
}
@@ -2840,7 +2928,17 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \end{macro}
%
% \begin{macro}[internal]{\xeCJK_clear_inter_class_toks:nn}
-% 清除相邻类别之间的内容。
+% 清除相邻类别之间的内容。注意,直接赋空值可能会导致 \XeTeX 崩溃。例如
+% \begin{verbatim}
+% \XeTeXinterchartokenstate = 1
+% \XeTeXcharclass`A=10
+% \XeTeXinterchartoks 10 10 = {xx}
+% \begingroup
+% \XeTeXinterchartoks 10 10 = {} AA
+% \endgroup
+% \bye
+% \end{verbatim}
+% 如果把上述例子中的分组 \tn{begingroup} 和 \tn{endgroup} 去掉,则结果正常,甚为怪异。
% \begin{macrocode}
\cs_new_protected_nopar:Npn \xeCJK_clear_inter_class_toks:nn #1#2
{ \xeCJK_inter_class_toks:nnn {#1} {#2} { \prg_do_nothing: } }
@@ -2877,8 +2975,13 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\cs_new_protected_nopar:Npn \xeCJK_copy_inter_class_toks:nnnn #1#2#3#4
{
\tl_set:Nx \l_@@_tmp_tl { \xeCJK_get_inter_class_toks:nn {#3} {#4} }
- \tl_if_empty:NF \l_@@_tmp_tl
- { \xeCJK_inter_class_toks:nnx {#1} {#2} { \exp_not:V \l_@@_tmp_tl } }
+ \tl_if_empty:NTF \l_@@_tmp_tl
+ {
+ \tl_set:Nx \l_@@_tmp_tl { \xeCJK_get_inter_class_toks:nn {#1} {#2} }
+ \tl_if_empty:NF \l_@@_tmp_tl
+ { \xeCJK_clear_inter_class_toks:nn {#1} {#2} }
+ }
+ { \xeCJK_inter_class_toks:nnx {#1} {#2} { \exp_not:o \l_@@_tmp_tl } }
}
% \end{macrocode}
% \end{macro}
@@ -2892,7 +2995,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\tl_if_empty:NF \l_@@_tmp_tl
{
\tl_replace_all:Nnn \l_@@_tmp_tl {#3} {#4}
- \xeCJK_inter_class_toks:nnx {#1} {#2} { \exp_not:V \l_@@_tmp_tl }
+ \xeCJK_inter_class_toks:nnx {#1} {#2} { \exp_not:o \l_@@_tmp_tl }
}
}
% \end{macrocode}
@@ -2914,7 +3017,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \begin{tabular}{l*9c}
% \toprule
% & |Default| & |CJK| & |FullL| & |FullR| & |HalfL|
-% & |HalfR| & |Normal| & |Bound| & |IVS| \\ \midrule
+% & |HalfR| & |Normal| & |Bound| & |CM| \\ \midrule
% |Default|
% &
% & \tokslink{def-cjk}
@@ -2924,7 +3027,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% &
% &
% & \tokslink{def-bound}
-% & \tokslink{def-IVS}\\
+% & \tokslink{def-cm}\\
% |CJK|
% & \tokslink{def-cjk}
% & \tokslink{cjk-cjk}
@@ -2944,7 +3047,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% & \tokslink{def-cjk}
% & \tokslink{def-cjk}
% & \tokslink{fl-fr-bound}
-% & \tokslink{def-IVS}\\
+% & \tokslink{def-cm}\\
% |FullRight|
% & \tokslink{def-cjk}
% & \tokslink{fl-fr-others}
@@ -2954,7 +3057,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% & \tokslink{def-cjk}
% & \tokslink{def-cjk}
% & \tokslink{fl-fr-bound}
-% & \tokslink{def-IVS}\\
+% & \tokslink{def-cm}\\
% |HalfLeft|
% &
% & \tokslink{def-cjk}
@@ -2964,7 +3067,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% &
% &
% &
-% & \tokslink{def-IVS}\\
+% & \tokslink{def-cm}\\
% |HalfRight|
% &
% & \tokslink{def-cjk}
@@ -2974,7 +3077,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% &
% &
% & \tokslink{def-bound}
-% & \tokslink{def-IVS}\\
+% & \tokslink{def-cm}\\
% |NormalSpace|
% &
% & \tokslink{def-cjk}
@@ -2984,7 +3087,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% &
% &
% & \tokslink{ns-bound}
-% & \tokslink{def-IVS}\\
+% & \tokslink{def-cm}\\
% |Boundary|
% & \tokslink{bound-def}
% & \tokslink{bound-cjk}
@@ -2994,17 +3097,17 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% &
% & \tokslink{bound-ns}
% &
-% & \tokslink{def-IVS}\\
-% |IVS|
-% & \tokslink{def-IVS}
-% & \tokslink{def-IVS}
-% & \tokslink{def-IVS}
-% & \tokslink{def-IVS}
-% & \tokslink{def-IVS}
-% & \tokslink{def-IVS}
-% & \tokslink{def-IVS}
-% & \tokslink{def-IVS}
-% & \tokslink{def-IVS}\\
+% & \tokslink{def-cm}\\
+% |CM|
+% & \tokslink{def-cm}
+% & \tokslink{def-cm}
+% & \tokslink{def-cm}
+% & \tokslink{def-cm}
+% & \tokslink{def-cm}
+% & \tokslink{def-cm}
+% & \tokslink{def-cm}
+% & \tokslink{def-cm}
+% & \tokslink{def-cm}\\
% \bottomrule
% \end{tabular}
% \end{center}
@@ -3022,19 +3125,19 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \end{macrocode}
% \end{macro}
%
-% \hypertarget{def-IVS}{\texttt{IVS}} 字符类与 |CJK| 字符类基本相同,只是从 |CJK|
-% 转移到 |IVS| 时,不加入任何内容。
+% \hypertarget{def-cm}{\texttt{CM}} 字符类与 |CJK| 字符类基本相同,只是从 |CJK|
+% 转移到 |CM| 时,不加入任何内容。
% \begin{macrocode}
\AtEndOfPackage
{
\seq_map_inline:Nn \g_@@_class_seq
{
- \str_if_eq:nnTF {#1} { IVS }
- { \xeCJK_copy_inter_class_toks:nnnn { IVS } {#1} { CJK } { CJK } }
+ \str_if_eq:nnTF {#1} { CM }
+ { \xeCJK_copy_inter_class_toks:nnnn { CM } {#1} { CJK } { CJK } }
{
- \xeCJK_copy_inter_class_toks:nnnn { IVS } {#1} { CJK } {#1}
+ \xeCJK_copy_inter_class_toks:nnnn { CM } {#1} { CJK } {#1}
\str_if_eq:nnF {#1} { CJK }
- { \xeCJK_copy_inter_class_toks:nnnn {#1} { IVS } {#1} { CJK } }
+ { \xeCJK_copy_inter_class_toks:nnnn {#1} { CM } {#1} { CJK } }
}
}
}
@@ -3109,7 +3212,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\bool_if:nTF
{
\xeCJK_if_last_node_p:n { CJK } ||
- \xeCJK_if_last_node_p:n { CJK-nobreak }
+ \xeCJK_if_last_node_p:n { CJK-widow }
}
{ \xeCJK_remove_node: \CJKecglue }
{
@@ -3222,8 +3325,8 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
{ \xeCJK_if_last_node_p:n { CJK } || \xeCJK_if_last_node_p:n { CJK-space } }
{ \xeCJK_remove_node: \CJKglue }
{
- \xeCJK_if_last_node:nTF { CJK-nobreak }
- { \xeCJK_remove_node: \xeCJK_no_break: \CJKglue }
+ \xeCJK_if_last_node:nTF { CJK-widow }
+ { \xeCJK_remove_node: \xeCJK_widow_penalty: \CJKglue }
{
\bool_if:nTF
{
@@ -3315,7 +3418,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\xeCJK_declare_node:n { CJK-space }
\xeCJK_declare_node:n { default }
\xeCJK_declare_node:n { default-space }
-\xeCJK_declare_node:n { CJK-nobreak }
+\xeCJK_declare_node:n { CJK-widow }
\xeCJK_declare_node:n { normalspace }
% \end{macrocode}
% \end{macro}
@@ -4106,6 +4209,27 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \end{macrocode}
% \end{macro}
%
+% \changes{v3.3.1}{2015/04/08}{新选项 \texttt{WidowPenalty}。}
+%
+% \begin{macro}{WidowPenalty}
+% 设置段末汉字的 penalty,默认值是 $10000$。
+% \begin{macrocode}
+\keys_define:nn { xeCJK / options }
+ {
+ WidowPenalty .int_set:N = \l_@@_widow_penalty_int ,
+ WidowPenalty .default:n = { \c_ten_thousand }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\xeCJK_widow_penalty:}
+% 预防段末孤字而插入的 penalty,值为 \cs{l_@@_widow_penalty_int}。
+% \begin{macrocode}
+\cs_new_protected_nopar:Npn \xeCJK_widow_penalty:
+ { \tex_penalty:D \l_@@_widow_penalty_int }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}[internal]{\xeCJK_check_single:Nw}
% \begin{macrocode}
\cs_new_protected_nopar:Npn \xeCJK_check_single:Nw #1
@@ -4217,8 +4341,8 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
{
\peek_catcode:NTF \c_math_toggle_token
{
- \xeCJK_no_break: \@@_check_single_save:N #1
- \xeCJK_make_node:n { CJK-nobreak } #2 #4
+ \xeCJK_widow_penalty: \@@_check_single_save:N #1
+ \xeCJK_make_node:n { CJK-widow } #2 #4
}
{ \@@_check_single_save:N #1 #2#3#4 }
}
@@ -4231,6 +4355,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% {解决使用 \texttt{CheckSingle} 时,某些 \tn{CJKglue} 不能被正确加入的问题。}
%
% \begin{macro}[internal]{\xeCJK_check_single_cs:NNn}
+% \changes{v3.3.1}{2015/04/06}{补充可能遗漏的空格。}
% 在使用 \texttt{CheckSingle} 选项时,在 \package{tablists} 宏包定义的
% \env{tabenum} 环境中会出现下面的错误:
% \begin{verbatim}
@@ -4252,8 +4377,8 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
{ \group_align_safe_end: \use_iii:nnn }
{ \xeCJK_check_single_env:nnNn }
{
- \xeCJK_no_break: \@@_check_single_save:N #1
- \xeCJK_make_node:n { CJK-nobreak } #2
+ \xeCJK_widow_penalty: \@@_check_single_save:N #1
+ \xeCJK_make_node:n { CJK-widow } #2#3
}
{ \@@_check_single_save:N #1 #2#3 }
}
@@ -6251,15 +6376,17 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%
% \begin{macro}{LoadFandol}
% \changes{v3.2.10}{2014/03/01}{当没有设置字体时,使用 Fandol 字体系列。}
+% \changes{v3.3.1}{2015/04/08}{为方便 MacTeX 用户,Fandol 字体改用文件名。}
% \begin{macrocode}
\keys_define:nn { xeCJK / options }
{ LoadFandol .bool_gset:N = \g_@@_fandol_bool }
\cs_new_protected_nopar:Npn \@@_load_fandol:
{
\setCJKmainfont
- [ BoldFont = FandolSong-Bold , ItalicFont = FandolKai ] { FandolSong-Regular }
- \setCJKsansfont [ BoldFont = FandolHei-Bold ] { FandolHei-Regular }
- \setCJKmonofont { FandolFang }
+ [ Extension = .otf , BoldFont = FandolSong-Bold , ItalicFont = FandolKai-Regular ]
+ { FandolSong-Regular }
+ \setCJKsansfont [ Extension = .otf , BoldFont = FandolHei-Bold ] { FandolHei-Regular }
+ \setCJKmonofont [ Extension = .otf ] { FandolFang-Regular }
}
% \end{macrocode}
% \end{macro}
@@ -6919,6 +7046,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
PunctStyle = quanjiao ,
NewLineCS = { \par \[ } ,
EnvCS = { \begin \end } ,
+ WidowPenalty = \c_ten_thousand ,
NoBreakCS = { \footnote \footnotemark \nobreak } ,
KaiMingPunct = { ^^^^3002 ^^^^ff0e ^^^^ff1f ^^^^ff01 } ,
LongPunct = { ^^^^2014 ^^^^2015 ^^^^2500 ^^^^2025 ^^^^2026 } ,
@@ -7134,6 +7262,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% {解决汉字后紧跟 \tn{(}\texttt{...}\tn{)} 形式的行内数学公式时,不能加入间距的问题。}
% \changes{v3.2.6}{2013/08/03}{考虑 \pkg{ulem} 对 \tn{MakeRobust} 的不当定义。}
% \changes{v3.2.6}{2013/08/03}{考虑 \tn{math} 和 \tn{ensuremath}。}
+% \changes{v3.3.1}{2015/04/14}{兼容 \LaTeXe{} 2015。}
% \tn{(} 的在 \LaTeXe 中的定义是
% \begin{verbatim}
% \def\({\relax\ifmmode\@badmath\else$\fi}
@@ -7193,42 +7322,31 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
The~current~meaning~of~`#1'~is:\\
\iow_indent:n {#2}
}
-\@@_math_robust:N \(
-\@@_math_robust:N \)
-\@@_math_robust:N \math
-\@@_math_robust:N \endmath
-\@@_math_robust:N \ensuremath
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}[internal]{\[,\]}
-% \changes{v3.2.5}{2013/07/25}{解决 \pkg{fixltx2e} 和 \pkg{amsthm} 的冲突。}
-% 当 \pkg{amsmath} 没有在 \pkg{amsthm} 之前被调用时,\pkg{amsthm} 会展开 |\[|,
-% 并用 |$| 作为参数定界记号,相关代码为
-% \begin{verbatim}
-% \def\@tempa#1$#2#3\@nil{%
-% \def\[{#1$#2\def\@currenvir{displaymath}#3}%
-% }%
-% \expandafter\@tempa\[\@nil
-% \end{verbatim}
-% 而 \pkg{fixltx2e} 中使用了 |\MakeRobust\[|,使得将 |\[| 展开一次的内容中并
-% 不直接含有 |$|,从而造成了 \texttt{Runaway argument?} 的错误。可以在 \pkg{amsthm}
-% 之前引入 \pkg{amsmath},避免出现这个错误。我们下面用 \hologo{eTeX} 的 \tn{protected}
-% 来定义它。当然,如果之后只使用 \pkg{amsthm},那么 |\[| 会被修改,将不再是^^A
-% “健壮”的了。这也是上面 \cs{@@_math_robust:NN} 中还使用 \cs{scan_align_safe_stop:} 的原因。
-% \begin{macrocode}
-\bool_if:nF
+\cs_if_eq:NNTF \( \math
+ {
+ \@@_math_robust:N \(
+ \cs_set_eq:NN \math \(
+ }
+ {
+ \@@_math_robust:N \(
+ \@@_math_robust:N \math
+ }
+\cs_if_eq:NNTF \) \endmath
{
- \xeCJK_if_package_loaded_p:n { amsmath } ||
- \xeCJK_if_package_loaded_p:n { amsthm }
+ \@@_math_robust:N \)
+ \cs_set_eq:NN \endmath \)
}
{
- \@@_math_robust:N \[
- \@@_math_robust:N \]
+ \@@_math_robust:N \)
+ \@@_math_robust:N \endmath
}
+\@@_math_robust:N \ensuremath
% \end{macrocode}
% \end{macro}
%
+% \changes{v3.2.5}{2013/07/25}{解决 \pkg{fixltx2e} 和 \pkg{amsthm} 的冲突。}
+% \changes{v3.3.1}{2015/04/15}{删去 \pkg{fixltx2e} 和 \pkg{amsthm} 的冲突补丁。}
+%
% \begin{macro}[internal]{\nobreakspace}
% \changes{v3.1.2}{2013/01/01}
% {修正非 \tn{UTFencname} 编码下面 \pkg{xunicode} 重定义的 \tn{nobreakspace} 会失效的问题。}
@@ -7380,15 +7498,25 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%<@@=xeCJK>
% \end{macrocode}\egroup
%
+% \begin{macro}[internal]{\g_@@_xetex_allocator_int}
+% \changes{v3.3.1}{2015/04/14}{兼容 \LaTeXe{} 2015。}
+% \changes{v3.3.2}{2015/05/15}{\tn{xe@alloc@intercharclass} 总是有定义的。}
+% \LaTeXe{} 2015/01/01 接管了 \tn{newXeTeXintercharclass}。
+% \begin{macrocode}
+\cs_new_eq:NN \g_@@_xetex_allocator_int \xe@alloc@intercharclass
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}[internal]{\@@_set_others_toks:n}
% 简单处理与同样使用 \tn{XeTeXinterchartoks} 机制的宏包的兼容问题。
% \begin{macrocode}
\@@_after_end_preamble:n
{
\int_compare:nNnF
- { \c_three + \seq_count:N \g_@@_new_class_seq } = \xe@alloc@intercharclass
+ { \c_three + \seq_count:N \g_@@_new_class_seq } =
+ { \g_@@_xetex_allocator_int }
{
- \int_step_inline:nnnn \c_four \c_one \xe@alloc@intercharclass
+ \int_step_inline:nnnn \c_four \c_one \g_@@_xetex_allocator_int
{
\seq_if_in:NnF \g_@@_new_class_seq {#1}
{ \@@_set_others_toks:n {#1} }
@@ -7632,6 +7760,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% 为使用 \pkg{CJKnumb} 宏包而作一些处理。另外 \pkg{CJKnumb} 使用的是传统汉字“萬”
% 和“億”,我们在这里把它们修正为简体字。
% \changes{v3.2.10}{2014/03/01}{使用 \pkg{CJKnumb} 时,让 \tn{Unicode} 有定义。}
+% \changes{v3.3.1}{2015/05/08}{应用 \texttt{0.99992} 版的新原语 \tn{Ucharcat}。}
% \begin{macrocode}
\cs_new_protected:Npn \CJKaddEncHook #1#2
{
@@ -7650,14 +7779,22 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
{ \cs_new_eq:NN \Unicode \xeCJK_unicode_char:nn }
}
}
-\cs_new_protected_nopar:Npn \xeCJK_char_from_charcode:Nn #1#2
+\str_if_eq_x:nnTF
+ { \token_to_str:N \Ucharcat } { \token_to_meaning:N \Ucharcat }
{
- \group_begin:
- \char_set_lccode:nn { "4E00 } {#2}
- \tl_to_lowercase:n
+ \cs_new_protected_nopar:Npn \xeCJK_char_from_charcode:Nn #1#2
+ { \tl_const:Nx #1 { \Ucharcat \int_eval:n {#2} ~ \c_eleven } }
+ }
+ {
+ \cs_new_protected_nopar:Npn \xeCJK_char_from_charcode:Nn #1#2
{
- \group_end:
- \tl_const:Nn #1 { ^^^^4e00 }
+ \group_begin:
+ \char_set_lccode:nn { "4E00 } {#2}
+ \tex_lowercase:D
+ {
+ \group_end:
+ \tl_const:Nn #1 { ^^^^4e00 }
+ }
}
}
\cs_new_nopar:Npn \@@_calc_unicode:nn #1#2
@@ -7667,14 +7804,13 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \end{macrocode}
% \end{macro}
%
-% 最后引入本地配置文件。使用 \tn{@pushfilename} 和 \tn{@pushfilename} 是为了使
-% 配置文件可以不受 \hologo{LaTeX3} 语法环境的影响。
+% 最后引入本地配置文件。
% \begin{macrocode}
\bool_if:NT \g_@@_config_bool
{
- \@pushfilename
+ \ExplSyntaxOff
\file_input:n { \g_@@_config_name_tl .cfg }
- \@popfilename
+ \ExplSyntaxOn
}
% \end{macrocode}
%
@@ -9017,7 +9153,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
{
\tl_set_eq:NN \l_xeCJK_punct_style_tl \c_@@_punct_style_plain_tl
\l_@@_restore_listings_toks_tl
- \@@_listings_output_IVS:
+ \@@_listings_output_CM:
}
\lst@AddToHook { PreSet } { \bool_set_true:N \l_@@_listings_env_bool }
% \end{macrocode}
@@ -9027,21 +9163,32 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% {解决 \texttt{listings} 坏境中代码行号输出不正确的问题,并解决在其中跨页时对页眉
% 和页脚的影响。}
% \changes{v3.2.15}{2014/11/10}{修正 \texttt{breaklines} 无效的问题。}
+% \changes{v3.3.1}{2015/04/20}
+% {解决 \texttt{prebreak} 和 \texttt{postbreak} 功能失效的问题。}
% 为使代码行号结果正确,需要在 \tn{lst@numberstyle} 中恢复 \tn{XeTeXinterchartoks}。
% 在 \texttt{listings} 环境中换页时,对 \tn{XeTeXinterchartoks} 的修改会影响到
% 页眉和页脚,需要在 \tn{shipout} 盒子中恢复成正常定义。加入 \cs{tex_noindent:D}
% 是为了进入水平模式,防止汉字出现在首行的时候可能会产生额外空行。
+% \tn{lst@prebreak} 和 \tn{lst@postbreak} 是在 \tn{discretionary} 中直接输出的,
+% 应该恢复正常的 \tn{XeTeXinterchartoks}。
% \begin{macrocode}
\cs_new_protected_nopar:Npn \@@_listings_initial_hook:
{
\tex_noindent:D
- \bool_gset_false:N \g_@@_listings_IVS_bool
+ \bool_gset_false:N \g_@@_listings_CM_bool
\tl_put_left:Nn \lst@numberstyle { \l_@@_restore_listings_toks_tl }
\xeCJK_add_to_shipout:n { \l_@@_restore_listings_toks_tl }
\lst@ifbreaklines
\cs_set_eq:NN \@@_listings_CJK_toks_hook: \@@_listings_breaklines_toks:
+ \tl_if_empty:NF \lst@prebreak
+ { \tl_put_left:Nn \lst@prebreak { \l_@@_restore_listings_toks_tl } }
+ \tl_if_empty:NF \lst@postbreak
+ { \tl_put_left:Nn \lst@postbreak { \l_@@_restore_listings_toks_tl } }
\fi:
+ \int_set:Nn \l_@@_listings_max_char_int
+ { \lst@ifec 255 \else: 127 \fi: }
}
+\int_new:N \l_@@_listings_max_char_int
% \end{macrocode}
% \end{macro}
%
@@ -9051,32 +9198,42 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \begin{macrocode}
\cs_new_protected_nopar:Npn \@@_listings_toks_hook:
{
- \tl_set:Nx \l_@@_restore_listings_toks_tl
- {
- \@@_backup_inter_class_toks:nn { Boundary } { Default }
- \@@_backup_inter_class_toks:nn { Boundary } { CJK }
- \@@_backup_inter_class_toks:nn { Boundary } { IVS }
- \@@_backup_inter_class_toks:nn { Boundary } { HangulJamo }
- \@@_backup_inter_class_toks:nn { Boundary } { FullLeft }
- \@@_backup_inter_class_toks:nn { Boundary } { FullRight }
- }
- \seq_map_inline:Nn \g_@@_CJK_sub_class_seq
+ \tl_clear:N \l_@@_restore_listings_toks_tl
+ \seq_map_function:NN
+ \g_@@_class_seq \@@_backup_inter_class_toks:n
+ \seq_map_inline:Nn \g_@@_non_CJK_class_seq
{
- \tl_put_right:Nx \l_@@_restore_listings_toks_tl
- { \@@_backup_inter_class_toks:nn { Boundary } { CJK/##1 } }
+ \str_if_eq:nnF { ##1 } { Boundary }
+ {
+ \xeCJK_inter_class_toks:nnn { Boundary } { ##1 }
+ { \@@_listings_process_Default:nN { ##1 } }
+ }
}
- \xeCJK_inter_class_toks:nnn { Boundary } { Default }
- { \@@_listings_process_Default:N }
- \xeCJK_inter_class_toks:nnn { Boundary } { IVS }
- { \@@_listings_process_IVS:nN { \c_zero } }
+ \xeCJK_inter_class_toks:nnn { Boundary } { CM }
+ { \@@_listings_process_CM:nN { \c_zero } }
\@@_listings_CJK_toks_hook:
}
-\tl_new:N \l_@@_restore_listings_toks_tl
-\cs_new_nopar:Npn \@@_backup_inter_class_toks:nn #1#2
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\@@_backup_inter_class_toks:n}
+% 注意,给 \tn{XeTeXinterchartoks} 赋空值,会导致 \XeTeX 崩溃!
+% \begin{macrocode}
+\cs_new_protected_nopar:Npn \@@_backup_inter_class_toks:n #1
{
- \xeCJK_inter_class_toks:nnn {#1} {#2}
- { \xeCJK_get_inter_class_toks:nn {#1} {#2} }
+ \tl_set:Nx \l_@@_tmp_tl
+ { \xeCJK_get_inter_class_toks:nn { Boundary } {#1} }
+ \tl_put_right:Nx \l_@@_restore_listings_toks_tl
+ {
+ \xeCJK_inter_class_toks:nnn { Boundary } {#1}
+ {
+ \tl_if_empty:NTF \l_@@_tmp_tl
+ { \exp_not:N \prg_do_nothing: }
+ { \exp_not:o \l_@@_tmp_tl }
+ }
+ }
}
+\tl_new:N \l_@@_restore_listings_toks_tl
% \end{macrocode}
% \end{macro}
%
@@ -9118,17 +9275,42 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\@@_listings_process_Default:N,\@@_listings_process_CJK:nN}
+% \begin{macro}[internal]{\@@_listings_process_Default:nN}
% \changes{v3.2.3}{2013/06/08}{在 \texttt{listings} 坏境中对 \tn{charcode} 大于
% $255$ 的字符根据其 \tn{catcode} 区分 \texttt{letter} 和 \texttt{other}。}
+% \changes{v3.3.1}{2015/01/27}{对 \pkg{listings} 的字符扩展不影响到其符号表中的
+% 七位或八位字符。}
% 对于 \tn{charcode} 大于 $255$ 的字符,根据 \tn{catcode} 进行处理。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_listings_process_Default:N #1
+\cs_new_protected_nopar:Npn \@@_listings_process_Default:nN #1#2
{
- \token_if_letter:NTF #1
- { \lst@ProcessLetter #1 }
- { \lst@ProcessOther #1 }
+ \int_compare:nNnTF
+ { \xeCJK_token_value_charcode:N #2 } > \l_@@_listings_max_char_int
+ {
+ \token_if_letter:NTF #2
+ { \lst@ProcessLetter #2 }
+ { \lst@ProcessOther #2 }
+ }
+ { \@@_listings_output_Default:nN {#1} #2 }
}
+% \end{macrocode}
+% 输出时,要注意把对应的 \tn{XeTeXinterchartoks} 清空掉,否则会造成死循环。
+% \cs{scan_stop:} 是造边界,输出 \cs{group_end:}。
+% \begin{macrocode}
+\cs_new_protected_nopar:Npn \@@_listings_output_Default:nN #1#2
+ {
+ \group_begin:
+ \xeCJK_clear_inter_class_toks:nn { Boundary } {#1}
+ \xeCJK_inter_class_toks:nnn {#1} { Boundary } { \group_end: }
+ #2
+ \scan_stop:
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[internal]{\@@_listings_process_CJK:nN}
+% 对 CJK 字符类的处理。
+% \begin{macrocode}
\cs_new_protected_nopar:Npn \@@_listings_process_CJK:nN #1#2
{
\token_if_letter:NTF #2
@@ -9139,7 +9321,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \end{macro}
%
% \begin{macro}[internal]{\@@_listings_append:nN}
-% 普通 CJK 字符的宽度为一般基本宽度的两倍,IVS 类不增加宽度。这里有一个问题,
+% 普通 CJK 字符的宽度为一般基本宽度的两倍,CM 类不增加宽度。这里有一个问题,
% 对 CJK 字符类中的一些半角字符(例如半角日文假名)没有区分开。\pkg{listings} 通过
% 重定义 \tn{lst@Append} 将代码写入外部文件,因此需要保留。
% \begin{macrocode}
@@ -9277,35 +9459,35 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\@@_listings_process_IVS:nN}
-% \texttt{IVS} 类作为 \texttt{letter} 处理,不用增加 \tn{lst@length}。
+% \begin{macro}[internal]{\@@_listings_process_CM:nN}
+% \texttt{CM} 类作为 \texttt{letter} 处理,不用增加 \tn{lst@length}。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_listings_process_IVS:nN
+\cs_new_protected_nopar:Npn \@@_listings_process_CM:nN
{
\reverse_if:N \lst@ifflexible
- \bool_gset_true:N \g_@@_listings_IVS_bool
+ \bool_gset_true:N \g_@@_listings_CM_bool
\fi:
\@@_listings_process_letter:nN
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]{\@@_listings_output_IVS:}
+% \begin{macro}[internal]{\@@_listings_output_CM:}
% 在使用 \texttt{columns=fixed} 选项时,\pkg{listings} 会在输出盒子里的每个字符
-% 之间加入 \tn{hss},这就破坏了 \XeTeX 将基本字和 IVS 正确的组合起来。
+% 之间加入 \tn{hss},这就破坏了 \XeTeX 将基本字和组合标识正确的组合起来。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_listings_output_IVS:
+\cs_new_protected_nopar:Npn \@@_listings_output_CM:
{
\reverse_if:N \lst@ifflexible
- \bool_if:NT \g_@@_listings_IVS_bool
+ \bool_if:NT \g_@@_listings_CM_bool
{
- \bool_gset_false:N \g_@@_listings_IVS_bool
+ \bool_gset_false:N \g_@@_listings_CM_bool
\xeCJK_cs_clear:N \lst@FillOutputBox
\cs_set_eq:NN \CJKglue \tex_hss:D
}
\fi:
}
-\bool_new:N \g_@@_listings_IVS_bool
+\bool_new:N \g_@@_listings_CM_bool
% \end{macrocode}
% \end{macro}
%
@@ -9322,7 +9504,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\token_if_cs:NTF #3
{ #2#3 }
{
- \int_compare:nNnTF { `#3 } > { \lst@ifec 255 \else: 127 \fi: }
+ \int_compare:nNnTF { `#3 } > { \l_@@_listings_max_char_int }
{ \@@_listings_peek_active_loop:TF { #1#3 } { #2#3 } }
{ #2#3 }
}
@@ -9348,7 +9530,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\cs_new_protected_nopar:Npn \@@_listings_inline_group:w
{
\exp_after:wN \@@_listings_inline_group:n
- \exp_after:wN { \if_false: } \fi:
+ \exp_after:wN { \if_int_compare:w `} = \c_zero \fi:
}
\cs_set_eq:NN \lst@InlineGJ \@@_listings_inline_group:w
\cs_new_protected:Npn \@@_listings_inline_group:n #1
@@ -9472,11 +9654,13 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\clist_remove_duplicates:N \l_@@_encname_clist
\use:x
{
- \bool_if:NT \l__kernel_expl_bool { \ExplSyntaxOff }
+ \ExplSyntaxOff
\char_set_catcode_letter:n { 64 }
\@@_reload:N \exp_not:N \l_@@_encname_clist
+ \bool_if:NTF \l__kernel_expl_bool
+ { \ExplSyntaxOn }
+ { \ExplSyntaxOff }
\char_set_catcode:nn { 64 } { \char_value_catcode:n { 64 } }
- \bool_if:NT \l__kernel_expl_bool { \ExplSyntaxOn }
}
}
\cs_new_protected:Npn \@@_reload:N #1
@@ -9669,7 +9853,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\@@_provide_text_command_default:N #1
\group_begin:
\char_set_lccode:nn { `0 } { \@@_check_slot:n {#3} }
- \tl_to_lowercase:n
+ \tex_lowercase:D
{
\group_end:
\@@_declare_character:NNxn 0
@@ -9932,7 +10116,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\group_begin:
\char_set_lccode:nn { `4 } { \@@_check_slot:n {#4} }
\char_set_lccode:nn { `5 } { \@@_check_slot:n {#5} }
- \tl_to_lowercase:n
+ \tex_lowercase:D
{
\group_end:
\@@_declare_encoded:NNNNxx 4 5
@@ -12215,10 +12399,10 @@ lang_set = {
%</ex-verb>
% \end{macrocode}
%
-% \subsection{\pkg{xeCJK-example-IVS.tex}}
+% \subsection{\pkg{xeCJK-example-CM.tex}}
%
% \begin{macrocode}
-%<*ex-IVS>
+%<*ex-cm>
% \end{macrocode}
%
% \begin{macrocode}
@@ -12256,7 +12440,7 @@ lang_set = {
% \end{macrocode}
%
% \begin{macrocode}
-%</ex-IVS>
+%</ex-cm>
% \end{macrocode}
%
% \subsection{\pkg{xeCJK-example-listings.tex}}
diff --git a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins
index 80c0f3f94b4..8ccb6dd5dbc 100644
--- a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins
+++ b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins
@@ -6,8 +6,6 @@
%%
%% xeCJK.dtx (with options: `install')
%%
-%% $Id: xeCJK.dtx 750 2014-12-26 08:13:35Z sobenlee@gmail.com $
-%% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%% -----------------------------------------------------------------
%% Author:
%% Wenchang Sun <sunwch@nankai.edu.cn>
@@ -15,9 +13,9 @@
%% Leo Liu <leoliu.pku@gmail.com>
%% Qing Lee <sobenlee@gmail.com>
%%
-%% Copyright (C) 2007--2014 Wenchang Sun
-%% (C) 2009--2014 Leo Liu
-%% (C) 2012--2014 Qing Lee
+%% Copyright (C) 2007--2015 Wenchang Sun
+%% (C) 2009--2015 Leo Liu
+%% (C) 2012--2015 Qing Lee
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -32,13 +30,52 @@
%% -----------------------------------------------------------------
%%
+\newread\inputcheck
+\openin\inputcheck=xeCJK.ver
+\ifeof\inputcheck
+ \def\xeCJKPutVersion{\string\GetIdInfo$Id$}
+\else
+ \input xeCJK.ver
+\fi
+\closein\inputcheck
+
\input l3docstrip.tex
+
+\def\checkOption<#1{%
+ \ifcase
+ \ifx*#10\else \ifx/#11\else
+ \ifx+#12\else \ifx-#13\else
+ \ifx<#14\else \ifx @#15\else
+ \ifx.#16\else
+ 7\fi\fi\fi\fi\fi\fi\fi\relax
+ \expandafter\starOption\or
+ \expandafter\slashOption\or
+ \expandafter\plusOption\or
+ \expandafter\minusOption\or
+ \expandafter\verbOption\or
+ \expandafter\moduleOption\or
+ \expandafter\expOption\or
+ \expandafter\doOption\fi
+ #1%
+}
+\def\expOption .#1>#2\endLine{%
+ \maybeMsg{<.#1 . >}%
+ \Evaluate{#1}%
+ \begingroup
+ \catcode`\\=0 \catcode`\{=1 \catcode`\}=2
+ \xdef\expandedLineStuff{\scantokens{#2\noexpand}}%
+ \endgroup
+ \def\do##1##2##3{%
+ \if1\Expr{##2}\StreamPut##1{\expandedLineStuff}\fi
+ }%
+ \activefiles
+}
+
\keepsilent
\askforoverwritefalse
+
\preamble
-$Id: xeCJK.dtx 750 2014-12-26 08:13:35Z sobenlee@gmail.com $
-$URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
-----------------------------------------------------------------
Author:
Wenchang Sun <sunwch@nankai.edu.cn>
@@ -46,9 +83,9 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
Leo Liu <leoliu.pku@gmail.com>
Qing Lee <sobenlee@gmail.com>
- Copyright (C) 2007--2014 Wenchang Sun
- (C) 2009--2014 Leo Liu
- (C) 2012--2014 Qing Lee
+ Copyright (C) 2007--2015 Wenchang Sun
+ (C) 2009--2015 Leo Liu
+ (C) 2012--2015 Qing Lee
This file may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -86,7 +123,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
xeCJK-example-CJKfntef.tex,
xeCJK-example-punctstyle.tex,
xeCJK-example-verbatim.tex,
- xeCJK-example-IVS.tex,
+ xeCJK-example-CM.tex,
xeCJK-example-listings.tex,
xunicode-symbols.tex,
xunicode-commands.tex,
@@ -103,35 +140,36 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
\declarepostamble\emptypostamble
\endpostamble
-\generate{
- \usedir{source/xelatex/xecjk}
- \file{xeCJK.ins}{\from{\jobname.dtx}{install}}
- \usedir{tex/xelatex/xecjk}
- \file{xeCJK.sty}{\from{\jobname.dtx}{package}}
- \file{xeCJKfntef.sty}{\from{\jobname.dtx}{fntef}}
- \file{xeCJK-listings.sty}{\from{\jobname.dtx}{listings}}
- \file{xunicode-addon.sty}{\from{\jobname.dtx}{xunicode}}
- \file{xunicode-extra.def}{\from{\jobname.dtx}{xunextra}}
- \usepreamble\emptypreamble
- \usepostamble\emptypostamble
- \usedir{tex/xelatex/xecjk/config}
- \file{xeCJK.cfg}{\from{\jobname.dtx}{config}}
- \usedir{doc/xelatex/xecjk/example}
- \file{xeCJK-example-autofake.tex}{\from{\jobname.dtx}{ex-autofake}}
- \file{xeCJK-example-fallback.tex}{\from{\jobname.dtx}{ex-fallback}}
- \file{xeCJK-example-subCJKblock.tex}{\from{\jobname.dtx}{ex-block}}
- \file{xeCJK-example-CJKecglue.tex}{\from{\jobname.dtx}{ex-ecglue}}
- \file{xeCJK-example-checksingle.tex}{\from{\jobname.dtx}{ex-single}}
- \file{xeCJK-example-CJKfntef.tex}{\from{\jobname.dtx}{ex-fntef}}
- \file{xeCJK-example-punctstyle.tex}{\from{\jobname.dtx}{ex-punctstyle}}
- \file{xeCJK-example-verbatim.tex}{\from{\jobname.dtx}{ex-verb}}
- \file{xeCJK-example-IVS.tex}{\from{\jobname.dtx}{ex-IVS}}
- \file{xeCJK-example-listings.tex}{\from{\jobname.dtx}{ex-listings}}
- \file{xunicode-symbols.tex}{\from{\jobname.dtx}{xunicode-symbols}}
- \nopreamble\nopostamble
- \usedir{doc/xelatex/xecjk}
- \file{README.txt}{\from{\jobname.dtx}{readme}}
-}
+\generate
+ {
+ \usedir{source/xelatex/xecjk}
+ \file{xeCJK.ins} {\from{\jobname.dtx}{install}}
+ \usedir{tex/xelatex/xecjk}
+ \file{xeCJK.sty} {\from{\jobname.dtx}{package}}
+ \file{xeCJKfntef.sty} {\from{\jobname.dtx}{fntef}}
+ \file{xeCJK-listings.sty} {\from{\jobname.dtx}{listings}}
+ \file{xunicode-addon.sty} {\from{\jobname.dtx}{xunicode}}
+ \file{xunicode-extra.def} {\from{\jobname.dtx}{xunextra}}
+ \usepreamble\emptypreamble
+ \usepostamble\emptypostamble
+ \usedir{tex/xelatex/xecjk/config}
+ \file{xeCJK.cfg} {\from{\jobname.dtx}{config}}
+ \usedir{doc/xelatex/xecjk/example}
+ \file{xeCJK-example-autofake.tex} {\from{\jobname.dtx}{ex-autofake}}
+ \file{xeCJK-example-fallback.tex} {\from{\jobname.dtx}{ex-fallback}}
+ \file{xeCJK-example-subCJKblock.tex} {\from{\jobname.dtx}{ex-block}}
+ \file{xeCJK-example-CJKecglue.tex} {\from{\jobname.dtx}{ex-ecglue}}
+ \file{xeCJK-example-checksingle.tex} {\from{\jobname.dtx}{ex-single}}
+ \file{xeCJK-example-CJKfntef.tex} {\from{\jobname.dtx}{ex-fntef}}
+ \file{xeCJK-example-punctstyle.tex} {\from{\jobname.dtx}{ex-punctstyle}}
+ \file{xeCJK-example-verbatim.tex} {\from{\jobname.dtx}{ex-verb}}
+ \file{xeCJK-example-CM.tex} {\from{\jobname.dtx}{ex-cm}}
+ \file{xeCJK-example-listings.tex} {\from{\jobname.dtx}{ex-listings}}
+ \file{xunicode-symbols.tex} {\from{\jobname.dtx}{xunicode-symbols}}
+ \nopreamble\nopostamble
+ \usedir{doc/xelatex/xecjk}
+ \file{README.txt} {\from{\jobname.dtx}{readme}}
+ }
\endbatchfile
%%
@@ -156,7 +194,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%% xeCJK-example-CJKfntef.tex,
%% xeCJK-example-punctstyle.tex,
%% xeCJK-example-verbatim.tex,
-%% xeCJK-example-IVS.tex,
+%% xeCJK-example-CM.tex,
%% xeCJK-example-listings.tex,
%% xunicode-symbols.tex,
%% xunicode-commands.tex,
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty
index e8f62332b2f..2ff396c76be 100644
--- a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty
+++ b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK-listings.sty
@@ -6,8 +6,6 @@
%%
%% xeCJK.dtx (with options: `listings')
%%
-%% $Id: xeCJK.dtx 750 2014-12-26 08:13:35Z sobenlee@gmail.com $
-%% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%% -----------------------------------------------------------------
%% Author:
%% Wenchang Sun <sunwch@nankai.edu.cn>
@@ -15,9 +13,9 @@
%% Leo Liu <leoliu.pku@gmail.com>
%% Qing Lee <sobenlee@gmail.com>
%%
-%% Copyright (C) 2007--2014 Wenchang Sun
-%% (C) 2009--2014 Leo Liu
-%% (C) 2012--2014 Qing Lee
+%% Copyright (C) 2007--2015 Wenchang Sun
+%% (C) 2009--2015 Leo Liu
+%% (C) 2012--2015 Qing Lee
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -33,11 +31,11 @@
%%
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\GetIdInfo$Id: xeCJK.dtx 750 2014-12-26 08:13:35Z sobenlee@gmail.com $
+\GetIdInfo$Id: xeCJK.dtx 7321d12 2015-05-15 23:07:58 +0800 Qing Lee <sobenlee@gmail.com> $
{xeCJK patch file for listings}
\ProvidesExplPackage
{xeCJK-listings}
- {\ExplFileDate}{3.3.0}{\ExplFileDescription}
+ {\ExplFileDate}{3.3.2}{\ExplFileDescription}
\DeclareOption* { \PassOptionsToPackage { \CurrentOption } { xeCJK } }
\ProcessOptions \scan_stop:
\RequirePackage { xeCJK }
@@ -48,47 +46,58 @@
{
\tl_set_eq:NN \l_xeCJK_punct_style_tl \c__xeCJK_punct_style_plain_tl
\l__xeCJK_restore_listings_toks_tl
- \__xeCJK_listings_output_IVS:
+ \__xeCJK_listings_output_CM:
}
\lst@AddToHook { PreSet } { \bool_set_true:N \l__xeCJK_listings_env_bool }
\cs_new_protected_nopar:Npn \__xeCJK_listings_initial_hook:
{
\tex_noindent:D
- \bool_gset_false:N \g__xeCJK_listings_IVS_bool
+ \bool_gset_false:N \g__xeCJK_listings_CM_bool
\tl_put_left:Nn \lst@numberstyle { \l__xeCJK_restore_listings_toks_tl }
\xeCJK_add_to_shipout:n { \l__xeCJK_restore_listings_toks_tl }
\lst@ifbreaklines
\cs_set_eq:NN \__xeCJK_listings_CJK_toks_hook: \__xeCJK_listings_breaklines_toks:
+ \tl_if_empty:NF \lst@prebreak
+ { \tl_put_left:Nn \lst@prebreak { \l__xeCJK_restore_listings_toks_tl } }
+ \tl_if_empty:NF \lst@postbreak
+ { \tl_put_left:Nn \lst@postbreak { \l__xeCJK_restore_listings_toks_tl } }
\fi:
+ \int_set:Nn \l__xeCJK_listings_max_char_int
+ { \lst@ifec 255 \else: 127 \fi: }
}
+\int_new:N \l__xeCJK_listings_max_char_int
\cs_new_protected_nopar:Npn \__xeCJK_listings_toks_hook:
{
- \tl_set:Nx \l__xeCJK_restore_listings_toks_tl
+ \tl_clear:N \l__xeCJK_restore_listings_toks_tl
+ \seq_map_function:NN
+ \g__xeCJK_class_seq \__xeCJK_backup_inter_class_toks:n
+ \seq_map_inline:Nn \g__xeCJK_non_CJK_class_seq
{
- \__xeCJK_backup_inter_class_toks:nn { Boundary } { Default }
- \__xeCJK_backup_inter_class_toks:nn { Boundary } { CJK }
- \__xeCJK_backup_inter_class_toks:nn { Boundary } { IVS }
- \__xeCJK_backup_inter_class_toks:nn { Boundary } { HangulJamo }
- \__xeCJK_backup_inter_class_toks:nn { Boundary } { FullLeft }
- \__xeCJK_backup_inter_class_toks:nn { Boundary } { FullRight }
- }
- \seq_map_inline:Nn \g__xeCJK_CJK_sub_class_seq
- {
- \tl_put_right:Nx \l__xeCJK_restore_listings_toks_tl
- { \__xeCJK_backup_inter_class_toks:nn { Boundary } { CJK/##1 } }
+ \str_if_eq:nnF { ##1 } { Boundary }
+ {
+ \xeCJK_inter_class_toks:nnn { Boundary } { ##1 }
+ { \__xeCJK_listings_process_Default:nN { ##1 } }
+ }
}
- \xeCJK_inter_class_toks:nnn { Boundary } { Default }
- { \__xeCJK_listings_process_Default:N }
- \xeCJK_inter_class_toks:nnn { Boundary } { IVS }
- { \__xeCJK_listings_process_IVS:nN { \c_zero } }
+ \xeCJK_inter_class_toks:nnn { Boundary } { CM }
+ { \__xeCJK_listings_process_CM:nN { \c_zero } }
\__xeCJK_listings_CJK_toks_hook:
}
-\tl_new:N \l__xeCJK_restore_listings_toks_tl
-\cs_new_nopar:Npn \__xeCJK_backup_inter_class_toks:nn #1#2
+\cs_new_protected_nopar:Npn \__xeCJK_backup_inter_class_toks:n #1
{
- \xeCJK_inter_class_toks:nnn {#1} {#2}
- { \xeCJK_get_inter_class_toks:nn {#1} {#2} }
+ \tl_set:Nx \l__xeCJK_tmp_tl
+ { \xeCJK_get_inter_class_toks:nn { Boundary } {#1} }
+ \tl_put_right:Nx \l__xeCJK_restore_listings_toks_tl
+ {
+ \xeCJK_inter_class_toks:nnn { Boundary } {#1}
+ {
+ \tl_if_empty:NTF \l__xeCJK_tmp_tl
+ { \exp_not:N \prg_do_nothing: }
+ { \exp_not:o \l__xeCJK_tmp_tl }
+ }
+ }
}
+\tl_new:N \l__xeCJK_restore_listings_toks_tl
\cs_new_protected_nopar:Npn \__xeCJK_listings_CJK_toks_hook:
{
\xeCJK_inter_class_toks:nnn { Boundary } { CJK }
@@ -121,11 +130,24 @@
{ \__xeCJK_listings_process_breaklines_CJK:nN { \c_two } }
}
}
-\cs_new_protected_nopar:Npn \__xeCJK_listings_process_Default:N #1
+\cs_new_protected_nopar:Npn \__xeCJK_listings_process_Default:nN #1#2
+ {
+ \int_compare:nNnTF
+ { \xeCJK_token_value_charcode:N #2 } > \l__xeCJK_listings_max_char_int
+ {
+ \token_if_letter:NTF #2
+ { \lst@ProcessLetter #2 }
+ { \lst@ProcessOther #2 }
+ }
+ { \__xeCJK_listings_output_Default:nN {#1} #2 }
+ }
+\cs_new_protected_nopar:Npn \__xeCJK_listings_output_Default:nN #1#2
{
- \token_if_letter:NTF #1
- { \lst@ProcessLetter #1 }
- { \lst@ProcessOther #1 }
+ \group_begin:
+ \xeCJK_clear_inter_class_toks:nn { Boundary } {#1}
+ \xeCJK_inter_class_toks:nnn {#1} { Boundary } { \group_end: }
+ #2
+ \scan_stop:
}
\cs_new_protected_nopar:Npn \__xeCJK_listings_process_CJK:nN #1#2
{
@@ -240,25 +262,25 @@
\lst@ifbreaklines \int_zero:N \l__xeCJK_listings_flag_int \fi:
\tex_futurelet:D \lst@lastother \lst@Append
}
-\cs_new_protected_nopar:Npn \__xeCJK_listings_process_IVS:nN
+\cs_new_protected_nopar:Npn \__xeCJK_listings_process_CM:nN
{
\reverse_if:N \lst@ifflexible
- \bool_gset_true:N \g__xeCJK_listings_IVS_bool
+ \bool_gset_true:N \g__xeCJK_listings_CM_bool
\fi:
\__xeCJK_listings_process_letter:nN
}
-\cs_new_protected_nopar:Npn \__xeCJK_listings_output_IVS:
+\cs_new_protected_nopar:Npn \__xeCJK_listings_output_CM:
{
\reverse_if:N \lst@ifflexible
- \bool_if:NT \g__xeCJK_listings_IVS_bool
+ \bool_if:NT \g__xeCJK_listings_CM_bool
{
- \bool_gset_false:N \g__xeCJK_listings_IVS_bool
+ \bool_gset_false:N \g__xeCJK_listings_CM_bool
\xeCJK_cs_clear:N \lst@FillOutputBox
\cs_set_eq:NN \CJKglue \tex_hss:D
}
\fi:
}
-\bool_new:N \g__xeCJK_listings_IVS_bool
+\bool_new:N \g__xeCJK_listings_CM_bool
\cs_new_protected:Npn \__xeCJK_listings_peek_active_loop:TF #1#2#3
{
\token_if_active:NTF #3
@@ -267,7 +289,7 @@
\token_if_cs:NTF #3
{ #2#3 }
{
- \int_compare:nNnTF { `#3 } > { \lst@ifec 255 \else: 127 \fi: }
+ \int_compare:nNnTF { `#3 } > { \l__xeCJK_listings_max_char_int }
{ \__xeCJK_listings_peek_active_loop:TF { #1#3 } { #2#3 } }
{ #2#3 }
}
@@ -284,7 +306,7 @@
\cs_new_protected_nopar:Npn \__xeCJK_listings_inline_group:w
{
\exp_after:wN \__xeCJK_listings_inline_group:n
- \exp_after:wN { \if_false: } \fi:
+ \exp_after:wN { \if_int_compare:w `} = \c_zero \fi:
}
\cs_set_eq:NN \lst@InlineGJ \__xeCJK_listings_inline_group:w
\cs_new_protected:Npn \__xeCJK_listings_inline_group:n #1
@@ -330,7 +352,7 @@
%% xeCJK-example-CJKfntef.tex,
%% xeCJK-example-punctstyle.tex,
%% xeCJK-example-verbatim.tex,
-%% xeCJK-example-IVS.tex,
+%% xeCJK-example-CM.tex,
%% xeCJK-example-listings.tex,
%% xunicode-symbols.tex,
%% xunicode-commands.tex,
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/config/xeCJK.cfg b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg
index b336cc017f1..7cf00c1becc 100644
--- a/Master/texmf-dist/tex/xelatex/xecjk/config/xeCJK.cfg
+++ b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.cfg
@@ -6,11 +6,11 @@
%%
%% xeCJK.dtx (with options: `config')
%%
-\GetIdInfo$Id: xeCJK.dtx 750 2014-12-26 08:13:35Z sobenlee@gmail.com $
+\GetIdInfo$Id: xeCJK.dtx 7321d12 2015-05-15 23:07:58 +0800 Qing Lee <sobenlee@gmail.com> $
{Configuration file for xeCJK package}
\ProvidesExplFile
{\ExplFileName.cfg}
- {\ExplFileDate}{3.3.0}{\ExplFileDescription}
+ {\ExplFileDate}{3.3.2}{\ExplFileDescription}
%%
%%
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
index 95567ec2e8f..565ad48c4e2 100644
--- a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
+++ b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
@@ -6,8 +6,6 @@
%%
%% xeCJK.dtx (with options: `package')
%%
-%% $Id: xeCJK.dtx 750 2014-12-26 08:13:35Z sobenlee@gmail.com $
-%% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%% -----------------------------------------------------------------
%% Author:
%% Wenchang Sun <sunwch@nankai.edu.cn>
@@ -15,9 +13,9 @@
%% Leo Liu <leoliu.pku@gmail.com>
%% Qing Lee <sobenlee@gmail.com>
%%
-%% Copyright (C) 2007--2014 Wenchang Sun
-%% (C) 2009--2014 Leo Liu
-%% (C) 2012--2014 Qing Lee
+%% Copyright (C) 2007--2015 Wenchang Sun
+%% (C) 2009--2015 Leo Liu
+%% (C) 2012--2015 Qing Lee
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -33,11 +31,11 @@
%%
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\GetIdInfo$Id: xeCJK.dtx 750 2014-12-26 08:13:35Z sobenlee@gmail.com $
+\GetIdInfo$Id: xeCJK.dtx 7321d12 2015-05-15 23:07:58 +0800 Qing Lee <sobenlee@gmail.com> $
{Typesetting CJK scripts with XeLaTeX}
\ProvidesExplPackage
{\ExplFileName}
- {\ExplFileDate}{3.3.0}{\ExplFileDescription}
+ {\ExplFileDate}{3.3.2}{\ExplFileDescription}
\msg_new:nnn { xeCJK } { Require-XeTeX }
{
The~xeCJK~package~requires~XeTeX~to~function.\\\\
@@ -328,25 +326,39 @@
\cs_new_nopar:Npn \xeCJK_token_value_class:N #1
{ \XeTeXcharclass \xeCJK_token_value_charcode:N #1 }
\cs_new_nopar:Npn \xeCJK_token_value_charcode:N #1
- { \exp_after:wN \__xeCJK_token_value_charcode:w \token_to_meaning:N #1 \q_stop }
-\fp_compare:nNnTF { \int_use:N \xetex_XeTeXversion:D \XeTeXrevision } > { 0.9998 }
- {
- \cs_new_nopar:Npn \__xeCJK_token_value_charcode:w #1 ~ #2 ~ #3#4 \q_stop
- {
- \int_eval:n
- {
- \tl_if_empty:nTF {#4}
- { `#3 }
- { ( `#3 - "D800 ) * "400 + ( `#4 - "DC00 ) + "10000 }
- }
- }
- \cs_new_eq:NN \xeCJK_xetex_mathcode:w \Umathcode
- }
- {
- \cs_new_nopar:Npn \__xeCJK_token_value_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
- }
+ { \exp_after:wN \__xeCJK_get_charcode:w \token_to_meaning:N #1 \q_stop }
+\group_begin:
+ \cs_set:Npn \__xeCJK_tmp:w #1 ~ #2 ~ #3#4#5 \q_stop
+ {
+ \tl_if_empty:nTF { #4#5 }
+ {
+ \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}
+ {
+ \cs_new_nopar:Npn \__xeCJK_get_charcode:w ##1 ~ ##2 ~ ##3##4 \q_stop
+ {
+ \int_eval:n
+ {
+ \tl_if_empty:nTF { ##4 }
+ { `##3 }
+ { ( `##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
+ }
+ }
+ }
+ \exp_after:wN \__xeCJK_tmp:w \token_to_meaning:N ^^^^^20000 { } \q_stop
+\group_end:
\prg_new_conditional:Npnn \xeCJK_if_CJK_class:N #1 { p , T , F , TF }
{
\if_cs_exist:w \__xeCJK_CJK_class_tl:n { \xeCJK_token_value_class:N #1 } \cs_end:
@@ -409,7 +421,7 @@
\xeCJK_new_class:n { HalfLeft }
\xeCJK_new_class:n { HalfRight }
\xeCJK_new_class:n { NormalSpace }
-\xeCJK_new_class:n { IVS }
+\xeCJK_new_class:n { CM }
\xeCJK_new_class:n { HangulJamo }
\clist_const:Nn \c__xeCJK_HalfLeft_chars_clist
{ "28 , "5B , "60 , "7B , "2329 }
@@ -497,8 +509,9 @@
"2B740 -> "2B81F ,
"2F800 -> "2FA1F
}
-\clist_const:Nn \c__xeCJK_IVS_chars_clist
+\clist_const:Nn \c__xeCJK_CM_chars_clist
{
+ "302A -> "302F ,
"3099 -> "309A ,
"FE00 -> "FE0F ,
"E0100 -> "E01EF
@@ -521,7 +534,7 @@
\tl_const:cn { \__xeCJK_CJK_class_tl:c { \__xeCJK_class_csname:n {#1} } } {#1}
}
\clist_map_function:nN
- { CJK , FullLeft , FullRight , IVS , HangulJamo } \__xeCJK_save_CJK_class:n
+ { CJK , FullLeft , FullRight , CM , HangulJamo } \__xeCJK_save_CJK_class:n
\cs_new_nopar:Npn \xeCJK_class_num:n #1 { \use:c { \__xeCJK_class_csname:n {#1} } }
\NewDocumentCommand \xeCJKDeclareCharClass { s > { \TrimSpaces } m m }
{
@@ -541,7 +554,7 @@
{ \xeCJK_class_num:n {#1} }
}
}
- \xeCJK_set_char_class:nnn { "3099 } { "309A } { \xeCJK_class_num:n { IVS } }
+ \xeCJK_set_char_class:nnn { "3099 } { "309A } { \xeCJK_class_num:n { CM } }
}
\NewDocumentCommand \__xeCJK_set_char_class_aux:Nnw
{ m > { \SplitArgument { 1 } { -> } } m } { #1 #2 }
@@ -598,7 +611,7 @@
{
\xeCJK_declare_char_class:nV { CJK } \c__xeCJK_CJK_chars_clist
\xeCJK_declare_char_class:nV { NormalSpace } \c__xeCJK_NormalSpace_chars_clist
- \xeCJK_declare_char_class:nV { IVS } \c__xeCJK_IVS_chars_clist
+ \xeCJK_declare_char_class:nV { CM } \c__xeCJK_CM_chars_clist
\xeCJK_declare_char_class:nV { HangulJamo } \c__xeCJK_HangulJamo_chars_clist
\xeCJKResetPunctClass
}
@@ -625,8 +638,13 @@
\cs_new_protected_nopar:Npn \xeCJK_copy_inter_class_toks:nnnn #1#2#3#4
{
\tl_set:Nx \l__xeCJK_tmp_tl { \xeCJK_get_inter_class_toks:nn {#3} {#4} }
- \tl_if_empty:NF \l__xeCJK_tmp_tl
- { \xeCJK_inter_class_toks:nnx {#1} {#2} { \exp_not:V \l__xeCJK_tmp_tl } }
+ \tl_if_empty:NTF \l__xeCJK_tmp_tl
+ {
+ \tl_set:Nx \l__xeCJK_tmp_tl { \xeCJK_get_inter_class_toks:nn {#1} {#2} }
+ \tl_if_empty:NF \l__xeCJK_tmp_tl
+ { \xeCJK_clear_inter_class_toks:nn {#1} {#2} }
+ }
+ { \xeCJK_inter_class_toks:nnx {#1} {#2} { \exp_not:o \l__xeCJK_tmp_tl } }
}
\cs_new_protected_nopar:Npn \xeCJK_replace_inter_class_toks:nnnn #1#2#3#4
{
@@ -634,7 +652,7 @@
\tl_if_empty:NF \l__xeCJK_tmp_tl
{
\tl_replace_all:Nnn \l__xeCJK_tmp_tl {#3} {#4}
- \xeCJK_inter_class_toks:nnx {#1} {#2} { \exp_not:V \l__xeCJK_tmp_tl }
+ \xeCJK_inter_class_toks:nnx {#1} {#2} { \exp_not:o \l__xeCJK_tmp_tl }
}
}
\cs_new_protected_nopar:Npn \xeCJK_clear_Boundary_and_CJK_toks:
@@ -653,12 +671,12 @@
{
\seq_map_inline:Nn \g__xeCJK_class_seq
{
- \str_if_eq:nnTF {#1} { IVS }
- { \xeCJK_copy_inter_class_toks:nnnn { IVS } {#1} { CJK } { CJK } }
+ \str_if_eq:nnTF {#1} { CM }
+ { \xeCJK_copy_inter_class_toks:nnnn { CM } {#1} { CJK } { CJK } }
{
- \xeCJK_copy_inter_class_toks:nnnn { IVS } {#1} { CJK } {#1}
+ \xeCJK_copy_inter_class_toks:nnnn { CM } {#1} { CJK } {#1}
\str_if_eq:nnF {#1} { CJK }
- { \xeCJK_copy_inter_class_toks:nnnn {#1} { IVS } {#1} { CJK } }
+ { \xeCJK_copy_inter_class_toks:nnnn {#1} { CM } {#1} { CJK } }
}
}
}
@@ -716,7 +734,7 @@
\bool_if:nTF
{
\xeCJK_if_last_node_p:n { CJK } ||
- \xeCJK_if_last_node_p:n { CJK-nobreak }
+ \xeCJK_if_last_node_p:n { CJK-widow }
}
{ \xeCJK_remove_node: \CJKecglue }
{
@@ -800,8 +818,8 @@
{ \xeCJK_if_last_node_p:n { CJK } || \xeCJK_if_last_node_p:n { CJK-space } }
{ \xeCJK_remove_node: \CJKglue }
{
- \xeCJK_if_last_node:nTF { CJK-nobreak }
- { \xeCJK_remove_node: \xeCJK_no_break: \CJKglue }
+ \xeCJK_if_last_node:nTF { CJK-widow }
+ { \xeCJK_remove_node: \xeCJK_widow_penalty: \CJKglue }
{
\bool_if:nTF
{
@@ -878,7 +896,7 @@
\xeCJK_declare_node:n { CJK-space }
\xeCJK_declare_node:n { default }
\xeCJK_declare_node:n { default-space }
-\xeCJK_declare_node:n { CJK-nobreak }
+\xeCJK_declare_node:n { CJK-widow }
\xeCJK_declare_node:n { normalspace }
\keys_define:nn { xeCJK / options }
{
@@ -1393,6 +1411,13 @@
CheckSingle .default:n = { true } ,
CJKchecksingle .meta:n = { CheckSingle = true }
}
+\keys_define:nn { xeCJK / options }
+ {
+ WidowPenalty .int_set:N = \l__xeCJK_widow_penalty_int ,
+ WidowPenalty .default:n = { \c_ten_thousand }
+ }
+\cs_new_protected_nopar:Npn \xeCJK_widow_penalty:
+ { \tex_penalty:D \l__xeCJK_widow_penalty_int }
\cs_new_protected_nopar:Npn \xeCJK_check_single:Nw #1
{
\peek_catcode:NTF \c_catcode_letter_token
@@ -1479,8 +1504,8 @@
{
\peek_catcode:NTF \c_math_toggle_token
{
- \xeCJK_no_break: \__xeCJK_check_single_save:N #1
- \xeCJK_make_node:n { CJK-nobreak } #2 #4
+ \xeCJK_widow_penalty: \__xeCJK_check_single_save:N #1
+ \xeCJK_make_node:n { CJK-widow } #2 #4
}
{ \__xeCJK_check_single_save:N #1 #2#3#4 }
}
@@ -1492,8 +1517,8 @@
{ \group_align_safe_end: \use_iii:nnn }
{ \xeCJK_check_single_env:nnNn }
{
- \xeCJK_no_break: \__xeCJK_check_single_save:N #1
- \xeCJK_make_node:n { CJK-nobreak } #2
+ \xeCJK_widow_penalty: \__xeCJK_check_single_save:N #1
+ \xeCJK_make_node:n { CJK-widow } #2#3
}
{ \__xeCJK_check_single_save:N #1 #2#3 }
}
@@ -3006,9 +3031,10 @@
\cs_new_protected_nopar:Npn \__xeCJK_load_fandol:
{
\setCJKmainfont
- [ BoldFont = FandolSong-Bold , ItalicFont = FandolKai ] { FandolSong-Regular }
- \setCJKsansfont [ BoldFont = FandolHei-Bold ] { FandolHei-Regular }
- \setCJKmonofont { FandolFang }
+ [ Extension = .otf , BoldFont = FandolSong-Bold , ItalicFont = FandolKai-Regular ]
+ { FandolSong-Regular }
+ \setCJKsansfont [ Extension = .otf , BoldFont = FandolHei-Bold ] { FandolHei-Regular }
+ \setCJKmonofont [ Extension = .otf ] { FandolFang-Regular }
}
\__xeCJK_at_end_preamble:n
{
@@ -3501,6 +3527,7 @@
PunctStyle = quanjiao ,
NewLineCS = { \par \[ } ,
EnvCS = { \begin \end } ,
+ WidowPenalty = \c_ten_thousand ,
NoBreakCS = { \footnote \footnotemark \nobreak } ,
KaiMingPunct = { ^^^^3002 ^^^^ff0e ^^^^ff1f ^^^^ff01 } ,
LongPunct = { ^^^^2014 ^^^^2015 ^^^^2500 ^^^^2025 ^^^^2026 } ,
@@ -3664,20 +3691,25 @@
The~current~meaning~of~`#1'~is:\\
\iow_indent:n {#2}
}
-\__xeCJK_math_robust:N \(
-\__xeCJK_math_robust:N \)
-\__xeCJK_math_robust:N \math
-\__xeCJK_math_robust:N \endmath
-\__xeCJK_math_robust:N \ensuremath
-\bool_if:nF
+\cs_if_eq:NNTF \( \math
+ {
+ \__xeCJK_math_robust:N \(
+ \cs_set_eq:NN \math \(
+ }
{
- \xeCJK_if_package_loaded_p:n { amsmath } ||
- \xeCJK_if_package_loaded_p:n { amsthm }
+ \__xeCJK_math_robust:N \(
+ \__xeCJK_math_robust:N \math
}
+\cs_if_eq:NNTF \) \endmath
{
- \__xeCJK_math_robust:N \[
- \__xeCJK_math_robust:N \]
+ \__xeCJK_math_robust:N \)
+ \cs_set_eq:NN \endmath \)
}
+ {
+ \__xeCJK_math_robust:N \)
+ \__xeCJK_math_robust:N \endmath
+ }
+\__xeCJK_math_robust:N \ensuremath
\UndeclareTextCommand \nobreakspace { \UTFencname }
\RenewDocumentCommand \nobreakspace { } { \leavevmode \nobreak \ }
\AtBeginUTFCommand { \bool_if:NT \l__xeCJK_CJK_group_bool { \scan_stop: } }
@@ -3764,12 +3796,14 @@
}
{ \@@italiccorr }
}
+\cs_new_eq:NN \g__xeCJK_xetex_allocator_int \xe@alloc@intercharclass
\__xeCJK_after_end_preamble:n
{
\int_compare:nNnF
- { \c_three + \seq_count:N \g__xeCJK_new_class_seq } = \xe@alloc@intercharclass
+ { \c_three + \seq_count:N \g__xeCJK_new_class_seq } =
+ { \g__xeCJK_xetex_allocator_int }
{
- \int_step_inline:nnnn \c_four \c_one \xe@alloc@intercharclass
+ \int_step_inline:nnnn \c_four \c_one \g__xeCJK_xetex_allocator_int
{
\seq_if_in:NnF \g__xeCJK_new_class_seq {#1}
{ \__xeCJK_set_others_toks:n {#1} }
@@ -3946,14 +3980,22 @@
{ \cs_new_eq:NN \Unicode \xeCJK_unicode_char:nn }
}
}
-\cs_new_protected_nopar:Npn \xeCJK_char_from_charcode:Nn #1#2
+\str_if_eq_x:nnTF
+ { \token_to_str:N \Ucharcat } { \token_to_meaning:N \Ucharcat }
{
- \group_begin:
- \char_set_lccode:nn { "4E00 } {#2}
- \tl_to_lowercase:n
+ \cs_new_protected_nopar:Npn \xeCJK_char_from_charcode:Nn #1#2
+ { \tl_const:Nx #1 { \Ucharcat \int_eval:n {#2} ~ \c_eleven } }
+ }
+ {
+ \cs_new_protected_nopar:Npn \xeCJK_char_from_charcode:Nn #1#2
{
- \group_end:
- \tl_const:Nn #1 { ^^^^4e00 }
+ \group_begin:
+ \char_set_lccode:nn { "4E00 } {#2}
+ \tex_lowercase:D
+ {
+ \group_end:
+ \tl_const:Nn #1 { ^^^^4e00 }
+ }
}
}
\cs_new_nopar:Npn \__xeCJK_calc_unicode:nn #1#2
@@ -3962,9 +4004,9 @@
{ \tex_char:D \etex_numexpr:D \__xeCJK_calc_unicode:nn {#1} {#2} \scan_stop: }
\bool_if:NT \g__xeCJK_config_bool
{
- \@pushfilename
+ \ExplSyntaxOff
\file_input:n { \g__xeCJK_config_name_tl .cfg }
- \@popfilename
+ \ExplSyntaxOn
}
%%
%% This package consists of the file xeCJK.dtx,
@@ -3988,7 +4030,7 @@
%% xeCJK-example-CJKfntef.tex,
%% xeCJK-example-punctstyle.tex,
%% xeCJK-example-verbatim.tex,
-%% xeCJK-example-IVS.tex,
+%% xeCJK-example-CM.tex,
%% xeCJK-example-listings.tex,
%% xunicode-symbols.tex,
%% xunicode-commands.tex,
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty
index 26fb5c9d937..de0230a2d9c 100644
--- a/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty
+++ b/Master/texmf-dist/tex/xelatex/xecjk/xeCJKfntef.sty
@@ -6,8 +6,6 @@
%%
%% xeCJK.dtx (with options: `fntef')
%%
-%% $Id: xeCJK.dtx 750 2014-12-26 08:13:35Z sobenlee@gmail.com $
-%% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%% -----------------------------------------------------------------
%% Author:
%% Wenchang Sun <sunwch@nankai.edu.cn>
@@ -15,9 +13,9 @@
%% Leo Liu <leoliu.pku@gmail.com>
%% Qing Lee <sobenlee@gmail.com>
%%
-%% Copyright (C) 2007--2014 Wenchang Sun
-%% (C) 2009--2014 Leo Liu
-%% (C) 2012--2014 Qing Lee
+%% Copyright (C) 2007--2015 Wenchang Sun
+%% (C) 2009--2015 Leo Liu
+%% (C) 2012--2015 Qing Lee
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -33,11 +31,11 @@
%%
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\GetIdInfo$Id: xeCJK.dtx 750 2014-12-26 08:13:35Z sobenlee@gmail.com $
+\GetIdInfo$Id: xeCJK.dtx 7321d12 2015-05-15 23:07:58 +0800 Qing Lee <sobenlee@gmail.com> $
{xeCJK font effect}
\ProvidesExplPackage
{xeCJKfntef}
- {\ExplFileDate}{3.3.0}{\ExplFileDescription}
+ {\ExplFileDate}{3.3.2}{\ExplFileDescription}
\PassOptionsToPackage { normalem } { ulem }
\DeclareOption* { \PassOptionsToPackage { \CurrentOption } { ulem } }
\ProcessOptions \scan_stop:
@@ -1036,7 +1034,7 @@
%% xeCJK-example-CJKfntef.tex,
%% xeCJK-example-punctstyle.tex,
%% xeCJK-example-verbatim.tex,
-%% xeCJK-example-IVS.tex,
+%% xeCJK-example-CM.tex,
%% xeCJK-example-listings.tex,
%% xunicode-symbols.tex,
%% xunicode-commands.tex,
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty b/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty
index 7c14a2bb634..a578dfd8b21 100644
--- a/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty
+++ b/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty
@@ -6,8 +6,6 @@
%%
%% xeCJK.dtx (with options: `xunicode')
%%
-%% $Id: xeCJK.dtx 750 2014-12-26 08:13:35Z sobenlee@gmail.com $
-%% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%% -----------------------------------------------------------------
%% Author:
%% Wenchang Sun <sunwch@nankai.edu.cn>
@@ -15,9 +13,9 @@
%% Leo Liu <leoliu.pku@gmail.com>
%% Qing Lee <sobenlee@gmail.com>
%%
-%% Copyright (C) 2007--2014 Wenchang Sun
-%% (C) 2009--2014 Leo Liu
-%% (C) 2012--2014 Qing Lee
+%% Copyright (C) 2007--2015 Wenchang Sun
+%% (C) 2009--2015 Leo Liu
+%% (C) 2012--2015 Qing Lee
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -33,11 +31,11 @@
%%
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\GetIdInfo$Id: xeCJK.dtx 750 2014-12-26 08:13:35Z sobenlee@gmail.com $
+\GetIdInfo$Id: xeCJK.dtx 7321d12 2015-05-15 23:07:58 +0800 Qing Lee <sobenlee@gmail.com> $
{addon file for xunicode}
\ProvidesExplPackage
{xunicode-addon}
- {\ExplFileDate}{3.3.0}{\ExplFileDescription}
+ {\ExplFileDate}{3.3.2}{\ExplFileDescription}
\pdftex_if_engine:T
{
\msg_new:nnnn { xunicode-addon } { cannot-use-pdftex }
@@ -80,11 +78,13 @@
\clist_remove_duplicates:N \l__xunadd_encname_clist
\use:x
{
- \bool_if:NT \l__kernel_expl_bool { \ExplSyntaxOff }
+ \ExplSyntaxOff
\char_set_catcode_letter:n { 64 }
\__xunadd_reload:N \exp_not:N \l__xunadd_encname_clist
+ \bool_if:NTF \l__kernel_expl_bool
+ { \ExplSyntaxOn }
+ { \ExplSyntaxOff }
\char_set_catcode:nn { 64 } { \char_value_catcode:n { 64 } }
- \bool_if:NT \l__kernel_expl_bool { \ExplSyntaxOn }
}
}
\cs_new_protected:Npn \__xunadd_reload:N #1
@@ -216,7 +216,7 @@
\__xunadd_provide_text_command_default:N #1
\group_begin:
\char_set_lccode:nn { `0 } { \__xunadd_check_slot:n {#3} }
- \tl_to_lowercase:n
+ \tex_lowercase:D
{
\group_end:
\__xunadd_declare_character:NNxn 0
@@ -335,7 +335,7 @@
\group_begin:
\char_set_lccode:nn { `4 } { \__xunadd_check_slot:n {#4} }
\char_set_lccode:nn { `5 } { \__xunadd_check_slot:n {#5} }
- \tl_to_lowercase:n
+ \tex_lowercase:D
{
\group_end:
\__xunadd_declare_encoded:NNNNxx 4 5
@@ -611,7 +611,7 @@
%% xeCJK-example-CJKfntef.tex,
%% xeCJK-example-punctstyle.tex,
%% xeCJK-example-verbatim.tex,
-%% xeCJK-example-IVS.tex,
+%% xeCJK-example-CM.tex,
%% xeCJK-example-listings.tex,
%% xunicode-symbols.tex,
%% xunicode-commands.tex,
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def b/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def
index 2f352d37fab..6a5b9d45c37 100644
--- a/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def
+++ b/Master/texmf-dist/tex/xelatex/xecjk/xunicode-extra.def
@@ -6,8 +6,6 @@
%%
%% xeCJK.dtx (with options: `xunextra')
%%
-%% $Id: xeCJK.dtx 750 2014-12-26 08:13:35Z sobenlee@gmail.com $
-%% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%% -----------------------------------------------------------------
%% Author:
%% Wenchang Sun <sunwch@nankai.edu.cn>
@@ -15,9 +13,9 @@
%% Leo Liu <leoliu.pku@gmail.com>
%% Qing Lee <sobenlee@gmail.com>
%%
-%% Copyright (C) 2007--2014 Wenchang Sun
-%% (C) 2009--2014 Leo Liu
-%% (C) 2012--2014 Qing Lee
+%% Copyright (C) 2007--2015 Wenchang Sun
+%% (C) 2009--2015 Leo Liu
+%% (C) 2012--2015 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 +29,11 @@
%% The Current Maintainer of this work are Leo Liu and Qing Lee.
%% -----------------------------------------------------------------
%%
-\GetIdInfo$Id: xeCJK.dtx 750 2014-12-26 08:13:35Z sobenlee@gmail.com $
+\GetIdInfo$Id: xeCJK.dtx 7321d12 2015-05-15 23:07:58 +0800 Qing Lee <sobenlee@gmail.com> $
{extra definition for xunicode}
\ProvidesExplFile
{xunicode-extra.def}
- {\ExplFileDate}{3.3.0}{\ExplFileDescription}
+ {\ExplFileDate}{3.3.2}{\ExplFileDescription}
\ExplSyntaxOff
\DeclareUTFComposite\textsuperscript
\DeclareUTFComposite\textsubscript
@@ -1472,7 +1470,7 @@
%% xeCJK-example-CJKfntef.tex,
%% xeCJK-example-punctstyle.tex,
%% xeCJK-example-verbatim.tex,
-%% xeCJK-example-IVS.tex,
+%% xeCJK-example-CM.tex,
%% xeCJK-example-listings.tex,
%% xunicode-symbols.tex,
%% xunicode-commands.tex,