From 1dcb87019d8965fa1ba1ea339b7330225b2e545b Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Sun, 1 Dec 2019 03:01:29 +0000
Subject: CTAN sync 201912010301

---
 macros/latex/contrib/transparent/transparent.dtx | 611 +++++++++++++++++++++++
 1 file changed, 611 insertions(+)
 create mode 100644 macros/latex/contrib/transparent/transparent.dtx

(limited to 'macros/latex/contrib/transparent/transparent.dtx')

diff --git a/macros/latex/contrib/transparent/transparent.dtx b/macros/latex/contrib/transparent/transparent.dtx
new file mode 100644
index 0000000000..1cfec67cf9
--- /dev/null
+++ b/macros/latex/contrib/transparent/transparent.dtx
@@ -0,0 +1,611 @@
+% \iffalse meta-comment
+%
+% File: transparent.dtx
+% Version: 2019/11/29 v1.4
+% Info: Transparency via pdfTeX's color stack
+%
+% Copyright (C)
+%    2007 Heiko Oberdiek
+%    2016-2019 Oberdiek Package Support Group 2018
+%    https://github.com/ho-tex/transparent/issues
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3c of this license or (at your option) any later
+% version. This version of this license is in
+%    https://www.latex-project.org/lppl/lppl-1-3c.txt
+% and the latest version of this license is in
+%    https://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% The Current Maintainers of this work are
+% Heiko Oberdiek and the Oberdiek Package Support Group
+% https://github.com/ho-tex/transparent/issues
+%
+% This work consists of the main source file transparent.dtx
+% and the derived files
+%    transparent.sty, transparent.pdf, transparent.ins, transparent.drv,
+%    transparent-example.tex.
+%
+% Distribution:
+%    CTAN:macros/latex/contrib/transparent/transparent.dtx
+%    CTAN:macros/latex/contrib/transparent/transparent.pdf
+%
+% Unpacking:
+%    (a) If transparent.ins is present:
+%           tex transparent.ins
+%    (b) Without transparent.ins:
+%           tex transparent.dtx
+%    (c) If you insist on using LaTeX
+%           latex \let\install=y\input{transparent.dtx}
+%        (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+%    (a) If transparent.drv is present:
+%           latex transparent.drv
+%    (b) Without transparent.drv:
+%           latex transparent.dtx; ...
+%    The class ltxdoc loads the configuration file ltxdoc.cfg
+%    if available. Here you can specify further options, e.g.
+%    use A4 as paper format:
+%       \PassOptionsToClass{a4paper}{article}
+%
+%    Programm calls to get the documentation (example):
+%       pdflatex transparent.dtx
+%       makeindex -s gind.ist transparent.idx
+%       pdflatex transparent.dtx
+%       makeindex -s gind.ist transparent.idx
+%       pdflatex transparent.dtx
+%
+% Installation:
+%    TDS:tex/latex/transparent/transparent.sty
+%    TDS:doc/latex/transparent/transparent.pdf
+%    TDS:source/latex/transparent/transparent.dtx
+%
+%<*ignore>
+\begingroup
+  \catcode123=1 %
+  \catcode125=2 %
+  \def\x{LaTeX2e}%
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+         \ifx\csname processbatchFile\endcsname\relax\else1\fi
+         \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: transparent 2019/11/29 v1.4 Transparency via pdfTeX's color stack (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\let\MetaPrefix\relax
+\preamble
+
+This is a generated file.
+
+Project: transparent
+Version: 2019/11/29 v1.4
+
+Copyright (C)
+   2007 Heiko Oberdiek
+   2016-2019 Oberdiek Package Support Group
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3c of this license or (at your option) any later
+version. This version of this license is in
+   https://www.latex-project.org/lppl/lppl-1-3c.txt
+and the latest version of this license is in
+   https://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+The Current Maintainers of this work are
+Heiko Oberdiek and the Oberdiek Package Support Group
+https://github.com/ho-tex/transparent/issues
+
+
+This work consists of the main source file transparent.dtx
+and the derived files
+   transparent.sty, transparent.pdf, transparent.ins, transparent.drv,
+   transparent-example.tex.
+
+\endpreamble
+\let\MetaPrefix\DoubleperCent
+
+\generate{%
+  \file{transparent.ins}{\from{transparent.dtx}{install}}%
+  \file{transparent.drv}{\from{transparent.dtx}{driver}}%
+  \usedir{tex/latex/transparent}%
+  \file{transparent.sty}{\from{transparent.dtx}{package}}%
+  \usedir{doc/latex/transparent}%
+  \file{transparent-example.tex}{\from{transparent.dtx}{example}}%
+  \nopreamble
+  \nopostamble
+%  \usedir{source/latex/transparent/catalogue}%
+%  \file{transparent.xml}{\from{transparent.dtx}{catalogue}}%
+}
+
+\catcode32=13\relax% active space
+\let =\space%
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{*     transparent.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `transparent.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{transparent.drv}%
+  [2019/11/29 v1.4 Transparency via pdfTeX's color stack (HO)]%
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}[2011/11/22]
+\begin{document}
+  \DocInput{transparent.dtx}%
+\end{document}
+%</driver>
+% \fi
+%
+%
+% \CharacterTable
+%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%   Digits        \0\1\2\3\4\5\6\7\8\9
+%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%   Dollar        \$     Percent       \%     Ampersand     \&
+%   Acute accent  \'     Left paren    \(     Right paren   \)
+%   Asterisk      \*     Plus          \+     Comma         \,
+%   Minus         \-     Point         \.     Solidus       \/
+%   Colon         \:     Semicolon     \;     Less than     \<
+%   Equals        \=     Greater than  \>     Question mark \?
+%   Commercial at \@     Left bracket  \[     Backslash     \\
+%   Right bracket \]     Circumflex    \^     Underscore    \_
+%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%   Right brace   \}     Tilde         \~}
+%
+% \GetFileInfo{transparent.drv}
+%
+% \title{The \xpackage{transparent} package}
+% \date{2019/11/29 v1.4}
+% \author{Heiko Oberdiek\thanks
+% {Please report any issues at \url{https://github.com/ho-tex/transparent/issues}}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Since version 1.40 \pdfTeX\ supports several color stacks. This
+% package shows, how a separate color stack can be used for transparency,
+% a property besides color.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{User interface}
+%
+% The package \xpackage{transparent} defines \cs{transparent} and
+% \cs{texttransparent}. They are used like \cs{color} and \cs{textcolor}.
+% The first argument is the transparency value between 0 and 1.
+%
+% Because of the poor interface for page resources, there can be problems
+% with packages that also use \cs{pdfpageresources}.
+%
+% Example for usage:
+%    \begin{macrocode}
+%<*example>
+\documentclass[12pt]{article}
+
+\usepackage{color}
+\usepackage{transparent}
+
+\begin{document}
+\colorbox{yellow}{%
+  \bfseries
+  \color{blue}%
+  Blue and %
+  \transparent{0.6}%
+  transparent blue%
+}
+
+\bigskip
+Hello World
+\texttransparent{0.5}{Hello\newpage World}
+Hello World
+\end{document}
+%</example>
+%    \end{macrocode}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \subsection{Identification}
+%
+%    \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{transparent}%
+  [2019/11/29 v1.4 Transparency via pdfTeX's color stack (HO)]%
+%    \end{macrocode}
+%
+% \subsection{Initial checks}
+%
+% \subsubsection{Check for \pdfTeX\ in PDF mode}
+%    \begin{macrocode}
+\RequirePackage{iftex}
+\ifpdf
+\else
+  \PackageWarningNoLine{transparent}{%
+    Loading aborted, because pdfTeX is not running in PDF mode%
+  }%
+  \expandafter\endinput
+\fi
+%    \end{macrocode}
+%
+% \subsubsection{Check \pdfTeX\ or Lua\TeX\ version}
+%    \begin{macrocode}
+\ifx\pdfextension\@undefined
+  \let\TRP@pdfcolorstackinit\pdfcolorstackinit
+  \let\TRP@pdfpageresources\pdfpageresources
+  \let\TRP@pdfcolorstack\pdfcolorstack
+\else
+  \def\TRP@pdfcolorstackinit           {\pdffeedback colorstackinit}
+  \protected\edef\TRP@pdfpageresources {\pdfvariable pageresources}
+  \protected\def\TRP@pdfcolorstack     {\pdfextension colorstack}
+\fi
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\ifcsname TRP@pdfcolorstackinit\endcsname\else
+  \PackageWarningNoLine{transparent}{%
+    Your pdfTeX version does not support color stacks%
+  }%
+  \expandafter\endinput
+\fi
+%    \end{macrocode}
+%
+% \subsection{Compatibility with pgf}
+%  https://github.com/ho-tex/transparent/issues/1
+%    \begin{macrocode}
+\AtBeginDocument
+ {%
+   \ifcsname pgfutil@addpdfresource@extgs\endcsname
+    \let\TRP@addresource\relax
+    \pgfutil@addpdfresource@extgs{\TRP@list}%
+   \fi
+ }
+%    \end{macrocode}
+% \subsection{Transparency}
+%
+%    The setting for the different transparency values must
+%    be added to the page resources. In the first run the values
+%    are recorded in the \xfile{.aux} file. In the second run
+%    the values are set and transparency is available.
+%    \begin{macrocode}
+\RequirePackage{auxhook}
+\AddLineBeginAux{%
+  \string\providecommand{\string\transparent@use}[1]{}%
+}
+\gdef\TRP@list{/TRP1<</ca 1/CA 1>>}
+\def\transparent@use#1{%
+  \@ifundefined{TRP#1}{%
+    \g@addto@macro\TRP@list{%
+      /TRP#1<</ca #1/CA #1>>%
+    }%
+    \expandafter\gdef\csname TRP#1\endcsname{/TRP#1 gs}%
+  }{%
+    % #1 is already known, nothing to do
+  }%
+}
+\AtBeginDocument{%
+  \TRP@addresource
+  \let\transparent@use\@gobble
+}
+%    \end{macrocode}
+%    Unhappily the interface setting page resources is very
+%    poor, only a token register \cs{pdfpageresources}.
+%    Thus this package tries to be cooperative in the way that
+%    it embeds the previous contents of \cs{pdfpageresources}.
+%    However it does not solve the problem, if several packages
+%    want to set |/ExtGState|.
+%    \begin{macrocode}
+\def\TRP@addresource{%
+  \begingroup
+    \edef\x{\endgroup
+      \TRP@pdfpageresources{%
+        \the\TRP@pdfpageresources
+        /ExtGState<<\TRP@list>>%
+      }%
+    }%
+  \x
+}
+\newif\ifTRP@rerun
+\xdef\TRP@colorstack{%
+  \TRP@pdfcolorstackinit page direct{/TRP1 gs}%
+}
+%    \end{macrocode}
+%    \begin{macro}{\transparent}
+%    \begin{macrocode}
+\newcommand*{\transparent}[1]{%
+  \begingroup
+    \dimen@=#1\p@\relax
+    \ifdim\dimen@>\p@
+      \dimen@=\p@
+    \fi
+    \ifdim\dimen@<\z@
+      \dimen@=\z@
+    \fi
+    \ifdim\dimen@=\p@
+      \def\x{1}%
+    \else
+      \ifdim\dimen@=\z@
+        \def\x{0}%
+      \else
+        \edef\x{\strip@pt\dimen@}%
+        \edef\x{\expandafter\@gobble\x}%
+      \fi
+    \fi
+    \if@filesw
+      \immediate\write\@auxout{%
+        \string\transparent@use{\x}%
+      }%
+    \fi
+    \edef\x{\endgroup
+      \def\noexpand\transparent@current{\x}%
+    }%
+  \x
+  \transparent@set
+}
+%    \end{macrocode}
+%    \end{macro}
+%    \begin{macrocode}
+\AtEndDocument{%
+  \ifTRP@rerun
+    \PackageWarningNoLine{transparent}{%
+      Rerun to get transparencies right%
+    }%
+  \fi
+}
+\def\transparent@current{/TRP1 gs}
+\def\transparent@set{%
+  \@ifundefined{TRP\transparent@current}{%
+    \global\TRP@reruntrue
+  }{%
+    \TRP@pdfcolorstack\TRP@colorstack push{%
+      \csname TRP\transparent@current\endcsname
+    }%
+    \aftergroup\transparent@reset
+  }%
+}
+\def\transparent@reset{%
+  \TRP@pdfcolorstack\TRP@colorstack pop\relax
+}
+%    \end{macrocode}
+%    \begin{macro}{\texttransparent}
+%    \begin{macrocode}
+\newcommand*{\texttransparent}[2]{%
+  \protect\leavevmode
+  \begingroup
+    \transparent{#1}%
+    #2%
+  \endgroup
+}
+%    \end{macrocode}
+%    \end{macro}
+%
+%    \begin{macrocode}
+%</package>
+%    \end{macrocode}
+%
+% \section{Installation}
+%
+% \subsection{Download}
+%
+% \paragraph{Package.} This package is available on
+% CTAN\footnote{\CTANpkg{transparent}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/transparent/transparent.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/transparent/transparent.pdf}] Documentation.
+% \end{description}
+%
+%
+% \paragraph{Bundle.} All the packages of the bundle `transparent'
+% are also available in a TDS compliant ZIP archive. There
+% the packages are already unpacked and the documentation files
+% are generated. The files and directories obey the TDS standard.
+% \begin{description}
+% \item[\CTANinstall{install/macros/latex/contrib/transparent.tds.zip}]
+% \end{description}
+% \emph{TDS} refers to the standard ``A Directory Structure
+% for \TeX\ Files'' (\CTANpkg{tds}). Directories
+% with \xfile{texmf} in their name are usually organized this way.
+%
+% \subsection{Bundle installation}
+%
+% \paragraph{Unpacking.} Unpack the \xfile{transparent.tds.zip} in the
+% TDS tree (also known as \xfile{texmf} tree) of your choice.
+% Example (linux):
+% \begin{quote}
+%   |unzip transparent.tds.zip -d ~/texmf|
+% \end{quote}
+%
+% \subsection{Package installation}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+%   \verb|tex transparent.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \def\t{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}}
+%   transparent.sty & tex/latex/transparent/transparent.sty\\
+%   transparent.pdf & doc/latex/transparent/transparent.pdf\\
+%   transparent-example.tex & doc/latex/transparent/transparent-example.tex\\
+%   transparent.dtx & source/latex/transparent/transparent.dtx\\
+% \end{tabular}^^A
+% }^^A
+% \sbox0{\t}^^A
+% \ifdim\wd0>\linewidth
+%   \begingroup
+%     \advance\linewidth by\leftmargin
+%     \advance\linewidth by\rightmargin
+%   \edef\x{\endgroup
+%     \def\noexpand\lw{\the\linewidth}^^A
+%   }\x
+%   \def\lwbox{^^A
+%     \leavevmode
+%     \hbox to \linewidth{^^A
+%       \kern-\leftmargin\relax
+%       \hss
+%       \usebox0
+%       \hss
+%       \kern-\rightmargin\relax
+%     }^^A
+%   }^^A
+%   \ifdim\wd0>\lw
+%     \sbox0{\small\t}^^A
+%     \ifdim\wd0>\linewidth
+%       \ifdim\wd0>\lw
+%         \sbox0{\footnotesize\t}^^A
+%         \ifdim\wd0>\linewidth
+%           \ifdim\wd0>\lw
+%             \sbox0{\scriptsize\t}^^A
+%             \ifdim\wd0>\linewidth
+%               \ifdim\wd0>\lw
+%                 \sbox0{\tiny\t}^^A
+%                 \ifdim\wd0>\linewidth
+%                   \lwbox
+%                 \else
+%                   \usebox0
+%                 \fi
+%               \else
+%                 \lwbox
+%               \fi
+%             \else
+%               \usebox0
+%             \fi
+%           \else
+%             \lwbox
+%           \fi
+%         \else
+%           \usebox0
+%         \fi
+%       \else
+%         \lwbox
+%       \fi
+%     \else
+%       \usebox0
+%     \fi
+%   \else
+%     \lwbox
+%   \fi
+% \else
+%   \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \subsection{Refresh file name databases}
+%
+% If your \TeX~distribution
+% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh
+% these. For example, \TeX\,Live\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intention:
+% \begin{quote}
+%   \verb|latex \let\install=y\input{transparent.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+%   \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex transparent.dtx
+%makeindex -s gind.ist transparent.idx
+%pdflatex transparent.dtx
+%makeindex -s gind.ist transparent.idx
+%pdflatex transparent.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+%   \begin{Version}{2007/01/08 v1.0}
+%   \item
+%     First version.
+%   \end{Version}
+%   \begin{Version}{2016/05/16 v1.1}
+%   \item
+%     Documentation updates.
+%   \end{Version}
+%   \begin{Version}{2018/09/10 v1.2}
+%   \item
+%     Update for LuaTeX, remove dependency on Pdf\TeX\ command names.
+%   \end{Version}
+%   \begin{Version}{2018/11/18 v1.3}
+%   \item
+%     Added code for pgf compatibility, see https://github.com/ho-tex/transparent/issues/1
+%   \end{Version}
+%   \begin{Version}{2019/11/29 v1.4}
+%   \item
+%     Documentation updates.
+% \item
+% Use \xpackage{iftex} package.
+%   \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
-- 
cgit v1.2.3

