From 73c697c4bcf96abeafeb7a57008f118b2c6da063 Mon Sep 17 00:00:00 2001 From: Max Chernoff <49086429+gucci-on-fleek@users.noreply.github.com> Date: Sun, 6 Feb 2022 15:41:03 -0700 Subject: [PATCH] Support `RGB` and `gray` color models in ConTeXt The `RGB` support was copied from the the Plain TeX definitions, `tex/generic/pgf/utilities/pgfutil-plain.def:29-37`, which is from #772. The `gray` color model now maps to the grayscale and not to `rgb`. Signed-off-by: Max Chernoff <49086429+gucci-on-fleek@users.noreply.github.com> --- doc/generic/pgf/CHANGELOG.md | 3 +++ tex/generic/pgf/utilities/pgfutil-context.def | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/doc/generic/pgf/CHANGELOG.md b/doc/generic/pgf/CHANGELOG.md index d27a1ab42..bd8a8ab28 100644 --- a/doc/generic/pgf/CHANGELOG.md +++ b/doc/generic/pgf/CHANGELOG.md @@ -10,6 +10,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Added +- Add `RGB` and `gray` color model support for ConTeXt #1130 + ### Fixed - Typo in animations `end on` key #1273 @@ -37,6 +39,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Rocky Zhang (@rockyzhz) - Yukai Chou (@muzimuzhi) - Alexander Grahn +- Max Chernoff ## [3.1.10] - 2023-01-13 Henri Menke diff --git a/tex/generic/pgf/utilities/pgfutil-context.def b/tex/generic/pgf/utilities/pgfutil-context.def index eddab09ab..66edb0980 100644 --- a/tex/generic/pgf/utilities/pgfutil-context.def +++ b/tex/generic/pgf/utilities/pgfutil-context.def @@ -26,8 +26,17 @@ \def\pgfutil@definecolor#1#2#3{\csname pgfutil@emu@#2\endcsname{#1}#3\@nil} \def\pgfutil@emu@rgb#1#2,#3,#4\@nil{\expandafter\def\csname\string\color@#1\endcsname{\xcolor@{}{}{rgb}{#2,#3,#4}}} -\def\pgfutil@emu@gray#1#2\@nil{\expandafter\def\csname\string\color@#1\endcsname{\xcolor@{}{}{rgb}{#2,#2,#2}}} +\def\pgfutil@emu@gray#1#2\@nil{\expandafter\def\csname\string\color@#1\endcsname{\xcolor@{}{}{gray}{#2}}} \def\pgfutil@emu@cmyk#1#2,#3,#4,#5\@nil{\expandafter\def\csname\string\color@#1\endcsname{\xcolor@{}{}{cmyk}{#2,#3,#4,#5}}} +\def\pgfutil@emu@RGB#1#2,#3,#4\@nil{% + \begingroup + \pgfmathdivide@{#2}{255}\let\pgfutil@emu@RGB@r\pgfmathresult + \pgfmathdivide@{#3}{255}\let\pgfutil@emu@RGB@g\pgfmathresult + \pgfmathdivide@{#4}{255}\let\pgfutil@emu@RGB@b\pgfmathresult + \edef\pgf@marshal{\def\expandafter\noexpand\csname\string\color@#1\endcsname{% + \noexpand\xcolor@{}{}{rgb}{\pgfutil@emu@RGB@r,\pgfutil@emu@RGB@g,\pgfutil@emu@RGB@b}}}% + \expandafter\endgroup\pgf@marshal +} % no need for x colors (users can load it if needed)