summaryrefslogtreecommitdiff
path: root/macros/luatex/generic/minim-mp/minim-mp.tex
blob: 8e39c7f227ae4dd9e644ea5107ca5af5ff49b38c (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
60
61

\ifdefined\minimmploaded
    \message{(skipped)}
    \expandafter\endinput\fi
\chardef\minimmploaded = \catcode`\:
\catcode`\: = 11

\input minim-alloc

% a default catcode table
\newcatcodetable \minim:mp:catcodes
{\catcode`\:=12 \catcode`\@=12
    \savecatcodetable\csname minim:mp:catcodes\endcsname}

\directlua { require('minim-mp') }

% The following are provided from the lua side.
%
% Note that only two of these are \protected – you are responsible for the 
% proper time and place of expansion of the others.
%
%   \closemetapostinstance \instance
%   \runmetapost           \instance { code } % \protected
%   \runmetapostimage      \instance { code } % \protected
%   \getnextmpimage        \instance
%   \getnamedmpimage       \instance {name}
%   \remainingmpimages     \instance
%   \boxnextmpimage        \instance box-nr
%   \boxnamedmpimage       \instance box-nr {name}

% \directmetapost [ options ] { code }
\protected\def\directmetapost{\withoptions[]\directmetapost:}
\def\directmetapost:[#1]#2{%
    \begingroup
        \newmetapostinstance[#1]\:mpinst:
        \runmetapost\:mpinst:{#2}%
        \loop \ifnum\remainingmpimages\:mpinst:>0\relax
            \getnextmpimage\:mpinst: \repeat
        \closemetapostinstance\:mpinst:
    \endgroup}

% \newmetapostinstance [ options ] \instance
\protected\def\newmetapostinstance{\withoptions[]\newmetapostinstance:}
\def\newmetapostinstance:[#1]#2{%
    \chardef#2=\directlua{
            tex.sprint(require('minim-mp').open{#1})
        }\relax}

% colour conversion: 1 grayscale 2 cmyk 3 rgb 4 rgb as spot
\newcount \convertmpcolours
\convertmpcolours = 0

\newcount\RtoG \RtoG = 2126
\newcount\GtoG \GtoG = 7152
\newcount\BtoG \BtoG = 0722

\catcode`\: = \minimmploaded