blob: ae0312b560921487fbf1fdf1cb8284cdbefa9c0d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
\ProvidesPackage{minim-mp}[2023/03/03 Run MetaPost code from LaTeX]
\input minim-mp
\makeatletter
\RequirePackage{environ}
% work around latex’s \protect mechanism
\let\mnm@protect=\protect
\everymaketext{\let\protect=\mnm@protect}
% the defaultfont is the current \normalfont
\def\mnm@setnormalfont{{\normalfont
\xdef\mnm@normalfont{\expandafter\csstring\the\font}}}
% a one-off metapost environment
\newenvironment{metapost}[1][]{%
\begingroup \catcode`\#=12
\let\mpcolor = \minimpcolor
\csname:metapost:\endcsname[#1]}
{\csname end:metapost:\endcsname \endgroup}
\NewEnviron{:metapost:}[1][]{%
\mnm@setnormalfont
\let\protect=\noexpand
\directmetapost[#1]{%
defaultfont:="\mnm@normalfont"; \BODY; }%
\let\protect=\mnm@protect}
% separate metapost instances
\newcommand\newmetapostenvironment[2][]{%
\newmetapostinstance[#1]\mnm@tmp
\expandafter\let\csname #2@instance\endcsname\mnm@tmp
\newenvironment{#2}{%
\begingroup \catcode`\#=12
\let\mpcolor = \minimpcolor
\csname:#2:\endcsname}
{\csname end:#2:\endcsname \endgroup}%
\NewEnviron{:#2:}{%
\mnm@setnormalfont
\let\protect=\noexpand
\runmetapostimage
\csname #2@instance\endcsname
{defaultfont:="\mnm@normalfont";\BODY;}%
\let\protect=\mnm@protect}}
% \mpcolor support
\def\minimpcolor#1#{\dominimpcolor{#1}}
\def\dominimpcolor#1#2{%
\directlua{ tex.scantoks('mpcolorspectoks', 0, '#1{#2}')
tex.runtoks 'mpcolorruntoks' }
(\the\mpcolorvaltoks)}
\newtoks\mpcolorspectoks \newtoks\mpcolorruntoks \newtoks\mpcolorvaltoks
\mpcolorruntoks{\expandafter\extractcolorspec\the\mpcolorspectoks\mptmpcolor
\expandafter\mpcolorvaltoks\expandafter\@gobble\mptmpcolor}
\makeatother
|