diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/fontspec/fontspec-api.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/fontspec/fontspec-api.dtx | 80 |
1 files changed, 56 insertions, 24 deletions
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec-api.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec-api.dtx index 364ccf07b17..fbbe2dc3663 100644 --- a/Master/texmf-dist/source/latex/fontspec/fontspec-api.dtx +++ b/Master/texmf-dist/source/latex/fontspec/fontspec-api.dtx @@ -42,10 +42,10 @@ \fontspec_if_fontspec_font:TF { \prop_get:cnN {g_@@_ \f@family _prop} {fontdef} \l_@@_fontdef_tl - \@@_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f@size pt} + \@@_primitive_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f@size pt} \bool_if:NTF \l_@@_atsui_bool { - \fontspec_make_AAT_feature_string:nnTF {#1}{#2} + \@@_make_AAT_feature_string:nnTF {#1}{#2} \prg_return_true: \prg_return_false: } { @@ -69,7 +69,7 @@ \fontspec_if_fontspec_font:TF { \prop_get:cnN {g_@@_ \f@family _prop} {fontdef} \l_@@_fontdef_tl - \@@_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f@size pt} + \@@_primitive_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f@size pt} \@@_set_font_type: \bool_if:NTF \l_@@_ot_bool \prg_return_true: \prg_return_false: } @@ -91,20 +91,20 @@ \fontspec_if_fontspec_font:TF { \prop_get:cnN {g_@@_ \f@family _prop} {fontdef} \l_@@_fontdef_tl - \@@_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f@size pt} + \@@_primitive_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f@size pt} \@@_set_font_type: \bool_if:NTF \l_@@_ot_bool { \prop_get:cnN {g_@@_ \f@family _prop} {script-num} \l_@@_tmp_tl - \int_set:Nn \l_fontspec_script_int {\l_@@_tmp_tl} + \int_set:Nn \l_@@_script_int {\l_@@_tmp_tl} \prop_get:cnN {g_@@_ \f@family _prop} {lang-num} \l_@@_tmp_tl - \int_set:Nn \l_fontspec_language_int {\l_@@_tmp_tl} + \int_set:Nn \l_@@_language_int {\l_@@_tmp_tl} \prop_get:cnN {g_@@_ \f@family _prop} {script-tag} \l_fontspec_script_tl \prop_get:cnN {g_@@_ \f@family _prop} {lang-tag} \l_fontspec_lang_tl - \fontspec_check_ot_feat:nTF {#1} {\prg_return_true:} {\prg_return_false:} + \@@_check_ot_feat:nTF {#1} {\prg_return_true:} {\prg_return_false:} } { \prg_return_false: @@ -127,13 +127,13 @@ \fontspec_if_fontspec_font:TF { \prop_get:cnN {g_@@_ \f@family _prop} {fontdef} \l_@@_fontdef_tl - \@@_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f@size pt} + \@@_primitive_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f@size pt} \@@_set_font_type: \bool_if:NTF \l_@@_ot_bool { - \fontspec_iv_str_to_num:Nn \l_fontspec_script_int {#1} - \fontspec_iv_str_to_num:Nn \l_fontspec_language_int {#2} - \fontspec_check_ot_feat:nTF {#3} \prg_return_true: \prg_return_false: + \@@_iv_str_to_num:Nn \l_@@_script_int {#1} + \@@_iv_str_to_num:Nn \l_@@_language_int {#2} + \@@_check_ot_feat:nTF {#3} \prg_return_true: \prg_return_false: } { \prg_return_false: } } @@ -153,11 +153,11 @@ \fontspec_if_fontspec_font:TF { \prop_get:cnN {g_@@_ \f@family _prop} {fontdef} \l_@@_fontdef_tl - \@@_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f@size pt} + \@@_primitive_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f@size pt} \@@_set_font_type: \bool_if:NTF \l_@@_ot_bool { - \fontspec_check_script:nTF {#1} \prg_return_true: \prg_return_false: + \@@_check_script:nTF {#1} \prg_return_true: \prg_return_false: } { \prg_return_false: } } @@ -177,15 +177,15 @@ \fontspec_if_fontspec_font:TF { \prop_get:cnN {g_@@_ \f@family _prop} {fontdef} \l_@@_fontdef_tl - \@@_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f@size pt} + \@@_primitive_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f@size pt} \@@_set_font_type: \bool_if:NTF \l_@@_ot_bool { \prop_get:cnN {g_@@_ \f@family _prop} {script-num} \l_@@_tmp_tl - \int_set:Nn \l_fontspec_script_int {\l_@@_tmp_tl} + \int_set:Nn \l_@@_script_int {\l_@@_tmp_tl} \prop_get:cnN {g_@@_ \f@family _prop} {script-tag} \l_fontspec_script_tl - \fontspec_check_lang:nTF {#1} \prg_return_true: \prg_return_false: + \@@_check_lang:nTF {#1} \prg_return_true: \prg_return_false: } { \prg_return_false: } } @@ -205,13 +205,13 @@ \fontspec_if_fontspec_font:TF { \prop_get:cnN {g_@@_ \f@family _prop} {fontdef} \l_@@_fontdef_tl - \@@_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f@size pt} + \@@_primitive_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f@size pt} \@@_set_font_type: \bool_if:NTF \l_@@_ot_bool { \tl_set:Nn \l_fontspec_script_tl {#1} - \fontspec_iv_str_to_num:Nn \l_fontspec_script_int {#1} - \fontspec_check_lang:nTF {#2} \prg_return_true: \prg_return_false: + \@@_iv_str_to_num:Nn \l_@@_script_int {#1} + \@@_check_lang:nTF {#2} \prg_return_true: \prg_return_false: } { \prg_return_false: } } @@ -230,7 +230,7 @@ \fontspec_if_fontspec_font:TF { \prop_get:cnN {g_@@_ \f@family _prop} {fontdef} \l_@@_fontdef_tl - \@@_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f@size pt} + \@@_primitive_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f@size pt} \@@_set_font_type: \bool_if:NTF \l_@@_ot_bool { @@ -254,7 +254,7 @@ \fontspec_if_fontspec_font:TF { \prop_get:cnN {g_@@_ \f@family _prop} {fontdef} \l_@@_fontdef_tl - \@@_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f@size pt} + \@@_primitive_font_set:Nnn \l_fontspec_font {\l_@@_fontdef_tl} {\f@size pt} \@@_set_font_type: \bool_if:NTF \l_@@_ot_bool { @@ -283,13 +283,13 @@ % variable because the actual \LaTeX\ family name is automatically generated % by fontspec and it's easier to keep it that way. % -% Please use |\fontspec_set_family:Nnn| instead of |\fontspec_select:nn|, +% Please use |\fontspec_set_family:Nnn| instead of |\@@_select_font_family:nn|, % which may change in the future. % \begin{macrocode} \cs_new:Nn \fontspec_set_family:Nnn { \tl_set:Nn \l_@@_family_label_tl { #1 } - \fontspec_select:nn {#2}{#3} + \@@_select_font_family:nn {#2}{#3} \tl_set_eq:NN #1 \l_fontspec_family_tl } \cs_generate_variant:Nn \fontspec_set_family:Nnn {c} @@ -302,13 +302,45 @@ \cs_new:Nn \fontspec_set_fontface:NNnn { \tl_set:Nn \l_@@_family_label_tl { #1 } - \fontspec_select:nn {#3}{#4} + \@@_select_font_family:nn {#3}{#4} \tl_set_eq:NN #1 \l_fontspec_font \tl_set_eq:NN #2 \l_fontspec_family_tl } % \end{macrocode} % \end{macro} % +% +% +% \begin{macro}{\fontspec_font_if_exist:n} +% \begin{macrocode} +\prg_new_conditional:Nnn \fontspec_font_if_exist:n {TF,T,F} + { + \group_begin: + \@@_init: + \@@_if_detect_external:nT {#1} { \@@_font_is_file: } + \@@_primitive_font_if_exist:nTF { \@@_construct_font_call:nn {#1} {} } + { \group_end: \prg_return_true: } + { \group_end: \prg_return_false: } + } +\cs_set_eq:NN \IfFontExistsTF \fontspec_font_if_exist:nTF +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\fontspec_if_current_feature:nTF} +% Test whether the currently loaded font is using the specified raw +% OpenType feature tag |#1|. +% \begin{macrocode} +\prg_new_conditional:Nnn \fontspec_if_current_feature:n {TF,T,F} + { + \exp_args:Nxx \tl_if_in:nnTF + { \fontname\font } { \tl_to_str:n {#1} } + { \prg_return_true: } { \prg_return_false: }% + } +% \end{macrocode} +% \end{macro} + + +% % \iffalse % \begin{macrocode} %</fontspec&(xetexx|luatex)> |