Skip to content

Commit

Permalink
Use dvips specials for colour in dvipdfmx/xetex
Browse files Browse the repository at this point in the history
For XeTeX using dvips specials keeps things working with PStricks.

For dvipdfmx, it makes most sense to have the same code as for
XeTeX/dvips as this reduces the total number of approaches to keep
track of.

I've left \c@lor@to@ps, etc., in dvipdfmx although I'm not sure if
they are useful there.
  • Loading branch information
josephwright committed Jun 13, 2017
1 parent 3a7fadd commit d0235cb
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 20 deletions.
28 changes: 18 additions & 10 deletions dvipdfmx.def
Expand Up @@ -16,31 +16,31 @@
%% https://github.com/latex3/graphics-def/issues
%%
\ProvidesFile{dvipdfmx.def}
[2017/06/12 v5.0b Graphics/color driver for dvipdfmx]
[2017/06/13 v5.0c Graphics/color driver for dvipdfmx]
\def\c@lor@arg#1{%
\dimen@#1\p@
\ifdim\dimen@<\z@\dimen@\maxdimen\fi
\ifdim\dimen@>\p@
\PackageError{color}{Argument `#1' not in range [0,1]}{}%
\PackageError{color}{Argument `#1' not in range [0,1]}\@ehd
\fi}
\def\color@gray#1#2{%
\c@lor@arg{#2}%
\edef#1{[#2]}%
\edef#1{gray #2}%
}
\def\color@cmyk#1#2{\c@lor@@cmyk#2\@@#1}
\def\c@lor@@cmyk#1,#2,#3,#4\@@#5{%
\c@lor@arg{#4}%
\c@lor@arg{#1}%
\c@lor@arg{#2}%
\c@lor@arg{#3}%
\edef#5{[#1 #2 #3 #4]}%
\edef#5{cmyk #1 #2 #3 #4}%
}
\def\color@rgb#1#2{\c@lor@@rgb#2\@@#1}
\def\c@lor@@rgb#1,#2,#3\@@#4{%
\c@lor@arg{#1}%
\c@lor@arg{#2}%
\c@lor@arg{#3}%
\edef#4{[#1 #2 #3]}%
\edef#4{rgb #1 #2 #3}%
}
\def\color@RGB#1#2{\c@lor@@RGB#2\@@#1}
\def\c@lor@@RGB#1,#2,#3\@@#4{%
Expand All @@ -53,10 +53,17 @@
\dimen@#1\p@
\divide\dimen@\@cclv
\edef#2{\strip@pt\dimen@}}
\def\color@hsb#1#2{\c@lor@@hsb#2\@@#1}
\def\c@lor@@hsb#1,#2,#3\@@#4{%
\c@lor@arg{#1}%
\c@lor@arg{#2}%
\c@lor@arg{#3}%
\edef#4{hsb #1 #2 #3}%
}
\def\color@named#1#2{\c@lor@@named#2,,\@@#1}
\def\c@lor@@named#1,#2,#3\@@#4{%
\@ifundefined{col@#1}%
{\PackageError{color}{Undefined color `#1'}{}}%
{\PackageError{color}{Undefined color `#1'}\@ehd}%
{\edef#4{ #1}}%
}
\def\c@lor@to@ps#1 #2\@@{\csname c@lor@ps@#1\endcsname#2 \@@}
Expand All @@ -65,16 +72,17 @@
\def\c@lor@ps@hsb#1\@@{#1 sethsbcolor}
\def\c@lor@ps@cmyk#1\@@{#1 setcmykcolor}
\def\c@lor@ps@gray#1\@@{#1 setgray}
\def\current@color{[0]}
\def\current@color{ Black}
\def\set@color{%
\special{pdf:bcolor \current@color
\special{color push \current@color
}\aftergroup\reset@color}
\def\reset@color{\special{%
pdf:ecolor}}
color pop}}
\def\set@page@color{\special{%
pdf:bgcolor \current@color}}
background \current@color}}
\def\define@color@named#1#2{%
\expandafter\let\csname col@#1\endcsname\@nnil}
\def\no@page@color{\special{background \string"newpath clip}}
\@ifundefined{Gin@page}
{\let\Gin@page\@empty}
{}
Expand Down
28 changes: 18 additions & 10 deletions xetex.def
Expand Up @@ -16,31 +16,31 @@
%% https://github.com/latex3/graphics-def/issues
%%
\ProvidesFile{xetex.def}
[2017/06/01 v5.0a Graphics/color driver for xetex]
[2017/06/13 v5.0b Graphics/color driver for xetex]
\def\c@lor@arg#1{%
\dimen@#1\p@
\ifdim\dimen@<\z@\dimen@\maxdimen\fi
\ifdim\dimen@>\p@
\PackageError{color}{Argument `#1' not in range [0,1]}{}%
\PackageError{color}{Argument `#1' not in range [0,1]}\@ehd
\fi}
\def\color@gray#1#2{%
\c@lor@arg{#2}%
\edef#1{[#2]}%
\edef#1{gray #2}%
}
\def\color@cmyk#1#2{\c@lor@@cmyk#2\@@#1}
\def\c@lor@@cmyk#1,#2,#3,#4\@@#5{%
\c@lor@arg{#4}%
\c@lor@arg{#1}%
\c@lor@arg{#2}%
\c@lor@arg{#3}%
\edef#5{[#1 #2 #3 #4]}%
\edef#5{cmyk #1 #2 #3 #4}%
}
\def\color@rgb#1#2{\c@lor@@rgb#2\@@#1}
\def\c@lor@@rgb#1,#2,#3\@@#4{%
\c@lor@arg{#1}%
\c@lor@arg{#2}%
\c@lor@arg{#3}%
\edef#4{[#1 #2 #3]}%
\edef#4{rgb #1 #2 #3}%
}
\def\color@RGB#1#2{\c@lor@@RGB#2\@@#1}
\def\c@lor@@RGB#1,#2,#3\@@#4{%
Expand All @@ -53,10 +53,17 @@
\dimen@#1\p@
\divide\dimen@\@cclv
\edef#2{\strip@pt\dimen@}}
\def\color@hsb#1#2{\c@lor@@hsb#2\@@#1}
\def\c@lor@@hsb#1,#2,#3\@@#4{%
\c@lor@arg{#1}%
\c@lor@arg{#2}%
\c@lor@arg{#3}%
\edef#4{hsb #1 #2 #3}%
}
\def\color@named#1#2{\c@lor@@named#2,,\@@#1}
\def\c@lor@@named#1,#2,#3\@@#4{%
\@ifundefined{col@#1}%
{\PackageError{color}{Undefined color `#1'}{}}%
{\PackageError{color}{Undefined color `#1'}\@ehd}%
{\edef#4{ #1}}%
}
\def\c@lor@to@ps#1 #2\@@{\csname c@lor@ps@#1\endcsname#2 \@@}
Expand All @@ -65,16 +72,17 @@
\def\c@lor@ps@hsb#1\@@{#1 sethsbcolor}
\def\c@lor@ps@cmyk#1\@@{#1 setcmykcolor}
\def\c@lor@ps@gray#1\@@{#1 setgray}
\def\current@color{[0]}
\def\current@color{ Black}
\def\set@color{%
\special{pdf:bcolor \current@color
\special{color push \current@color
}\aftergroup\reset@color}
\def\reset@color{\special{%
pdf:ecolor}}
color pop}}
\def\set@page@color{\special{%
pdf:bgcolor \current@color}}
background \current@color}}
\def\define@color@named#1#2{%
\expandafter\let\csname col@#1\endcsname\@nnil}
\def\no@page@color{\special{background \string"newpath clip}}
\@ifundefined{Gin@page}
{\let\Gin@page\@empty}
{}
Expand Down

0 comments on commit d0235cb

Please sign in to comment.