summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/font-fil.mklx
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkiv/font-fil.mklx')
-rw-r--r--tex/context/base/mkiv/font-fil.mklx104
1 files changed, 83 insertions, 21 deletions
diff --git a/tex/context/base/mkiv/font-fil.mklx b/tex/context/base/mkiv/font-fil.mklx
index 2b8224dfe..65cd64428 100644
--- a/tex/context/base/mkiv/font-fil.mklx
+++ b/tex/context/base/mkiv/font-fil.mklx
@@ -92,7 +92,7 @@
{\expandafter\let\csname\??fontfile\fontclass\m_font_name\endcsname\m_font_file
\doifelsenextoptionalcs\font_basics_define_font_synonym_yes_opt\font_basics_define_font_synonym_yes_nil}
-\unexpanded\def\edefinefontsynonym[#name]#crap[#file]%
+\unexpanded\def\edefinefontsynonym[#name]#ignore[#file]%
{\edef\m_font_name{#name}%
\edef\m_font_file{#file}%
\ifempty\fontclass
@@ -101,33 +101,66 @@
\expandafter\font_basics_define_font_synonym_yes_expanded
\fi}
-\unexpanded\def\font_basics_define_font_synonym_nop_expanded#crap[#spec]%
+\unexpanded\def\font_basics_define_font_synonym_nop_expanded#ignore[#spec]%
{\expandafter\let\csname\??fontfile\m_font_name\endcsname\m_font_file
- \normalexpanded{\font_basics_define_font_synonym_nop_opt[#1]}}
+ \normalexpanded{\font_basics_define_font_synonym_nop_opt[#spec]}}
-\unexpanded\def\font_basics_define_font_synonym_yes_expanded#crap[#spec]%
+\unexpanded\def\font_basics_define_font_synonym_yes_expanded#ignore[#spec]%
{\expandafter\let\csname\??fontfile\fontclass\m_font_name\endcsname\m_font_file
\normalexpanded{\font_basics_define_font_synonym_yes_opt[#spec]}}
+% \unexpanded\def\font_basics_define_font_synonym_nop_opt[#specification]%
+% {\let\p_features \undefined
+% \let\p_fallbacks \undefined
+% \let\p_goodies \undefined
+% \let\p_designsize\undefined
+% \expandafter\font_basics_get_font_parameter_nop#specification,]=,}
+%
+% \unexpanded\def\font_basics_define_font_synonym_yes_opt[#specification]%
+% {\let\p_features \undefined
+% \let\p_fallbacks \undefined
+% \let\p_goodies \undefined
+% \let\p_designsize\undefined
+% \expandafter\font_basics_get_font_parameter_yes#specification,]=,}
+%
+% % todo: check if we can use \edef but then we need to protect \mathsizesuffix .. in fact that
+% % can be default then: \let\mathsizesuffix\relax .. i need to play with it first
+%
+% \def\font_basics_get_font_parameter_nop#key=#value,%
+% {\if]#key%
+% \font_basics_get_font_parameter_nop_finish
+% \else
+% \expandafter\normaldef\csname p_#key\endcsname{#value}% % no edef as we need to keep \mathsizesuffix
+% \expandafter\font_basics_get_font_parameter_nop
+% \fi}
+%
+% \def\font_basics_get_font_parameter_yes#key=#value,%
+% {\if]#key%
+% \font_basics_get_font_parameter_yes_finish
+% \else
+% \expandafter\normaldef\csname p_#key\endcsname{#value}% % no edef as we need to keep \mathsizesuffix
+% \expandafter\font_basics_get_font_parameter_yes
+% \fi}
+
\unexpanded\def\font_basics_define_font_synonym_nop_opt[#specification]%
{\let\p_features \undefined
\let\p_fallbacks \undefined
\let\p_goodies \undefined
\let\p_designsize\undefined
- \expandafter\font_basics_get_font_parameter_nop#specification,]=,}
+ \expandafter\font_basics_get_font_parameter_nop#specification,\ignorearguments}
\unexpanded\def\font_basics_define_font_synonym_yes_opt[#specification]%
{\let\p_features \undefined
\let\p_fallbacks \undefined
\let\p_goodies \undefined
\let\p_designsize\undefined
- \expandafter\font_basics_get_font_parameter_yes#specification,]=,}
+ \expandafter\font_basics_get_font_parameter_yes#specification,\ignorearguments}
% todo: check if we can use \edef but then we need to protect \mathsizesuffix .. in fact that
% can be default then: \let\mathsizesuffix\relax .. i need to play with it first
\def\font_basics_get_font_parameter_nop#key=#value,%
- {\if]#key%
+ {\ifarguments
\font_basics_get_font_parameter_nop_finish
\else
\expandafter\normaldef\csname p_#key\endcsname{#value}% % no edef as we need to keep \mathsizesuffix
@@ -135,7 +168,7 @@
\fi}
\def\font_basics_get_font_parameter_yes#key=#value,%
- {\if]#key%
+ {\ifarguments
\font_basics_get_font_parameter_yes_finish
\else
\expandafter\normaldef\csname p_#key\endcsname{#value}% % no edef as we need to keep \mathsizesuffix
@@ -202,32 +235,66 @@
% todo: replace * by ... less messy with features
+% \def\truefontname#name%
+% {\expandafter\font_helpers_true_fontname#name*\empty*\relax}
+%
+% \def\font_helpers_true_fontname#name*#first#rest*#crap\relax
+% {\ifcsname\??fontfile\fontclass#name\endcsname
+% \ifempty#first%
+% \expandafter\truefontname\lastnamedcs
+% \else
+% \expandafter\font_helpers_true_fontname_check\lastnamedcs*#first#rest%
+% \fi
+% \orelse\ifcsname\??fontfile\defaultfontclass#name\endcsname
+% \ifempty#first%
+% \expandafter\truefontname\lastnamedcs
+% \else
+% \expandafter\font_helpers_true_fontname_check\lastnamedcs*#first#rest%
+% \fi
+% \orelse\ifcsname\??fontfile#name\endcsname
+% \ifempty#first%
+% \expandafter\truefontname\lastnamedcs
+% \else
+% \expandafter\font_helpers_true_fontname_check\lastnamedcs*#first#rest%
+% \fi
+% \else
+% #name\ifempty#first\else*#first#rest\fi
+% \fi}
+%
+% \def\font_helpers_true_fontname_check#name%
+% {\expandafter\font_helpers_true_fontname_check_indeed#name*\relax}
+%
+% \def\font_helpers_true_fontname_check_indeed#name*#crap\relax
+% {\ifcsname\??fontfile\fontclass#name\endcsname
+% \expandafter\font_helpers_true_fontname_check\lastnamedcs
+% \orelse\ifcsname\??fontfile\defaultfontclass#name\endcsname
+% \expandafter\font_helpers_true_fontname_check\lastnamedcs
+% \orelse\ifcsname\??fontfile#name\endcsname
+% \expandafter\font_helpers_true_fontname_check\lastnamedcs
+% \else
+% #name%
+% \fi}
+
\def\truefontname#name%
{\expandafter\font_helpers_true_fontname#name*\empty*\relax}
-\def\font_helpers_true_fontname#name*#first#rest*#crap\relax
+\def\font_helpers_true_fontname#name*#first#rest*#ignore\relax
{\ifcsname\??fontfile\fontclass#name\endcsname
\ifempty#first%
- %\expandafter\truefontname\csname\??fontfile\fontclass#name\endcsname
\expandafter\truefontname\lastnamedcs
\else
- %\expandafter\font_helpers_true_fontname_check\csname\??fontfile\fontclass#name\endcsname*#first#rest%
\expandafter\font_helpers_true_fontname_check\lastnamedcs*#first#rest%
\fi
\orelse\ifcsname\??fontfile\defaultfontclass#name\endcsname
\ifempty#first%
- %\expandafter\truefontname\csname\??fontfile\defaultfontclass#name\endcsname
\expandafter\truefontname\lastnamedcs
\else
- %\expandafter\font_helpers_true_fontname_check\csname\??fontfile\defaultfontclass#name\endcsname*#first#rest%
\expandafter\font_helpers_true_fontname_check\lastnamedcs*#first#rest%
\fi
\orelse\ifcsname\??fontfile#name\endcsname
\ifempty#first%
- %\expandafter\truefontname\csname\??fontfile#name\endcsname
\expandafter\truefontname\lastnamedcs
\else
- %\expandafter\font_helpers_true_fontname_check\csname\??fontfile#name\endcsname*#first#rest%
\expandafter\font_helpers_true_fontname_check\lastnamedcs*#first#rest%
\fi
\else
@@ -237,15 +304,12 @@
\def\font_helpers_true_fontname_check#name%
{\expandafter\font_helpers_true_fontname_check_indeed#name*\relax}
-\def\font_helpers_true_fontname_check_indeed#name*#crap\relax
+\def\font_helpers_true_fontname_check_indeed#name*#ignore\relax
{\ifcsname\??fontfile\fontclass#name\endcsname
- %\expandafter\font_helpers_true_fontname_check\csname\??fontfile\fontclass#name\endcsname
\expandafter\font_helpers_true_fontname_check\lastnamedcs
\orelse\ifcsname\??fontfile\defaultfontclass#name\endcsname
- %\expandafter\font_helpers_true_fontname_check\csname\??fontfile\defaultfontclass#name\endcsname
\expandafter\font_helpers_true_fontname_check\lastnamedcs
\orelse\ifcsname\??fontfile#name\endcsname
- %\expandafter\font_helpers_true_fontname_check\csname\??fontfile#name\endcsname
\expandafter\font_helpers_true_fontname_check\lastnamedcs
\else
#name%
@@ -271,10 +335,8 @@
\def\expandfontsynonym#command#name% one level expansion
{\ifcsname\??fontfile\fontclass#name\endcsname
- %\expandafter\normaldef\expandafter#command\expandafter{\csname\??fontfile\fontclass#name\endcsname}%
\expandafter\normaldef\expandafter#command\expandafter{\lastnamedcs}%
\orelse\ifcsname\??fontfile\defaultfontclass#2\endcsname
- %\expandafter\normaldef\expandafter#command\expandafter{\csname\??fontfile\defaultfontclass#name\endcsname}%
\expandafter\normaldef\expandafter#command\expandafter{\lastnamedcs}%
\fi}