diff options
Diffstat (limited to 'Master/texmf-dist/tex/xetex/xetexko/xetexko-font.sty')
-rw-r--r-- | Master/texmf-dist/tex/xetex/xetexko/xetexko-font.sty | 173 |
1 files changed, 104 insertions, 69 deletions
diff --git a/Master/texmf-dist/tex/xetex/xetexko/xetexko-font.sty b/Master/texmf-dist/tex/xetex/xetexko/xetexko-font.sty index a959de576e4..bdca890d47a 100644 --- a/Master/texmf-dist/tex/xetex/xetexko/xetexko-font.sty +++ b/Master/texmf-dist/tex/xetex/xetexko/xetexko-font.sty @@ -10,10 +10,10 @@ % and version 1.3c or later is part of all distributions of LaTeX % version 2006/05/20 or later. -\ProvidesPackage{xetexko-font}[2014/05/11 v2.6 Font commands for XeTeX-ko] +\ProvidesPackage{xetexko-font}[2014/06/17 v2.7 LaTeX Font commands for XeTeX-ko] \let\xetexko@f@size\f@size -\RequirePackage{fontspec} +\RequirePackage{fontspec}[2014/05/25] \let\f@size\xetexko@f@size %%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -89,98 +89,103 @@ { \__xtxko_add_font_opt:Nn \xetexkoquotewidth {#1} } , charraise .code:n = { \__xtxko_add_font_opt:Nn \xetexkocharraise {#1} } , - InterLatinCJK .code:n = - { \keys_set:nn { xtxko-font } { hu = {#1} } } , - InterHangul .code:n = - { \keys_set:nn { xtxko-font } { interhchar = {#1} } } , - PunctRaise .code:n = - { \keys_set:nn { xtxko-font } { lowerperiod = { \dim_eval:n {-#1} } } } , - CharRaise .code:n = - { \keys_set:nn { xtxko-font } { charraise = {#1} } } , + InterLatinCJK .meta:n = { hu = {#1} } , + InterHangul .meta:n = { interhchar = {#1} } , + PunctRaise .meta:n = { lowerperiod = { \dim_eval:n {-#1} } } , + CharRaise .meta:n = { charraise = {#1} } , } \tl_new:N \l_xtxko_rem_tl -\cs_new:Nn \__xtxko_assign_font_opts:Nn +\tl_set_eq:NN \l_xtxko_hangul_font_opts_init_tl \l_xtxko_font_opts_init_tl +\cs_new:Nn \__xtxko_hangul_assign_font_opts:n { - \tl_set_eq:NN \l_xtxko_font_opts_tl \l_xtxko_font_opts_init_tl - \keys_set_known:nxN { xtxko-font } {#2} \l_xtxko_rem_tl - \tl_set_eq:NN #1 \l_xtxko_font_opts_tl + \tl_set_eq:NN \l_xtxko_font_opts_tl \l_xtxko_hangul_font_opts_init_tl + \keys_set_known:nxN { xtxko-font } {#1} \l_xtxko_rem_tl + } +\tl_set_eq:NN \l_xtxko_hanja_font_opts_init_tl \l_xtxko_font_opts_init_tl +\cs_new:Nn \__xtxko_hanja_assign_font_opts:n + { + \tl_set_eq:NN \l_xtxko_font_opts_tl \l_xtxko_hanja_font_opts_init_tl + \keys_set_known:nxN { xtxko-font } {#1} \l_xtxko_rem_tl } -\cs_generate_variant:Nn \__xtxko_assign_font_opts:Nn { c } %%%%%%%%%%%%%%%%%%%% % user font commands -\DeclareDocumentCommand \setmainhangulfont { O{} m } +\DeclareDocumentCommand \setmainhangulfont { O{} m O{} } { - \__xtxko_assign_font_opts:Nn \XK@main@hangul@options {#1} - \newfontfamily \XK@main@hangul@font [\l_xtxko_rem_tl] {#2} - \tl_set:Nn \kormainfont {\XK@main@hangul@font \XK@main@hangul@options} + \__xtxko_hangul_assign_font_opts:n {#1,#3} + \newfontfamily \kormainfont [\l_xtxko_rem_tl] {#2} + \tl_put_right:NV \kormainfont \l_xtxko_font_opts_tl \ignorespaces } -\DeclareDocumentCommand \setsanshangulfont { O{} m } +\DeclareDocumentCommand \setsanshangulfont { O{} m O{} } { - \__xtxko_assign_font_opts:Nn \XK@sans@hangul@options {#1} - \newfontfamily \XK@sans@hangul@font [\l_xtxko_rem_tl] {#2} - \tl_set:Nn \korsansfont {\XK@sans@hangul@font \XK@sans@hangul@options} + \__xtxko_hangul_assign_font_opts:n {#1,#3} + \newfontfamily \korsansfont [\l_xtxko_rem_tl] {#2} + \tl_put_right:NV \korsansfont \l_xtxko_font_opts_tl \ignorespaces } -\DeclareDocumentCommand \setmonohangulfont { O{} m } +\DeclareDocumentCommand \setmonohangulfont { O{} m O{} } { - \newfontfamily \kormonofont [#1] {#2} + \newfontfamily \kormonofont [#1,#3] {#2} \ignorespaces } -\DeclareDocumentCommand \setmainhanjafont { O{} m } +\DeclareDocumentCommand \setmainhanjafont { O{} m O{} } { - \__xtxko_assign_font_opts:Nn \XK@main@hanja@options {#1} - \newfontfamily \XK@main@hanja@font [\l_xtxko_rem_tl] {#2} - \tl_set:Nn \hnjmainfont {\XK@main@hanja@font \XK@main@hanja@options} + \__xtxko_hanja_assign_font_opts:n {#1,#3} + \newfontfamily \hnjmainfont [\l_xtxko_rem_tl] {#2} + \tl_put_right:NV \hnjmainfont \l_xtxko_font_opts_tl \ignorespaces } -\DeclareDocumentCommand \setsanshanjafont { O{} m } +\DeclareDocumentCommand \setsanshanjafont { O{} m O{} } { - \__xtxko_assign_font_opts:Nn \XK@sans@hanja@options {#1} - \newfontfamily \XK@sans@hanja@font [\l_xtxko_rem_tl] {#2} - \tl_set:Nn \hnjsansfont {\XK@sans@hanja@font \XK@sans@hanja@options} + \__xtxko_hanja_assign_font_opts:n {#1,#3} + \newfontfamily \hnjsansfont [\l_xtxko_rem_tl] {#2} + \tl_put_right:NV \hnjsansfont \l_xtxko_font_opts_tl \ignorespaces } -\DeclareDocumentCommand \setmonohanjafont { O{} m } +\DeclareDocumentCommand \setmonohanjafont { O{} m O{} } { - \newfontfamily \hnjmonofont [#1] {#2} + \newfontfamily \hnjmonofont [#1,#3] {#2} \ignorespaces } %% {hangul,hanja}fontspec = adhoc{hangul,hanja}font -\DeclareDocumentCommand \adhochangulfont { O{} m } +\DeclareDocumentCommand \adhochangulfont { O{} m O{} } { - \__xtxko_assign_font_opts:Nn \XK@adhoc@hangul@options {#1} + \__xtxko_hangul_assign_font_opts:n {#1,#3} \newfontfamily \XK@adhoc@hangul@font [\l_xtxko_rem_tl] {#2} + \tl_put_right:NV \XK@adhoc@hangul@font \l_xtxko_font_opts_tl \tl_set:Nn \XKhangulfont { \XK@storeltnfont \tl_set_eq:NN \XKcurrentfont \c_one - \XK@adhoc@hangul@font \XK@adhoc@hangul@options + \XK@adhoc@hangul@font \XK@storecjkfont } \ignorespaces } \cs_set_eq:NN \hangulfontspec \adhochangulfont -\DeclareDocumentCommand \adhochanjafont { O{} m } +\DeclareDocumentCommand \adhochanjafont { O{} m O{} } { - \__xtxko_assign_font_opts:Nn \XK@adhoc@hanja@options {#1} + \__xtxko_hanja_assign_font_opts:n {#1,#3} \newfontfamily \XK@adhoc@hanja@font [\l_xtxko_rem_tl] {#2} + \tl_put_right:NV \XK@adhoc@hanja@font \l_xtxko_font_opts_tl \tl_set:Nn \XKhanjafont { \XK@storeltnfont \tl_set_eq:NN \XKcurrentfont \c_two - \XK@adhoc@hanja@font \XK@adhoc@hanja@options + \XK@adhoc@hanja@font \XK@storecjkfont } \ignorespaces } \cs_set_eq:NN \hanjafontspec \adhochanjafont %% new{hangul,hanja}font{family,face} -\DeclareDocumentCommand \newhangulfontfamily { m O{} m } +\DeclareDocumentCommand \newhangulfontfamily { m O{} m O{} } { - \__xtxko_assign_font_opts:cn { XK@newfont@options \token_to_str:N #1 } {#2} - \exp_after:wN \newfontfamily - \cs:w XK@newfont@family \token_to_str:N #1 \cs_end: [\l_xtxko_rem_tl] {#3} + \__xtxko_hangul_assign_font_opts:n {#2,#4} + \exp_args:Nc \newfontfamily { XK@newfont@family \token_to_str:N #1 } + [\l_xtxko_rem_tl] {#3} + \tl_put_right:cV { XK@newfont@family \token_to_str:N #1 } + \l_xtxko_font_opts_tl \DeclareRobustCommand #1 { \tl_set:Nn \XKhangulfont @@ -188,16 +193,17 @@ \XK@storeltnfont \tl_set_eq:NN \XKcurrentfont \c_one \use:c { XK@newfont@family \token_to_str:N #1 } - \use:c { XK@newfont@options \token_to_str:N #1 } \XK@storecjkfont } } } -\DeclareDocumentCommand \newhanjafontfamily { m O{} m } +\DeclareDocumentCommand \newhanjafontfamily { m O{} m O{} } { - \__xtxko_assign_font_opts:cn { XK@newfont@options \token_to_str:N #1 } {#2} - \exp_after:wN \newfontfamily - \cs:w XK@newfont@family \token_to_str:N #1 \cs_end: [\l_xtxko_rem_tl] {#3} + \__xtxko_hanja_assign_font_opts:n {#2,#4} + \exp_args:Nc \newfontfamily { XK@newfont@family \token_to_str:N #1 } + [\l_xtxko_rem_tl] {#3} + \tl_put_right:cV { XK@newfont@family \token_to_str:N #1 } + \l_xtxko_font_opts_tl \DeclareRobustCommand #1 { \tl_set:Nn \XKhanjafont @@ -205,16 +211,17 @@ \XK@storeltnfont \tl_set_eq:NN \XKcurrentfont \c_two \use:c { XK@newfont@family \token_to_str:N #1 } - \use:c { XK@newfont@options \token_to_str:N #1 } \XK@storecjkfont } } } -\DeclareDocumentCommand \newhangulfontface { m O{} m } +\DeclareDocumentCommand \newhangulfontface { m O{} m O{} } { - \__xtxko_assign_font_opts:cn { XK@newfont@options \token_to_str:N #1 } {#2} - \exp_after:wN \newfontface - \cs:w XK@newfont@family \token_to_str:N #1 \cs_end: [\l_xtxko_rem_tl] {#3} + \__xtxko_hangul_assign_font_opts:n {#2,#4} + \exp_args:Nc \newfontface { XK@newfont@family \token_to_str:N #1 } + [\l_xtxko_rem_tl] {#3} + \tl_put_right:cV { XK@newfont@family \token_to_str:N #1 } + \l_xtxko_font_opts_tl \DeclareRobustCommand #1 { \tl_set:Nn \XKhangulfont @@ -222,16 +229,17 @@ \XK@storeltnfont \tl_set_eq:NN \XKcurrentfont \c_one \use:c { XK@newfont@family \token_to_str:N #1 } - \use:c { XK@newfont@options \token_to_str:N #1 } \XK@storecjkfont } } } -\DeclareDocumentCommand \newhanjafontface { m O{} m } +\DeclareDocumentCommand \newhanjafontface { m O{} m O{} } { - \__xtxko_assign_font_opts:cn { XK@newfont@options \token_to_str:N #1 } {#2} - \exp_after:wN \newfontface - \cs:w XK@newfont@family \token_to_str:N #1 \cs_end: [\l_xtxko_rem_tl] {#3} + \__xtxko_hanja_assign_font_opts:n {#2,#4} + \exp_args:Nc \newfontface { XK@newfont@family \token_to_str:N #1 } + [\l_xtxko_rem_tl] {#3} + \tl_put_right:cV { XK@newfont@family \token_to_str:N #1 } + \l_xtxko_font_opts_tl \DeclareRobustCommand #1 { \tl_set:Nn \XKhanjafont @@ -239,7 +247,6 @@ \XK@storeltnfont \tl_set_eq:NN \XKcurrentfont \c_two \use:c { XK@newfont@family \token_to_str:N #1 } - \use:c { XK@newfont@options \token_to_str:N #1 } \XK@storecjkfont } } @@ -257,8 +264,7 @@ \group_end: \exp_not:N \tl_set:Nn \exp_not:N \XKhangulfont { - \exp_not:N \XK@storeltnfont - \exp_not:N \tl_set_eq:NN \exp_not:N \XKcurrentfont \exp_not:N \c_one + \exp_not:V \XKhangulfont \exp_not:N \fontfamily { \f@family } \exp_not:N \selectfont \exp_not:V \l_xtxko_font_opts_tl \exp_not:N \XK@storecjkfont @@ -279,8 +285,7 @@ \group_end: \exp_not:N \tl_set:Nn \exp_not:N \XKhanjafont { - \exp_not:N \XK@storeltnfont - \exp_not:N \tl_set_eq:NN \exp_not:N \XKcurrentfont \exp_not:N \c_two + \exp_not:V \XKhanjafont \exp_not:N \fontfamily { \f@family } \exp_not:N \selectfont \exp_not:V \l_xtxko_font_opts_tl \exp_not:N \XK@storecjkfont @@ -289,10 +294,40 @@ \ignorespaces } \cs_set_eq:NN \addhanjafontfeatures \addhanjafontfeature +%% default font features +\defaultfontfeatures + [ + \kormainfont, \korsansfont, \hnjmainfont, \hnjsansfont, + ] + {Ligatures=TeX} +\DeclareDocumentCommand \defaulthangulfontfeatures { t+ o m } % o is ignored + { + \IfBooleanTF {#1} + { + \tl_set_eq:NN \l_xtxko_font_opts_tl \l_xtxko_hangul_font_opts_init_tl + } + { + \tl_set_eq:NN \l_xtxko_font_opts_tl \l_xtxko_font_opts_init_tl + } + \keys_set_known:nxN { xtxko-font } {#3} \l_xtxko_rem_tl % rem_tl ignored + \tl_set_eq:NN \l_xtxko_hangul_font_opts_init_tl \l_xtxko_font_opts_tl + } +\DeclareDocumentCommand \defaulthanjafontfeatures { t+ o m } % o is ignored + { + \IfBooleanTF {#1} + { + \tl_set_eq:NN \l_xtxko_font_opts_tl \l_xtxko_hanja_font_opts_init_tl + } + { + \tl_set_eq:NN \l_xtxko_font_opts_tl \l_xtxko_font_opts_init_tl + } + \keys_set_known:nxN { xtxko-font } {#3} \l_xtxko_rem_tl % rem_tl ignored + \tl_set_eq:NN \l_xtxko_hanja_font_opts_init_tl \l_xtxko_font_opts_tl + } %% math hangul font -\DeclareDocumentCommand \setmathhangulfont { O{} m } +\DeclareDocumentCommand \setmathhangulfont { O{} m O{} } { - \fontspec_set_family:Nnn \xetexko@math@hangul@family {#1} {#2} + \fontspec_set_family:Nnn \xetexko@math@hangul@family {#1,#3} {#2} } %%%%%%%%%%%%%%%%%%%% %% xetexkofontregime @@ -307,10 +342,10 @@ hyphens .code:n = \use:c { #1hyphens } , cjksymbols .code:n = \use:c { #1cjksymbols } , } -\DeclareDocumentCommand \xetexkofontregime { O{} m } +\DeclareDocumentCommand \xetexkofontregime { O{} m O{} } { \use:c { #2marks } - \keys_set:nn { xtxko-char } { #1 } + \keys_set:nn { xtxko-char } { #1, #3 } } \ExplSyntaxOff |