% \iffalse meta-comment % % Copyright (C) % 2005--2008: Rolf Niepraschk , Hubert Gaesslein % 2008-- Rolf Niepraschk % -------------------------------------------------------------- % % This file may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.2 % 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.2 or later is part of all distributions of LaTeX % version 1999/12/01 or later. % % \fi % % \iffalse %<*driver> \ProvidesFile{pst-pdf.dtx} % %\NeedsTeXFormat{LaTeX2e}[1999/12/01] %\ProvidesPackage{pst-pdf} %<*package> [2020/10/10 v1.2f PS graphics for pdfLaTeX (RN,HjG)] % % %<*driver> \listfiles \documentclass[a4paper]{ltxdoc} \usepackage[ignore]{pst-pdf} \providecommand*\mainlang{} \usepackage[english,\mainlang]{babel} \usepackage{booktabs,calc,array,url} \usepackage[T1]{fontenc} \usepackage{textcomp} \setlength\emergencystretch{3em} \EnableCrossrefs \CodelineIndex \RecordChanges \begin{document} \DocInput{pst-pdf.dtx} \begin{otherlanguage}{english} \PrintChanges \clearpage \PrintIndex \end{otherlanguage} \end{document} % % \fi % % \CheckSum{818} % % \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 \~} % % \changes{v1.0a}{2005/01/27}{Initial version.} % \changes{v1.0b}{2005/01/28}{Some code and documentation cleaning. (RN)} % \changes{v1.0d}{2005/01/30}{Redefinition of \cmd{\includegraphics} in % modes 0 und 1. Now using of eps graphics directly in pdf\LaTeX{} is % possible. (RN)} % \changes{v1.0j}{2005/02/22}{Check AtBeginDocument for package % `pstricks' even if ``nopstricks'' is given. (RN)} % \changes{v1.0j}{2005/02/22}{For \cmd{\includegraphics} % \cmd{\usepicture} and \string\verb+postscript+ the new options ``frame'', % ``framesep'', ``framerule'', ``linewidth'', and ``ignore'' added. (RN)} % \changes{v1.0l}{2005/02/25}{Options ``framesep'', ``framerule'', % ``linewidth'' removed, ``fname'' and ``innerframe'' added. (RN)} % \changes{v1.0m}{2005/02/26}{New package option ``notightpage'' added. (RN)} % \changes{v1.0n}{2005/02/27}{Some code cleaning. (RN)} % \changes{v1.0n}{2005/02/27}{Changed marcro names (\cmd{\savepicture} % and \cmd{\usepicture}). (RN)} % \changes{v1.0o}{2005/03/12}{Option ``fname'' renamed to ``showname''. (RN)} % \changes{v1.0p}{2005/03/13}{Some code and documentation cleaning. (RN)} % \changes{v1.0s}{2005/03/28}{Scaling e.g. of PostScript pictures now only % in extraction mode. Some code cleaning. (RN)} % \changes{v1.1b}{2005/04/09}{Some code and documentation cleaning. (RN)} % \changes{v1.1c}{2005/04/17}{New package option ``tightpage'' added. (RN)} % \changes{v1.1k}{2006/02/10}{New environment pst-pdf-defs: Support for % PSTricks environment ``psmatrix'' inside user definitions. (RN,HjG)} % \changes{v1.1m}{2006/03/10}{Merge english and german version of the % documentation. (RN)} % \changes{v1.2c}{2017/04/24}{``postscript'' environment no more allowed before % \cmd{\begin}{\ttfamily\char`\{document\char`\}} (changed example file). } % \GetFileInfo{pst-pdf.dtx} % % \DoNotIndex{\newcommand,\renewcommand,\newenvironment,\renewenvironment} % \DoNotIndex{\providecommand,\def,\edef,\let,\gdef,\xdef,\global,\newtoks} % \DoNotIndex{\chardef,\@namedef,\g@addto@macro,\newif,\newcounter} % \DoNotIndex{\RequirePackage,\DeclareOption,\ProcessOptions,\ExecuteOptions} % \DoNotIndex{\input,\endinput,\IfFileExists,\InputIfFileExists} % \DoNotIndex{\@ifdefinable,\@ifundefined,\@percentchar} % \DoNotIndex{\iftrue,\iffalse} % \DoNotIndex{\the,\if,\ifx,\else,\or,\fi,\ifnum,\ifdim,\ifcase,\ifodd} % \DoNotIndex{\AtBeginDocument,\AtEndDocument,\AtEndOfPackage} % \DoNotIndex{\PackageError,\PackageWarning,\PackageWarningNoLine,\PackageInfo} % \DoNotIndex{\message,\MessageBreak,\typeout,\space,\@spaces} % \DoNotIndex{\@tempa,\@tempb,\x} % \DoNotIndex{\z@,\z@skip,\p@,\@ne,\tw@,\thr@@,\@iv,\two@fourteen,\strip@pt} % \DoNotIndex{\advance,\multiply,\divide} % \DoNotIndex{\@for,\@tfor,\do,\@gobble,\@gobbletwo,\relax,\ignorespaces} % \DoNotIndex{\csname,\endcsname,\begingroup,\endgroup,\bgroup,\egroup} % \DoNotIndex{\expandafter,\afterassignment,\aftergroup,\noexpand} % \DoNotIndex{\setbox,\box,\hbox,\vbox,\ht,\wd,\dp,\llap,\rlap} % \DoNotIndex{\small,\large,\tiny,\ttfamily,\lowercase} % \DoNotIndex{\@@,\@empty,\@firstoftwo,\@secondoftwo} % \DoNotIndex{\@tempboxa,\@tempcnta,\@temptokena,\toks@,\@namedef,\@nameuse} % % \providecommand*\env[1]{\textsf{#1}} % \providecommand*\clsname[1]{\textsf{#1}} % \providecommand*\pkgname[1]{\textsf{\mbox{#1}}} % \providecommand*\optname[1]{\textsf{#1}} % \providecommand*\progname[1]{\textsf{`#1'}} % % \providecommand*\PS{Post\-Script} % % \newenvironment{optlist}% % {\begin{description}% % \renewcommand\makelabel[1]{% % \descriptionlabel{\bfseries\optname{##1}}}% % \itemsep0.25\itemsep}% % {\end{description}} % % \newcommand*\META[1]{\meta{\normalfont#1}} % \newcommand*\TorF{\META{true\textbar false}} % % \newif\ifGERMAN \GERMANfalse % \newif\ifENGLISH \ENGLISHfalse % \iflanguage{ngerman}{\GERMANtrue}{% % \iflanguage{german}{\GERMANtrue}{\GERMANfalse}} % \iflanguage{english}{\ENGLISHtrue}{\ENGLISHfalse} % % ^^A ---------------------------------------------------------- % % \ifGERMAN % \title{Das Paket \pkgname{pst-pdf}\thanks{Dieses Dokument % bezieht sich auf \textsf{pst-pdf}~\fileversion\ vom \filedate.}} % \fi % \ifENGLISH % \title{The \pkgname{pst-pdf} package\thanks{This document % corresponds to \textsf{pst-pdf}~\fileversion, dated \filedate. % Thanks to Peter Dyballa for the translation.}} % \fi % % \author{% % Rolf Niepraschk\thanks{\texttt{Rolf.Niepraschk@gmx.de}} % \and % Hubert G\"a{\ss}lein} % \date{\filedate} % % \maketitle % % \ifGERMAN % \section{Einleitung} % % Das Paket \pkgname{pst-pdf} vereinfacht die Verwendung von % PSTricks-Grafiken und anderem \PS-Code in PDF-Dokumenten. % \"Ahnlich wie beim Erstellen des Literaturverzeichnisses mit bib\TeX{} % werden zus\"atzlich externe Programme aufgerufen. Sie dienen in % diesem Fall dazu, eine PDF-Datei, die s\"amtliche Grafiken % enth\"alt, zu erzeugen. Ihr Inhalt wird im endg\"ultigen Dokument % statt des urspr\"unglichen \PS-Codes eingef\"ugt. % \fi % % \ifENGLISH % \section{Introduction} % % The package \pkgname{pst-pdf} simplifies the use of graphics from % PSTricks and other \PS\ code in PDF documents. As in building a % bibliography with \BibTeX{} additional external programmes are being % invoked. In this case they are used to create a PDF file % (\cmd{\PDFcontainer}) that will contain all this graphics material. In the % final document this contents will be inserted instead of the original % \PS\ code. % \fi % % \ifGERMAN % \section{Anwendung} % \fi % % \ifENGLISH % \section{Usage} % \fi % % \ifGERMAN % \subsection{Paketoptionen} % % \begin{optlist} % % \item[active] Aktiviert den Extraktionsmodus (DVI-Ausgabe). % Die explizite Angabe ist normalerweise unn\"otig (Standard im % \LaTeX-Modus). % % \item[inactive] Keine besonderen Aktionen; es werden nur die % Pakete \pkgname{pstricks} und \pkgname{graphicx} geladen % (Standard bei Verwendung von V\TeX). Kann dazu benutzt werden, % um das Dokument mit \LaTeX\ in eine DVI-Datei zu wandeln und % dabei die automatische Verwendung des Extraktionsmodus' zu vermeiden. % % \item[pstricks] Das Paket \pkgname{pstricks} wird geladen % (Standard). % % \item[nopstricks] Das Paket \pkgname{pstricks} wird nicht % geladen. Wird sp\"ater festgestellt, dass \pkgname{pstricks} doch % noch anderweitig geladen wurde, wird die Umgebung |pspicture| % nachtr\"aglich in der Weise behandelt, als w\"are die Option % ``pstricks'' doch angegeben worden. % % \item[draft] Im pdf\LaTeX-Modus werden aus der % Containerdatei eingef\"ugte Grafiken nur als Rahmen dargestellt. % % \item[final] Im pdf\LaTeX-Modus werden aus der % Containerdatei eingef\"ugte Grafiken vollst\"andig % dargestellt (Standard). % % \item[tightpage] Die Abmessung Grafiken in der Containerdatei % entsprechen denen der zugeh\"origen \TeX-Boxen (Standard). % % \item[notightpage] % Die Abmessung der zur Grafik geh\"orenden \TeX-Box ist manchmal % nicht korrekt, da \PS-Anweisungen auch au{\ss}erhalb der Box % zeichnen k\"onnen. Die Option ``notightpage'' f\"uhrt dazu, dass die % Grafiken in der Containerdatei mindestens die Gr\"o{\ss}e des % gesamten Blattes einnehmen. Um die Grafiken % im sp\"ateren pdf\LaTeX-Lauf verwenden zu k\"onnen, muss die % Containerdatei nachbearbeitet werden, so dass die Gr\"o{\ss}e der % Grafiken auf die der sichtbaren Bestandteile reduziert ist. Dazu % kann z.\,B. das Programm |pdfcrop|\footnote{% % CTAN:~\url{support/pdfcrop/}} dienen. Die Anwendung dieses Verfahrens % kann die Angabe der Option ``trim'' er\"ubrigen (siehe % Abschnitt~\ref{sec:copt}). % % \item[displaymath] % Es werden zus\"atzlich die mathematischen Umgebungen % \env{displaymath}, \env{eqnarray} und \env{\$\$} extrahiert und im % pdf-Modus % als Grafik eingef\"ugt. So k\"onnen zus\"atzliche PSTricks-Erg\"anzungen % leicht dem Inhalt dieser Umgebungen zugef\"ugt werden. (Frage: Wie % verhalten sich die AMS\LaTeX-Umgebungen?) % % \item[\meta{other}] Alle anderen Optionen werden an das Paket % \pkgname{pstricks} weitergereicht. % % \end{optlist} % \fi % \ifENGLISH % \subsection{Package options} % % \begin{optlist} % % \item[active] Activates the extraction mode (DVI output). An explicit % declaration usually is not necessary (default in \LaTeX\ mode). % % \item[inactive] No special actions; only the packages % \pkgname{pstricks} and \pkgname{graphicx} are loaded (default in % V\TeX). Can be used to just convert the document with \LaTeX\ into a % DVI file while avoiding the automatic extraction mode. % % \item[pstricks] The package \pkgname{pstricks} is loaded (default). % % \item[nopstricks] The package \pkgname{pstricks} does not get loaded. % Once it is detected that \pkgname{pstricks} was loaded however in % some other way, the \env{pspicture} environment is treated as if the % option ``pstricks'' was given. % % \item[draft] From the \cmd{\PDFcontainer} file included graphics is % displayed as frame in pdf\LaTeX\ mode. % % \item[final] From the \cmd{\PDFcontainer} file included graphics is % correctly displayed in pdf\LaTeX\ mode (default). % % \item[tightpage] The graphics' dimensions in the \cmd{\PDFcontainer} % file match exactly those of the corresponding \TeX\ boxes (default). % % \item[notightpage] The dimensions of the \TeX\ box corresponding to its % graphics is not always correct, since a \PS\ statement can draw % outside its box. The option ``notightpage'' makes the graphics in the % \cmd{\PDFcontainer} file to be at least the size of the whole page. % To be able to make use of the graphics' in a later pdf\LaTeX\ run, % the \cmd{\PDFcontainer} file needs to be finished in a way that each % graphics gets reduced in size to its visible part. For this an % external programme like % |pdfcrop|\footnote{CTAN:~\url{support/pdfcrop/}} can be useful. Its % use can save declaring the option ``trim'' (see also % section~\ref{sec:copt}). % % \item[displaymath] In PDF mode the mathematical environments % \env{displaymath}, \env{eqnarray}, and \env{\$\$} get also extracted % and included as graphics. This way additional PSTricks extensions can % easily be added to the contents of these environments. (Question: how % do AMS\LaTeX\ environments behave?) % % \item[\meta{other}] All other options are passed to \pkgname{pstricks} % package. % % \end{optlist} % \fi % \ifGERMAN % \subsection{Programmaufrufe} % % Die folgende Tabelle zeigt den Ablauf, der n\"otig ist, um ein % PDF-Dokument mit \PS-Grafiken zu erzeugen\footnote{% % Die Shell-Scripte |ps4pdf| bzw. |ps4pdf.bat| f\"uhren alle angegebenen % Programmaufrufe automatisch aus.}. Im Vergleich dazu ist der % analoge Ablauf f\"ur Literaturverzeichnisse angegeben.\bigskip % % \newcolumntype{P}[1]{>{\mbox{}\raggedright}p{#1}} % \noindent % \begin{tabular}[t]{@{}P{.65\linewidth}@{}P{.35\linewidth}@{}} % \textbf{\PS-Grafiken} & \textbf{Literaturverzeichnis} \tabularnewline % \toprule % |pdflatex document.tex| & |pdflatex document.tex| % \tabularnewline\midrule % \multicolumn{2}{@{}c@{}}{\emph{Hilfsaufrufe}} \tabularnewline % |latex document.tex| \tabularnewline % |dvips -o document-pics.ps document.dvi| \tabularnewline % |ps2pdf document-pics.ps| % & % |bibtex document.aux| % \tabularnewline\midrule % |pdflatex document.tex| & |pdflatex document.tex| % \end{tabular}\bigskip % % Bei der Erzeugung wird nur % Code ber\"ucksichtigt, der sich innerhalb der Umgebungen |pspicture| % oder |postscript| befindet. Ebenfalls werden \PS-Grafiken, die % als Parameter von \cmd{\includegraphics} angegeben wurden, der % Containerdatei hinzugef\"ugt. % Der Name dieser Datei ist standardm\"a{\ss}ig % \meta{\cmd{\jobname}}|-pics.pdf|. % Er kann durch Umdefinieren des Makros % \cmd{\PDFcontainer} ge\"andert werden. \medskip % \fi % \ifENGLISH % \subsection{Program calls} % % The following table shows the course necessary to create a PDF document % containing \PS\ graphics\footnote{The \TeX\ distribution ``te\TeX'' % contains a UNIX shell script |ps4pdf| which executes all the necessary % steps. See: CTAN:~\url{macros/latex/contrib/ps4pdf/}}. As comparison % the analogous course for a bibliography is shown.\bigskip % % \newcolumntype{P}[1]{>{\mbox{}\raggedright}p{#1}} % \noindent % \begin{tabular}[t]{@{}P{.65\linewidth}@{}P{.35\linewidth}@{}} % \textbf{\PS\ graphics} & \textbf{bibliography} \tabularnewline % \toprule % |pdflatex document.tex| & |pdflatex document.tex| % \tabularnewline\midrule % \multicolumn{2}{@{}c@{}}{\emph{auxiliary calls}} \tabularnewline % |latex document.tex| \tabularnewline % |dvips -o document-pics.ps document.dvi| \tabularnewline % |ps2pdf document-pics.ps| % & % |bibtex document.aux| % \tabularnewline\midrule % |pdflatex document.tex| & |pdflatex document.tex| % \end{tabular}\bigskip % % While creating the output only code from inside a \env{pspicture} or % \env{postscript} environment is considered. \PS\ graphics files, which % are passed as parameter of an \cmd{\includegraphics} statement, too are % included into the \cmd{\PDFcontainer} file. This file's name is by % default \meta{\cmd{\jobname}}|-pics.pdf|. It can be changed by % re-defining the macro \cmd{\PDFcontainer}. \medskip % \fi % % \ifGERMAN % \subsection{Nutzeranweisungen} % % \DescribeEnv{pspicture} % \indent\cmd{\begin}|{pspicture}|\oarg{keys}% % \parg{x0,x1}\parg{y0,y1} \dots\cmd{\end}|{pspicture}| % \par\noindent % Die |pspicture|-Umgebung steht zur Verf\"ugung, wenn nicht die Option % ``|nopstricks|'' angegeben wurde. Sie wird so wie in PSTricks \"ublich % verwendet. Im pdf\LaTeX-Modus wird ihr Inhalt nur dann dargestellt, % wenn vorher die Containerdatei erzeugt wurde. % \medskip % % \DescribeEnv{postscript} % \cmd{\begin}|{postscript}|\oarg{keys} \dots\cmd{\end}|{postscript}| % \par\noindent % Die |postscript|-Umgebung kann beliebigen Code mit Ausnahme von % Gleitumgebungen aufnehmen. Im pdf\LaTeX-Modus wird ihr Inhalt % ebenfalls der Containerdatei entnommen. Ist diese Datei nicht % vorhanden, wird -- anders als bei der |pspicture|-Umgebung -- der % sp\"ater ben\"otigte Platz m\"oglicherweise nicht korrekt frei gehalten. % \medskip % % \DescribeMacro{\includegraphics} % \cmd{\includegraphics}\oarg{keys}\marg{filename} % \par\noindent % Wie in \pkgname{graphics}/\pkgname{graphicx} definiert zu verwenden. % Zus\"atzlich ist es nun m\"oglich, auch im pdf\LaTeX-Modus % EPS-Dateien als Argument anzugeben und ihren Inhalt darzustellen. Er % wird dazu ebenfalls der Containerdatei entnommen. % \medskip % % \newcommand*\ooarg[1]{{\ttfamily<}\meta{#1}{\ttfamily>}} % % \DescribeMacro{\includegraphicx} % \cmd{\includegraphicx}\oarg{keys}\parg{pfxadd}\ooarg{ovpfgd}\oarg{ovpbgd}% % \marg{filename} % \par\noindent % Wie im Paket \pkgname{psfragx} definiert zu verwenden. % \medskip % % \DescribeMacro{\savepicture} % \cmd{\savepicture}\marg{name} % \par\noindent % Die zuletzt ausgegebene Grafik (Ergebnisse der Umgebungen |pspicture|, % |postscript| und der \cmd{\includegraphics}-Anweisungen mit % \PS-Dateien) wird unter dem als Parameter \"ubergebenen % Namen gespeichert. % \medskip % % \DescribeMacro{\usepicture} % \cmd{\usepicture}\oarg{keys}\marg{name} % \par\noindent % Die zuvor mit \cmd{\savepicture} gespeicherte Grafik wird % ausgegeben. Der optionale Parameter entpricht dem bei der Anweisung % \cmd{\includegraphics} m\"oglichen. % \medskip % % \DescribeEnv{pst-pdf-defs} % \cmd{\begin}\texttt{\{pst-pdf-defs\}} \dots % \cmd{\end}\texttt{\{pst-pdf-defs\}} % \par\noindent % Sollen eigene Makros oder Umgebungen definiert werden, die das Zeichen % \texttt{\&} (andere?) im Ersetzungstext enthalten, so m\"ussen diese % Definitionen von der Umgebung |pst-pdf-defs| umschlossen werden. % \medskip % \fi % % \ifENGLISH % \subsection{User commands} % % \DescribeEnv{pspicture} % \indent\cmd{\begin}|{pspicture}|\oarg{keys}% % \parg{x0,x1}\parg{y0,y1} \dots\cmd{\end}|{pspicture}| % \par\noindent % The \env{pspicture} environment is not available when the option % ``|nopstricks|'' was given. It is to be used the same way as if in % PSTricks. In pdf\LaTeX\ mode this environment's contents is only % displayed when the \cmd{\PDFcontainer} file was created before. % \medskip % % \DescribeEnv{postscript} % \cmd{\begin}|{postscript}|\oarg{keys} \dots\cmd{\end}|{postscript}| % \par\noindent % The \env{postscript} environment can contain any code except floats. In % pdf\LaTeX\ mode its contents is take too off the \cmd{\PDFcontainer} % file. Other as in the \env{pspicture} environment the necessary space is % not always preserved when the \cmd{\PDFcontainer} file does not exist yet. % \medskip % % \DescribeMacro{\includegraphics} % \cmd{\includegraphics}\oarg{keys}\marg{filename} % \par\noindent % To be used as in \pkgname{graphics}/\pkgname{graphicx} defined. In % pdf\LaTeX\ mode it is now additionally feasable to pass the name of an % EPS file. Its visible contents too is taken from the \cmd{\PDFcontainer} % file. % \medskip % % \newcommand*\ooarg[1]{{\ttfamily<}\meta{#1}{\ttfamily>}} % % \DescribeMacro{\includegraphicx} % \cmd{\includegraphicx}\oarg{keys}\parg{pfxadd}\ooarg{ovpfgd}\oarg{ovpbgd}% % \marg{filename} % \par\noindent % To be used like defined in package\pkgname{psfragx}. % \medskip % % \DescribeMacro{\savepicture} % \cmd{\savepicture}\marg{name} % \par\noindent % The last output graphics (result of the \env{pspicture} or \env{postscript} % environments or the \cmd{\includegraphics} statement with an \PS\ file as % argument) is being saved in a file under the name as given by the parameter. % \medskip % % \DescribeMacro{\usepicture} % \cmd{\usepicture}\oarg{keys}\marg{name} % \par\noindent % The graphic previously stored with \cmd{\savepicture} is outputted. The % optional parameter corresponds to \cmd{\includegraphics}. % \medskip % % \DescribeEnv{pst-pdf-defs} % \cmd{\begin}\texttt{\{pst-pdf-defs\}} \dots % \cmd{\end}\texttt{\{pst-pdf-defs\}} % \par\noindent % For defining macros or environments, which contain character \texttt{\&} % (others?) in the output, these defintions have to be wrapped with % environment |pst-pdf-defs|. % \medskip % \fi % % \ifGERMAN % \subsection{Command options} \label{sec:copt} % Das Verhalten der Anweisungen \cmd{\includegraphics}, \cmd{\usepicture} % und der Umgebung |postscript| kann mit den folgenden optionalen % Parametern beeinflusst werden (key-value-Syntax): % \begin{optlist} % % \item[frame=\TorF] Es wird -- \"ahnlich wie bei der % Anweisung \cmd{\fbox}~-- ein Rahmen um die Grafik gezeichnet. Die % durch Rotation ge\"anderte Gesamtgr\"o{\ss}e wird dabei % ber\"ucksichtigt. Das Zeichnen geschieht im % pdf\LaTeX-Modus; vorher beim Erzeugen der Containerdatei wird dieser % Parmeter ignoriert. Standard: false. % % \item[innerframe=\TorF] Wie ``|frame|'' jedoch % wird der Rahmen nur um die Grafik selbst, nicht aber um die % resultierende Box gezeichnet. % % \item[ignore=\TorF] Bei ``|true|'' wird die Grafik % nicht ausgegeben. Bei Angabe von \cmd{\savepicture}\marg{name} % kann sie sp\"ater jedoch an anderer Stelle mit % \cmd{\usepicture} verwendet werden. Standard: false. % % \item[showname=\TorF] Gibt in kleiner % Schrift den tats\"achlich verwendeten Dateinamen unter der Grafik % aus. Standard: false. % % \item[namefont=\META{font commands}] Beinflusst die Schriftart, % die bei ``|showname=true|'' benuzt wird. Standard: % \cmd{\ttfamily}\cmd{\tiny} % % \end{optlist} % % Alle Parameter k\"onnen auch global per % \cmd{\setkeys}|{Gin}|\marg{key=value} gesetzt werden. % \fi % % \ifENGLISH % \subsection{Command options} \label{sec:copt} % The behaviour of the \cmd{\includegraphics} and \cmd{\usepicture} % statements and the \env{postscript} environment can be modified with any % of the following parameters (key value syntax): % \begin{optlist} % % \item[frame=\TorF] As with the \cmd{\fbox} statement a frame is drawn % around the graphics. Any change of size due to rotation is taken into % account. Drawing happens in pdf\LaTeX\ mode; before, in creating the % \cmd{\PDFcontainer} file, it is ignored. Default: false. % % \item[innerframe=\TorF] As in ``|frame|'', but the frame is drawn % around the gra\-phics, not its box. % % \item[ignore=\TorF] If set to ``|true|'' no graphics are outputted. With % macro \cmd{\savepicture}\marg{name} the graphics can be used later in a % different place via \cmd{\usepicture}. Default: false. % % \item[showname=\TorF] A caption of minimal font size records the used % file's name. Default: false. % % \item[namefont=\META{font commands}] Controls the font used when % ``|showname=true|'' is set. Default: \cmd{\ttfamily}\cmd{\tiny} % % \end{optlist} % % All parameters can be set globally as in % \cmd{\setkeys}|{Gin}|\marg{key=value}. % \fi % % \bigskip \pagebreak[2] % % \StopEventually{} % % \section{Implementation} % % \begin{macrocode} %<*package> % \end{macrocode} % \subsection{Package options} % \changes{v1.0c}{2005/01/29}{New options ``pstricks'', ``nopstricks'', % ``draft'' and ``\mbox{final}''. (RN)} % \changes{v1.1e}{2005/04/30}{New option ``displaymath'' (see preview % package). (HjG/RN)} % \changes{v1.1f}{2005/04/30}{Package option ``ignore'' reimplemented. % Now the compilation of the dtx file in \LaTeX\ mode is possible. (RN)} % \begin{macrocode} \newcommand*\ppf@TeX@mode{-1} \newcommand*\ppf@draft{false} \newif\if@ppf@PST@used\@ppf@PST@usedtrue \newif\if@ppf@tightpage \@ppf@tightpagetrue \DeclareOption{active}{\OptionNotUsed} \DeclareOption{inactive}{\def\ppf@TeX@mode{9}} \DeclareOption{ignore}{\def\ppf@TeX@mode{999}} \DeclareOption{pstricks}{\@ppf@PST@usedtrue} \DeclareOption{nopstricks}{\@ppf@PST@usedfalse} \DeclareOption{displaymath}{% \PassOptionsToPackage\CurrentOption{preview}} \DeclareOption{draft}{\def\ppf@draft{true}} \DeclareOption{final}{\def\ppf@draft{false}% \PassOptionsToPackage\CurrentOption{graphicx}} % \end{macrocode} % \changes{v1.1i}{2005/06/29}{Package option ``final'' also % for ``graphicx''. (RN)} % \begin{macrocode} \DeclareOption{notightpage}{\@ppf@tightpagefalse}% \DeclareOption{tightpage}{\@ppf@tightpagetrue}% \DeclareOption*{% \PassOptionsToPackage\CurrentOption{pstricks}} \ProcessOptions\relax \ifnum\ppf@TeX@mode=999\relax\expandafter\endinput\fi % \end{macrocode} % \ifGERMAN % \subsection{Compilertests} % Es wird getestet, welcher \TeX\ compiler in welchem Modus % l\"auft (siehe `|graphics.cfg|' von te\TeX/\TeX Live). Entsprechend % dem Ergebnis bekommen die Umgebungen |pspicture| und |postscript| % unterschiedliche Funktionalit\"at. Der Test wird nur ausgef\"uhrt, % wenn nicht die Paketoptionen |active| oder |inactive| angegeben wurden. % \fi % \ifENGLISH % \subsection{Compiler tests} % It is tested which \TeX\ compiler in which mode of operation is actually % used (see `|graphics.cfg|' in te\TeX/\TeX\ Live). Accordingly the % environments \env{pspicture} and \env{postscript} gain each a different % range of functions. This test is only executed when the options |active| % or |inactive| were not given. % \fi % \changes{v1.2a}{2016/07/11}{Engine tests changed (RN)} % \changes{v1.2b}{2017/02/25}{Loading packages `if*' at wrong place (RN)} % \begin{macrocode} \RequirePackage{ifpdf,ifxetex,ifvtex} \ifnum\ppf@TeX@mode=-1\relax \ifpdf % \end{macrocode} % \quad$\Rightarrow$\,pdf\TeX{} or Lua\TeX{} are running in PDF mode % \begin{macrocode} \def\ppf@TeX@mode{1}% \RequirePackage{luatex85}% \else \ifvtex % \end{macrocode} % \quad$\Rightarrow$\,V\TeX{} % \begin{macrocode} \def\ppf@TeX@mode{9}% \else \ifxetex % \end{macrocode} % \quad$\Rightarrow$\,Xe\TeX{} % \begin{macrocode} \def\ppf@TeX@mode{9}% \else % \end{macrocode} % \quad$\Rightarrow$\,DVI mode % \begin{macrocode} \def\ppf@TeX@mode{0}% \fi \fi \fi \fi % \end{macrocode} % \changes{v1.0g}{2005/02/12}{Definition of \cmd{\PDFcontainer} % now with \cmd{\edef}. (RN)} % \begin{macrocode} \newcommand*\PDFcontainer{} \edef\PDFcontainer{\jobname-pics.pdf} \newcounter{pspicture} \newcommand*\ppf@other@extensions[1]{} \newcommand*\usepicture[2][]{} \newcommand*\savepicture[1]{} % \end{macrocode} % % \begin{environment}{pst-pdf-defs} % \begin{macrocode} \newenvironment*{pst-pdf-defs}{% \endgroup % ??? \@currenvline }{% \begingroup \def\@currenvir{pst-pdf-defs}% } % \end{macrocode} % \end{environment} % % \changes{v1.2d}{2017/06/22}{Version parameter for `graphicx' and rename % \cmd{\GPT@page} to \cmd{\Gin@page} at several places} % \begin{macrocode} \RequirePackage{graphicx}[2017/06/01]% \let\ppf@Ginclude@graphics\Ginclude@graphics \let\ppf@Gin@extensions\Gin@extensions \let\ppf@Gin@ii\Gin@ii % \end{macrocode} % \begin{macrocode} \newif\if@ppf@pdftex@graphic \newif\ifGin@frame\Gin@framefalse \newif\ifGin@innerframe\Gin@innerframefalse \newif\ifGin@showname\Gin@shownamefalse \newif\ifGin@ignore\Gin@ignorefalse % \end{macrocode} % \ifGERMAN % \cmd{\ifpr@outer} wird eigentlich im Paket \pkgname{preview} definiert. % Wir m\"ussen es aber be\-reits hier zus\"atzlich tun, da sonst \TeX\ u.\,U. % beim Parsen der \cs\texttt{ifcase}-Struktur ``au{\ss}er Tritt'' kommt. % \fi % \ifENGLISH % \cmd{\ifpr@outer} in fact is defined in package \pkgname{preview}. We % have to do it here too since otherwise \TeX\ could ``stumble and fall'' % while parsing the \cs\texttt{ifcase} structure. % \fi % \changes{v1.1i}{2005/06/29}{\cmd{\ifpr@outer} must be predefined. (HjG/RN)} % \begin{macrocode} \newif\ifpr@outer % \end{macrocode} % \begin{macro}{\ppf@is@pdfTeX@graphic} % \changes{v1.0i}{2005/02/18}{No more errors for given files without % extensions. (RN)} % \changes{v1.0r}{2005/03/25}{Changed \cmd{\ppf@is@known@graphic} to % \cmd{\ppf@is@pdfTeX@graphic}. Now pdf\TeX\ graphics are prefered. (RN)} % \changes{v1.2e}{2019/11/15}{Parameter \string\verb+#2+ is detokenized when % expanded to \cmd{\pdfTeXext}} % \ifGERMAN % Parameter |#1| ist der Name einer Grafikdatei mit oder ohne Endung, % Parameter |#2| enth\"alt die g\"ultigen Dateiendungen im pdf-Modus, % Parameter |#3| enth\"alt die g\"ultigen Dateiendungen im dvi-Modus. % Ist es m\"oglich, die Grafik im pdf-Modus zu verarbeiten, werden die % Anweisungen in |#4| ausgef\"uhrt, sonst die in |#5|. % \fi % \ifENGLISH % Parameter |#1| is the name of a graphics file with or without extension, % parameter |#2| contains the valid extensions in PDF mode, % parameter |#3| contains the valid extensions in DVI mode. % If it works to process the graphics in PDF mode, then the statements % in |#4| are executed, otherwise those in |#5|. % \fi % \begin{macrocode} \newcommand*\ppf@is@pdfTeX@graphic[5]{% \@ppf@pdftex@graphicfalse% \begingroup \edef\pdfTeXext{,#2,}% \edef\pdfTeXext{\detokenize\expandafter{\pdfTeXext}}% % \end{macrocode} % \ifGERMAN % Statt Einladen einer identifizierten Grafik nur Test der Grafikendung. % \fi % \ifENGLISH % Instead of loading the found graphics, only a test on file name extension. % \fi % \begin{macrocode} \def\Gin@setfile##1##2##3{% \edef\@tempa{,##2,}% \@expandtwoargs\in@{\detokenize\expandafter{\@tempa}}{\pdfTeXext}% \ifin@\global\@ppf@pdftex@graphictrue\fi}% % \end{macrocode} % \ifGERMAN % Es m\"ussen Dateitypen beider Moden gefunden werden, um % die Fehlermeldung ``File `|#1|' not found'' zu vermeiden. % \fi % \ifENGLISH % File types for both modes need to be determined to prevent a wrong % error message ``File `|#1|' not found''. % \fi % \begin{macrocode} \edef\Gin@extensions{#2,#3}% % \end{macrocode} % \ifGERMAN % Testaufruf. Dabei Ausgabe vollst\"andig verhindern. % \fi % \ifENGLISH % Trial invocation. Output is completely inhibited. % \fi % \begin{macrocode} \pr@outerfalse\ppf@Ginclude@graphics{#1}% \endgroup \if@ppf@pdftex@graphic#4\else#5\fi } % \end{macrocode} % \end{macro} % \begin{macrocode} \ifcase\ppf@TeX@mode\relax % \end{macrocode} % \ifGERMAN % \subsection{Extraction mode (dvi output)} % Die Umgebung |pspicture| beh\"alt die Definition aus |pstricks.tex|. % Aus\-schlie{\ss}\-lich der Code der Umgebungen |pspicture| und % |postscript| sowie \cmd{\includegraphics} mit PS-Dateien bewirken % Eintr\"age in die DVI-Datei. Der % restliche Code des Dokuments wird bei der Ausgabe der DVI-Datei % ignoriert. Nach Wandlung der DVI-Datei \"uber \PS\ (``|dvips|'') % nach PDF (Datei \cmd{\PDFcontainer}) nimmt jede Grafik % genau eine Seite der pdf-Datei ein. % Der \TeX-Compiler mit DVI-Ausgabe sowie die Paketoption ``|active|'' % erzwingen diesen Modus. % \fi % \ifENGLISH % \subsection{Extraction mode (DVI output)} % The \env{pspicture} environment retains any definition from % |pstricks.tex|. Only the code from the environments \env{pspicture} and % \env{postscript} as well as \cmd{\includegraphics} with \PS\ files leads % to records into the DVI file. The remainder of the document's code is % ignored for output. After conversion of the DVI file via \PS\ % (``|dvips|'') into PDF (\cmd{\PDFcontainer} file) each graphics takes % exactly one page in the \cmd{\PDFcontainer} file. The \TeX\ compiler with % DVI output and the package option ``|active|'' both force this mode. % \fi % \changes{v1.1n}{2006/07/14}{\cmd{\nofiles} added (suggestion of Torsten % Bronger).} % \changes{v1.1p}{2007/06/04}{\cmd{\nofiles} makes \cmd{\makeindex} and % \cmd{\makeglossary} to \cmd{\relax}. \cmd{\@empty} is better % because of later \cmd{\renewcommand}'s.} % \changes{v1.2e}{2019/11/15}{gobble optional argument for \cmd{\makeindex}, % \cmd{\makeglossary} and \cmd{\printindex}} % \changes{v1.1q}{2008/02/17}{\cmd{\overfullrule} must not be > 0.} % \begin{macrocode} \PackageInfo{pst-pdf}{% MODE: \ppf@TeX@mode\space (dvi -- extraction mode)}% \nofiles \let\makeindex\@empty \let\makeglossary\@empty \let\printindex\@empty \renewcommand*\makeindex[1][]{}% \renewcommand*\makeglossary[1][]{}% \renewcommand*\printindex[1][]{}% \AtBeginDocument{\overfullrule=\z@}% \if@ppf@PST@used\RequirePackage{pstricks}\fi \RequirePackage[active,dvips,tightpage]{preview}[2005/01/29]% \newcommand*\ppf@PreviewBbAdjust{}% \newcommand*\ppf@RestoreBbAdjust{% \let\PreviewBbAdjust\ppf@PreviewBbAdjust}% % \end{macrocode} % \ifGERMAN % Es werden auch die im pdf\LaTeX-Modus erlaubten Endungen von Grafikdateien % ben\"otigt (Argument aus `pdftex.def' -- 2020/10/05 -- kopiert). % \fi % \ifENGLISH % The pdf\LaTeX\ mode compliant graphics file formats are needed too. % (Argument copied from `pdftex.def' -- 2020/10/05). % \fi % \changes{v1.1u}{2008/09/16}{\cmd{\pdfoutput} must be set when % loading ``pdftex.def'' in DVI mode. (RN)} % \changes{v1.1v}{2008/10/09}{Local redefinition of \cmd{\pdfoutput} to be a % counter. (RN)} % \changes{v1.2f}{2020/10/10}{No more loading of file `pdftex.def' (RN)} % \begin{macrocode} \def\ppf@other@extensions{% .pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,% .PDF,.PNG,.JPG,.JPEG,.JBIG2,.JB2% } % \end{macrocode} % \changes{v1.1c}{2005/04/17}{Supress handling of pdf\LaTeX\ graphic % formats in DVI mode. (RN)} % \ifGERMAN % F\"ur die im PDF-Modus m\"oglichen Grafikformate d\"urfen keine % speziellen Regeln definiert sein (z.\,B. wegen % \progname{dvips}-Erweiterungen). F\"ur sie wird die universelle % EPS-Regel verwendet, damit sie zumindest gefunden werden. % \fi % \ifENGLISH % In PDF mode no rules must be defined for its compliant (PNG, JPEG, PDF) % graphics file formats (because of for example \progname{dvips} extensions). % The universal EPS rule is used to at least find these files. % \fi % \begin{macrocode} \AtBeginDocument{% \@ifpackageloaded{keyval}{% \def\KV@errx#1{\PackageInfo{keyval}{#1}}% }{}% \@ifpackageloaded{xkeyval}{% \def\XKV@err#1{\PackageInfo{xkeyval}{#1}}% }{}% % \end{macrocode} % \ifGERMAN % In diesem Modus sollten undefinierte keys keinen Fehler bewirken. % \fi % \ifENGLISH % In this mode undefined keys should not be an error. % \fi % \begin{macrocode} \@for\@tempa:=\ppf@other@extensions\do{% \expandafter\let\csname Gin@rule@\@tempa\endcsname\relax}% \DeclareGraphicsRule{*}{eps}{*}{}}% % \end{macrocode} % \ifGERMAN % In diesem Modus keine Funktion. % \fi % \ifENGLISH % No function in this mode. % \fi % \changes{v1.1s}{2008/05/25}{Dummy definition of the page key in DVI mode.} % \begin{macrocode} \define@key{Gin}{innerframe}[true]{}% \define@key{Gin}{frame}[true]{}% \define@key{Gin}{ignore}[true]{}% \define@key{Gin}{showname}[true]{}% \define@key{Gin}{namefont}{}% \@ifundefined{Gin@page}{\define@key{Gin}{page}{}}{}% % \end{macrocode} % \changes{v1.0o}{2005/03/12}{New code for ``notightpage''. (RN)} % \changes{v1.1r}{2008/05/02}{Fixed values for \cmd{\PreviewBbAdjust} % because \cmd{\paperwidth} is not allways defined (suggested by Will % Robertson).} % \begin{macrocode} \if@ppf@tightpage\else \def\PreviewBbAdjust{% -600pt -600pt 600pt 600pt}% \AtEndDocument{% \PackageWarningNoLine{pst-pdf}{Picture container needs cropping.}}% \fi % \end{macrocode} % \begin{environment}{postscript} % \changes{v1.0e}{2005/02/03}{``trim'' option added. (RN)} % \ifGERMAN % Die Umgebung \env{postscript} wertet die trim-Option in derselben % Weise wie \cmd{\includegraphics} aus (Angaben ohne Ma{\ss}einheit % werden als bp interpretiert). % \fi % \ifENGLISH % The \env{postscript} environment utilises the trim option in the same % manner as does \cmd{\includegraphics} (any specification without dimension % is interpreted as if given in bp). % \fi % \begin{macrocode} \newenvironment{postscript}[1][]% {% \global\let\ppf@PreviewBbAdjust\PreviewBbAdjust \if@ppf@tightpage \begingroup \setkeys{Gin}{#1}% \xdef\PreviewBbAdjust{% -\Gin@vllx bp -\Gin@vlly bp \Gin@vurx bp \Gin@vury bp}% \endgroup \fi \ignorespaces }% {\aftergroup\ppf@RestoreBbAdjust}% % \end{macrocode} % \end{environment} % \begin{macrocode} \PreviewEnvironment{postscript}% \AtBeginDocument{% \@ifundefined{PSTricksLoaded}{}% {% % \end{macrocode} % \begin{environment}{pspicture} % \ifGERMAN % Originaldefinition \pkgname{preview} bekannt machen. % \fi % \ifENGLISH % Announce \pkgname{preview} original definition. % \fi % \begin{macrocode} \PreviewEnvironment{pspicture}% % \end{macrocode} % \end{environment} % \begin{environment}{psmatrix} % \ifGERMAN % Originaldefinition \pkgname{preview} bekannt machen. % \fi % \ifENGLISH % Announce \pkgname{preview} original definition. % \fi % \begin{macrocode} \@ifundefined{psmatrix}{}% {% \PreviewEnvironment{psmatrix}% \newcommand*\ppf@set@mode{}% \newcommand*\ppf@test@mmode{% \ifmmode \ifinner \let\ppf@set@mode=$% \else \def\ppf@set@mode{$$}% \fi \else \let\ppf@set@mode=\@empty \fi }% \let\ppf@psmatrix=\psmatrix \expandafter\let\expandafter\ppf@pr@psmatrix% \expandafter=\csname pr@\string\psmatrix\endcsname \let\ppf@endpsmatrix=\endpsmatrix \def\psmatrix{\ppf@test@mmode\ppf@psmatrix}% \expandafter\def\csname pr@\string\psmatrix\endcsname{% \ppf@set@mode\ppf@pr@psmatrix}% \def\endpsmatrix{\ppf@endpsmatrix\ppf@set@mode}% }% % \end{macrocode} % \end{environment} % \ifGERMAN % Internes Makro \cmd{\pst@object} bekanntmachen, um manchen % PSTricks-Code au{\ss}erhalb von pspicture-Umgebungen ebenfalls % verwenden zu k\"onnen. Derzeit sind Aufrufe der folgenden Art % m\"oglich: % \begin{flushleft} % \cmd{\pst@object}% % \marg{m}\meta{\texttt{*}}\oarg{o}\marg{o}\marg{o}\parg{o}\parg{o}\parg{o} \\ % \qquad (|m|\,$=$\,notwendig, |*|\,$=$\,optional, |o|\,$=$\,optional) % \end{flushleft} % Mehr als drei optionale Argumente am Ende des Aufrufs, wie % bei\-spiels\-wei\-se bei \cmd{\psline} denkbar, sind noch nicht m\"oglich. % \fi % \ifENGLISH % Announce internal macro \cmd{\pst@object} to enable the use of some % PSTricks code outside of \env{pspicture} environments. At the moment % invocations of the following kind are feasible: % \begin{flushleft} % \cmd{\pst@object}% % \marg{m}\meta{\texttt{*}}\oarg{o}\marg{o}\marg{o}\parg{o}\parg{o}\parg{o} \\ % \qquad (|m|\,$=$\,necessary, |*|\,$=$\,optional, |o|\,$=$\,optional) % \end{flushleft} % More than three optional arguments at the call's end, as in % \cmd{\psline} possible, do not work yet. % \fi % \changes{v1.1a}{2005/04/07}{Support for the internal PSTricks macro % \cmd{\pst@object}. (HjG/RN)} % \begin{macrocode} \PreviewMacro[{{}*[]% ?\bgroup{#{#1}{{#1}}}{}% ?\bgroup{#{#1}{{#1}}}{}% ?({#{(#1)}{({#1})}}{}% ?({#{(#1)}{({#1})}}{}% ?({#{(#1)}{({#1})}}{}% }]{\pst@object}}% % \end{macrocode} % \ifGERMAN % Mehrfaches testweises Setzen von Tabelleninhalten durch ``tabularx'' % verhindern. % \fi % \ifENGLISH % Prevent multiple test-wise setting of table contents by ``tabularx''. % \fi % \changes{v1.1c}{2005/04/17}{Special support for ``tabularx''. (RN)} % \changes{v1.1q}{2008/02/17}{Problem with ``tabularx'' and % ``threeparttabel'' solved. (RN)} % \begin{macrocode} \@ifundefined{tabularx}{}{% \newcolumntype{X}{c}% \expandafter\let\expandafter\tabularx\csname tabular*\endcsname \expandafter\let\expandafter\endtabularx\csname endtabular*\endcsname }% % \end{macrocode} % \changes{v1.1l}{2006/02/18}{Support for the package ``psfragx''. (RN)} % \ifGERMAN % Unterst\"utzung von \cmd{\includegraphicx} aus dem Paket \pkgname{psfragx}. % \fi % \ifENGLISH % Support of \cmd{\includegraphicx} from the package \pkgname{psfragx}. % \fi % \begin{macrocode} \@ifundefined{pfx@includegraphicx}{}{% \PreviewMacro[{{}{}}]{\pfx@includegraphicx}}% }% % \end{macrocode} % \begin{macro}{\Gscale@@box} % \ifGERMAN % Skalieren verhindern. % \fi % \ifENGLISH % Disable scaling. % \fi % \changes{v1.1o}{2006/08/31}{Disable scaling. (RN)} % \begin{macrocode} \def\Gscale@@box#1#2#3{% \toks@{\mbox}% }% % \end{macrocode} % \end{macro} % \begin{macro}{\Ginclude@graphics} % \ifGERMAN % Alle Grafiken mit bekanntem Format (z.\,B. EPS-Dateien) werden normal % verarbeitet, was in diesem Modus bedeutet, dass sie der % Preview-Funktionalit\"at unterliegen. Andere Grafiken (z.\,B. PDF-Dateien) % werden ignoriert. % \fi % \ifENGLISH % All graphics content of well known format (for instance EPS files) is % treated in a regular way, which in this mode denotes that it is subject % to \pkgname{preview} functions. Other graphics content (for instance PDF % files) is ignored. % \fi % \changes{v1.0k}{2005/02/23}{Prevent division by zero. (RN)} % \changes{v1.1h}{2005/06/26}{Check if inside of a PS-related % environment (correct graphic inclusion). (RN)} % \changes{v1.1i}{2005/06/29}{Correction of the inside check. (RN/HjG)} % \begin{macrocode} \def\Ginclude@graphics#1{% \ifpr@outer % \end{macrocode} % \ifGERMAN % Im allgemeinen Fall sollen pdf\TeX-Grafiken bevorzugt werden (Einf\"ugen % erst im pdf\TeX-Modus). Ist nur eine DVIPS-Graphik vorhanden, dann % wirkt wieder die Originaldefintion und Registrierung beim % preview-Paket muss erfolgen. % \fi % \ifENGLISH % Generally pdf\TeX\ supported graphics formats are intended to be preferred % (inclusion in final pdf\TeX\ run). If it's a \PS\ type graphics, then the % original definition is in function again and registration for the % \pkgname{preview} package is necessary in order to convert this \PS\ type % graphics into PDF. % \fi % \begin{macrocode} \ppf@is@pdfTeX@graphic{#1}{\ppf@other@extensions}{\Gin@extensions}% % \end{macrocode} % \ifGERMAN % Dummy-Box, um Division durch Null bei Skalierung/Rotation zu % vermeiden. Wird ansonsten ignoriert. % \fi % \ifENGLISH % Dummy box to prevent a division by zero while scaling or rotating. % Otherwise ignored. % \fi % \begin{macrocode} {\rule{10pt}{10pt}}% {\ppf@Ginclude@graphics{#1}}% \else % \end{macrocode} % \ifGERMAN % Innerhalb von PS-Umgebungen (\texttt{pspicture} usw.) muss sich % \cmd{\includegraphics} wie die Originaldefinition verhalten (nur die % DVIPS-Graphik-Typen sind g\"ultig). % \fi % \ifENGLISH % Inside a \PS\ environment (\env{pspicture} etc.) \cmd{\includegraphics} has % to behave as in its original definition (only DVIPS supported graphics % formats are allowed). % \fi % \begin{macrocode} \ppf@Ginclude@graphics{#1}% \fi }% % \end{macrocode} % \end{macro} % \begin{macrocode} \PreviewMacro[{{}}]{\ppf@Ginclude@graphics}% \let\pdfliteral\@gobble% \or % \end{macrocode} % \ifGERMAN % \subsection{pdf\LaTeX\ mode (pdf output)} % Ist die Datei \cmd{\PDFcontainer} (default: \meta{\cmd{\jobname}}|-pics.pdf|) % vorhanden, so wird der Inhalt der Umgebungen |pspicture| und % |postscript| ignoriert. % Stattdessen wird die zugeh\"orige Grafik aus der Datei \cmd{\PDFcontainer} % eingebunden. % \fi % \ifENGLISH % \subsection{pdf\LaTeX\ mode (PDF output)} % When the \cmd{\PDFcontainer} file (default: % \meta{\cmd{\jobname}}|-pics.pdf|) exists, the contents of the % environments \env{pspicture} and \env{postscript} is ignored. Instead the % corresponding graphics from the \cmd{\PDFcontainer} file is used. % \fi % \begin{macrocode} \PackageInfo{pst-pdf}{MODE: \ppf@TeX@mode\space (pdfTeX mode)}% % \end{macrocode} % \ifGERMAN % Verhindert pdf\TeX{}s Warnung \texttt{Non-PDF special ignored!}. % \fi % \ifENGLISH % Prevent pdf\TeX's message \texttt{Non-PDF special ignored!}. % \fi % \changes{v1.2d}{2017/06/22}{\cmd{\c@lor@to@ps} must not be undefined before % loading `PSTricks'} % \begin{macrocode} \if@ppf@PST@used \let\ppf@temp\AtBeginDvi\let\AtBeginDvi\@gobble \def\c@lor@to@ps#1 #2\@@{}% \RequirePackage{pstricks}\let\AtBeginDvi\ppf@temp \fi % \end{macrocode} % \begin{macrocode} \@temptokena{% \let\Gin@PS@file@header\@gobble\let\Gin@PS@literal@header\@gobble \let\Gin@PS@raw\@gobble\let\Gin@PS@restored\@gobble \@ifundefined{PSTricksLoaded}{}{% % \end{macrocode} % \ifGERMAN % F\"ur PSTricks $<$ 2.0 n\"otig. % \fi % \ifENGLISH % Necessary if PSTricks $<$ 2.0. % \fi % \begin{macrocode} \PSTricksOff% \def\c@lor@to@ps#1 #2\@@{}% }% }% % \end{macrocode} % \ifGERMAN % \PS-Ausgabe jetzt verhindern und sp\"ater noch einmal. % \fi % \ifENGLISH % \PS\ output is now inhibited and later once again. % \fi % \begin{macrocode} \the\@temptokena% \expandafter\AtBeginDocument\expandafter {\the\@temptokena\@temptokena{}}% \@ifundefined{PSTricksLoaded}{}{% % \end{macrocode} % \ifGERMAN % Zum Parsen der Argumente von PSTricks' \cmd{\pst@object} laden wir % \pkgname{preview} im active-Modus, restaurieren aber die % standardm\"a{\ss}igen Definitionen von \cmd{\output} % und \cmd{\shipout}. \cmd{\pr@startbox} und % \cmd{\pr@endbox} dienen hier nur dazu, um \cmd{\pst@object} wirkungslos % zu machen und stattdessen die zugeh\"orige Grafik aus der Containerdatei % einzuladen. Derzeit werden nur maximal 3 optionale Pa\-ra\-meter in runden % Klammern am Ende von \cmd{\pst@object} unterst\"utzt, was f\"ur viele, % aber nicht f\"ur alle F\"alle ausreichend ist. % \fi % \ifENGLISH % To parse the arguments of PSTricks' \cmd{\pst@object} we load % \pkgname{preview} in active mode, but restore the default definitions of % \cmd{\output} and \cmd{\shipout}. \cmd{\pr@startbox} and \cmd{\pr@endbox} % serve here only to disable \cmd{\pst@object} and to load the % corresponding graphics from the \cmd{\PDFcontainer} file. At present a % maximum of three optional parameters in round braces (parenthesis) at the % end of \cmd{\pst@object} is supported, which is sufficient, but not % always enough. % \fi % \changes{v1.1b}{2005/04/09}{Ignore the call of % \cmd{\nofiles} inside of \pkgname{preview}. (RN)} % \changes{v1.1p}{2007/07/27}{\cmd{\let}\cmd{\output}\cmd{\@gobble} % before loading of ``preview'' added. (RN)} % \changes{v1.1t}{2008/09/09}{Remove the line % ``\cmd{\let}\cmd{\output}\cmd{\@gobble}'' because of bad side % effects. (RN)} % \begin{macrocode} \newtoks\ppf@output \ppf@output\expandafter{\the\output}% \let\ppf@nofiles=\nofiles \let\nofiles=\relax \let\ppf@shipout=\shipout \RequirePackage[active]{preview}[2005/01/29]% \let\shipout=\ppf@shipout \let\ppf@shipout=\relax \let\nofiles=\ppf@nofiles \let\ppf@nofiles=\relax \output\expandafter{\the\ppf@output} \ppf@output{}% % \end{macrocode} % \ifGERMAN % \cmd{\pr@startbox}, \cmd{\pr@endbox}: Gegen\"uber Originaldefinition % vereinfacht. % \fi % \ifENGLISH % \cmd{\pr@startbox}, \cmd{\pr@endbox}: simpler over original definitions. % \fi % \begin{macrocode} \long\def\pr@startbox#1#2{% \ifpr@outer \toks@{#2}% \edef\pr@cleanup{\the\toks@}% \setbox\@tempboxa\vbox\bgroup \everydisplay{}% \pr@outerfalse% \expandafter\@firstofone \else \expandafter\@gobble \fi{#1}}% \def\pr@endbox{% \egroup \setbox\@tempboxa\box\voidb@x \ppf@@getpicture \pr@cleanup}% % \end{macrocode} % \ifGERMAN % (Siehe auch identische Definition im DVI-Modus.) % \fi % \ifENGLISH % (See also the identical definition in DVI mode.) % \fi % \begin{macrocode} \AtBeginDocument{% \@ifundefined{pst@object}{}% {% \PreviewMacro[{{}*[]% ?\bgroup{#{#1}{{#1}}}{}% ?\bgroup{#{#1}{{#1}}}{}% ?({#{(#1)}{({#1})}}{}% ?({#{(#1)}{({#1})}}{}% ?({#{(#1)}{({#1})}}{}% }]{\pst@object}}% }% }% % \end{macrocode} % \ifGERMAN % Es werden auch die im DVI-Modus erlaubten Endungen von Grafikdateien % ben\"otigt (Argument aus `dvips.def' -- 2017/06/20 -- kopiert). % \fi % \ifENGLISH % Too the supported file name extensions from DVI mode are needed. % (Argument copied from `dvips.def' -- 2017/06/20). % \fi % \changes{v1.2f}{2020/10/10}{No more loading of file `dvisps.def' (RN)} % \begin{macrocode} \def\ppf@other@extensions{.eps,.ps,.eps.gz,.ps.gz,.eps.Z,.mps}% % \end{macrocode} % \ifGERMAN % Dummy-Definition f\"ur die im DVI-Modus g\"ultigen Dateitypen. % \fi % \ifENGLISH % Dummy definition for in DVI mode supported file formats. % \fi % \begin{macrocode} \DeclareGraphicsRule{*}{eps}{*}{}% % \end{macrocode} % \begin{macrocode} \define@key{Gin}{innerframe}[true]{% \lowercase{\Gin@boolkey{#1}}{innerframe}}% \define@key{Gin}{frame}[true]{% \lowercase{\Gin@boolkey{#1}}{frame}}% \define@key{Gin}{ignore}[true]{% \lowercase{\Gin@boolkey{#1}}{ignore}}% \define@key{Gin}{frame@@}{% % \end{macrocode} % \ifGERMAN % (Nur intern zu benutzen!) % \fi % \ifENGLISH % (For internal use only!) % \fi % \begin{macrocode} \edef\@tempa{\toks@{\noexpand\frame{\the\toks@}}}% \ifcase#1\relax \ifGin@innerframe\else\let\@tempa\relax\fi \or \ifGin@frame\else\let\@tempa\relax\fi \fi \@tempa% }% \define@key{Gin}{showname}[true]{% \lowercase{\Gin@boolkey{#1}}{showname}}% \define@key{Gin}{namefont}{% \begingroup \@temptokena\expandafter{\ppf@namefont#1}% \edef\x{\endgroup\def\noexpand\ppf@namefont{\the\@temptokena}}% \x% }% \newcommand*\ppf@filename{}% \newcommand*\ppf@namefont{\tiny\ttfamily}% \newcommand*\ppf@Gin@keys{}% \let\ppf@Gin@setfile\Gin@setfile % \end{macrocode} % \begin{macro}{\Gin@setfile} % \ifGERMAN % Realen Dateinamen und ggf. Seitenzahl zur sp\"ateren Verwendung merken. % \fi % \ifENGLISH % Save real file name and, if applicable, page number for later use. % \fi % \changes{v1.0k}{2005/02/23}{Show also the pagenumber if exists. (RN)} % \begin{macrocode} \def\Gin@setfile#1#2#3{\ppf@Gin@setfile{#1}{#2}{#3}% \xdef\ppf@filename{% #3\ifx\Gin@page\@empty\else(\Gin@page)\fi}}% % \end{macrocode} % \end{macro} % \begin{macro}{\Gin@ii} % \ifGERMAN % Auswertung der Optionen ``frame'', ``ignore'' usw. sowie weiterer % Spezialf\"alle. % \fi % \ifENGLISH % Examine the options ``frame'', ``ignore'', etc. as soon as other % special cases. % \fi % \changes{v1.0s}{2005/03/28}{Rewritten. (RN)} % \begin{macrocode} \def\Gin@ii[#1]#2{% \begingroup % \end{macrocode} % \ifGERMAN % Der Wert \cmd{\ifGin@innerframe} muss bereits vor Zeichnen des % inneren Rahmens bekannt sein. Die Werte f\"ur \cmd{\ifGin@showname} und % \cmd{\ppf@namefont} m\"ussen auch nach Darstellung der Grafik verf\"ugbar % sein. Daher durch eine Gruppe gesch\"utzt vorher Auswertung der Optionen. % \fi % \ifENGLISH % The value of \cmd{\ifGin@innerframe} has to be known before the inner % frame is drawn. The values for \cmd{\ifGin@showname} and % \cmd{\ppf@namefont} need to be available after rendering the graphics % too. Thus beforehand and protected inside a group examine the options. % \fi % \begin{macrocode} \@temptokena{#1}\def\ppf@tempb{#2}% % \end{macrocode} % \ifGERMAN % Leerer Dateiname beim Aufruf von \cmd{\usepicture} aus. % \fi % \ifENGLISH % Finds empty file name when calling \cmd{\usepicture}. % \fi % \begin{macrocode} \ifx\ppf@tempb\@empty\else \ppf@is@pdfTeX@graphic{#2}{\Gin@extensions}{\ppf@other@extensions}% % \end{macrocode} % \ifGERMAN % Grafiken aus Containerdatei sind bereits skaliert usw. Nicht noch % einmal, daher optionalen Parameter ignorieren. % \fi % \ifENGLISH % Graphics out of \cmd{\PDFcontainer} are complete -- scaled, rotated, etc. % Don't apply these things again and therefore ignore the optional parameters. % \fi % \changes{v1.1v}{2008/10/09}{Key settings only for pdf graphics. (RN)} % \begin{macrocode} {% \setkeys{Gin}{#1}% \ifx\ppf@tempb\PDFcontainer \@temptokena{page=\Gin@page}% \fi }% {% \refstepcounter{pspicture}% \@temptokena{page=\the\c@pspicture}\def\ppf@tempb{\PDFcontainer}% }% \fi \ifGin@ignore\else % \end{macrocode} % \ifGERMAN % ``|frame@@=0|''\,$=$\,innerer Rahmen, ``|frame@@=1|''\,$=$\,\"au{\ss}erer % Rahmen. % \fi % \ifENGLISH % ``|frame@@=0|''\,$=$\,inner frame, ``|frame@@=1|''\,$=$\,outer frame. % \fi % \begin{macrocode} \edef\@tempa{\noexpand\ppf@Gin@ii[frame@@=0,\the\@temptokena,% frame@@=1]{\ppf@tempb}}% \@tempa% \ifGin@showname \ppf@namefont% \raisebox{-\ht\strutbox}[0pt][0pt]{\llap{\ppf@filename}}% \gdef\ppf@filename{}% \fi \fi \endgroup }% % \end{macrocode} % \end{macro} % \begin{macrocode} \IfFileExists{\PDFcontainer}% {% % \end{macrocode} % \begin{macro}{\ppf@container@max} % \ifGERMAN % Die Anzahl der in der Containerdatei enthaltenen Seiten. % \fi % \ifENGLISH % The number of pages as contained in \cmd{\PDFcontainer} file. % \fi % \begin{macrocode} \pdfximage{\PDFcontainer}% \edef\ppf@container@max{\the\pdflastximagepages}% % \end{macrocode} % \end{macro} % \begin{macrocode} \AtEndDocument{% \ifnum\c@pspicture>\z@ % \end{macrocode} % \ifGERMAN % Warnung ist nur sinnvoll, wenn \"uberhaupt Grafiken ben\"otigt % wurden. % \fi % \ifENGLISH % A warning only makes sense when a graphics is needed at all. % \fi % \begin{macrocode} \ifnum\c@pspicture=\ppf@container@max\else \PackageWarningNoLine{pst-pdf}{% `\PDFcontainer' contains \ppf@container@max\space pages \MessageBreak but \the\c@pspicture\space pages are requested: \MessageBreak File `\PDFcontainer' is no more valid! \MessageBreak Recreate it }% \fi \fi }% }% {% \def\ppf@container@max{0}% \AtEndDocument{% \ifnum\c@pspicture>\z@ \filename@parse{\PDFcontainer}% \PackageWarningNoLine{pst-pdf}{% File `\PDFcontainer' not found. \MessageBreak Use the following commands to create it: \MessageBreak ---------------------------------------------------- \MessageBreak latex \jobname.tex\MessageBreak dvips -o \filename@base.ps \jobname.dvi\MessageBreak ps2pdf \filename@base.ps\MessageBreak ---------------------------------------------------- }% \fi }% }% % \end{macrocode} % \begin{macro}{\ppf@isnum} % \ifGERMAN % Ist Parameter |#1| numerisch, werden Anweisungen in |#2| % sonst die in |#3| ausgef\"uhrt (siehe \pkgname{bibtopic.sty}). % \fi % \ifENGLISH % If parameter |#1| is numeric, the instructions in |#2|, % otherwise those in |#3| are executed (see \pkgname{bibtopic.sty}). % \fi % \begin{macrocode} \newcommand\ppf@isnum[1]{% \if!\ifnum9<1#1!\else_\fi\expandafter\@firstoftwo \else\expandafter\@secondoftwo\fi}% % \end{macrocode} % \end{macro} % \begin{environment}{psmatrix} % \changes{v1.0h}{2005/02/15}{Based no more on the comment environment % from the verbatim package. (RN)} % \begin{environment}{pspicture} % \changes{v1.1g}{2005/05/28}{pspicture environment % must still parse its arguments. (RN/HjG)} % \ifGERMAN % Beide Umgebungen ignorieren ihren Inhalt und laden stattdessen die % zugeh\"orige Grafik aus der Containerdatei. Auf den Wert des dabei % benutzten Z\"ahlers (|pspicture|) % kann per \cmd{\label}/\cmd{\ref} zugegriffen werden. % \fi % \ifENGLISH % Both environments ignore their contents and load instead the corresponding % graphics out of the \cmd{\PDFcontainer} file. The value of the herein used % |pspicture| counter's value can be used in \cmd{\label}/\cmd{\ref}. % \fi % \begin{environment}{postscript} % \changes{v1.1d}{2005/04/19}{Support for PSTricks environment % ``psmatrix''. (RN)} % \changes{v1.1g}{2005/05/28}{``psmatrix'' environment % (preserve math mode). (RN/HjG)} % \begin{macrocode} \newcommand*\ppf@set@mode{}% \newcommand*\ppf@test@mmode{% \ifmmode \ifinner \let\ppf@set@mode=$% \else \def\ppf@set@mode{$$}% \fi \else \let\ppf@set@mode=\@empty \fi } % \end{macrocode} % \changes{v1.1t}{2008/09/09}{Using \pkgname{environ} the environment % \env{postscript} is now simple and more robust. (RN)} % \begin{macrocode} \RequirePackage{environ}% \newenvironment{postscript}[1][]{% \def\@tempa{postscript}% \ifx\@tempa\@currenvir \def\ppf@Gin@keys{#1}% \else \def\ppf@Gin@keys{}% \fi \ppf@@getpicture% \Collect@Body\@gobble}{}% \AtBeginDocument{% \@ifundefined{PSTricksLoaded}{}{% \def\pst@@@picture[#1](#2,#3)(#4,#5){\postscript}% \def\endpspicture{\endpostscript\endgroup}% \@ifundefined{psmatrix}{}{% \let\psmatrix=\postscript \let\endpsmatrix=\endpostscript}% }% \@ifundefined{pfx@includegraphicx}{}{% % \end{macrocode} % \ifGERMAN % Die im pdf\TeX-Modus unn\"utze Umdefinition von % \cmd{\includegraphics} (Paket \pkgname{psfragx}) f\"uhrt zu zweifachem % Einf\"ugen des Ergebnisses, weshalb die Originaldefition wiederhergestellt % wird. % \fi % \ifENGLISH % The useless redefinition of \cmd{\includegraphics} in pdf\TeX\ mode % (package \pkgname{psfragx}) is leading to double insertion of the result. % We go back to the original meaning. % \fi % \begin{macrocode} \let\includegraphics=\pfx@includegraphics \def\pfx@includegraphicx#1#2{\ppf@@getpicture}% }% }% % \end{macrocode} % \end{environment} % \end{environment} % \end{environment} % \begin{macro}{\savepicture} % \changes{v1.0f}{2005/02/04}{New macro \cmd{\savepspicture}. (RN)} % \ifGERMAN % Speichert die Nummer der aktuellen Grafik in einem Makro mit Namen % \cmd{\ppf@@@}|#1|. % \fi % \ifENGLISH % Saves the recent graphics' number in a macro named \cmd{\ppf@@@}|#1|. % \fi % \begin{macrocode} \def\savepicture#1{% \expandafter\xdef\csname ppf@@@#1\endcsname{\the\pdflastximage}}% % \end{macrocode} % \end{macro} % \begin{macro}{\usepicture} % \changes{v1.0f}{2005/02/04}{New macro \cmd{\usepspicture}. Useful % for putting a PSTricks graphic in a box or something else. (RN)} % \changes{v1.0g}{2005/02/12}{Now \cmd{\usepspicture} does accept a % numerical parameter. (RN)} % \changes{v1.0q}{2005/03/20}{Now \cmd{\usepspicture} works for all % kind of graphics. (RN)} % \ifGERMAN % F\"ugt Grafik mit symbolischem Namen |#2| ein. Der Name % muss vorher mit \cmd{\savepicture}\marg{Name} vereinbart worden % sein. Statt des Namens kann auch eine Zahl angegeben werden, die dann % direkt eine Grafik aus der Containerdatei adressiert. % Der optionale Parameter |#1| entspricht dem bei \cmd{\includegraphics}. % \fi % \ifENGLISH % Inserts graphics with symbolic name |#2|. This name has to be declared % beforehand in \cmd{\savepicture}\marg{name}. Instead of a name a number % can be used too, which directly addresses a graphics in the % \cmd{\PDFcontainer} file. The optional parameter |#1| corresponds to the % one in \cmd{\includegraphics}. % \fi % \begin{macrocode} \renewcommand*\usepicture[2][]{% \@ifundefined{ppf@@@#2}% {% \ppf@isnum{#2}% {\ppf@getpicture{#1}{#2}}% {\@latex@error{picture `#2' undefined}\@ehc}% }% {% \begingroup \def\Ginclude@graphics##1{% \xdef\ppf@filename{#2}% \setbox\z@\hbox{\pdfrefximage\@nameuse{ppf@@@#2}}% \Gin@nat@height\ht\z@ \Gin@nat@width\wd\z@ \def\Gin@llx{0}\let\Gin@lly\Gin@llx \Gin@defaultbp\Gin@urx{\Gin@nat@width}% \Gin@defaultbp\Gin@ury{\Gin@nat@height}% \Gin@bboxtrue\Gin@viewport@code% \Gin@nat@height\Gin@ury bp% \advance\Gin@nat@height-\Gin@lly bp% \Gin@nat@width\Gin@urx bp% \advance\Gin@nat@width-\Gin@llx bp% \Gin@req@sizes% \ht\z@\Gin@req@height \wd\z@\Gin@req@width \leavevmode\box\z@}% \define@key{Gin}{type}{}% \includegraphics[scale=1,#1]{}% \endgroup }}% % \end{macrocode} % \end{macro} % \begin{macro}{\ppf@getpicture} % \ifGERMAN % F\"ugt die Seite (Grafik) mit Nummer |#2| aus der Containerdatei % ein. Parameter |#1|: Optionen wie bei \cmd{\includegraphics}. % \fi % \ifENGLISH % Inserts the page (graphics) with number |#2| from the \cmd{\PDFcontainer} % file. Parameter |#1|: any option as in \cmd{\includegraphics}. % \fi % \begin{macrocode} \newcommand*\ppf@getpicture[2]{% \@tempcnta=#2\relax% \ifnum\@tempcnta>\ppf@container@max \PackageWarningNoLine{pst-pdf}{% pspicture No. \the\@tempcnta\space undefined}% \else \includegraphics[draft=\ppf@draft,#1,page=\the\@tempcnta]% {\PDFcontainer}% \fi \gdef\ppf@Gin@keys{}}% % \end{macrocode} % \end{macro} % \begin{macro}{\ppf@@getpicture} % \ifGERMAN % F\"ugt die n\"achste Seite (Grafik) aus der Containerdatei ein. % \fi % \ifENGLISH % Inserts next page (graphics) from the \cmd{\PDFcontainer} file. % \fi % \begin{macrocode} \newcommand*\ppf@@getpicture{% \ifpr@outer \refstepcounter{pspicture}% \expandafter\ppf@getpicture\expandafter{\ppf@Gin@keys}% {\the\c@pspicture}% \fi}% % \end{macrocode} % \end{macro} % % \begin{environment}{pst-pdf-defs} % \ifGERMAN % Umgebung, die keine eigene Gruppe aufmacht. Innerhalb der Umgebung % bekommt das Zeichen |&| den Kategoriecode "`other"'. Gedacht f\"ur % eigene Makrodefinitionen, die z.\,B.\ eine \env{psmatrix} enthalten. % \fi % \ifENGLISH % Environment without grouping. The character |&| has the catcode % ``other''. Useful for user-defined macro definitions with e.\,g.\ % % \env{psmatrix} inside. % \fi % \begin{macrocode} \renewenvironment*{pst-pdf-defs}% {% \endgroup % ??? \@currenvline \chardef\ppf@temp=\catcode`\&% \@makeother\&% }{% \catcode`\&=\ppf@temp \begingroup \def\@currenvir{pst-pdf-defs}% } % \end{macrocode} % \end{environment} % % \begin{macrocode} \else % \end{macrocode} % \ifGERMAN % \subsection{Inactiver Modus} % Es werden nur die Pakete \pkgname{pstricks} und \pkgname{graphicx} geladen % -- keine weitere Einflussnahme. Die Paketoption % "`|inactive|"' sowie der V\TeX-Compiler erzwingen diesen Modus. % \fi % \ifENGLISH % \subsection{Inactive Mode} % Only the packages \pkgname{pstricks} and \pkgname{graphicx} are loaded % -- no further exertion of influence. The package option % ``|inactive|'' as soon as the V\TeX compiler force this mode. % \fi % \begin{macrocode} \PackageInfo{pst-pdf}{MODE: \ppf@TeX@mode\space (inactive mode)}% \newenvironment{postscript}[1][]{\ignorespaces}{}% \let\ppf@is@pdfTeX@graphic\relax \fi % \end{macrocode} % \changes{v1.0f}{2005/02/04}{Config file loading added. (RN)} % \begin{macrocode} \InputIfFileExists{pst-pdf.cfg}{% \PackageInfo{pst-pdf}{Local config file pst-pdf.cfg used}}{}% % % \end{macrocode} % % \Finale %\endinput % % And here comes the example documents ... %<*example> %% Process this file with the scripts `ps4pdf' or `ps4pdf.bat' or call %% %% latex pst-pdf-example.tex %% dvips -Ppdf -o pst-pdf-example-pics.ps pst-pdf-example.dvi %% ps2pdf -dAutoRotatePages=/None pst-pdf-example-pics.ps pst-pdf-example-pics.pdf %% pdflatex pst-pdf-example.tex %% \listfiles\errorcontextlines=100\relax \documentclass[12pt]{article} %% before `psfrag'! \usepackage[displaymath,dvipsnames]{pst-pdf} %%\usepackage[displaymath,dvipsnames,notightpage]{pst-pdf} \usepackage{pst-node,pst-tree} \usepackage{psfrag,tabularx} \pagestyle{empty} \begin{pst-pdf-defs}% %% This definition must be within the pst-pdf-defs environment! \newcommand*\mytree{% \begin{psmatrix}[rowsep=.2cm,colsep=2cm] & & E \\ & A & \\ & & F \\ $\bullet$ & & \\ & & G \\ & B & \\ & & H \\ \scriptsize \psset{shortput=nab,arrows=->,labelsep=2pt,nodesep=2pt,nrot=:U} \ncline{4,1}{2,2}\ncput*{$0,2$} \ncline{4,1}{6,2}\ncput*{$x$} \ncline{2,2}{1,3}\ncput*{$0,3$} \ncline{2,2}{3,3}\ncput*{$y$} \ncline{6,2}{5,3}\ncput*{$z$} \ncline{6,2}{7,3}\ncput*{$0,8$} \end{psmatrix}% } \end{pst-pdf-defs}% %% This works without the pst-pdf-defs environment! \newcommand*\mymatrix{% \begin{postscript} \[ \begin{array}{rcl} a & b & c \\ 1 & 2 & 3 \\ \end{array} \] \end{postscript}% } \begin{document} \setkeys{Gin}{showname,frame}% \psset{unit=0.0714\textwidth}% 1/14 * \textwidth \newpsobject{showgrid}{psgrid}{subgriddiv=1,griddots=10,gridlabels=6pt} \newcommand*\BASEMARKER{\rule{.5em}{.4pt}} \setlength\parindent{0pt} \centering \section*{\textsf{pst-pdf:} PSTricks and other PostScript code in pdf\LaTeX\ documents} \vfill \begin{pspicture}(-5.5,-5.25)(5.25,5.25)% %%\begin{pspicture}[trim=-.5 -.25 .25 .25,frame](-5,-5)(5,5)% PSTricks2 \pscircle*[linecolor=Apricot]{5} \rput(0,0.5){\includegraphics[width=8\psxunit]{elephant}} \Huge\sffamily\bfseries \rput(-4.5,4.5){A} \rput(4.5,4.5){B} \rput(-4.5,-4.5){C}\rput(4.5,-4.5){D} \rmfamily \rput(0,-3.8){PSTricks} \rput(0,3.8){\LaTeX} \showgrid \end{pspicture}\savepicture{ps:A} \vfill\null\newpage \includegraphics[width=.475\textwidth]{insect1} \vfill \usepicture[width=.47\textwidth]{ps:A} \includegraphics[width=.475\textwidth,frame=false, namefont={\Huge\itshape}]{knuth} \hfill \usepicture[angle=45,origin=bl,width=.475\textwidth,innerframe]{1}% \vfill \includegraphics[width=.47\textwidth]{psf-demo} \hfill \begin{psfrags} \psfragscanon \psfrag{x1}[br][ ]{\LaTeX} \psfrag{x2}[br][br]{\LaTeX} \psfrag{x3}[br][tl]{\LaTeX} \psfrag{x4}[br][Br]{\LaTeX} \psfrag{x5}[Br][ r][1.15][45]{\Huge\LaTeX} \psfrag{x6}[tl][ l][1.15][45]{\Huge\LaTeX} \includegraphics[width=.47\textwidth]{psf-demo} \end{psfrags} \includegraphics[width=\textwidth,showname=false,frame=false]{insect15} \bigskip \Large \begin{equation} \sigma(t)=\frac{1}{\sqrt{2\pi}} \int^t_0 e^{-x^2/2} dx \end{equation} \clearpage \setkeys{Gin}{showname=false,frame=false}% { \Huge \renewcommand*\arraystretch{1.5} \noindent \begin{tabularx}{\textwidth}{|@{}>{\centering}X@{}|} \hline \psframebox*[fillcolor=green,framearc=.6]{HUGO}\BASEMARKER \fbox{\BASEMARKER GUSTAV} \tabularnewline \begin{postscript} \psframebox*[fillcolor=green,framearc=.6]{HUGO}\BASEMARKER \fbox{\BASEMARKER GUSTAV} \end{postscript} \tabularnewline \hline \end{tabularx} } \bigskip \definecolor{pink}{rgb}{1, .75, .8} \renewcommand\psedge{\nccurve} \newcommand{\Female}[2][]{{\psset{linecolor=pink}\TR[#1]{\emph{#2}}}} \newcommand{\Male}[2][]{{\psset{linecolor=blue}\TR[#1]{#2}}} \psset{nodesep=2pt,angleA=90,angleB=-90} { \footnotesize %% From: The \LaTeX\ Graphics Companion; first release. \pstree[treemode=U]{\Female{{\bfseries Matilde}}}{% \pstree{\Male{Sebastian}}{% \pstree{\Male[name=P]{Philip}}{\Male{Frederick}\Female{Ethel}} \pstree{\Female[name=W]{Mary}}{\Male{Lionel}\Female{Agnes}}} \pstree{\Female{Leonor}}{% \pstree{\Male[name=R]{Ra\'ul}}{\Male{Joaquim}\Female{J\'ulia}} \pstree{\Female[name=A]{Am\'elia}}{\Male{\'Alvaro}\Female{Augusta}}} } \iffalse % --> Cannot work outside of a special environment! \psset{linecolor=green,doubleline=true,linestyle=dotted} \ncline{P}{W}\nbput{1940} \ncline{R}{A}\nbput{1954} \fi } \bigskip \psset{arrows=->,fillcolor=white,fillstyle=solid} \footnotesize \newcommand{\Show}[1]{\psshadowbox{#1}} \begin{psmatrix}[mnode=r,ref=t,unit=.3] \psframebox[linestyle=none,framesep=.75]{% \begin{psmatrix}[name=A,ref=c] \Show{Stakeholder} \end{psmatrix}} & \psframebox[fillstyle=solid,fillcolor=pink,framesep=.95]{% \rule{1cm}{0pt} \begin{psmatrix}[ref=c] [name=B]\Show{Goal} & \Show{Criteria}\\ \Show{Sub-goal} & \Show{Justification} \ncline{1,1}{1,2} \ncline{1,1}{2,2} \ncline{1,1}{2,1}\tlput{Strategy} \ncline{2,1}{2,2} \end{psmatrix}} \ncline[angleB=180]{A}{B}\naput[npos=.7]{Model} \end{psmatrix} \begin{postscript}[angle=90,height=\textheight,frame=false] \pstree[treemode=U]{\Female{{\bfseries Matilde}}}{% \pstree{\Male{Sebastian}}{% \pstree{\Male[name=P]{Philip}}{\Male{Frederick}\Female{Ethel}} \pstree{\Female[name=W]{Mary}}{\Male{Lionel}\Female{Agnes}}} \pstree{\Female{Leonor}}{ \pstree{\Male[name=R]{Ra\'ul}}{\Male{Joaquim}\Female{J\'ulia}} \pstree{\Female[name=A]{Am\'elia}}{\Male{\'Alvaro}\Female{Augusta}}} } \psset{linecolor=green,doubleline=true,linestyle=dotted} \ncline{P}{W}\nbput{1940} \ncline{R}{A}\nbput{1954} \end{postscript} \bigskip \psset{arrows=-} \begin{displaymath} \bordermatrix{% & A & B & C\cr & \rnode{D}{D} & E & \rnode{F}{F}\cr & G & H & I\cr & \rnode{J}{J} & K & M } \ncline[nodesep=-1em,linecolor=red]{D}{F} \ncline[nodesep=-1em,linecolor=red]{D}{J} \end{displaymath} \bigskip \mytree \bigskip \mymatrix \end{document} %