summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/optex/base/colors.opm
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-03-11 22:04:51 +0000
committerKarl Berry <karl@freefriends.org>2022-03-11 22:04:51 +0000
commit41bf581d1e01e395d0eaeb2fc50b36d0cd3c92bc (patch)
treeb9f337374b98fdf7d3e27331951e6b3429998bb6 /Master/texmf-dist/tex/optex/base/colors.opm
parent594f56d8c6dd122d6841c134070753e69276d5cf (diff)
optex (11mar22) (branch)
git-svn-id: svn://tug.org/texlive/branches/branch2021.final@62641 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/optex/base/colors.opm')
-rw-r--r--Master/texmf-dist/tex/optex/base/colors.opm42
1 files changed, 38 insertions, 4 deletions
diff --git a/Master/texmf-dist/tex/optex/base/colors.opm b/Master/texmf-dist/tex/optex/base/colors.opm
index 6ef8fc9dcf7..36afcb3862f 100644
--- a/Master/texmf-dist/tex/optex/base/colors.opm
+++ b/Master/texmf-dist/tex/optex/base/colors.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \colordef {Colors <2021-07-16>} % preloaded in format
+\_codedecl \colordef {Colors <2022-03-07>} % preloaded in format
\_doc -----------------------------
The basic colors in CMYK
@@ -72,14 +72,11 @@
\_color:<attribute-value> ... expands to <data> <fill-op>
\_color-s:<attribute-value> ... expands to <data> <stroke-op>
\endtt
- The \`\_resetcolor` un-sets the color attribute, it means that default
- color (black) shall be used.
\_cod -----------------------------
\_newattribute \_colorattr
\_newcount \_colorcnt \_colorcnt=1 % allocations start at 1
\_protected\_def\_setcolor{\_colorprefix\_colorattr=\_translatecolor}
-\_def\_resetcolor{\_colorattr=-"7FFFFFFF }
\_def\_translatecolor#1#2#3{\_ifcsname _color::#1 #2\_endcsname\_lastnamedcs\_relax
\_else
\_colorcnt
@@ -108,6 +105,41 @@
\_localcolor
\_doc -----------------------------
+ The attribute \`\_transpattr` is allocated and set by the
+ \`\transparency``<number>` macro. If such level of the tranparency was
+ never used in the document then
+ \^`\addextgstate{tr<number>}`\code{\{<</ca X /CA X>>\}} is applied
+ (where `X` is `(255-<number>)/255`).
+ This information is used when shipout is processed (similarly as colors).
+ It means `/tr<number> gs` is inserted when the attribute is changed.\nl
+ \`\_resetattrs` resets the \^`\_colorattr` and \^`\_transpattr`
+ to their initial value `-"7FFFFFFF`.
+ \_cod -----------------------------
+
+\_newattribute\_transpattr
+\_def\_transparency {\_afterassignment\_transparencyA \_transpattr}
+\_def\_transparencyA{%
+ \_ifnum\_transpattr<1 \_transpattr=\_noattr \_fi
+ \_ifnum\_transpattr>255 \_opwarning{\_noexpand\transparency > 255 not allowed}%
+ \_transpattr=\_noattr
+ \_else
+ \_ifcsname _transp:\_the\_transpattr\_endcsname \_else
+ \_edef\_transpv{\_expr{(255-\_the\_transpattr)/255}}%
+ \_addextgstate{tr\_the\_transpattr}{<</ca \_transpv\_space /CA \_transpv>>}%
+ \_sxdef{_transp:\_the\_transpattr}{}%
+ \_ifcsname _transp:0\_endcsname \_else
+ \_addextgstate{tr0}{<</ca 1 /CA 1>>}%
+ \_sxdef{_transp:0}{}%
+ \_fi
+ \_fi
+ \_fi
+}
+\_def\_thetransparency{\_ifnum \_transpattr=-"7FFFFFFF 0\_else \_the\_transpattr \_fi}
+\_def\_resetattrs{\_colorattr=\_noattr \_transpattr=\_noattr}
+
+\_public \transparency \thetransparency ;
+
+ \_doc -----------------------------
We use Lua codes for RGB to CMYK or CMYK to RGB conversions and for
addition color components in the \^`\colordef` macro.
The \`\_rgbtocmyk` `<R> <G> <B> ;` expands to `<C> <M> <Y> <K>` and
@@ -411,6 +443,8 @@ and it is used in \^`\rgbcolordef` or if it is printed when \^`\onlyrgb` is decl
\_endinput
+2022-03-07 \_resetattrs instead \_resetcolor
+2022-03-05 \transparency added
2021-07-16 colors reimplemented, now they are based on attributes
2021-05-28 \rgbcmykmap introduced
2020-04-22 \replstring\tmpb{+ }{+}, {- }{-} added in \colordef, bug fixed