From 1a2e7be1784cdd093a722b0f80ee7e09b18f5e14 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 22 Nov 2016 22:50:32 +0000 Subject: xecjk (22nov16) git-svn-id: svn://tug.org/texlive/trunk@42557 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty | 92 ++++++++++++++++++--------- 1 file changed, 62 insertions(+), 30 deletions(-) (limited to 'Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty') diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty index bcb8164353b..0cd56e3f91f 100644 --- a/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty +++ b/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty @@ -29,10 +29,10 @@ %% \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} -\GetIdInfo$Id: xeCJK.dtx 7cdefd6 2016-10-25 17:38:55 +0800 Qing Lee $ +\GetIdInfo$Id: xeCJK.dtx f0c9d10 2016-11-20 23:00:07 +0800 Qing Lee $ {Typesetting CJK scripts with XeLaTeX} \ProvidesExplPackage{\ExplFileName} - {\ExplFileDate}{3.4.2}{\ExplFileDescription} + {\ExplFileDate}{3.4.3}{\ExplFileDescription} \msg_new:nnn { xeCJK } { Require-XeTeX } { The~xeCJK~package~requires~XeTeX~to~function.\\\\ @@ -2369,7 +2369,7 @@ \str_case:nnTF {#1} { { ^^^^2025 } { } { ^^^^2026 } { } } { \c_zero_dim } - { - \l__xeCJK_tmp_dim } + { \dim_min:nn { - \l__xeCJK_tmp_dim } { \c_zero_dim } } } \__xeCJK_save_punct_dim:nnnn { kern } {#1} {#1} { \l__xeCJK_tmp_dim } \__xeCJK_save_punct_skip:nnnn { kern } {#1} {#1} { \l__xeCJK_tmp_dim } @@ -2512,8 +2512,12 @@ ( \prop_item:Nn \g__xeCJK_family_font_name_prop {#1} )~ does~not~contain~glyph~`#2'~(U+#3).\\ } -\NewDocumentCommand \setCJKfallbackfamilyfont { m O { } m } - { \use:x { \xeCJK_set_family_fallback:nnn {#1} {#2} {#3} } } +\NewDocumentCommand \setCJKfallbackfamilyfont { m o m } + { + \__xeCJK_pass_args:nnnn + { \xeCJK_set_family_fallback:nnn {#1} } {#2} {#3} + { } + } \cs_new_protected_nopar:Npn \xeCJK_set_family_fallback:nnn #1#2#3 { \group_begin: @@ -2694,9 +2698,7 @@ \tl_new:N \l__xeCJK_family_name_tl \tl_new:N \l__xeCJK_font_name_tl \clist_new:N \l__xeCJK_font_options_clist -\cs_generate_variant:Nn \xeCJK_set_family:nnn { Vnn , VVV , Voo } -\cs_new_protected_nopar:Npn \xeCJK_set_family:xxx #1#2#3 - { \use:x { \xeCJK_set_family:nnn {#1} {#2} {#3} } } +\cs_generate_variant:Nn \xeCJK_set_family:nnn { x , VVV , Voo } \cs_new_protected_nopar:Npn \__xeCJK_remove_duplicate_keys:N #1 { \prop_clear:N \l__xeCJK_font_options_prop @@ -3002,39 +3004,63 @@ } {#1} } -\NewDocumentCommand \setCJKmainfont { O { } m } +\cs_new_protected:Npn \__xeCJK_pass_args:nnnn #1#2#3#4 { - \xeCJK_set_family:xxx { \CJKrmdefault } {#1} {#2} - \normalfont + \IfNoValueTF {#2} + { \__xeCJK_post_arg:w {#1} {#3} {#4} } + { + \use:x { #1 {#2} {#3} } + #4 + } + } +\NewDocumentCommand \__xeCJK_post_arg:w { m m m O { } } + { + \use:x { #1 {#4} {#2} } + #3 + } +\NewDocumentCommand \setCJKmainfont { o m } + { + \__xeCJK_pass_args:nnnn + { \xeCJK_set_family:nnn { \CJKrmdefault } } {#1} {#2} + { \normalfont } } \cs_new_eq:NN \setCJKromanfont \setCJKmainfont -\NewDocumentCommand \setCJKsansfont { O { } m } +\NewDocumentCommand \setCJKsansfont { o m } { - \xeCJK_set_family:xxx { \CJKsfdefault } {#1} {#2} - \normalfont + \__xeCJK_pass_args:nnnn + { \xeCJK_set_family:nnn { \CJKsfdefault } } {#1} {#2} + { \normalfont } } -\NewDocumentCommand \setCJKmonofont { O { } m } +\NewDocumentCommand \setCJKmonofont { o m } { - \xeCJK_set_family:xxx { \CJKttdefault } {#1} {#2} - \normalfont + \__xeCJK_pass_args:nnnn + { \xeCJK_set_family:nnn { \CJKttdefault } } {#1} {#2} + { \normalfont } } \@onlypreamble \setCJKmainfont \@onlypreamble \setCJKmathfont \@onlypreamble \setCJKsansfont \@onlypreamble \setCJKmonofont \@onlypreamble \setCJKromanfont -\NewDocumentCommand \setCJKfamilyfont { m O { } m } - { \xeCJK_set_family:xxx {#1} {#2} {#3} } -\NewDocumentCommand \newCJKfontfamily { o m O { } m } +\NewDocumentCommand \setCJKfamilyfont { m o m } + { + \__xeCJK_pass_args:nnnn + { \xeCJK_set_family:nnn {#1} } {#2} {#3} + { } + } +\NewDocumentCommand \newCJKfontfamily { o m o m } { \tl_set:Nx \l__xeCJK_tmp_tl { \IfNoValueTF {#1} { \cs_to_str:N #2 } {#1} } \cs_new_protected_nopar:Npx #2 { \xeCJK_switch_family:n { \l__xeCJK_tmp_tl } } - \xeCJK_set_family:xxx { \l__xeCJK_tmp_tl } {#3} {#4} + \__xeCJK_pass_args:nnnn + { \xeCJK_set_family:nnn { \l__xeCJK_tmp_tl } } {#3} {#4} + { } } -\NewDocumentCommand \CJKfontspec { O { } m } +\NewDocumentCommand \CJKfontspec { o m } { - \use:x { \xeCJK_fontspec:nn {#1} {#2} } - \tex_ignorespaces:D + \__xeCJK_pass_args:nnnn + { \xeCJK_fontspec:nn } {#1} {#2} + { \tex_ignorespaces:D } } \cs_new_protected_nopar:Npn \xeCJK_fontspec:nn #1#2 { @@ -3152,11 +3178,13 @@ { LoadFandol .bool_gset:N = \g__xeCJK_fandol_bool } \cs_new_protected_nopar:Npn \__xeCJK_load_fandol: { - \setCJKmainfont - [ Extension = .otf , BoldFont = FandolSong-Bold , ItalicFont = FandolKai-Regular ] + \xeCJK_set_family:xnn { \CJKrmdefault } + { Extension = .otf , BoldFont = FandolSong-Bold , ItalicFont = FandolKai-Regular } { FandolSong-Regular } - \setCJKsansfont [ Extension = .otf , BoldFont = FandolHei-Bold ] { FandolHei-Regular } - \setCJKmonofont [ Extension = .otf ] { FandolFang-Regular } + \xeCJK_set_family:xnn { \CJKsfdefault } + { Extension = .otf , BoldFont = FandolHei-Bold } { FandolHei-Regular } + \xeCJK_set_family:xnn { \CJKttdefault } + { Extension = .otf } { FandolFang-Regular } } \__xeCJK_at_end_preamble:n { @@ -3231,8 +3259,12 @@ Please~make~sure~it~has~been~properly~installed. } \keys_define:nn { xeCJK / options } { CJKmath .bool_gset:N = \g__xeCJK_math_bool } -\NewDocumentCommand \setCJKmathfont { O { } m } - { \xeCJK_set_family:xxx { \c__xeCJK_math_tl } {#1} {#2} } +\NewDocumentCommand \setCJKmathfont { o m } + { + \__xeCJK_pass_args:nnnn + { \xeCJK_set_family:nnn { \c__xeCJK_math_tl } } {#1} {#2} + { } + } \tl_const:Nn \c__xeCJK_math_tl { CJKmath } \cs_new_protected_nopar:Npn \xeCJK_set_mathfont: { -- cgit v1.2.3