From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining 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'. +% +% +%\ProvidesFile{p2e-template.def} +%\ProvidesFile{p2e-dvips.def} +%\ProvidesFile{p2e-xdvi.def} +%\ProvidesFile{p2e-pdftex.def} +%\ProvidesFile{p2e-luatex.def} +%\ProvidesFile{p2e-vtex.def} +%\ProvidesFile{p2e-dvipdfm.def} +%\ProvidesFile{p2e-dvipdfmx.def} +%\ProvidesFile{p2e-xetex.def} +%\ProvidesFile{p2e-textures.def} +%\ProvidesFile{p2e-pctexps.def} +%\ProvidesFile{p2e-pctex32.def} +% +%<*driver> +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{p2e-drivers.dtx} +% +% +%\ProvidesFile{pict2e.cfg}% + [2016/02/05 v0.1u +%<*!cfg> + Driver-dependant file (RN,HjG,JT)] +% +% 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} +% +% \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{} +% +% \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}% +} +% +% \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 +% +% \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 +% +% \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 +% +% \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}} +% +% \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}} +% +% \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}% +} +% +% \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}} +% +% \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} +% +% \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{} +% +% \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{} +% +% \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{} +% +% \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{} +% +% \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} +% +% \end{macrocode} +% +% \Finale +\endinput -- cgit v1.2.3