summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx')
-rw-r--r--Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx74
1 files changed, 47 insertions, 27 deletions
diff --git a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx
index 1f66d8cff13..1d528a3997b 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 06a6ce4 2020-02-10 22:37:50 +0800 Qing Lee <sobenlee@gmail.com> $
+%<+!driver>\GetIdInfo$Id: xeCJK.dtx 2628481 2020-02-14 20:30:07 +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.0}{\ExplFileDescription}
+%<!driver> {\ExplFileDate}{3.8.1}{\ExplFileDescription}
%</package|config|fntef|listings|xunicode|xunextra>
%<*driver>
\documentclass{ctxdoc}
@@ -225,6 +225,8 @@ Copyright and Licence
\newcommand\PSKeyVal[2]{%
\item[#1]\makebox[4em][l]{\meta{#2}}\ignorespaces}
\newcommand\tokslink[1]{\hyperlink{#1}{\ding{51}}}
+\newcommand\ghissue[1]{%
+ \href{https://github.com/CTeX-org/ctex-kit/issues/#1}{\##1}}
\AtBeginDocument{\DeleteShortVerb{\"}}
\ExplSyntaxOn
\NewDocumentCommand \PrintPunctList { O{7} m m }
@@ -283,7 +285,7 @@ Copyright and Licence
% \changes{v3.8.0}{2020/02/09}{兼容 \LaTeXe\ 2020/02/02 对 \pkg{NFSS} 的修改。}
% \changes{v3.8.0}{2020/02/09}{清理过时的兼容性补丁代码。}
%
-% \CheckSum{10751}
+% \CheckSum{10752}
% \GetFileId{xeCJK.sty}
%
% \title{\bfseries\pkg{xeCJK} 宏包}
@@ -6606,11 +6608,8 @@ Copyright and Licence
}
\cs_new_protected_nopar:Npn \@@_select_font:Nn #1#2
{
- \cs_if_exist_use:NF #1
- {
- \@@_family_use:n {#2}
- \xeCJK_font_gset_to_current:N #1
- }
+ \cs_if_exist:NF #1 { \@@_font_initial:Nn #1 {#2} }
+ #1
}
\cs_generate_variant:Nn \@@_select_font:Nn { c }
\tl_new:N \l_@@_current_coor_tl
@@ -6619,6 +6618,22 @@ Copyright and Licence
% \end{variable}
% \end{macro}
%
+% \changes{v3.8.1}{2020/02/14}{修复 \cs{l_xeCJK_current_font_tl} 标记错误。}
+%
+% \begin{macro}{\@@_font_initial:Nn}
+% 注意要将 \tn{selectfont} 放在分组中调用,防止 \tn{f@series} 等字体参数被修改,
+% 导致 \cs{l_xeCJK_current_font_tl} 标记前后不一致,引发错误(见~\ghissue{486})。
+% \begin{macrocode}
+\cs_new_protected_nopar:Npn \@@_font_initial:Nn #1#2
+ {
+ \group_begin:
+ \@@_family_use:n {#2}
+ \xeCJK_font_gset_to_current:N #1
+ \group_end:
+ }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}[int]{\xeCJK_select_punct_font:}
% \begin{variable}[int]{\l_xeCJK_current_punct_font_tl}
% 切换标点符号字体。
@@ -6676,8 +6691,7 @@ Copyright and Licence
\cs_if_exist_use:NF #1
{
\xeCJK_block_family:nn {#2} {#3}
- \@@_family_use:n { #2/#3 }
- \xeCJK_font_gset_to_current:N #1
+ \@@_font_initial:Nn #1 { #2/#3 }
}
}
\cs_generate_variant:Nn \@@_select_font:Nnn { c }
@@ -6704,30 +6718,27 @@ Copyright and Licence
{ xeCJK/family/#1 }
\cs_new_nopar:Npn \@@_family_nfss_csname:n #1
{ xeCJK/family/nfss/#1 }
-\cs_new_nopar:Npn \@@_family_use:n #1
+\cs_new_protected_nopar:Npn \@@_family_use:n #1
{ \use:c { \@@_family_nfss_csname:n {#1} } }
\cs_new_protected_nopar:Npn \@@_gset_family_nfss_cs:nn #1#2
{
\prop_gput:Nnn \g_@@_family_name_prop {#1} {#2}
\cs_gset_protected_nopar:cpx
{ \@@_family_nfss_csname:n {#1} }
- {
- \exp_not:N \fontencoding { \c_@@_encoding_tl }
- \@@_nfss_family:n {#2}
- \exp_not:N \selectfont
- }
+ { \@@_nfss_family:nn { \c_@@_encoding_tl } {#2} }
}
\cs_generate_variant:Nn \@@_gset_family_nfss_cs:nn { xx }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_nfss_family:n}
-% 用于处理 \LaTeXe\ 2020/02/02 中 \tn{bfseries@rm} 等与 \tn{\bfdefault} 不一致可能导致的问题。
+% 用于处理 \LaTeXe\ 2020/02/02 中 \tn{bfseries@rm} 等与 \tn{bfdefault} 不一致可能导致的问题。
% \begin{macrocode}
\cs_if_exist:NTF \fontseriesforce
{
- \cs_new_protected_nopar:Npn \@@_nfss_family:n #1
+ \cs_new_protected_nopar:Npn \@@_nfss_family:nn #1#2
{
+ \fontencoding {#1}
\str_if_eq:eeF { \f@series } { \bfdefault }
{
\str_case_e:nn { \f@family }
@@ -6737,7 +6748,8 @@ Copyright and Licence
{ \ttdefault } { \@@_nfss_series:n { tt } }
}
}
- \fontfamily {#1}
+ \fontfamily {#2}
+ \selectfont
}
\cs_new_protected_nopar:Npn \@@_nfss_series:n #1
{
@@ -6746,8 +6758,12 @@ Copyright and Licence
}
}
{
- \cs_new_protected_nopar:Npn \@@_nfss_family:n #1
- { \tl_set:Nn \f@family {#1} }
+ \cs_new_protected_nopar:Npn \@@_nfss_family:nn #1#2
+ {
+ \fontencoding {#1}
+ \tl_set:Nn \f@family {#2}
+ \selectfont
+ }
}
% \end{macrocode}
% \end{macro}
@@ -7358,17 +7374,22 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
+% \changes{v3.8.1}{2020/02/14}{应用 \tn{shapedefault}。}
+%
% \begin{macro}[int]{\xeCJK_declare_mathfont:nn}
+% 注意从 \LaTeXe\ 2020/02/02 开始,\tn{shapedefault} 初始值是 \texttt{n},
+% 而 \tn{updefault} 初始值是 \texttt{up},两者并不一致。
+% \pkg{fontspec} 包定义字体使用的是 \tn{shapedefault}。
% \begin{macrocode}
\cs_new_protected_nopar:Npn \xeCJK_declare_mathfont:nn #1#2
{
\xeCJK_declare_symbol_font:nnnnn {#1} { \c_@@_encoding_tl }
- {#2} { \mddefault } { \updefault }
+ {#2} { \mddefault } { \shapedefault }
\cs_if_free:cF
- { \c_@@_encoding_tl/#2/\bfdefault/\updefault }
+ { \c_@@_encoding_tl/#2/\bfdefault/\shapedefault }
{
\SetSymbolFont {#1} { bold } { \c_@@_encoding_tl }
- {#2} { \bfdefault } { \updefault }
+ {#2} { \bfdefault } { \shapedefault }
}
\prop_gput:Nnx \g_@@_fam_prop {#2} { \exp_not:c { sym #1 } }
}
@@ -8285,11 +8306,10 @@ Copyright and Licence
\g@addto@macro \@rmfamilyhook { \xeCJK@family { \CJKrmdefault } }
\g@addto@macro \@sffamilyhook { \xeCJK@family { \CJKsfdefault } }
\g@addto@macro \@ttfamilyhook { \xeCJK@family { \CJKttdefault } }
- \exp_args:Nx \g@addto@macro
+ \exp_args:Nc \g@addto@macro
{
\cs_if_exist:NTF \@defaultfamilyhook
- { \exp_not:N \@defaultfamilyhook }
- { \exp_not:c { normalfont ~ } }
+ { @defaultfamilyhook } { normalfont ~ }
}
{ \xeCJK@family { \CJKfamilydefault } }
}