summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/example-CJKchecksingle.tex2
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/example-CJKfntef.tex2
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/example-addspaces.tex2
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/example-fallback.tex2
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/examples/example-CJKchecksingle.tex2
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/examples/example-CJKfntef.tex2
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/examples/example-addspaces.tex2
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/examples/example-fallback.tex2
-rw-r--r--Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdfbin312964 -> 316028 bytes
-rw-r--r--Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx81
-rw-r--r--Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins4
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty65
12 files changed, 122 insertions, 44 deletions
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/example-CJKchecksingle.tex b/Master/texmf-dist/doc/xelatex/xecjk/example-CJKchecksingle.tex
index 360fc87dd82..b58fc7fdc3f 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/example-CJKchecksingle.tex
+++ b/Master/texmf-dist/doc/xelatex/xecjk/example-CJKchecksingle.tex
@@ -6,7 +6,7 @@
%%
%% xeCJK.dtx (with options: `example-CJKchecksingle')
%%
-%% Version 2.4.4 (17-Sep-2011)
+%% Version 2.4.5 (31-Jan-2012)
%%
%% Copyright (C) Wenchang Sun <sunwch@hotmail.com>
%%
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/example-CJKfntef.tex b/Master/texmf-dist/doc/xelatex/xecjk/example-CJKfntef.tex
index a7987f7b6d7..0fa0c13eeee 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/example-CJKfntef.tex
+++ b/Master/texmf-dist/doc/xelatex/xecjk/example-CJKfntef.tex
@@ -6,7 +6,7 @@
%%
%% xeCJK.dtx (with options: `example-CJKfntef')
%%
-%% Version 2.4.4 (17-Sep-2011)
+%% Version 2.4.5 (31-Jan-2012)
%%
%% Copyright (C) Wenchang Sun <sunwch@hotmail.com>
%%
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/example-addspaces.tex b/Master/texmf-dist/doc/xelatex/xecjk/example-addspaces.tex
index 1df3bffd6d9..efe6b88277f 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/example-addspaces.tex
+++ b/Master/texmf-dist/doc/xelatex/xecjk/example-addspaces.tex
@@ -6,7 +6,7 @@
%%
%% xeCJK.dtx (with options: `example-addspaces')
%%
-%% Version 2.4.4 (17-Sep-2011)
+%% Version 2.4.5 (31-Jan-2012)
%%
%% Copyright (C) Wenchang Sun <sunwch@hotmail.com>
%%
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/example-fallback.tex b/Master/texmf-dist/doc/xelatex/xecjk/example-fallback.tex
index 243bac236c8..cb55fc010ce 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/example-fallback.tex
+++ b/Master/texmf-dist/doc/xelatex/xecjk/example-fallback.tex
@@ -6,7 +6,7 @@
%%
%% xeCJK.dtx (with options: `example-fallback')
%%
-%% Version 2.4.4 (17-Sep-2011)
+%% Version 2.4.5 (31-Jan-2012)
%%
%% Copyright (C) Wenchang Sun <sunwch@hotmail.com>
%%
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/examples/example-CJKchecksingle.tex b/Master/texmf-dist/doc/xelatex/xecjk/examples/example-CJKchecksingle.tex
index 360fc87dd82..b58fc7fdc3f 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/examples/example-CJKchecksingle.tex
+++ b/Master/texmf-dist/doc/xelatex/xecjk/examples/example-CJKchecksingle.tex
@@ -6,7 +6,7 @@
%%
%% xeCJK.dtx (with options: `example-CJKchecksingle')
%%
-%% Version 2.4.4 (17-Sep-2011)
+%% Version 2.4.5 (31-Jan-2012)
%%
%% Copyright (C) Wenchang Sun <sunwch@hotmail.com>
%%
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/examples/example-CJKfntef.tex b/Master/texmf-dist/doc/xelatex/xecjk/examples/example-CJKfntef.tex
index a7987f7b6d7..0fa0c13eeee 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/examples/example-CJKfntef.tex
+++ b/Master/texmf-dist/doc/xelatex/xecjk/examples/example-CJKfntef.tex
@@ -6,7 +6,7 @@
%%
%% xeCJK.dtx (with options: `example-CJKfntef')
%%
-%% Version 2.4.4 (17-Sep-2011)
+%% Version 2.4.5 (31-Jan-2012)
%%
%% Copyright (C) Wenchang Sun <sunwch@hotmail.com>
%%
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/examples/example-addspaces.tex b/Master/texmf-dist/doc/xelatex/xecjk/examples/example-addspaces.tex
index 1df3bffd6d9..efe6b88277f 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/examples/example-addspaces.tex
+++ b/Master/texmf-dist/doc/xelatex/xecjk/examples/example-addspaces.tex
@@ -6,7 +6,7 @@
%%
%% xeCJK.dtx (with options: `example-addspaces')
%%
-%% Version 2.4.4 (17-Sep-2011)
+%% Version 2.4.5 (31-Jan-2012)
%%
%% Copyright (C) Wenchang Sun <sunwch@hotmail.com>
%%
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/examples/example-fallback.tex b/Master/texmf-dist/doc/xelatex/xecjk/examples/example-fallback.tex
index 243bac236c8..cb55fc010ce 100644
--- a/Master/texmf-dist/doc/xelatex/xecjk/examples/example-fallback.tex
+++ b/Master/texmf-dist/doc/xelatex/xecjk/examples/example-fallback.tex
@@ -6,7 +6,7 @@
%%
%% xeCJK.dtx (with options: `example-fallback')
%%
-%% Version 2.4.4 (17-Sep-2011)
+%% Version 2.4.5 (31-Jan-2012)
%%
%% Copyright (C) Wenchang Sun <sunwch@hotmail.com>
%%
diff --git a/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf b/Master/texmf-dist/doc/xelatex/xecjk/xeCJK.pdf
index f821e47025e..00525cb0522 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/source/xelatex/xecjk/xeCJK.dtx b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
index 0678e72f489..13c8f2a3f8e 100644
--- a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
+++ b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
@@ -36,7 +36,7 @@ may observe
\keepsilent
\preamble
- Version 2.4.4 (17-Sep-2011)
+ Version 2.4.5 (31-Jan-2012)
Copyright (C) Wenchang Sun <sunwch@hotmail.com>
@@ -140,8 +140,8 @@ may observe
%</driver>
%
%<*xeCJK>
-\def\fileversion{2.4.4}
-\def\filedate{2011/09/17}
+\def\fileversion{2.4.5}
+\def\filedate{2012/01/31}
\ProvidesPackage{xeCJK}[\filedate\space\fileversion\space package for typesetting CJK scripts with XeLaTeX]
%</xeCJK>
%
@@ -258,6 +258,10 @@ may observe
% 放缩的方式或改变间距的方式,让 CJK 字符的宽度等于西文字体中两个空格的宽度。
% 这有利于等宽字体的代码对齐等情形。
%
+% \defmacro{\CJKfixedspacing} 命令设置固定字距和不压缩标点格式,符合上面加 |+|
+% 命令的意义。\defmacro{\CJKflexiblespacing} 命令恢复可伸缩的字距和标点压缩。
+% 抄录(|verbatim|)环境将自动使用 |\CJKfixedspacing| 的效果。
+%
% \defmacro{\setCJKmonoscale} 和 \defmacro{\setCJKmonoexspace} 命令分别计算并设置
% 当前字号下西文等宽字体与 CJK 字体的放缩比例和字距,以符合上面加 |*| 与加 |+| 号
% 命令的意义。在字号改变时,应该使用两个命令之一;但注意两个命令不能同时使用。
@@ -544,6 +548,11 @@ may observe
% that the width of a CJK glyph equals to 2 space for monospace fonts, by scaling and
% spacing, respectively.
%
+% \defmacro{\CJKfixedspacing} sets fixed CJK character spacing and |plain|
+% punctuation style. \defmacro{\CJKflexiblespacing} restores flexible CJK
+% character spacing and old punctuation style. |verbatim| environemnts sets
+% |\CJKfixedspacing| automatically.
+%
% \defmacro{\setCJKmonoscale} and \defmacro{\setCJKmonoexspace} reset the scale and extra
% space introduced by |\setCJKmainfont*| and |\setCJKmonofont+|, respectively. They are
% useful when changing the font size.
@@ -910,13 +919,18 @@ may observe
% \end{macrocode}
%
-% 单独处理宽度有分歧的两个标点:省略号和间隔号。保证其命令形式输出的是西文字体。
-% 并对间隔号(U+00B7)为一些编码的符号宏包做特殊处理:
+% 单独处理宽度有分歧的几个标点:包括省略号、破折号、间隔号、引号等中西文混用的
+% 符号,保证其命令形式输出的是西文字体。并对一些编码的符号宏包做特殊处理:
% \begin{macrocode}
\AtBeginDocument{%
\xeCJK@patch\textellipsis {\begingroup\makexeCJKinactive}{\endgroup}
+ \xeCJK@patch\textemdash {\begingroup\makexeCJKinactive}{\endgroup}
\xeCJK@patch\textperiodcentered {\begingroup\makexeCJKinactive}{\endgroup}
\xeCJK@patch\textcentereddot {\begingroup\makexeCJKinactive}{\endgroup}
+ \xeCJK@patch\textquoteleft {\begingroup\makexeCJKinactive}{\endgroup}
+ \xeCJK@patch\textquoteright {\begingroup\makexeCJKinactive}{\endgroup}
+ \xeCJK@patch\textquotedblleft {\begingroup\makexeCJKinactive}{\endgroup}
+ \xeCJK@patch\textquotedblright {\begingroup\makexeCJKinactive}{\endgroup}
\xeCJK@patch\tipaencoding {\makexeCJKinactive}{} % tipa package in T3 encoding
\let\xeCJK@save@r\r
\def\r#1{{\makexeCJKinactive\xeCJK@save@r{#1}}} % \r{u} in T1 encoding
@@ -1695,8 +1709,8 @@ may observe
\def\setCJKfamilyfont#1{
\xeCJK@newfontfamily{#1}}
% \end{macrocode}
-% 重定义 |\normalfont|, |\rmfamily|, |\sffamily|,添加 CJK 字体族的设置。
-% |\ttfamily| 可能需要单独调整宽度,将在后面定义。
+% 重定义 |\normalfont|, |\rmfamily|, |\sffamily|, |\ttfamily|,添加 CJK 字体族
+% 的设置。
% \begin{macrocode}
\def\CJKfamilydefault{\CJKrmdefault}
\DeclareRobustCommand\normalfont
@@ -1716,6 +1730,10 @@ may observe
{\not@math@alphabet\sffamily\mathsf
\fontfamily\sfdefault\CJKfamily{\CJKsfdefault}\selectfont}
+\DeclareRobustCommand\ttfamily
+ {\not@math@alphabet\ttfamily\mathtt
+ \fontfamily\ttdefault\CJKfamily{\CJKttdefault}\selectfont}
+
% \end{macrocode}
% \string\xeCJK@newfontfamily is similar to \string\newfontfamily
% but introduce fake slant/bold fonts for CJK characters.
@@ -1878,13 +1896,45 @@ may observe
\newcommand*\setCJKmonoexspace{
\xecjk_set_monoexspace:
- \CJKsetecglue{\skip_horizontal:N .5\g_xecjk_exspace_dim}
- \def\CJKglue{\skip_horizontal:N \g_xecjk_exspace_dim}
}
+\cs_new:Nn \xecjk_fixed_ecglue:
+{
+ \skip_horizontal:N .5\g_xecjk_exspace_dim
+}
+
+\cs_new:Nn \xecjk_fixed_cjkglue:
+{
+ \skip_horizontal:N \g_xecjk_exspace_dim
+}
+
+\tl_set_eq:NN \l_xecjk_flexible_punctstyle_tl \xeCJK@punctstyle
+\cs_set_eq:NN \xecjk_flexible_ecglue: \CJKecglue
+\cs_set_eq:NN \xecjk_flexible_cjkglue: \CJKglue
+
+\newcommand*\CJKfixedspacing{
+ \unless\ifnum \xeCJK@punctstyle = \xeCJK@ps@plain
+ \tl_set_eq:NN \l_xecjk_flexible_punctstyle_tl \xeCJK@punctstyle
+ \punctstyle{plain}
+ \fi
+ \unless\ifx \CJKecglue \xecjk_fixed_ecglue:
+ \cs_set_eq:NN \xecjk_flexible_ecglue: \CJKecglue
+ \let \CJKecglue \xecjk_fixed_ecglue:
+ \fi
+ \unless\ifx \CJKglue \xecjk_fixed_cjkglue:
+ \cs_set_eq:NN \xecjk_flexible_cjkglue: \CJKglue
+ \let \CJKglue \xecjk_fixed_cjkglue:
+ \fi
+}
+
+\newcommand*\CJKflexiblespacing{
+ \let \xeCJK@punctstyle \l_xecjk_flexible_punctstyle_tl
+ \let \CJKecglue \xecjk_flexible_ecglue:
+ \let \cjkglue \xecjk_flexible_cjkglue:
+}
\DeclareRobustCommand\setCJKmonoexspacefont[2][]{
- \setCJKmonoexspace
+ \xecjk_set_monoexspace:
\xeCJK@newfontfamily{\CJKttdefault}[#1]{#2}}
\def\xeCJK@ifplus#1{\@ifnextchar +{\@firstoftwo{#1}}}
@@ -1895,20 +1945,13 @@ may observe
{\setCJKmonoexspacefont}
{\xeCJK@newfontfamily{\CJKttdefault}}}}
-\DeclareRobustCommand\ttfamily
- {\not@math@alphabet\ttfamily\mathtt
- \fontfamily\ttdefault\CJKfamily{\CJKttdefault}\selectfont
- \CJKsetecglue{\skip_horizontal:N .5\g_xecjk_exspace_dim}
- \def\CJKglue{\skip_horizontal:N \g_xecjk_exspace_dim}}
-
% \end{macrocode}
% 修补 \verbatim@font
% \begin{macrocode}
\AtBeginDocument{
\tl_put_right:Nn \verbatim@font {
- \punctstyle{plain}
- \CJKsetecglue{\skip_horizontal:N \g_xecjk_exspace_dim}
- \def\CJKglue{\skip_horizontal:N \g_xecjk_exspace_dim}}
+ \CJKfixedspacing
+ }
}
\ExplSyntaxOff
diff --git a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins
index 6fda2caa5e9..0c822f6c7ad 100644
--- a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins
+++ b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.ins
@@ -6,7 +6,7 @@
%%
%% xeCJK.dtx (with options: `batchfile')
%%
-%% Version 2.4.4 (17-Sep-2011)
+%% Version 2.4.5 (31-Jan-2012)
%%
%% Copyright (C) Wenchang Sun <sunwch@hotmail.com>
%%
@@ -22,7 +22,7 @@
\keepsilent
\preamble
- Version 2.4.4 (17-Sep-2011)
+ Version 2.4.5 (31-Jan-2012)
Copyright (C) Wenchang Sun <sunwch@hotmail.com>
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
index 441dc0605fe..eeed2ec6cf4 100644
--- a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
+++ b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
@@ -6,7 +6,7 @@
%%
%% xeCJK.dtx (with options: `xeCJK')
%%
-%% Version 2.4.4 (17-Sep-2011)
+%% Version 2.4.5 (31-Jan-2012)
%%
%% Copyright (C) Wenchang Sun <sunwch@hotmail.com>
%%
@@ -18,8 +18,8 @@
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
-\def\fileversion{2.4.4}
-\def\filedate{2011/09/17}
+\def\fileversion{2.4.5}
+\def\filedate{2012/01/31}
\ProvidesPackage{xeCJK}[\filedate\space\fileversion\space package for typesetting CJK scripts with XeLaTeX]
\RequirePackage{ifxetex}
\RequireXeTeX
@@ -178,8 +178,13 @@
\AtBeginDocument{%
\xeCJK@patch\textellipsis {\begingroup\makexeCJKinactive}{\endgroup}
+ \xeCJK@patch\textemdash {\begingroup\makexeCJKinactive}{\endgroup}
\xeCJK@patch\textperiodcentered {\begingroup\makexeCJKinactive}{\endgroup}
\xeCJK@patch\textcentereddot {\begingroup\makexeCJKinactive}{\endgroup}
+ \xeCJK@patch\textquoteleft {\begingroup\makexeCJKinactive}{\endgroup}
+ \xeCJK@patch\textquoteright {\begingroup\makexeCJKinactive}{\endgroup}
+ \xeCJK@patch\textquotedblleft {\begingroup\makexeCJKinactive}{\endgroup}
+ \xeCJK@patch\textquotedblright {\begingroup\makexeCJKinactive}{\endgroup}
\xeCJK@patch\tipaencoding {\makexeCJKinactive}{} % tipa package in T3 encoding
\let\xeCJK@save@r\r
\def\r#1{{\makexeCJKinactive\xeCJK@save@r{#1}}} % \r{u} in T1 encoding
@@ -895,6 +900,10 @@
{\not@math@alphabet\sffamily\mathsf
\fontfamily\sfdefault\CJKfamily{\CJKsfdefault}\selectfont}
+\DeclareRobustCommand\ttfamily
+ {\not@math@alphabet\ttfamily\mathtt
+ \fontfamily\ttdefault\CJKfamily{\CJKttdefault}\selectfont}
+
\newcommand*\xeCJK@newfontfamily[1]{
\@ifnextchar[
{\xeCJK@newfontfamily@{#1}}
@@ -1046,12 +1055,45 @@
\newcommand*\setCJKmonoexspace{
\xecjk_set_monoexspace:
- \CJKsetecglue{\skip_horizontal:N .5\g_xecjk_exspace_dim}
- \def\CJKglue{\skip_horizontal:N \g_xecjk_exspace_dim}
+}
+
+\cs_new:Nn \xecjk_fixed_ecglue:
+{
+ \skip_horizontal:N .5\g_xecjk_exspace_dim
+}
+
+\cs_new:Nn \xecjk_fixed_cjkglue:
+{
+ \skip_horizontal:N \g_xecjk_exspace_dim
+}
+
+\tl_set_eq:NN \l_xecjk_flexible_punctstyle_tl \xeCJK@punctstyle
+\cs_set_eq:NN \xecjk_flexible_ecglue: \CJKecglue
+\cs_set_eq:NN \xecjk_flexible_cjkglue: \CJKglue
+
+\newcommand*\CJKfixedspacing{
+ \unless\ifnum \xeCJK@punctstyle = \xeCJK@ps@plain
+ \tl_set_eq:NN \l_xecjk_flexible_punctstyle_tl \xeCJK@punctstyle
+\punctstyle{plain}
+ \fi
+ \unless\ifx \CJKecglue \xecjk_fixed_ecglue:
+ \cs_set_eq:NN \xecjk_flexible_ecglue: \CJKecglue
+ \let \CJKecglue \xecjk_fixed_ecglue:
+ \fi
+ \unless\ifx \CJKglue \xecjk_fixed_cjkglue:
+ \cs_set_eq:NN \xecjk_flexible_cjkglue: \CJKglue
+ \let \CJKglue \xecjk_fixed_cjkglue:
+ \fi
+}
+
+\newcommand*\CJKflexiblespacing{
+ \let \xeCJK@punctstyle \l_xecjk_flexible_punctstyle_tl
+ \let \CJKecglue \xecjk_flexible_ecglue:
+ \let \cjkglue \xecjk_flexible_cjkglue:
}
\DeclareRobustCommand\setCJKmonoexspacefont[2][]{
- \setCJKmonoexspace
+ \xecjk_set_monoexspace:
\xeCJK@newfontfamily{\CJKttdefault}[#1]{#2}}
\def\xeCJK@ifplus#1{\@ifnextchar +{\@firstoftwo{#1}}}
@@ -1062,17 +1104,10 @@
{\setCJKmonoexspacefont}
{\xeCJK@newfontfamily{\CJKttdefault}}}}
-\DeclareRobustCommand\ttfamily
- {\not@math@alphabet\ttfamily\mathtt
- \fontfamily\ttdefault\CJKfamily{\CJKttdefault}\selectfont
- \CJKsetecglue{\skip_horizontal:N .5\g_xecjk_exspace_dim}
- \def\CJKglue{\skip_horizontal:N \g_xecjk_exspace_dim}}
-
\AtBeginDocument{
\tl_put_right:Nn \verbatim@font {
- \punctstyle{plain}
- \CJKsetecglue{\skip_horizontal:N \g_xecjk_exspace_dim}
- \def\CJKglue{\skip_horizontal:N \g_xecjk_exspace_dim}}
+ \CJKfixedspacing
+ }
}
\ExplSyntaxOff