summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-11-22 22:50:32 +0000
committerKarl Berry <karl@freefriends.org>2016-11-22 22:50:32 +0000
commit1a2e7be1784cdd093a722b0f80ee7e09b18f5e14 (patch)
tree9ef9e7ce6b5c685329e0c67712a45ddcc009f117 /Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
parentf476e2547d6f421f3f59e812adb855596f668eb5 (diff)
xecjk (22nov16)
git-svn-id: svn://tug.org/texlive/trunk@42557 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty')
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xeCJK.sty92
1 files changed, 62 insertions, 30 deletions
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 <sobenlee@gmail.com> $
+\GetIdInfo$Id: xeCJK.dtx f0c9d10 2016-11-20 23:00:07 +0800 Qing Lee <sobenlee@gmail.com> $
{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:
{