summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx82
1 files changed, 51 insertions, 31 deletions
diff --git a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
index 0651316e47c..1e1398c4061 100644
--- a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
+++ b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
@@ -194,7 +194,7 @@ Copyright and Licence
%<*package|config|fntef|listings|xunicode|xunextra>
%<!(config|xunextra)>\NeedsTeXFormat{LaTeX2e}
%<!(config|xunextra)>\RequirePackage{expl3}
-%<+!driver>\GetIdInfo$Id: xeCJK.dtx 6405ee1 2020-08-23 21:58:40 +0800 Qing Lee <sobenlee@gmail.com> $
+%<+!driver>\GetIdInfo$Id: xeCJK.dtx f475abb 2020-10-19 20:24:03 +0800 Qing Lee <sobenlee@gmail.com> $
%<package> {Typesetting CJK scripts with XeLaTeX}
%<config> {Configuration file for xeCJK package}
%<fntef> {xeCJK font effect}
@@ -207,7 +207,7 @@ Copyright and Licence
%<listings>\ProvidesExplPackage{xeCJK-listings}
%<xunicode>\ProvidesExplPackage{xunicode-addon}
%<xunextra>\ProvidesExplFile{xunicode-extra.def}
-%<!driver> {\ExplFileDate}{3.8.5}{\ExplFileDescription}
+%<!driver> {\ExplFileDate}{3.8.6}{\ExplFileDescription}
%</package|config|fntef|listings|xunicode|xunextra>
%<*driver>
\documentclass{ctxdoc}
@@ -287,7 +287,7 @@ Copyright and Licence
% \changes{v3.8.0}{2020/02/09}{清理过时的兼容性补丁代码。}
% \changes{v3.8.3}{2020/04/07}{删除 \texttt{\_nopar}。}
%
-% \CheckSum{10905}
+% \CheckSum{10926}
% \GetFileId{xeCJK.sty}
%
% \title{\bfseries\pkg{xeCJK} 宏包}
@@ -380,8 +380,8 @@ Copyright and Licence
% \end{ctexexam}
% \end{function}
%
-% 有些选项或命令后面带有 \exptarget\expstar 号,这表示这
-% 个选项或命令只能在导言区中使用,而 \rexptarget\rexpstar
+% 有些选项或命令后面带有 \exptarget\expstar{} 号,这表示这
+% 个选项或命令只能在导言区中使用,而 \rexptarget\rexpstar{}
% 号则表示这个选项或命令只能在导言区使用,并且只影响随后定义的 CJK 字体。其余不带特殊标记的
% 选项或命令,如果没有特别说明,可以在导言区或正文中使用。%
% 使用粗体来表示 \pkg{xeCJK} 的默认设置。
@@ -4296,6 +4296,7 @@ Copyright and Licence
% \changes{v3.6.0}{2018/01/23}{解决标点中间被隔开的禁则与压缩问题。}
% \changes{v3.7.3}{2019/04/15}{修复 penalty 数值错误。}
% \changes{v3.8.3}{2020/04/27}{修复 \opt{xCJKecglue} 选项。}
+% \changes{v3.8.6}{2020/10/18}{正确还原标点符号后的 penalty 状态。}
%
% \begin{macro}{\xeCJK_if_last_punct:TF}
% \changes{v3.6.1}{2018/02/25}{细化判断。}
@@ -4362,7 +4363,13 @@ Copyright and Licence
\int_compare:nNnTF \tex_lastnodetype:D = { 11 }
{ \@@_if_last_punct_glue:TF { \use_i:nn } }
{ \use:n }
- { \tex_penalty:D \l_@@_last_penalty_int \use_ii:nn }
+ { \@@_last_punct_penalty_false:nn }
+ }
+\cs_new_protected:Npn \@@_last_punct_penalty_false:nn #1#2
+ {
+ \bool_set_false:N \l_@@_last_penalty_bool
+ \tex_penalty:D \l_@@_last_penalty_int
+ #2
}
\cs_new_protected:Npn \@@_if_last_punct_auxi:TF
{
@@ -8469,6 +8476,8 @@ Copyright and Licence
% \changes{v3.1.1}{2012/12/13}{对于与 \pkg{xltxtra} 的冲突给出错误警告。}
% \changes{v3.8.0}{2020/02/09}{删除 \pkg{realscripts} 补丁。}
%
+% \changes{v3.8.6}{2020/10/17}{兼容 \LaTeX\ 2020/10/01 的 \pkg{NFSS} 钩子机制。}
+%
% \begin{macro}[int]{\fontfamily}
% \begin{macro}[int]{\xeCJK@fontfamily,\xeCJK@family}
% \changes{v3.1.1}{2012/12/06}{修改主要 \texttt{CJK} 字体族的自动更新方式。}
@@ -8477,40 +8486,51 @@ Copyright and Licence
% {将族名参数完全展开,以解决与 \pkg{fontspec} 2017/01/24 v2.5d 的兼容问题。}
% 对于 \LaTeXe\ 2020/02/02 之前的版本,修改 \tn{fontfamily},
% 使主要 |CJK| 字体族能随西文主要字体更新,之后的版本可以使用 \tn{@rmfamilyhook} 等新钩子处理。
+% \LaTeXe\ 2020/10/01 提供了新的的 \pkg{NFSS} 钩子。
% \begin{macrocode}
-\cs_if_exist:NTF \@rmfamilyhook
+\@ifl@t@r \fmtversion { 2020/10/01 }
{
\cs_set_eq:NN \xeCJK@family \xeCJK_switch_family:x
- \g@addto@macro \@rmfamilyhook { \xeCJK@family { \CJKrmdefault } }
- \g@addto@macro \@sffamilyhook { \xeCJK@family { \CJKsfdefault } }
- \g@addto@macro \@ttfamilyhook { \xeCJK@family { \CJKttdefault } }
- \exp_args:Nc \g@addto@macro
- {
- \cs_if_exist:NTF \@defaultfamilyhook
- { @defaultfamilyhook } { normalfont ~ }
- }
- { \xeCJK@family { \CJKfamilydefault } }
+ \AddToHook { rmfamily } { \xeCJK@family { \CJKrmdefault } }
+ \AddToHook { sffamily } { \xeCJK@family { \CJKsfdefault } }
+ \AddToHook { ttfamily } { \xeCJK@family { \CJKttdefault } }
+ \AddToHook { normalfont } { \xeCJK@family { \CJKfamilydefault } }
}
{
- \RenewDocumentCommand \fontfamily { m }
- {
- \tl_set:Nx \f@family {#1}
- \xeCJK@fontfamily {#1}
- }
- \cs_new_protected:Npn \xeCJK@fontfamily #1
+ \cs_if_exist:NTF \@rmfamilyhook
{
- \str_if_eq:nnTF {#1} { \familydefault }
- { \xeCJK_switch_family:x { \CJKfamilydefault } }
- { \@@_update_family_aux: }
+ \cs_set_eq:NN \xeCJK@family \xeCJK_switch_family:x
+ \g@addto@macro \@rmfamilyhook { \xeCJK@family { \CJKrmdefault } }
+ \g@addto@macro \@sffamilyhook { \xeCJK@family { \CJKsfdefault } }
+ \g@addto@macro \@ttfamilyhook { \xeCJK@family { \CJKttdefault } }
+ \exp_args:Nc \g@addto@macro
+ {
+ \cs_if_exist:NTF \@defaultfamilyhook
+ { @defaultfamilyhook } { normalfont ~ }
+ }
+ { \xeCJK@family { \CJKfamilydefault } }
}
- \cs_new_protected:Npn \@@_update_family_aux:
{
- \str_case_e:nn { \f@family }
+ \RenewDocumentCommand \fontfamily { m }
{
- { \rmdefault } { \xeCJK_switch_family:x { \CJKrmdefault } }
- { \sfdefault } { \xeCJK_switch_family:x { \CJKsfdefault } }
- { \ttdefault } { \xeCJK_switch_family:x { \CJKttdefault } }
- { \familydefault } { \xeCJK_switch_family:x { \CJKfamilydefault } }
+ \tl_set:Nx \f@family {#1}
+ \xeCJK@fontfamily {#1}
+ }
+ \cs_new_protected:Npn \xeCJK@fontfamily #1
+ {
+ \str_if_eq:nnTF {#1} { \familydefault }
+ { \xeCJK_switch_family:x { \CJKfamilydefault } }
+ { \@@_update_family_aux: }
+ }
+ \cs_new_protected:Npn \@@_update_family_aux:
+ {
+ \str_case_e:nn { \f@family }
+ {
+ { \rmdefault } { \xeCJK_switch_family:x { \CJKrmdefault } }
+ { \sfdefault } { \xeCJK_switch_family:x { \CJKsfdefault } }
+ { \ttdefault } { \xeCJK_switch_family:x { \CJKttdefault } }
+ { \familydefault } { \xeCJK_switch_family:x { \CJKfamilydefault } }
+ }
}
}
}