summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/transparent
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-11-30 22:16:45 +0000
committerKarl Berry <karl@freefriends.org>2019-11-30 22:16:45 +0000
commit855bcb7aa33f468a9bd1e50617084a784e6a397a (patch)
tree3ae26790ca4a318084e1709b5f2dfe77069a623e /Master/texmf-dist/source/latex/transparent
parent3820b8f6b5f78e1d878a74dfb643539cfc047855 (diff)
transparent (30nov19)
git-svn-id: svn://tug.org/texlive/trunk@52981 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/transparent')
-rw-r--r--Master/texmf-dist/source/latex/transparent/transparent.dtx611
1 files changed, 611 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/transparent/transparent.dtx b/Master/texmf-dist/source/latex/transparent/transparent.dtx
new file mode 100644
index 00000000000..1cfec67cf9c
--- /dev/null
+++ b/Master/texmf-dist/source/latex/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