From 72fe30250be6a30aae7bca2a44205650cda824c0 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 22 Dec 2006 23:29:09 +0000 Subject: new package auto-pst-pdf (28nov06) git-svn-id: svn://tug.org/texlive/trunk@2854 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/auto-pst-pdf/auto-pst-pdf.sty | 134 +++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/auto-pst-pdf/auto-pst-pdf.sty (limited to 'Master/texmf-dist/tex/latex/auto-pst-pdf/auto-pst-pdf.sty') diff --git a/Master/texmf-dist/tex/latex/auto-pst-pdf/auto-pst-pdf.sty b/Master/texmf-dist/tex/latex/auto-pst-pdf/auto-pst-pdf.sty new file mode 100644 index 00000000000..b5c25c5bfe1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/auto-pst-pdf/auto-pst-pdf.sty @@ -0,0 +1,134 @@ +% AUTO-PST-PDF +% This is the auto-pst-pdf package, by Will Robertson. +% Proper documentation forthcoming (if ever). +% +% This document may be distributed under the terms and conditions of +% the LaTeX Project Public License, version 1.3c or later (your preference): +% +% +% The package is "maintained" by Will Robertson. +% Contact: +% Copyright 2006 by Will Robertson +% +% BASIC USAGE +% This package provides a wrapper around pst-pdf to automatically +% accomodate for typesetting either with DVI or PDF output. With +% default package option [on], typesetting under pdfLaTeX will +% automatically initiate a LaTeX->dvips->ps2pdf->pdfcrop run to +% generate the required PDF figures for the document. +% +% After this has been done and the figures no longer need to be +% re-generated, the package can be given the [off] option to save +% compilation time. +% +% REQUIREMENTS +% pdfTeX must be called with the --shell-escape option, and Heiko +% Oberdiek's pdfcrop Perl script must be installed. +% +% Loads the following packages for convenience: +% color,graphicx,psfrag,pst-pdf +% +% Requires e-TeX because I'm lazy. +% +% ADDITIONAL USAGE +% Macros are provided to easily facilitate figures created by the +% MATLAB package laprint and the Mathematica package MathPSfrag. Also, +% a generic psfrag wrapper is provided. +% +% \mathfig{} - insert a Mathematica graphic +% (without -psfrag suffix) +% \matlabfig{} - insert a Matlab graphic +% \psfragfig{} - insert an EPS with psfrag statements +% in either or both of the files +% -psfrag.tex +% -psfrag.tex +% +% The above commands also accept an optional argument +% which is passed to \includegraphics. + +%% Declaration +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{auto-pst-pdf} + [2006/11/30 v0.1 Wrapper for pst-pdf] + +%% Package options +\newif\if@apstpdf@off@ +\@apstpdf@off@false +\DeclareOption{off}{\@apstpdf@off@true} +\DeclareOption{on}{\@apstpdf@off@false} +\ExecuteOptions{on} +\ProcessOptions + +\RequirePackage{ifpdf,etex,color,graphicx,psfrag} + +%%%%%%%%%%%%%%%%%%%%%% +%% Base functionality: +% +% For compilation, we use the [notightpage] pst-pdf option and the +% pdfcrop Perl script because Matlab-created EPS figures have elements +% that extend ouside their bounding boxes, and end up with clipped +% content after ps2pdf. +% +% Otherwise the script ps4pdf would be sufficient. + +\ifpdf +% pdfLaTeX compilation; requires supplementary processing for psfrag to work: + \unless\if@apstpdf@off@ + \immediate\write18{latex -disable-write18 "\unexpanded{\let\APPmakepictures\empty\input}{\jobname.tex}"} + \immediate\write18{dvips -o \jobname-pics.ps \jobname.dvi} + \immediate\write18{ps2pdf \jobname-pics.ps \jobname-pics-nocrop.pdf} + \immediate\write18{pdfcrop \jobname-pics-nocrop.pdf \jobname-pics.pdf} + \fi + \RequirePackage[notightpage]{pst-pdf} +\else + \ifdefined\APPmakepictures +% LaTeX compilation induced by this package: + \RequirePackage[notightpage]{pst-pdf} + \else +% LaTeX compilation from scratch (as in `latex \jobname.tex`): + \newenvironment{postscript}{}{} + \fi +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Extras for external packages: +% +% Commands are provided that mirror \includegraphics (and similarly +% accept an optional argument) for the output of different +% psfrag-related packages. This provides a consistent and easy way to +% include such figures in the document. +% +% Please suggest wrappers for other packages that output psfrag +% (for example: R, Maple, LabView, ... ?) + +%% Matlab's laprint: +% We need to disable the scaling that laprint applies +% to \includegraphics in here, because otherwise labels that extend +% outside the bounding box of the generated PostScript file will +% change the intended width of the graphic. +\let\apstpdf@ig\includegraphics +\newcommand\matlabfig[2][]{% + \begin{postscript} + \renewcommand\includegraphics[2][]{\apstpdf@ig[#1]{##2}} + \input{#2} + \end{postscript}} + +%% Mathematica's MathPSfrag output: +\newcommand\mathfig[2][]{% + \begin{postscript} + \input{#2-psfrag}% + \includegraphics[#1]{#2-psfrag}% + \end{postscript}} + +%% Regular old EPS graphics: +% Include your psfrag commands in the files -psfrag.tex +% and/or -psfrag.tex, where is the filename of the +% main document and is the filename of the graphics +% inserted. +\newcommand\psfragfig[2][]{% + \begin{postscript} + \InputIfFileExists{#1-psfrag}{}{}% + \includegraphics[#1]{#2}% + \end{postscript}} + +\InputIfFileExists{\jobname-psfrag}{}{}% -- cgit v1.2.3