From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Mon, 2 Sep 2019 13:46:59 +0900
Subject: Initial commit

---
 macros/latex/contrib/pict2e/p2e-drivers.dtx | 638 ++++++++++++++++++++++++++++
 1 file changed, 638 insertions(+)
 create mode 100644 macros/latex/contrib/pict2e/p2e-drivers.dtx

(limited to 'macros/latex/contrib/pict2e/p2e-drivers.dtx')

diff --git a/macros/latex/contrib/pict2e/p2e-drivers.dtx b/macros/latex/contrib/pict2e/p2e-drivers.dtx
new file mode 100644
index 0000000000..8f27acfa7f
--- /dev/null
+++ b/macros/latex/contrib/pict2e/p2e-drivers.dtx
@@ -0,0 +1,638 @@
+% \iffalse meta-comment
+%
+% p2e-drivers.dtx
+%
+%
+% Copyright (C) 2003-2016
+% Rolf Niepraschk, Rolf.Niepraschk@gmx.de
+% Hubert Gaesslein, hubertjg@gmx.de
+% Josef Tkadlec, j.tkadlec@email.cz
+%
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "author-maintained".
+%
+% This work consists of all files listed in manifest.txt.
+%
+%
+% This file is part of the New Implementation of the Standard LaTeX
+% picture commands (package pict2e). It complements the file
+% drivers.dtx from the Standard LaTeX `Graphics Bundle'.
+%
+%
+%<template, >\ProvidesFile{p2e-template.def}
+%<dvips,    >\ProvidesFile{p2e-dvips.def}
+%<xdvi,     >\ProvidesFile{p2e-xdvi.def}
+%<pdftex,   >\ProvidesFile{p2e-pdftex.def}
+%<luatex,   >\ProvidesFile{p2e-luatex.def}
+%<vtex,     >\ProvidesFile{p2e-vtex.def}
+%<dvipdfm,  >\ProvidesFile{p2e-dvipdfm.def}
+%<dvipdfmx, >\ProvidesFile{p2e-dvipdfmx.def}
+%<xetex,    >\ProvidesFile{p2e-xetex.def}
+%<textures, >\ProvidesFile{p2e-textures.def}
+%<pctexps,  >\ProvidesFile{p2e-pctexps.def}
+%<pctex32,  >\ProvidesFile{p2e-pctex32.def}
+%
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{p2e-drivers.dtx}
+%</driver>
+%
+%<cfg>\ProvidesFile{pict2e.cfg}%
+        [2016/02/05 v0.1u
+%<*!cfg>
+                          Driver-dependant file (RN,HjG,JT)]
+%</!cfg>
+%<cfg>                          pict2e configuration for teTeX/TeXLive]
+%
+%<*driver>
+\documentclass{ltxdoc}
+  \GetFileInfo{p2e-drivers.dtx}
+  \def\docdate{2016/02/05}
+\begin{document}
+  \title{Graphics drivers for \textsf{pict2e}\thanks
+    {This document corresponds to \textsf{\filename} \fileversion,
+     dated \filedate, documentation dated \docdate.}}
+  \author{Rolf Niepraschk\thanks{\texttt{Rolf.Niepraschk@gmx.de}},
+     Hubert G\"a{\ss}lein,%\thanks{\texttt{HubertJG@open.mind.de}}
+     \,and Josef Tkadlec\thanks{\texttt{j.tkadlec@email.cz}}}
+  \date{\filedate}
+ % \maketitle
+  \DocInput{p2e-drivers.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{166}
+%
+% \changes{v0.1g}{2003/11/07}{Translated documentation to English (HjG)}
+% \changes{v0.1g}{2003/11/07}{Added driver \texttt{dvipdfm} (RN)}
+% \changes{v0.1h}{2003/11/12}{Move check for \texttt{ver@\backslash Gin@driver}
+%   to package pict2e (RN,HjG)}
+% \changes{v0.1h}{2003/11/12}{General cleaning (RN,HjG)}
+% \changes{v0.1h}{2003/11/12}{More general cleaning (HjG)}
+% \changes{v0.1i}{2003/11/22}{M-x delete-trailing-whitespace (HjG)}
+% \changes{v0.1j}{2003/12/13}{Resurrect reference to latexbugs address (HjG)}
+% \changes{v0.1j}{2003/12/13}{Try new driver for \textsf{xdvi}---to no avail (HjG)}
+% \changes{v0.1k}{2003/12/18}{Polish up documentation (HjG)}
+% \changes{v0.1l}{2003/12/19}{Some tentative entries for new drivers (HjG)}
+% \changes{v0.1l}{2003/12/19}{Polish up documentation (HjG)}
+% \changes{v0.1m}{2003/12/21}{Polish up documentation (HjG)}
+% \changes{v0.1o}{2004/02/19}{Fix some typos (HjG)}
+% \changes{v0.1p}{2004/03/26}{Minor changes to documentation (HjG)}
+% \changes{v0.1q}{2004/04/22}{Added lppl (RN/HjG)}
+% \changes{v0.1r}{2004/06/25}{Small fixes in documentation (HjG)}
+% \changes{v0.1s}{2009/08/05}{Support for xetex added (JT)}
+% \changes{v0.1t}{2011/04/05}{Support for dvipdfmx added (JT)}
+% \changes{v0.1u}{2016/02/05}{Support for luatex >0.85
+%   (suggested by David Carlisle) added (RN)}
+%
+% \newcommand*\PS{PostScript}
+% \newcommand*\PDF{PDF}
+% \newcommand*\teTeX{te\kern-.11em\TeX}
+% \newcommand*\TeXlive{\TeX live}
+%
+% \makeatletter
+% \@ifundefined{ifdeveloping}{\newif\ifdeveloping}{} ^^A false by default
+% \makeatother
+%
+% \ifdeveloping
+%   \makeatletter
+%
+%   \newcommand*\isodattim{}
+%   \begingroup
+%     \count@\time
+%     \divide\count@ 60
+%     \count2=-\count@
+%     \multiply\count2 60
+%     \advance\count2 \time
+%     \xdef\isodattim{^^A
+%       \the\year-\two@digits{\the\month}-\two@digits{\the\day}^^A
+%       ~\two@digits{\the\count@}:\two@digits{\the\count2}}
+%   \endgroup
+%
+%   \newcommand*\ps@myfootings{^^A cf. \ps@plain
+%     \let\@mkboth\@gobbletwo
+%     \let\@oddhead\@empty
+%     \let\@evenhead\@empty
+%     \def\@oddfoot{\reset@font
+%       \rlap{\textsf{\filename}~\fileversion~\filedate}^^A
+%       \hfil\thepage\hfil
+%       \llap{\TeX ed \texttt{\isodattim}}}^^A
+%     \def\@evenfoot{\reset@font
+%       \rlap{\TeX ed \texttt{\isodattim}}^^A
+%       \hfil\thepage\hfil
+%       \llap{\filedate~\fileversion~\textsf{\filename}}}^^A
+%   }
+%   \pagestyle{myfootings}
+%   \let\pagestyle\@gobble
+%   \let\thispagestyle\@gobble
+%
+%   \makeatother
+% \else
+%   \makeatletter
+% ^^A   \ifdim\overfullrule>\z@\else\let\ps@myfootings\ps@plain\fi
+%   \makeatother
+% \fi
+%
+%
+% \maketitle
+%
+%
+% \section{Driver files}
+%
+% This file implements some of the currently supported drivers for
+% the new version of the \textsf{pict2e} package.
+% If the driver you use is not in this list then a `\texttt{.def}'
+% file may be distributed with the pict2e package,
+% or may be distributed with the standard \LaTeX\ graphics bundle,
+% or may be distributed with your driver.
+%
+% If not, send us some details of the driver's |\special| syntax, and
+% we will try to produce a suitable file.
+%
+% Note that some of these files are for graphics drivers to which we
+% have no access, so they are untested.
+% Please send any corrections to the latexbugs address or directly to
+% the authors.
+%
+% \StopEventually{}
+%
+% \subsection{Template}
+%
+% A template for a \textsf{pict2e} driver file.
+%
+% \begin{macro}{\pIIe@mode}
+% This macro serves as an indicator to the \textsf{pict2e} package
+% which mode the driver supports:
+%
+% \smallskip
+% \begin{tabular}{rl}
+% $-1$ & inapt\slash incapable (default,
+%        already set in \textsf{pict2e}) \\
+% $0$  & standard \LaTeX\ only           \\
+% $1$  & \PS                             \\
+% $2$  & \PDF                            \\
+%      & (other values are reserved for future use)
+% \end{tabular}
+% \smallskip
+%
+% \noindent
+% Incapable drivers should not alter the default value given by the
+% \textsf{pict2e} package, or set it explicitly to $-1$.
+% ^^A (Or set it to $0$ to request standard \LaTeX\ mode.)
+%    \begin{macrocode}
+%<*template>
+\def\pIIe@mode{-1}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pIIe@code}
+% The \textsf{pict2e} package expects the driver file to define the
+% \cmd{\pIIe@code} command in a suitable way.
+%
+% This command should locally establish the standard \PS\slash\PDF\
+% coordinate system
+% (i.e., a cartesian coordinate system
+% with positive x-axis pointing right
+% and positive y-axis pointing up,
+% and with unit $1\,\mathrm{bp} = 1/72\,\mathrm{in}$),
+% albeit with the origin at \TeX's current point instead of the lower
+% left corner of the page.
+%
+% Furthermore, it should save and restore the graphics state
+% (|gsave|\slash|grestore| in \PS, |q|\slash|Q| in \PDF.)
+% This may be achieved by using appropriate \cmd{\special} (or
+% \cmd{\pdfliteral}, respectively) commands.
+%
+% Moreover, this command should preserve (i.e., it should not change)
+% the current colour as defined by the user via the commands of the
+% \textsf{color} package from the graphics bundle.
+%
+% Thus, the \cmd{\Gin@PS@restored} command that various
+% \meta{driver}|.def| files from the graphics bundle provide should
+% usually come close to what is expected here.
+%    \begin{macrocode}
+\def\pIIe@code#1{}
+%</template>
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{dvips}
+%
+% A \textsf{pict2e} driver file for the \textsf{dvips} driver.
+%
+% \begin{macro}{\pIIe@mode}
+% We are about to generate \PS\ code.
+%    \begin{macrocode}
+%<*dvips>
+\def\pIIe@mode{1}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pIIe@code}
+% In this case the code inserted by the driver on behalf of the
+% \cmd{\Gin@PS@restored} command performs a ``|0| |setgray|''
+% operation, thus resetting any colour the user might have set by
+% means of the \textsf{color} package.
+% \ (See also \LaTeX\ problem report graphics/3569.) \ ^^A
+% We therefore have to resort to the following kludge:
+% As long as we output only simple picture objects, our operations are
+% ``atomic.''
+% Hence, we won't need to set colours or gray shades within the \PS\
+% code generated by \textsf{pict2e};
+% thus the offending |setgray| operator may as well be a no-op.
+% To keep this redefinition local, we enclose the call to
+% \cmd{\Gin@PS@restored} by a |save|\slash|restore| pair.
+% \changes{v0.1}{2003/08/27}{Fix for dvips' \cmd{\Gin@PS@restored}
+%    (prevent resetting current color to black). (HjG,RN)}
+%    \begin{macrocode}
+\def\pIIe@code#1{%
+  \Gin@PS@raw{save /setgray { pop } def}%
+  \Gin@PS@restored{#1}%
+  \Gin@PS@raw{restore}%
+}
+%</dvips>
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{pdfTeX}
+%
+% A \textsf{pict2e} driver file for the \textsf{pdftex} driver.
+%
+% \begin{macro}{\pIIe@mode}
+% We are about to generate \PDF\ code.
+% (Only, if pdf\TeX\ is actually generating \PDF;
+% otherwise nothing will be output.)
+%    \begin{macrocode}
+%<*pdftex>
+\begingroup
+  \@ifundefined{pdfoutput}{}{%
+    \ifnum\pdfoutput>0\relax
+      \gdef\pIIe@mode{2}
+    \fi
+  }
+\endgroup
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pIIe@code}
+% The save\slash restore operators are necessary here to prevent the
+% change of the CTM (scaling and rotation operations) that
+% \textsf{pict2e} inserts from propagating.
+%    \begin{macrocode}
+\ifcase\pIIe@mode\relax \or\or
+  \def\pIIe@code#1{\pdfliteral{ q #1 Q }}
+\fi
+%</pdftex>
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Lua\TeX}
+%
+% A \textsf{pict2e} driver file for the \textsf{luatex} driver.
+%
+% \begin{macro}{\pIIe@mode}
+% We are about to generate \PDF\ code.
+% (Only, if Lua\TeX\ is actually generating \PDF;
+% otherwise nothing will be output.)
+%    \begin{macrocode}
+%<*luatex>
+\begingroup
+  \ifnum\outputmode>0\relax
+    \gdef\pIIe@mode{2}
+  \fi
+\endgroup
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pIIe@code}
+% The save\slash restore operators are necessary here to prevent the
+% change of the CTM (scaling and rotation operations) that
+% \textsf{pict2e} inserts from propagating.
+%    \begin{macrocode}
+\ifcase\pIIe@mode\relax \or\or
+  \def\pIIe@code#1{\pdfextension literal{ q #1 Q }}
+  \protected\edef\pIIe@pdfliteral{\pdfextension literal}
+\fi
+%</luatex>
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{V\TeX}
+%
+% A \textsf{pict2e} driver file for the \textsf{vtex} driver.
+%
+% \begin{macro}{\pIIe@mode}
+% With \textsf{V\TeX}, we should use \PS\ code also for \PDF\ mode
+% (Email from Michael Vulis, MicroPress).
+%    \begin{macrocode}
+%<*vtex>
+\begingroup
+  \@ifundefined{VTeXversion}{}{%
+    \ifnum\OpMode>0\relax
+      \ifnum\OpMode<3\relax
+        \gdef\pIIe@mode{1}%
+      \fi
+    \fi
+  }
+\endgroup
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pIIe@code}
+% Here |\Gin@PS@restored| suffices as provided by the graphics driver
+% file |vtex.def|.
+%    \begin{macrocode}
+\ifcase\pIIe@mode\relax \or
+  \let\pIIe@code\Gin@PS@restored
+\fi
+%</vtex>
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{dvipdfm}
+%
+% A \textsf{pict2e} driver file for the \textsf{dvipdfm} driver.
+%
+% \begin{macro}{\pIIe@mode}
+% We are about to generate \PDF\ code.
+%    \begin{macrocode}
+%<*dvipdfm>
+\def\pIIe@mode{2}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pIIe@code}
+% This seems to be sufficient.
+%    \begin{macrocode}
+\def\pIIe@code#1{\special{pdf: content #1}}
+%</dvipdfm>
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{dvipdfmx}
+%
+% A \textsf{pict2e} driver file for the \textsf{dvipdfmx} driver.
+%
+% \begin{macro}{\pIIe@mode}
+% We are about to generate \PDF\ code.
+%    \begin{macrocode}
+%<*dvipdfmx>
+\def\pIIe@mode{2}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pIIe@code}
+%    \begin{macrocode}
+\def\pIIe@code#1{\special{pdf: content #1}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pIIe@pdfliteral}
+%    \begin{macrocode}
+\def\pIIe@pdfliteral#1{\special{pdf: literal #1}}
+%</dvipdfmx>
+%    \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+% \subsection{xdvi}
+%
+% A \textsf{pict2e} driver file for the \textsf{xdvi} driver.
+%
+% \begin{macro}{\pIIe@mode}
+% We are about to generate \PS\ code.
+%    \begin{macrocode}
+%<*xdvi>
+\def\pIIe@mode{1}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pIIe@code}
+% As long as our operations are ``atomic,'' we won't need to set
+% colours or gray shades within our code, hence the offending
+% \verb+setgray+ operator may as well be a no-op.
+% See also \LaTeX\ problem report graphics/3569.
+% \changes{v0.1}{2003/08/27}{Fix for dvips' \cmd{\Gin@PS@restored}
+% (prevent resetting current color to black). (HjG,RN)}
+%    \begin{macrocode}
+\def\pIIe@code#1{%
+ % \Gin@PS@raw{save /setgray { pop } def}%
+  \Gin@PS@restored{#1}%
+ % \Gin@PS@raw{restore}%
+}
+%</xdvi>
+%    \end{macrocode}
+% \end{macro}
+%\fi
+%
+%
+% \subsection{xetex}
+%
+% A \textsf{pict2e} driver file for the \textsf{xetex} driver.
+% \begin{macro}{\pIIe@mode}
+% We are about to generate \PDF\ code.
+%    \begin{macrocode}
+%<*xetex>
+\def\pIIe@mode{2}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pIIe@code}
+%    \begin{macrocode}
+\def\pIIe@code#1{\special{pdf: literal q #1 Q}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pIIe@pdfliteral}
+%    \begin{macrocode}
+\def\pIIe@pdfliteral#1{\special{pdf: literal #1}}
+%</xetex>
+%    \end{macrocode}
+% \end{macro}
+%
+% \subsection{dvipdf}
+%
+% A \textsf{pict2e} driver file for the \textsf{dvipdf} driver
+% (not yet implemented).
+%
+% \begin{macro}{\pIIe@mode}
+%    \begin{macrocode}
+%<*dvipdf>
+ %\def\pIIe@mode{-1}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pIIe@code}
+% This is the same as the definition for |\Gin@PS@restored|
+% in |dvipdf.def| as defined in |drivers.dtx|!
+% Better use the higher-level macro instead of the |\special|?
+%    \begin{macrocode}
+ %\def\pIIe@code#1{\special{" #1}} % \Gin@PS@restored{#1}
+%</dvipdf>
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{textures}
+%
+% A \textsf{pict2e} driver file for the \textsf{textures} driver
+% (not yet implemented).
+%
+% \begin{macro}{\pIIe@mode}
+%    \begin{macrocode}
+%<*textures>
+ % \def\pIIe@mode{-1}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pIIe@code}
+%    \begin{macrocode}
+ % \def\pIIe@code#1{}
+%</textures>
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{dvipsone}
+%
+% A \textsf{pict2e} driver file for the \textsf{dvipsone} driver
+% (not yet implemented).
+%
+% \begin{macro}{\pIIe@mode}
+%    \begin{macrocode}
+%<*dvipsone>
+ % \def\pIIe@mode{-1}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pIIe@code}
+%    \begin{macrocode}
+ % \def\pIIe@code#1{}
+%</dvipsone>
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{pctexps}
+%
+% A \textsf{pict2e} driver file for the \textsf{pctexps} driver
+% (not yet implemented).
+%
+% \begin{macro}{\pIIe@mode}
+%    \begin{macrocode}
+%<*pctexps>
+ % \def\pIIe@mode{-1}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pIIe@code}
+%    \begin{macrocode}
+ % \def\pIIe@code#1{}
+%</pctexps>
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{pctex32}
+%
+% A \textsf{pict2e} driver file for the \textsf{pctex32} driver
+% (not yet implemented).
+%
+% \begin{macro}{\pIIe@mode}
+%    \begin{macrocode}
+%<*pctex32>
+ % \def\pIIe@mode{-1}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pIIe@code}
+%    \begin{macrocode}
+ % \def\pIIe@code#1{}
+%</pctex32>
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \section{A Sample Configuration File}
+%
+% ^^A Preamble?
+%
+% This one is taken from |color.cfg| of the
+% \teTeX\slash\TeXlive\ distributions.
+%    \begin{macrocode}
+%<*cfg>
+%% Select an appropriate default driver.
+\begingroup
+  \chardef\x=0 %
+  % check luatex
+  \ifx\luatexversion\@undefined
+    % check pdfTeX
+    \@ifundefined{pdfoutput}{}{%
+      \ifcase\pdfoutput
+      \else
+        \chardef\x=1 %
+      \fi
+    }%
+    % check VTeX
+    \@ifundefined{OpMode}{}{%
+      \chardef\x=2 %
+    }%
+    % check XeTeX
+    \@ifundefined{XeTeXrevision}{}{%
+      \chardef\x=3 %
+    }%
+  \else
+    \ifnum\luatexversion>85
+      \ifnum\outputmode>0
+        \chardef\x=4\relax
+      \fi
+    \else
+      \ifnum\pdfoutput>0
+        \chardef\x=1\relax
+      \fi
+    \fi
+  \fi
+\expandafter\endgroup
+\ifcase\x
+  % 0: default case
+  \ExecuteOptions{dvips}%
+\or
+  % 1: pdfTeX is running in pdf mode
+  \ExecuteOptions{pdftex}%
+\or
+  % 2: VTeX is running
+  \ExecuteOptions{vtex}%
+\or
+  % 3: XeTeX is running
+  \ExecuteOptions{xetex}%
+\or
+  % 4: LuaTeX (> 0.85) is running
+  \ExecuteOptions{luatex}%
+\fi
+%    \end{macrocode}
+% You can also specify other options to the \textsf{pict2e} package in
+% the configuration file.
+% For example, if you prefer PSTricks-like arrows, just uncomment the
+% line below.
+%    \begin{macrocode}
+%% \ExecuteOptions{pstarrows}
+%</cfg>
+%    \end{macrocode}
+%
+% \Finale
+\endinput
-- 
cgit v1.2.3

