diff options
author | Karl Berry <karl@freefriends.org> | 2021-06-20 19:56:11 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-06-20 19:56:11 +0000 |
commit | 0e008fd431955e2802ab0abb5220e3bfb78256e6 (patch) | |
tree | 00a71b8590fe7dadb12de99f13729cb46a223dd2 /Master/texmf-dist/tex/latex/ctex/engine | |
parent | 0dfccc591702a7d52fd4739ddb2622d1769cf422 (diff) |
ctex (20jun21)
git-svn-id: svn://tug.org/texlive/trunk@59654 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/ctex/engine')
5 files changed, 298 insertions, 201 deletions
diff --git a/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-aptex.def b/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-aptex.def index 636c06f3091..aba9f456e22 100644 --- a/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-aptex.def +++ b/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-aptex.def @@ -24,23 +24,29 @@ %% %% --------------------------------------------------------------------- %% -\GetIdInfo$Id: ctex.dtx 07425fe 2021-03-14 16:43:36 +0800 Xiangdong Zeng <xdzeng96@gmail.com> $ +\GetIdInfo$Id: ctex.dtx 6604451 2021-06-20 17:08:49 +0800 Qing Lee <sobenlee@gmail.com> $ {Asian pTeX adapter (CTEX)} \ProvidesExplFile{ctex-engine-aptex.def} - {\ExplFileDate}{2.5.6}{\ExplFileDescription} + {\ExplFileDate}{2.5.7}{\ExplFileDescription} \cs_new_protected:Npn \ctex_set_zhmap:n { \tl_gput_right:Nx \g__ctex_zhmap_tl } \cs_new_protected:Npn \ctex_use_zhmap: { \tl_use:N \g__ctex_zhmap_tl } \cs_if_exist:NTF \ctex_gadd_ltxhook:nn - { \ctex_gadd_ltxhook:nn { shipout/firstpage } { \ctex_use_zhmap: } } + { + \cs_new_protected:Npn \ctex_at_shipout_first:n + { \ctex_gadd_ltxhook:nn { shipout/firstpage } } + \ctex_at_shipout_first:n { \ctex_use_zhmap: } + } { \cs_new_protected:Npn \ctex_add_dvi_zhmap: { \AtBeginDvi { \ctex_use_zhmap: } } \ctex_after_end_preamble:n { \ctex_add_dvi_zhmap: } \ctex_at_end_package:nn { atbegshi } { - \AtBeginShipoutFirst { \ctex_use_zhmap: } + \cs_new_protected:Npn \ctex_at_shipout_first:n + { \AtBeginShipoutFirst } + \ctex_at_shipout_first:n { \ctex_use_zhmap: } \cs_gset_eq:NN \ctex_add_dvi_zhmap: \prg_do_nothing: } } @@ -116,7 +122,8 @@ \@onlypreamble \ctex_set_upmap:nnn \@onlypreamble \ctex_set_upmap_unicode:nnn \@onlypreamble \ctex_set_upfonts:nnnnnn -\RequirePackage { pxeverysel } +\bool_if:NT \c__ctex_everysel_loaded_bool + { \RequirePackage { pxeverysel } } \cs_new_protected:Npn \ctex_provide_font_hook:NNN #1#2 { \exp_args:Nc \__ctex_provide_font_hook_aux:NNNN @@ -180,9 +187,16 @@ { \exp_not:o { \CJKfamilydefault } } } \tl_gset_eq:NN \CJKfamilydefault \l__ctex_family_default_init_tl -\ctex_hypersetup:n { driverfallback = dvipdfmx } +\ctex_hypersetup:n + { + driverfallback = dvipdfmx , + pdfencoding = pdfdoc + } \ctex_at_end_package:nn { hyperref } - { \AtBeginShipoutFirst { \special { pdf:tounicode~UTF8-UTF16 } } } + { + \ctex_at_shipout_first:n + { \special { pdf:tounicode~UTF8-UTF16 } } + } \cs_new_protected:Npn \ctex_update_ccwd: { \skip_set:Nn \ccwd { 1zw + \tex_kanjiskip:D } } \dim_new:N \ccwd @@ -202,39 +216,46 @@ { \exp_not:o { \CTEX@selectfont@hook #1 } } } \cs_new_eq:NN \CTEX@selectfont@hook \prg_do_nothing: -\if_cs_exist:N \@EverySelectfont@Init - \group_begin: - \cs_set:Npn \__ctex_tmp:N #1 - { - \tl_set:Nn \l__ctex_tmp_tl {#1} - \cs_new_eq:NN \CTEX@selectfont@save #1 - \cs_new_protected:Npn \__ctex_restore_selectfont: - { - \cs_if_free:NF \scr@new@selectfont - { - \cs_if_free:NF \par@update - { - \tl_put_right:Nn \@EverySelectfont@Init - { \tl_put_right:Nn #1 { \par@update } } - } - \cs_set_eq:NN \scr@new@selectfont #1 - \cs_set_eq:NN \CTEX@selectfont@save \scr@selectfont - } - \tl_put_left:Nn \@EverySelectfont@Init - { \cs_set_eq:NN #1 \CTEX@selectfont@save } - \cs_undefine:N \__ctex_restore_selectfont: - } - } - \ctex_parse_name:NN \__ctex_tmp:N \selectfont - \exp_last_unbraced:NNo \group_end: - \ctex_patch_cmd_once:NnnnTF { \l__ctex_tmp_tl } - { \ExplSyntaxOff } - { \size@update } - { \CTEX@selectfont@hook \size@update } - { \__ctex_restore_selectfont: } - { \ctex_patch_failure:N \selectfont } +\if_bool:N \c__ctex_everysel_loaded_bool + \if_cs_exist:N \@EverySelectfont@Init + \group_begin: + \cs_set:Npn \__ctex_tmp:N #1 + { + \tl_set:Nn \l__ctex_tmp_tl {#1} + \cs_new_eq:NN \CTEX@selectfont@save #1 + \cs_new_protected:Npn \__ctex_restore_selectfont: + { + \cs_if_free:NF \scr@new@selectfont + { + \cs_if_free:NF \par@update + { + \tl_put_right:Nn \@EverySelectfont@Init + { \tl_put_right:Nn #1 { \par@update } } + } + \cs_set_eq:NN \scr@new@selectfont #1 + \cs_set_eq:NN \CTEX@selectfont@save \scr@selectfont + } + \tl_put_left:Nn \@EverySelectfont@Init + { \cs_set_eq:NN #1 \CTEX@selectfont@save } + \cs_undefine:N \__ctex_restore_selectfont: + } + } + \ctex_parse_name:NN \__ctex_tmp:N \selectfont + \exp_last_unbraced:NNo \group_end: + \ctex_patch_cmd_once:NnnnTF { \l__ctex_tmp_tl } + { \ExplSyntaxOff } + { \size@update } + { \CTEX@selectfont@hook \size@update } + { \__ctex_restore_selectfont: } + { \ctex_patch_failure:N \selectfont } + \fi: + \cs_new_protected:Npn \ctex_gadd_selectfont_hook:n + { \EverySelectfont } +\else: + \cs_new_protected:Npn \ctex_gadd_selectfont_hook:n + { \ctex_gadd_ltxhook:nn { selectfont } } \fi: -\EverySelectfont { \CTEX@selectfont@hook } +\ctex_gadd_selectfont_hook:n { \CTEX@selectfont@hook } \cs_new_protected:Npn \ctex_update_xkanjiskip: { \skip_if_eq:nnT diff --git a/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-luatex.def b/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-luatex.def index e337b428141..997f4f93986 100644 --- a/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-luatex.def +++ b/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-luatex.def @@ -24,10 +24,10 @@ %% %% --------------------------------------------------------------------- %% -\GetIdInfo$Id: ctex.dtx 07425fe 2021-03-14 16:43:36 +0800 Xiangdong Zeng <xdzeng96@gmail.com> $ +\GetIdInfo$Id: ctex.dtx 6604451 2021-06-20 17:08:49 +0800 Qing Lee <sobenlee@gmail.com> $ {LuaLaTeX adapter (CTEX)} \ProvidesExplFile{ctex-engine-luatex.def} - {\ExplFileDate}{2.5.6}{\ExplFileDescription} + {\ExplFileDate}{2.5.7}{\ExplFileDescription} \msg_new:nnn { ctex } { luatexja-loaded } { Package~`luatexja'~can~not~be~loaded~before~`ctex'.\\ @@ -35,13 +35,20 @@ } \@ifpackageloaded { luatexja } { \msg_critical:nnx { ctex } { luatexja-loaded } { \g_file_curr_name_str } } - { \tl_const:cn { ver@ltj-latex.\@pkgextension } { 9999/99/99 } } + { + \ctex_at_begin_package:nn { luatexja } + { \msg_redirect_name:nnn { ctex } { disable-package } { info } } + \ctex_at_end_package:nn { luatexja } + { \msg_redirect_name:nnn { ctex } { disable-package } { } } + \ctex_disable_package:n { ltj-latex } + } \RequirePackage { luatexja } \@ifpackagelater { luatexja } { 2020/04/12 } { } { \msg_error:nnn { ctex } { package-too-old } { luatexja } } \RequirePackage { fontspec } \@ifpackagelater { fontspec } { 2020/02/21 } { } { \msg_error:nnn { ctex } { package-too-old } { fontspec } } +\ctex_at_end:n { \char_set_catcode_comment:n { \ltjlineendcomment } } \ExplSyntaxOff \ltjdefcharrange{1}{"80-"36F, "1E00-"1EFF} \ltjdefcharrange{2}{"370-"4FF, "1F00-"1FFF} @@ -1171,34 +1178,41 @@ { \exp_not:o { \CTEX@selectfont@hook #1 } } } \cs_new_eq:NN \CTEX@selectfont@hook \prg_do_nothing: -\if_cs_exist:N \@EverySelectfont@Init - \group_begin: - \cs_set:Npn \__ctex_tmp:N #1 - { - \tl_set:Nn \l__ctex_tmp_tl {#1} - \cs_new_eq:NN \CTEX@selectfont@save #1 - \cs_new_protected:Npn \__ctex_restore_selectfont: - { - \cs_if_free:NF \scr@new@selectfont - { - \cs_set_eq:NN \scr@new@selectfont #1 - \cs_set_eq:NN \CTEX@selectfont@save \scr@selectfont - } - \tl_put_left:Nn \@EverySelectfont@Init - { \cs_set_eq:NN #1 \CTEX@selectfont@save } - \cs_undefine:N \__ctex_restore_selectfont: - } - } - \ctex_parse_name:NN \__ctex_tmp:N \selectfont - \exp_last_unbraced:NNo \group_end: - \ctex_patch_cmd_once:NnnnTF { \l__ctex_tmp_tl } - { \ExplSyntaxOff } - { \size@update } - { \CTEX@selectfont@hook \size@update } - { \__ctex_restore_selectfont: } - { \ctex_patch_failure:N \selectfont } +\if_bool:N \c__ctex_everysel_loaded_bool + \if_cs_exist:N \@EverySelectfont@Init + \group_begin: + \cs_set:Npn \__ctex_tmp:N #1 + { + \tl_set:Nn \l__ctex_tmp_tl {#1} + \cs_new_eq:NN \CTEX@selectfont@save #1 + \cs_new_protected:Npn \__ctex_restore_selectfont: + { + \cs_if_free:NF \scr@new@selectfont + { + \cs_set_eq:NN \scr@new@selectfont #1 + \cs_set_eq:NN \CTEX@selectfont@save \scr@selectfont + } + \tl_put_left:Nn \@EverySelectfont@Init + { \cs_set_eq:NN #1 \CTEX@selectfont@save } + \cs_undefine:N \__ctex_restore_selectfont: + } + } + \ctex_parse_name:NN \__ctex_tmp:N \selectfont + \exp_last_unbraced:NNo \group_end: + \ctex_patch_cmd_once:NnnnTF { \l__ctex_tmp_tl } + { \ExplSyntaxOff } + { \size@update } + { \CTEX@selectfont@hook \size@update } + { \__ctex_restore_selectfont: } + { \ctex_patch_failure:N \selectfont } + \fi: + \cs_new_protected:Npn \ctex_gadd_selectfont_hook:n + { \EverySelectfont } +\else: + \cs_new_protected:Npn \ctex_gadd_selectfont_hook:n + { \ctex_gadd_ltxhook:nn { selectfont } } \fi: -\EverySelectfont { \CTEX@selectfont@hook } +\ctex_gadd_selectfont_hook:n { \CTEX@selectfont@hook } \ctex_add_to_selectfont:n { \ctex_ltj_select_font: diff --git a/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-pdftex.def b/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-pdftex.def index bd049cb81ec..3f197ac4d8d 100644 --- a/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-pdftex.def +++ b/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-pdftex.def @@ -24,23 +24,29 @@ %% %% --------------------------------------------------------------------- %% -\GetIdInfo$Id: ctex.dtx 07425fe 2021-03-14 16:43:36 +0800 Xiangdong Zeng <xdzeng96@gmail.com> $ +\GetIdInfo$Id: ctex.dtx 6604451 2021-06-20 17:08:49 +0800 Qing Lee <sobenlee@gmail.com> $ {(pdf)LaTeX adapter (CTEX)} \ProvidesExplFile{ctex-engine-pdftex.def} - {\ExplFileDate}{2.5.6}{\ExplFileDescription} + {\ExplFileDate}{2.5.7}{\ExplFileDescription} \cs_new_protected:Npn \ctex_set_zhmap:n { \tl_gput_right:Nx \g__ctex_zhmap_tl } \cs_new_protected:Npn \ctex_use_zhmap: { \tl_use:N \g__ctex_zhmap_tl } \cs_if_exist:NTF \ctex_gadd_ltxhook:nn - { \ctex_gadd_ltxhook:nn { shipout/firstpage } { \ctex_use_zhmap: } } + { + \cs_new_protected:Npn \ctex_at_shipout_first:n + { \ctex_gadd_ltxhook:nn { shipout/firstpage } } + \ctex_at_shipout_first:n { \ctex_use_zhmap: } + } { \cs_new_protected:Npn \ctex_add_dvi_zhmap: { \AtBeginDvi { \ctex_use_zhmap: } } \ctex_after_end_preamble:n { \ctex_add_dvi_zhmap: } \ctex_at_end_package:nn { atbegshi } { - \AtBeginShipoutFirst { \ctex_use_zhmap: } + \cs_new_protected:Npn \ctex_at_shipout_first:n + { \AtBeginShipoutFirst } + \ctex_at_shipout_first:n { \ctex_use_zhmap: } \cs_gset_eq:NN \ctex_add_dvi_zhmap: \prg_do_nothing: } } @@ -61,24 +67,31 @@ \cs_new_protected:Npn \ctex_add_cmap:n #1 { \cs_if_free:NF \CJK@plane - { \ctex_add_cmap:cn { __ctex_add_cmap_ #1 \CJK@plane : } {#1} } + { \exp_args:Ne \__ctex_add_cmap_auxi:n { #1 \CJK@plane } } } -\cs_new_protected:Npn \ctex_add_cmap:Nn #1#2 +\cs_new_protected:Npn \__ctex_add_cmap_auxi:n #1 + { \exp_args:Nc \__ctex_add_cmap_auxii:Nn { __ctex_add_cmap_ #1 : } {#1} } +\cs_new_protected:Npn \__ctex_add_cmap_auxii:Nn #1#2 { \cs_if_exist:NF #1 { \__ctex_save_cmap:Nn #1 {#2} } #1 } -\cs_generate_variant:Nn \ctex_add_cmap:Nn { c } \cs_new_protected:Npn \__ctex_save_cmap:Nn #1#2 { - \tl_set:Nx \l__ctex_tmp_tl { \str_lowercase:n {#2} \CJK@plane } - \tex_immediate:D \tex_pdfobj:D stream ~ file { \l__ctex_tmp_tl .cmap } - \cs_new_protected:Npx #1 + \exp_args:Ne \file_get_full_name:nNTF + { \str_lowercase:n {#2} .cmap } \l__ctex_cmap_file_tl { - \exp_not:N \tex_pdffontattr:D \exp_not:N \tex_font:D - { /ToUnicode ~ \int_use:N \tex_pdflastobj:D \c_space_tl 0 ~ R } + \tex_immediate:D \tex_pdfobj:D stream ~ file { \l__ctex_cmap_file_tl } + \cs_new_protected:Npx #1 + { + \pdfnobuiltintounicode \tex_font:D + \tex_pdffontattr:D \tex_font:D + { /ToUnicode ~ \int_value:w \tex_pdflastobj:D \c_space_tl 0 ~ R } + } } + { \cs_new_eq:NN #1 \prg_do_nothing: } } +\tl_new:N \l__ctex_cmap_file_tl \group_begin: \char_set_catcode_other:N \# \sys_if_output_pdf:TF @@ -88,7 +101,10 @@ { \CTEX@Family@CMap {#1} {#2} } { \ctex_at_end_package:nn { cmap } - { \cs_gset_eq:NN \CTEX@Family@CMap \use_none:nn } + { + \cs_gset_eq:NN \ctex_add_cmap:n \use_none:n + \cs_gset_eq:NN \CTEX@Family@CMap \use_none:nn + } } { \ctex_patch_failure:N \DeclareFontFamily } } @@ -118,27 +134,36 @@ \ctex_pop_file: } \cs_set_eq:NN \CJK@input \ctex_CJK_input:n -\if_cs_exist:N \CJK@surr - \cs_new_protected:Npn \ctex_plane_to_utfxvibe:Nn #1#2 - { - \tl_set:Nx \l__ctex_tmp_tl {#2} - \int_set:Nn \l__ctex_tmp_int - { \exp_args:No \int_from_hex:n { \l__ctex_tmp_tl } } - \int_compare:nNnTF \l__ctex_tmp_int < { 256 } - { \tl_gset:Nx #1 { \int_to_Hex:n { \l__ctex_tmp_int } } } - { - \int_sub:Nn \l__ctex_tmp_int { 256 } - \tl_gset:Nx #1 - { - \int_to_Hex:n - { \int_div_truncate:nn { \l__ctex_tmp_int } { 4 } + "D800 } - \int_to_Hex:n - { \int_mod:nn { \l__ctex_tmp_int } { 4 } + "DC } - } - } - } - \cs_set_eq:NN \CJK@surr \ctex_plane_to_utfxvibe:Nn -\fi: +\cs_if_free:NF \CJK@surr + { + \cs_new_protected:Npn \ctex_plane_to_utfxvibe:Nn #1#2 + { + \int_set:Nn \l__ctex_tmp_int + { \exp_args:Ne \int_from_hex:n {#2} } + \int_compare:nNnTF \l__ctex_tmp_int < { 256 } + { \tl_gset:Nx #1 { \int_to_Hex:n { \l__ctex_tmp_int } } } + { + \int_sub:Nn \l__ctex_tmp_int { 256 } + \tl_gset:Nx #1 + { + \int_to_Hex:n + { \int_div_truncate:nn { \l__ctex_tmp_int } { 4 } + "D800 } + \int_to_Hex:n + { \int_mod:nn { \l__ctex_tmp_int } { 4 } + "DC } + } + } + } + \cs_set_eq:NN \CJK@surr \ctex_plane_to_utfxvibe:Nn + } +\cs_if_free:NF \CJK@addcmap + { + \ctex_patch_cmd:Nnn \CJK@addcmap + { \pdffontattr \font@name } + { + \pdfnobuiltintounicode \font@name + \pdffontattr \font@name + } + } \AtBeginDocument { \str_if_eq:eeF { \l__ctex_punct_tl } { quanjiao } @@ -294,11 +319,12 @@ \sys_if_output_pdf:TF { \ctex_at_end_package:nn { hyperref } { \RequirePackage { xCJK2uni } } } { + \ctex_hypersetup:n { pdfencoding = pdfdoc } \ctex_at_end_package:nn { hyperref } { \str_if_eq:onTF { \Hy@driver } { hdvipdfm } { - \AtBeginShipoutFirst + \ctex_at_shipout_first:n { \special { pdf:tounicode~GBK-EUC-UCS2 } } } { \RequirePackage { xCJK2uni } } @@ -341,36 +367,44 @@ { \exp_not:o { \CTEX@selectfont@hook #1 } } } \cs_new_eq:NN \CTEX@selectfont@hook \prg_do_nothing: -\if_cs_exist:N \@EverySelectfont@Init - \group_begin: - \cs_set:Npn \__ctex_tmp:N #1 - { - \tl_set:Nn \l__ctex_tmp_tl {#1} - \cs_new_eq:NN \CTEX@selectfont@save #1 - \cs_new_protected:Npn \__ctex_restore_selectfont: - { - \cs_if_free:NF \scr@new@selectfont - { - \cs_if_free:NF \par@update - { \tl_put_right:Nn #1 { \par@update } } - \cs_set_eq:NN \scr@selectfont \CTEX@selectfont@save - \cs_set_eq:NN \scr@new@selectfont #1 - } - \tl_put_left:Nn \@EverySelectfont@Init - { \cs_set_eq:NN #1 \CTEX@selectfont@save } - \cs_undefine:N \__ctex_restore_selectfont: - } - } - \ctex_parse_name:NN \__ctex_tmp:N \selectfont - \exp_last_unbraced:NNo \group_end: - \ctex_patch_cmd_once:NnnnTF { \l__ctex_tmp_tl } - { \ExplSyntaxOff } - { \size@update } - { \CTEX@selectfont@hook \size@update } - { \__ctex_restore_selectfont: } - { \ctex_patch_failure:N \selectfont } +\if_bool:N \c__ctex_everysel_loaded_bool + \if_cs_exist:N \@EverySelectfont@Init + \group_begin: + \cs_set:Npn \__ctex_tmp:N #1 + { + \tl_set:Nn \l__ctex_tmp_tl {#1} + \cs_new_eq:NN \CTEX@selectfont@save #1 + \cs_new_protected:Npn \__ctex_restore_selectfont: + { + \cs_if_free:NF \scr@new@selectfont + { + \cs_if_free:NF \par@update + { \tl_put_right:Nn #1 { \par@update } } + \cs_set_eq:NN \scr@selectfont \CTEX@selectfont@save + \cs_set_eq:NN \scr@new@selectfont #1 + } + \tl_put_left:Nn \@EverySelectfont@Init + { \cs_set_eq:NN #1 \CTEX@selectfont@save } + \cs_undefine:N \__ctex_restore_selectfont: + } + } + \ctex_parse_name:NN \__ctex_tmp:N \selectfont + \exp_last_unbraced:NNo \group_end: + \ctex_patch_cmd_once:NnnnTF { \l__ctex_tmp_tl } + { \ExplSyntaxOff } + { \size@update } + { \CTEX@selectfont@hook \size@update } + { \__ctex_restore_selectfont: } + { \ctex_patch_failure:N \selectfont } + \fi: + \cs_new_protected:Npn \ctex_gadd_selectfont_hook:n + { \EverySelectfont } +\else: + \cs_new_protected:Npn \ctex_gadd_selectfont_hook:n + { \ctex_gadd_ltxhook:nn { selectfont } } \fi: -\EverySelectfont { \cs_if_exist:NF \CJK@plane { \CTEX@selectfont@hook } } +\ctex_gadd_selectfont_hook:n + { \cs_if_exist:NF \CJK@plane { \CTEX@selectfont@hook } } \ctex_define:n { space .choice: , diff --git a/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-uptex.def b/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-uptex.def index e36d7fffbef..5c5402024d2 100644 --- a/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-uptex.def +++ b/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-uptex.def @@ -24,23 +24,29 @@ %% %% --------------------------------------------------------------------- %% -\GetIdInfo$Id: ctex.dtx 07425fe 2021-03-14 16:43:36 +0800 Xiangdong Zeng <xdzeng96@gmail.com> $ +\GetIdInfo$Id: ctex.dtx 6604451 2021-06-20 17:08:49 +0800 Qing Lee <sobenlee@gmail.com> $ {upTeX adapter (CTEX)} \ProvidesExplFile{ctex-engine-uptex.def} - {\ExplFileDate}{2.5.6}{\ExplFileDescription} + {\ExplFileDate}{2.5.7}{\ExplFileDescription} \cs_new_protected:Npn \ctex_set_zhmap:n { \tl_gput_right:Nx \g__ctex_zhmap_tl } \cs_new_protected:Npn \ctex_use_zhmap: { \tl_use:N \g__ctex_zhmap_tl } \cs_if_exist:NTF \ctex_gadd_ltxhook:nn - { \ctex_gadd_ltxhook:nn { shipout/firstpage } { \ctex_use_zhmap: } } + { + \cs_new_protected:Npn \ctex_at_shipout_first:n + { \ctex_gadd_ltxhook:nn { shipout/firstpage } } + \ctex_at_shipout_first:n { \ctex_use_zhmap: } + } { \cs_new_protected:Npn \ctex_add_dvi_zhmap: { \AtBeginDvi { \ctex_use_zhmap: } } \ctex_after_end_preamble:n { \ctex_add_dvi_zhmap: } \ctex_at_end_package:nn { atbegshi } { - \AtBeginShipoutFirst { \ctex_use_zhmap: } + \cs_new_protected:Npn \ctex_at_shipout_first:n + { \AtBeginShipoutFirst } + \ctex_at_shipout_first:n { \ctex_use_zhmap: } \cs_gset_eq:NN \ctex_add_dvi_zhmap: \prg_do_nothing: } } @@ -116,7 +122,8 @@ \@onlypreamble \ctex_set_upmap:nnn \@onlypreamble \ctex_set_upmap_unicode:nnn \@onlypreamble \ctex_set_upfonts:nnnnnn -\RequirePackage { pxeverysel } +\bool_if:NT \c__ctex_everysel_loaded_bool + { \RequirePackage { pxeverysel } } \cs_new_protected:Npn \ctex_provide_font_hook:NNN #1#2 { \exp_args:Nc \__ctex_provide_font_hook_aux:NNNN @@ -180,9 +187,16 @@ { \exp_not:o { \CJKfamilydefault } } } \tl_gset_eq:NN \CJKfamilydefault \l__ctex_family_default_init_tl -\ctex_hypersetup:n { driverfallback = dvipdfmx } +\ctex_hypersetup:n + { + driverfallback = dvipdfmx , + pdfencoding = pdfdoc + } \ctex_at_end_package:nn { hyperref } - { \AtBeginShipoutFirst { \special { pdf:tounicode~UTF8-UTF16 } } } + { + \ctex_at_shipout_first:n + { \special { pdf:tounicode~UTF8-UTF16 } } + } \cs_new_protected:Npn \ctex_update_ccwd: { \skip_set:Nn \ccwd { 1zw + \tex_kanjiskip:D } } \dim_new:N \ccwd @@ -202,39 +216,46 @@ { \exp_not:o { \CTEX@selectfont@hook #1 } } } \cs_new_eq:NN \CTEX@selectfont@hook \prg_do_nothing: -\if_cs_exist:N \@EverySelectfont@Init - \group_begin: - \cs_set:Npn \__ctex_tmp:N #1 - { - \tl_set:Nn \l__ctex_tmp_tl {#1} - \cs_new_eq:NN \CTEX@selectfont@save #1 - \cs_new_protected:Npn \__ctex_restore_selectfont: - { - \cs_if_free:NF \scr@new@selectfont - { - \cs_if_free:NF \par@update - { - \tl_put_right:Nn \@EverySelectfont@Init - { \tl_put_right:Nn #1 { \par@update } } - } - \cs_set_eq:NN \scr@new@selectfont #1 - \cs_set_eq:NN \CTEX@selectfont@save \scr@selectfont - } - \tl_put_left:Nn \@EverySelectfont@Init - { \cs_set_eq:NN #1 \CTEX@selectfont@save } - \cs_undefine:N \__ctex_restore_selectfont: - } - } - \ctex_parse_name:NN \__ctex_tmp:N \selectfont - \exp_last_unbraced:NNo \group_end: - \ctex_patch_cmd_once:NnnnTF { \l__ctex_tmp_tl } - { \ExplSyntaxOff } - { \size@update } - { \CTEX@selectfont@hook \size@update } - { \__ctex_restore_selectfont: } - { \ctex_patch_failure:N \selectfont } +\if_bool:N \c__ctex_everysel_loaded_bool + \if_cs_exist:N \@EverySelectfont@Init + \group_begin: + \cs_set:Npn \__ctex_tmp:N #1 + { + \tl_set:Nn \l__ctex_tmp_tl {#1} + \cs_new_eq:NN \CTEX@selectfont@save #1 + \cs_new_protected:Npn \__ctex_restore_selectfont: + { + \cs_if_free:NF \scr@new@selectfont + { + \cs_if_free:NF \par@update + { + \tl_put_right:Nn \@EverySelectfont@Init + { \tl_put_right:Nn #1 { \par@update } } + } + \cs_set_eq:NN \scr@new@selectfont #1 + \cs_set_eq:NN \CTEX@selectfont@save \scr@selectfont + } + \tl_put_left:Nn \@EverySelectfont@Init + { \cs_set_eq:NN #1 \CTEX@selectfont@save } + \cs_undefine:N \__ctex_restore_selectfont: + } + } + \ctex_parse_name:NN \__ctex_tmp:N \selectfont + \exp_last_unbraced:NNo \group_end: + \ctex_patch_cmd_once:NnnnTF { \l__ctex_tmp_tl } + { \ExplSyntaxOff } + { \size@update } + { \CTEX@selectfont@hook \size@update } + { \__ctex_restore_selectfont: } + { \ctex_patch_failure:N \selectfont } + \fi: + \cs_new_protected:Npn \ctex_gadd_selectfont_hook:n + { \EverySelectfont } +\else: + \cs_new_protected:Npn \ctex_gadd_selectfont_hook:n + { \ctex_gadd_ltxhook:nn { selectfont } } \fi: -\EverySelectfont { \CTEX@selectfont@hook } +\ctex_gadd_selectfont_hook:n { \CTEX@selectfont@hook } \cs_new_protected:Npn \ctex_update_xkanjiskip: { \skip_if_eq:nnT diff --git a/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-xetex.def b/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-xetex.def index 74e38695699..f8807ceb56f 100644 --- a/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-xetex.def +++ b/Master/texmf-dist/tex/latex/ctex/engine/ctex-engine-xetex.def @@ -24,10 +24,10 @@ %% %% --------------------------------------------------------------------- %% -\GetIdInfo$Id: ctex.dtx 07425fe 2021-03-14 16:43:36 +0800 Xiangdong Zeng <xdzeng96@gmail.com> $ +\GetIdInfo$Id: ctex.dtx 6604451 2021-06-20 17:08:49 +0800 Qing Lee <sobenlee@gmail.com> $ {XeLaTeX adapter (CTEX)} \ProvidesExplFile{ctex-engine-xetex.def} - {\ExplFileDate}{2.5.6}{\ExplFileDescription} + {\ExplFileDate}{2.5.7}{\ExplFileDescription} \RequirePackage { xeCJK } \exp_args:Nx \xeCJKsetup { @@ -78,34 +78,41 @@ { \exp_not:o { \CTEX@selectfont@hook #1 } } } \cs_new_eq:NN \CTEX@selectfont@hook \prg_do_nothing: -\if_cs_exist:N \@EverySelectfont@Init - \group_begin: - \cs_set:Npn \__ctex_tmp:N #1 - { - \tl_set:Nn \l__ctex_tmp_tl {#1} - \cs_new_eq:NN \CTEX@selectfont@save #1 - \cs_new_protected:Npn \__ctex_restore_selectfont: - { - \cs_if_free:NF \scr@new@selectfont - { - \cs_set_eq:NN \scr@new@selectfont #1 - \cs_set_eq:NN \CTEX@selectfont@save \scr@selectfont - } - \tl_put_left:Nn \@EverySelectfont@Init - { \cs_set_eq:NN #1 \CTEX@selectfont@save } - \cs_undefine:N \__ctex_restore_selectfont: - } - } - \ctex_parse_name:NN \__ctex_tmp:N \selectfont - \exp_last_unbraced:NNo \group_end: - \ctex_patch_cmd_once:NnnnTF { \l__ctex_tmp_tl } - { \ExplSyntaxOff } - { \size@update } - { \CTEX@selectfont@hook \size@update } - { \__ctex_restore_selectfont: } - { \ctex_patch_failure:N \selectfont } +\if_bool:N \c__ctex_everysel_loaded_bool + \if_cs_exist:N \@EverySelectfont@Init + \group_begin: + \cs_set:Npn \__ctex_tmp:N #1 + { + \tl_set:Nn \l__ctex_tmp_tl {#1} + \cs_new_eq:NN \CTEX@selectfont@save #1 + \cs_new_protected:Npn \__ctex_restore_selectfont: + { + \cs_if_free:NF \scr@new@selectfont + { + \cs_set_eq:NN \scr@new@selectfont #1 + \cs_set_eq:NN \CTEX@selectfont@save \scr@selectfont + } + \tl_put_left:Nn \@EverySelectfont@Init + { \cs_set_eq:NN #1 \CTEX@selectfont@save } + \cs_undefine:N \__ctex_restore_selectfont: + } + } + \ctex_parse_name:NN \__ctex_tmp:N \selectfont + \exp_last_unbraced:NNo \group_end: + \ctex_patch_cmd_once:NnnnTF { \l__ctex_tmp_tl } + { \ExplSyntaxOff } + { \size@update } + { \CTEX@selectfont@hook \size@update } + { \__ctex_restore_selectfont: } + { \ctex_patch_failure:N \selectfont } + \fi: + \cs_new_protected:Npn \ctex_gadd_selectfont_hook:n + { \EverySelectfont } +\else: + \cs_new_protected:Npn \ctex_gadd_selectfont_hook:n + { \ctex_gadd_ltxhook:nn { selectfont } } \fi: -\EverySelectfont { \CTEX@selectfont@hook } +\ctex_gadd_selectfont_hook:n { \CTEX@selectfont@hook } \ctex_define:n { space .choice: , |