summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/graphics-def
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-02-27 03:01:43 +0000
committerNorbert Preining <norbert@preining.info>2021-02-27 03:01:43 +0000
commit4e6fb7c03bc033485887a99d2ffeca70ef8c0644 (patch)
tree5a337396041659a71d6da3f68367402d5c4e7dfe /macros/latex/contrib/graphics-def
parent8b1159ba65d4003e969141fb034abbdc19e27c4b (diff)
CTAN sync 202102270301
Diffstat (limited to 'macros/latex/contrib/graphics-def')
-rw-r--r--macros/latex/contrib/graphics-def/README.md2
-rw-r--r--macros/latex/contrib/graphics-def/dvipdfmx.def65
-rw-r--r--macros/latex/contrib/graphics-def/xetex.def65
3 files changed, 131 insertions, 1 deletions
diff --git a/macros/latex/contrib/graphics-def/README.md b/macros/latex/contrib/graphics-def/README.md
index 4abc4f9279..f97f5793ea 100644
--- a/macros/latex/contrib/graphics-def/README.md
+++ b/macros/latex/contrib/graphics-def/README.md
@@ -1,7 +1,7 @@
LaTeX support for color and graphics
====================================
-Release 2020-10-05
+Release 2021-02-26
This bundle contains the 'engine-dependent' part of support for
color and graphics in LaTeX2e (the code here will also function
diff --git a/macros/latex/contrib/graphics-def/dvipdfmx.def b/macros/latex/contrib/graphics-def/dvipdfmx.def
index 0944ae0d88..3059916797 100644
--- a/macros/latex/contrib/graphics-def/dvipdfmx.def
+++ b/macros/latex/contrib/graphics-def/dvipdfmx.def
@@ -336,3 +336,68 @@
}
\fi
\fi
+% Updates for newer dvipdfmx versions
+% Loaded last as we can then bail-out if not required
+\begingroup
+ \ifcsname\detokenize{c__kernel_sys_dvipdfmx_version_int}\endcsname
+ \edef\extractbbversion{%
+ \number\csname\detokenize{c__kernel_sys_dvipdfmx_version_int}\endcsname}%
+ \else
+ \immediate\openin 0 = |"extractbb --version"
+ \ifeof0 %
+ \def\extractbbversion{0}%
+ \else
+ \read0 to \extractbbversion % \par
+ \ifeof0 %
+ \def\extractbbversion{0}%
+ \else
+ \read0 to \extractbbversion
+ \long\def\getextractbbversion#1Version #2 #3\stop{%
+ \def\extractbbversion{#2}}%
+ \expandafter\getextractbbversion\extractbbversion Version 0 \stop
+ \fi
+ \fi
+ \fi
+\ifnum\extractbbversion<20201111 %
+ \endgroup
+ \expandafter\endinput
+\else
+ \endgroup
+\fi
+% Conversion functions so the internal representation stays unchanged
+\let\init@current@color\current@color
+\def\convert@color#1{%
+ \ifx#1\init@current@color
+ \expandafter\convert@color@init
+ \else
+ \expandafter\convert@@color
+ \fi
+ #1%
+}
+\def\convert@color@init#1{0 g 0 G}
+\def\convert@@color#1{%
+ \expandafter\expandafter\expandafter\convert@@@color#1\stop
+}
+\def\convert@@@color#1 #2\stop{%
+ \csname convert@color@#1\endcsname{#2}%
+}
+\def\convert@color@cmyk#1{#1 k #1 K}
+\def\convert@color@gray#1{#1 g #1 G}
+\def\convert@color@rgb#1{#1 rg #1 RG}
+% Change the specials to use the stack
+\chardef\main@pdfcolorstack=1 %
+\ifx\AtBeginDvi\undefined
+ \long\def\@firstofone#1{#1}%
+ \expandafter\@firstofone
+\else
+ \expandafter\AtBeginDvi
+\fi
+ {\special{pdfcolorstackinit \the\main@pdfcolorstack\space page direct (0 g 0 G)}}
+\def\@pdfcolorstack{\the\main@pdfcolorstack\space}
+\def\set@color{%
+ \special{pdfcolorstack \@pdfcolorstack push (\convert@color\current@color)}%
+ \aftergroup \reset@color
+}
+\def\reset@color{%
+ \special{pdfcolorstack \@pdfcolorstack pop}%
+}
diff --git a/macros/latex/contrib/graphics-def/xetex.def b/macros/latex/contrib/graphics-def/xetex.def
index 5364b6ccc9..6f37ccc3d4 100644
--- a/macros/latex/contrib/graphics-def/xetex.def
+++ b/macros/latex/contrib/graphics-def/xetex.def
@@ -435,3 +435,68 @@
}
\fi
\fi
+% Updates for newer dvipdfmx versions
+% Loaded last as we can then bail-out if not required
+\begingroup
+ \ifcsname\detokenize{c__kernel_sys_dvipdfmx_version_int}\endcsname
+ \edef\extractbbversion{%
+ \number\csname\detokenize{c__kernel_sys_dvipdfmx_version_int}\endcsname}%
+ \else
+ \immediate\openin 0 = |"extractbb --version"
+ \ifeof0 %
+ \def\extractbbversion{0}%
+ \else
+ \read0 to \extractbbversion % \par
+ \ifeof0 %
+ \def\extractbbversion{0}%
+ \else
+ \read0 to \extractbbversion
+ \long\def\getextractbbversion#1Version #2 #3\stop{%
+ \def\extractbbversion{#2}}%
+ \expandafter\getextractbbversion\extractbbversion Version 0 \stop
+ \fi
+ \fi
+ \fi
+\ifnum\extractbbversion<20201111 %
+ \endgroup
+ \expandafter\endinput
+\else
+ \endgroup
+\fi
+% Conversion functions so the internal representation stays unchanged
+\let\init@current@color\current@color
+\def\convert@color#1{%
+ \ifx#1\init@current@color
+ \expandafter\convert@color@init
+ \else
+ \expandafter\convert@@color
+ \fi
+ #1%
+}
+\def\convert@color@init#1{0 g 0 G}
+\def\convert@@color#1{%
+ \expandafter\expandafter\expandafter\convert@@@color#1\stop
+}
+\def\convert@@@color#1 #2\stop{%
+ \csname convert@color@#1\endcsname{#2}%
+}
+\def\convert@color@cmyk#1{#1 k #1 K}
+\def\convert@color@gray#1{#1 g #1 G}
+\def\convert@color@rgb#1{#1 rg #1 RG}
+% Change the specials to use the stack
+\chardef\main@pdfcolorstack=1 %
+\ifx\AtBeginDvi\undefined
+ \long\def\@firstofone#1{#1}%
+ \expandafter\@firstofone
+\else
+ \expandafter\AtBeginDvi
+\fi
+ {\special{pdfcolorstackinit \the\main@pdfcolorstack\space page direct (0 g 0 G)}}
+\def\@pdfcolorstack{\the\main@pdfcolorstack\space}
+\def\set@color{%
+ \special{pdfcolorstack \@pdfcolorstack push (\convert@color\current@color)}%
+ \aftergroup \reset@color
+}
+\def\reset@color{%
+ \special{pdfcolorstack \@pdfcolorstack pop}%
+}