summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/fontspec/fontspec-api.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/fontspec/fontspec-api.dtx')
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-api.dtx80
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)>