diff options
Diffstat (limited to 'tex/context/base/meta-ini.mkiv')
-rw-r--r-- | tex/context/base/meta-ini.mkiv | 67 |
1 files changed, 40 insertions, 27 deletions
diff --git a/tex/context/base/meta-ini.mkiv b/tex/context/base/meta-ini.mkiv index a62b81ccf..cd4e03bd6 100644 --- a/tex/context/base/meta-ini.mkiv +++ b/tex/context/base/meta-ini.mkiv @@ -104,14 +104,6 @@ \c!textstyle=, \c!textcolor=] -% \unexpanded\def\defineMPinstance -% {\dodoubleargument\meta_define_instance} - -% \def\meta_define_instance[#1][#2]% -% {\ifcsname\??mpinstancetokens#1\endcsname\else\expandafter\newtoks\csname\??mpinstancetokens#1\endcsname\fi -% \t_meta_instance\emptytoks % in case we redefine -% \getparameters[\??mpinstance#1][\s!format=mpost,\s!extensions=\v!no,\s!initializations=\v!no,#2]} - \appendtoks \ifcsname\??mpinstancetokens\currentMPinstance\endcsname \else \expandafter\newtoks\csname\??mpinstancetokens\currentMPinstance\endcsname @@ -192,22 +184,43 @@ {\global\t_meta_instance\emptytoks \endgroup} +\def\meta_process_graphic_start + {\setbox\b_meta_graphic\hbox\bgroup} + +\def\meta_process_graphic_stop + {\egroup + \meta_place_graphic} + \unexpanded\def\meta_process_graphic#1% todo: extensions and inclusions outside beginfig {\meta_start_current_graphic \forgetall - \setbox\b_meta_graphic\hbox\bgroup % ; added 20100901 (as in mkii) + \meta_process_graphic_start \normalexpanded{\noexpand\ctxlua{metapost.graphic( "\currentMPinstance", "\currentMPformat", \!!bs#1;\!!es, \!!bs\meta_flush_current_initializations;\!!es, \!!bs\meta_flush_current_preamble;\!!es, - \MPaskedfigure + "\MPaskedfigure" )}}% - \egroup - \placeMPgraphic + \meta_process_graphic_stop \meta_stop_current_graphic} +\let\meta_process_graphic_figure_start\relax +\let\meta_process_graphic_figure_stop \relax + +\unexpanded\def\processMPfigurefile#1% special case: obeys beginfig .. endfig and makes pages + {\begingroup + \let\normal_meta_process_graphic_start\meta_process_graphic_start + \let\normal_meta_process_graphic_stop \meta_process_graphic_stop + \let\meta_process_graphic_start\relax + \let\meta_process_graphic_stop \relax + \def\meta_process_graphic_figure_start{\startTEXpage\normal_meta_process_graphic_start}% + \def\meta_process_graphic_figure_stop {\normal_meta_process_graphic_stop\stopTEXpage} + \def\MPaskedfigure{all}% + \meta_process_graphic{input "#1" ;}% + \endgroup} + \newif\ifsetMPrandomseed \setMPrandomseedtrue % false by default \def\setMPrandomseed @@ -362,34 +375,36 @@ \let \m_meta_current_variable \empty \let \m_meta_current_variable_template\empty +\installcorenamespace{graphicvariable} + \def \meta_prepare_variable_default {\MPcolor{black}} % just to be sure we use a color but ... -\edef\meta_unknown_variable_template {\??gv:\s!unknown} +\edef\meta_unknown_variable_template {\??graphicvariable:\s!unknown} -\letvalue{\??gv:\s!unknown}\empty +\letvalue{\??graphicvariable:\s!unknown}\empty \unexpanded\def\setupMPvariables {\dodoubleempty\meta_setup_variables} \def\meta_setup_variables[#1][#2]% {\ifsecondargument - \getrawparameters[\??gv#1:][#2]% + \getrawparameters[\??graphicvariable#1:][#2]% \else - \getrawparameters[\??gv:][#1]% + \getrawparameters[\??graphicvariable:][#1]% \fi} \unexpanded\def\presetMPvariable {\dodoubleargument\meta_preset_variable} \def\meta_preset_variable[#1][#2=#3]% - {\ifcsname\??gv#1:#2\endcsname \else - \setvalue{\??gv#1:#2}{#3}% + {\ifcsname\??graphicvariable#1:#2\endcsname \else + \setvalue{\??graphicvariable#1:#2}{#3}% \fi} \def\MPrawvar#1#2% no checking - {\csname\??gv#1:#2\endcsname} + {\csname\??graphicvariable#1:#2\endcsname} \def\MPvariable#1% todo: could be a framed chain - {\csname\??gv\currentmpvariableclass:#1\endcsname} + {\csname\??graphicvariable\currentmpvariableclass:#1\endcsname} \unexpanded\def\useMPvariables {\dodoubleargument\meta_use_variables} @@ -403,7 +418,7 @@ \unexpanded\def\meta_prepare_variable#1% {\edef\m_meta_current_variable_template - {\??gv\currentmpvariableclass:#1}% + {\??graphicvariable\currentmpvariableclass:#1}% \edef\m_meta_current_variable {\csname\ifcsname\m_meta_current_variable_template\endcsname \m_meta_current_variable_template\else\meta_unknown_variable_template @@ -506,7 +521,7 @@ \let\meta_relocate_box\relax -\unexpanded\def\placeMPgraphic % the converter also displaces so in fact we revert +\unexpanded\def\meta_place_graphic % the converter also displaces so in fact we revert {\meta_relocate_box \box\b_meta_graphic} @@ -1172,11 +1187,9 @@ %D %D Here is a generic setup command: -\newtoks\everysetupMPgraphics +\installcorenamespace{MPgraphics} -\unexpanded\def\setupMPgraphics[#1]% - {\getparameters[\??mp][#1]% - \the\everysetupMPgraphics} +\installsetuponlycommandhandler \??MPgraphics {MPgraphics} %D Here we hook in the outer color. When \type {color} is set to \type %D {global} we get the outer color automatically. If you change this @@ -1184,7 +1197,7 @@ %D behave in unexpected ways. \appendtoks - \doifelse\@@mpcolor\v!global{\MPcolormethod\plusone}{\MPcolormethod\zerocount}% + \doifelse{\directMPgraphicsparameter\c!color}\v!global{\MPcolormethod\plusone}{\MPcolormethod\zerocount}% \to \everysetupMPgraphics \setupMPgraphics |