diff options
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r-- | Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx | 82 |
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 } } + } } } } |