summaryrefslogtreecommitdiff
path: root/tex/context/base/meta-pdf.tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/meta-pdf.tex')
-rw-r--r--tex/context/base/meta-pdf.tex59
1 files changed, 26 insertions, 33 deletions
diff --git a/tex/context/base/meta-pdf.tex b/tex/context/base/meta-pdf.tex
index 8ac736818..4dec40e70 100644
--- a/tex/context/base/meta-pdf.tex
+++ b/tex/context/base/meta-pdf.tex
@@ -963,43 +963,36 @@
% This code will move to meta-pdf.mkiv and the call to lua will move to the
% converter code (saves a lua call). We will do this when we made the final
-% move to attribute bases color .
+% move to attribute bases color. Actually, we cannot use attributes for
+% switching colors in mp literals because grouping (qQ) interferes.
\ifx\colorversion\undefined \else \ifnum\colorversion>\plusone
- \def\dohandleMPgraycolor #1{\dosetattribute{color}{\ctxlua{tex.sprint(colors.register('color',nil,'gray',#1))}}}
- \def\dohandleMPrgbcolor #1#2#3{\dosetattribute{color}{\ctxlua{tex.sprint(colors.register('color',nil,'rgb' ,#1,#2,#3))}}}
- \def\dohandleMPcmykcolor#1#2#3#4{\dosetattribute{color}{\ctxlua{tex.sprint(colors.register('color',nil,'cmyk',#1,#2,#3,#4))}}}
- \def\dohandleMPspotcolor#1#2#3#4{\dosetattribute{color}{\ctxlua{tex.sprint(colors.register('color',nil,'spot',"#1",#2,"#3","#4"))}}}
-
- \def\dohandleMPgraytransparency #1#2#3{\dosetattribute{color}{\ctxlua{tex.sprint(colors.register('color',nil,'gray',#1))}}%
- \dosetattribute{transparency}{\ctxlua{tex.sprint(transparencies.register(nil,#2,#3))}}}
- \def\dohandleMPrgbtransparency #1#2#3#4#5{\dosetattribute{color}{\ctxlua{tex.sprint(colors.register('color',nil,'rgb' ,#1,#2,#3))}}%
- \dosetattribute{transparency}{\ctxlua{tex.sprint(transparencies.register(nil,#4,#5))}}}
- \def\dohandleMPcmyktransparency#1#2#3#4#5#6{\dosetattribute{color}{\ctxlua{tex.sprint(colors.register('color',nil,'cmyk',#1,#2,#3,#4))}}%
- \dosetattribute{transparency}{\ctxlua{tex.sprint(transparencies.register(nil,#5,#6))}}}
- \def\dohandleMPspottransparency#1#2#3#4#5#6{\dosetattribute{color}{\ctxlua{tex.sprint(colors.register('color',nil,'spot',"#1",#2,"#3","#4"))}}%
- \dosetattribute{transparency}{\ctxlua{tex.sprint(transparencies.register(nil,#5,#6))}}}
-
- % \dostartgraycolormode\!!zerocount} % kind of hackery initialization
-
- \def\resolveMPgraycolor#1\to#2%
- {\global\let\MPresolvedspace\MPgrayspace
- \edef#2{\ctxlua{tex.sprint(ctx.pdfcolorvalue(\number\currentcolormodel,colors.register('color',nil,'gray',#1)))}}}
-
- \def\resolveMPrgbcolor#1#2#3\to#4%
- {\global\let\MPresolvedspace\MPrgbspace
- \edef#4{\ctxlua{tex.sprint(ctx.pdfcolorvalue(\number\currentcolormodel,colors.register('color',nil,'rgb' ,#1,#2,#3)))}}}
-
- \def\resolveMPcmykcolor#1#2#3#4\to#5%
- {\global\let\MPresolvedspace\MPcmykspace
- \edef#5{\ctxlua{tex.sprint(ctx.pdfcolorvalue(\number\currentcolormodel,colors.register('color',nil,'cmyk',#1,#2,#3,#4)))}}}
-
- \def\resolveMPspotcolor#1#2#3#4\to#5%
- {\xdef\MPresolvedspace{#1}%
+ \def\dohandleMPgraycolor #1{\ctxlua{ctx.pdfgrayliteral(\the\currentcolormodel,#1)}}
+ \def\dohandleMPrgbcolor #1#2#3{\ctxlua{ctx.pdfrgbliteral (\the\currentcolormodel,#1,#2,#3)}}
+ \def\dohandleMPcmykcolor#1#2#3#4{\ctxlua{ctx.pdfcmykliteral(\the\currentcolormodel,#1,#2,#3,#4)}}
+ \def\dohandleMPspotcolor#1#2#3#4{\ctxlua{ctx.pdfspotliteral(\the\currentcolormodel,"#1",#2,"#3","#4")}}
+
+ \def\dohandleMPgraytransparency #1#2#3{\ctxlua{ctx.pdfgrayliteral(\the\currentcolormodel,#1)}%
+ \ctxlua{ctx.pdftransparencyliteral(#2,#3)}}
+ \def\dohandleMPrgbtransparency #1#2#3#4#5{\ctxlua{ctx.pdfrgbliteral (\the\currentcolormodel,#1,#2,#3)}%
+ \ctxlua{ctx.pdftransparencyliteral(#4,#5)}}
+ \def\dohandleMPcmyktransparency#1#2#3#4#5#6{\ctxlua{ctx.pdfcmykliteral(\the\currentcolormodel,#1,#2,#3,#4)}%
+ \ctxlua{ctx.pdftransparencyliteral(#5,#6)}}
+ \def\dohandleMPspottransparency#1#2#3#4#5#6{\ctxlua{ctx.pdfspotliteral(\the\currentcolormodel,"#1",#2,"#3","#4")}%
+ \ctxlua{ctx.pdftransparencyliteral(#5,#6)}}
+
+ \def\resolveMPgraycolor #1\to#2{\ctxlua{ctx.resolvempgraycolor("\strippedcsname#2","MPresolvedspace",\number\currentcolormodel,#1)}}
+ \def\resolveMPrgbcolor #1#2#3\to#4{\ctxlua{ctx.resolvemprgbcolor ("\strippedcsname#4","MPresolvedspace",\number\currentcolormodel,#1,#2,#3)}}
+ \def\resolveMPcmykcolor#1#2#3#4\to#5{\ctxlua{ctx.resolvempcmykcolor("\strippedcsname#5","MPresolvedspace",\number\currentcolormodel,#1,#2,#3,#4)}}
+
+ \def\resolveMPspotcolor#1#2#3#4\to#5% unchecked
+ {\ctxlua{ctx.resolvempspotcolor("\strippedcsname#5","MPresolvedspace",\number\currentcolormodel,"#1",#2,"#3","#4")}%
+ \xdef\MPresolvedspace{#1}%
\xdef\MPresolvedcolor{#4}%
- \global\let\MPspotspace\MPresolvedspace
- \edef#5{\ctxlua{tex.sprint(ctx.pdfcolorvalue(\number\currentcolormodel,colors.register('color',nil,'spot',"#1",#2,"#3","#4")))}}}
+ \global\let\MPspotspace\MPresolvedspace}
+
+ % used as callers
\let\MPSgray\dohandleMPgraycolor
\let\MPSrgb \dohandleMPrgbcolor