summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/mpgraphics
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-03-06 00:56:59 +0000
committerKarl Berry <karl@freefriends.org>2011-03-06 00:56:59 +0000
commit0d9de0fdcbe9d6f215c9341651d5b6033d7c673e (patch)
tree7b1f8f7f823b5dcd3705f10297926b9d0fd7e3f3 /Master/texmf-dist/tex/latex/mpgraphics
parent6c3b1b3b55d858db3797bb0c390e6069f7a7110c (diff)
new latex/mpost package mpgraphics (5mar11)
git-svn-id: svn://tug.org/texlive/trunk@21613 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/mpgraphics')
-rw-r--r--Master/texmf-dist/tex/latex/mpgraphics/mpgraphics.sty389
1 files changed, 389 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/mpgraphics/mpgraphics.sty b/Master/texmf-dist/tex/latex/mpgraphics/mpgraphics.sty
new file mode 100644
index 00000000000..aeebefc742a
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/mpgraphics/mpgraphics.sty
@@ -0,0 +1,389 @@
+%%
+%% This is file `mpgraphics.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% mpgraphics.dtx (with options: `mpgraphics.sty')
+%%
+%% ______________________________________
+%% Copyright © 2011 Vafa Khalighi
+%%
+%% License information appended.
+%%
+%%
+\NeedsTeXFormat{LaTeX2e}
+\newcommand{\mpgraphics@date}{2011/07/25}
+\newcommand{\mpgraphics@version}{v0.1}
+\newcommand{\mpgraphics@commit}{commit 3}
+\ProvidesPackage{mpgraphics}[\mpgraphics@date\space \mpgraphics@version\space <\mpgraphics@commit>
+inline and display metapost figures in LaTeX]
+\newcommand{\mpg@graphicsextension}{\ifPDFTeX\ifpdf pdf\else eps\fi\else\ifXeTeX pdf\fi\fi}
+\newcommand{\mpg@graphicsformatname}{\ifPDFTeX\ifpdf PDF\else EPS\fi\else\ifXeTeX PDF\fi\fi}
+\newcommand{\mpg@formatname}{\ifPDFTeX\ifpdf pdflatex\else latex\fi\else\ifXeTeX xelatex\fi\fi}
+\RequirePackage{graphicx,color,moreverb,xkeyval,ifplatform,iftex,ifpdf}
+\newif\if@mpg@debug\@mpg@debugfalse
+\expandafter\newif\csname if@mpg@no@\mpg@graphicsextension\endcsname
+\newif\if@mpg@noprocess \@mpg@noprocessfalse
+\newif\if@mpg@On
+\DeclareOptionX{metapost}{%
+ \def\mpg@metapost@opts{%
+ -tex=latex
+ -jobname="\mpgfigname"
+ -interaction=batchmode
+ #1}}
+\DeclareOptionX{epstopdf}{\def\mpg@epstopdf@opts{#1}}
+\define@choicekey{mpgraphics.sty}{compilation}[\@tempa\@tempb]{on,off}{%
+ \ifcase\@tempb\relax
+ \@mpg@Ontrue
+ \or
+ \@mpg@Onfalse
+ \fi}
+\define@choicekey{mpgraphics.sty}{debug}[\@tempa\@tempb]{on,off}{%
+ \ifcase\@tempb\relax
+ \@mpg@debugtrue
+ \or
+ \@mpg@debugfalse
+ \fi}
+\newcounter{mpg@runs}
+\DeclareOptionX{runs}{%
+ \setcounter{mpg@runs}{#1}% support calc
+ \ifnum\c@mpg@runs > \z@
+ \else
+ \mpg@PackageWarning{The number of runs must be at least one.}%
+ \c@mpg@runs\@ne
+ \fi}
+\newcommand{\mpgOff}{\@mpg@Onfalse}
+\newcommand{\mpgOn}{\@mpg@Ontrue}
+\ExecuteOptionsX{%
+ metapost={},%
+ epstopdf={},%
+ compilation=on,%
+ debug=off,%
+ runs=1%
+}
+\ProcessOptionsX
+\def\mpg@exe{\immediate\write18}
+\def\OnlyIfFileExists#1#2{\IfFileExists{#1}{#2}{}}
+\def\NotIfFileExists#1#2{\IfFileExists{#1}{}{#2}}
+\def\mpg@convert#1#2#3{%
+ \OnlyIfFileExists{#2}{%
+ \mpg@exe{\csname mpg@cmd@#1\endcsname{#2}{#3}}%
+ \NotIfFileExists{#3}{\mpg@Warning{Creation of #3 failed.}}}}
+\def\mpg@cmd@metapost#1#2{mpost \mpg@metapost@opts\space
+ "\unexpanded{\input} #1"}
+\def\mpg@cmd@extrametapost#1#2{mpost \mpg@metapost@opts\space
+ "\unexpanded{\input} #1"}
+\def\mpg@cmd@epstopdf#1#2{epstopdf \mpg@epstopdf@opts\space -o "#2" "#1"}
+\def\mpg@nl{^^J\space\space\space\space}
+\newcommand\mpg@PackageError[2]{%
+ \PackageError{mpgraphics}{\mpg@nl #1^^J}{#2}}
+\newcommand\mpg@Warning[2]{\if@mpg@debug\PackageWarning{#1}{#2}\fi}
+\newcommand\mpg@PackageWarning[1]{%
+ \PackageWarning{mpgraphics}{\mpg@nl #1^^JThis warning occured}}
+\newcommand\mpg@WarningNoLine[2]{\if@mpg@debug\PackageWarningNoLine{#1}{#2}\fi}
+\ifshellescape
+ \PackageWarningNoLine{mpgraphics}
+ {****************************************\MessageBreak
+ Using \csname write\endcsname18 capability \MessageBreak
+ for producing \mpg@graphicsformatname-figures. \MessageBreak
+ ****************************************}
+\else
+ \mpg@PackageError{%
+ "shell escape" (or "write18") is not enabled;\mpg@nl
+ mpgraphics will not work!}
+ {You need to run "\mpg@formatname\space -shell-escape"\mpg@nl
+ on your LaTeX document Or turn compilation off}
+\fi
+\newenvironment{mpdefs}{\MPDEFSverbatimwrite{mpdefs.mp}}
+ {\endMPDEFSverbatimwrite}
+\newenvironment{ltxpreamble}{\verbatimwrite{ltxpreamble.ltx}}
+ {\endverbatimwrite}
+\newcommand{\mpgfigname}{\jobname-fig\thempgfig}
+\def\MPGverbatimwrite#1{%
+ \@bsphack
+ \immediate\openout \verbatim@out #1
+ \BeforeMPGStream%
+ \let\do\@makeother\dospecials
+ \catcode`\^^M\active \catcode`\^^I=12
+ \def\verbatim@processline{%
+ \immediate\write\verbatim@out
+ {\the\verbatim@line}}%
+ \verbatim@start}
+\def\endMPGverbatimwrite{%
+ \immediate\write\verbatim@out{endfig;}
+ \immediate\write\verbatim@out{end;}
+ \immediate\closeout\verbatim@out
+ \@esphack}
+\def\MPDEFSverbatimwrite#1{%
+ \@bsphack
+ \immediate\openout \verbatim@out #1
+ \BeforeMPDEFSStream%
+ \let\do\@makeother\dospecials
+ \catcode`\^^M\active \catcode`\^^I=12
+ \def\verbatim@processline{%
+ \immediate\write\verbatim@out
+ {\the\verbatim@line}}%
+ \verbatim@start}
+\def\endMPDEFSverbatimwrite{%
+ \immediate\closeout\verbatim@out
+ \@esphack}
+\def\BeforeMPGStream
+ {\message{Opening MPGStream=\mpgfigname.mp}%
+ \ifPDFTeX\ifpdf%
+ \immediate\write\verbatim@out{prologues:=3;}\else
+ \immediate\write\verbatim@out{prologues:=2;}\fi\else\ifXeTeX
+ \immediate\write\verbatim@out{prologues:=3;}\fi\fi
+ \immediate\write\verbatim@out{outputtemplate:= "\@percentchar j.eps";}
+ \immediate\write\verbatim@out{verbatimtex}
+ \immediate\write\verbatim@out{\string\documentclass{article}}
+ \IfFileExists{ltxpreamble.ltx}{\immediate\write\verbatim@out{\string\input{ltxpreamble.ltx}}}{}
+ \immediate\write\verbatim@out{\string\begin{document}}
+ \immediate\write\verbatim@out{etex;}
+ \IfFileExists{mpdefs.mp}{\immediate\write\verbatim@out{input mpdefs;}}{}
+ \immediate\write\verbatim@out{beginfig(\thempgfig);}
+ }
+\def\BeforeMPDEFSStream
+ {\message{Opening MPGStream=mpdefs.mp}%
+ \immediate\write\verbatim@out{verbatimtex}
+ \immediate\write\verbatim@out{\string\documentclass{article}}
+ \IfFileExists{ltxpreamble.ltx}{\immediate\write\verbatim@out{\string\input{ltxpreamble.ltx}}}{}
+ \immediate\write\verbatim@out{\string\begin{document}}
+ \immediate\write\verbatim@out{etex;}
+ }
+\newenvironment{mpdisplay}{\stepcounter{mpgfig}%
+ \xdef\MPGCutFile{\mpgfigname.mp}
+ \MPGverbatimwrite{\MPGCutFile}}
+ {\endMPGverbatimwrite%
+ \MPGgraphicsinclude%
+ \global\@mpg@noprocessfalse\noindent}
+\newenvironment{mpinline}{\stepcounter{mpgfig}%
+ \xdef\MPGCutFile{\mpgfigname.mp}
+ \MPGverbatimwrite{\MPGCutFile}}
+ {\endMPGverbatimwrite%
+ \MPGinlinegraphicsinclude%
+ \global\@mpg@noprocessfalse\noindent}
+\AtEndDocument{\endMPGhook%
+ \csname if@mpg@no@\mpg@graphicsextension\endcsname
+ \PackageWarningNoLine{mpgraphics}
+ {******************************************\MessageBreak
+ Some \mpg@graphicsformatname\space files of images were not found.\MessageBreak
+ ******************************************}
+ \fi
+}
+\gdef\endMPGhook{}
+\newcommand{\mpgnoprocess}{\global\@mpg@noprocesstrue
+ \PackageWarning{mpgraphics}
+ {******************************************\MessageBreak
+ Figure Number: \mpgfigname\space is not processed \MessageBreak
+ ******************************************\MessageBreak}
+}
+\newcounter{mpgfig}
+\newif\if@mpgGINwidth
+\newif\if@mpgGINheight
+\newif\if@mpgGINscale
+\long\gdef\MPGgraphicsProcess{%
+ \@ifundefined{Fig\thempgfig}
+ {\mpg@WarningNoLine{mpgraphics}
+ {******************************************\MessageBreak
+ ************ Processing Fig: \thempgfig\space**********\MessageBreak
+ ******************************************}
+ }
+ {\mpgnoprocess}
+ \ifshellescape\if@mpg@noprocess\relax\else\if@mpg@On
+ \IfFileExists{\mpgfigname.mp}{%
+ \loop\ifnum\c@mpg@runs > \@ne
+ \mpg@convert{extrametapost}{\mpgfigname.mp}{\mpgfigname.eps}%
+ \advance\c@mpg@runs\m@ne
+ \repeat
+ \mpg@convert{metapost}{\mpgfigname.mp}{\mpgfigname.eps}%
+ \mpg@WarningNoLine{mpgraphics}
+ {******************************************\MessageBreak
+ \mpgfigname.mp converted to \mpgfigname.eps\MessageBreak
+ ******************************************}
+ }{}
+ \IfFileExists{\mpgfigname.eps}{%
+ \ifPDFTeX\ifpdf%
+ \mpg@convert{epstopdf}{\mpgfigname.eps}{\mpgfigname.pdf}%
+ \mpg@WarningNoLine{mpgraphics}
+ {******************************************\MessageBreak
+ \mpgfigname.eps converted to \mpgfigname.pdf\MessageBreak
+ ******************************************}\else\fi\else\ifXeTeX%
+ \mpg@convert{epstopdf}{\mpgfigname.eps}{\mpgfigname.pdf}%
+ \mpg@WarningNoLine{mpgraphics}
+ {******************************************\MessageBreak
+ \mpgfigname.eps converted to \mpgfigname.pdf\MessageBreak
+ ******************************************}\fi\fi
+}{%
+ \mpg@PackageError{%
+ metapost encountered error(s) while compiling your\mpg@nl
+ metapost code and so it did not produce the figure!}
+ {Fix your metapost code, delete all metapost and\mpg@nl
+ LaTeX auxillary files and then run "\mpg@formatname\space -shell-escape"\mpg@nl
+ on your document again}
+}\else\fi
+ \ifwindows%
+ \IfFileExists{ltxpreamble.ltx}{\immediate\write18{del ltxpreamble.ltx}}{}%
+ \IfFileExists{\mpgfigname.log}{\immediate\write18{del \mpgfigname.log}}{}%
+ \IfFileExists{\mpgfigname.mp}{\immediate\write18{del \mpgfigname.mp}}{}%
+ \ifPDFTeX\ifpdf%
+ \IfFileExists{\mpgfigname.eps}{\immediate\write18{del \mpgfigname.eps}}{}\else\fi\else\ifXeTeX%
+ \IfFileExists{\mpgfigname.eps}{\immediate\write18{del \mpgfigname.eps}}{}\fi\fi%
+ \IfFileExists{\mpgfigname.mpx}{\immediate\write18{del \mpgfigname.mpx}}{}%
+ \IfFileExists{texnum.mpx}{\immediate\write18{del texnum.mpx}}{}%
+ \IfFileExists{mpdefs.mp}{\immediate\write18{del mpdefs.mp}}{}%
+ \IfFileExists{makempx.log}{\immediate\write18{del makempx.log}}{}%
+ \IfFileExists{mpxerr.log}{\immediate\write18{del mpxerr.log}}{}%
+ \IfFileExists{mpxerr.tex}{\immediate\write18{del mpxerr.tex}}{}%
+ \else
+ \IfFileExists{ltxpreamble.ltx}{\immediate\write18{rm ltxpreamble.ltx}}{}%
+ \IfFileExists{\mpgfigname.log}{\immediate\write18{rm \mpgfigname.log}}{}%
+ \IfFileExists{\mpgfigname.mp}{\immediate\write18{rm \mpgfigname.mp}}{}%
+ \ifPDFTeX\ifpdf%
+ \IfFileExists{\mpgfigname.eps}{\immediate\write18{rm \mpgfigname.eps}}{}\else\fi\else\ifXeTeX%
+ \IfFileExists{\mpgfigname.eps}{\immediate\write18{rm \mpgfigname.eps}}{}\fi\fi%
+ \IfFileExists{\mpgfigname.mpx}{\immediate\write18{rm \mpgfigname.mpx}}{}%
+ \IfFileExists{texnum.mpx}{\immediate\write18{rm texnum.mpx}}{}%
+ \IfFileExists{mpdefs.mp}{\immediate\write18{rm mpdefs.mp}}{}%
+ \IfFileExists{makempx.log}{\immediate\write18{rm makempx.log}}{}%
+ \IfFileExists{mpxerr.log}{\immediate\write18{rm mpxerr.log}}{}%
+ \IfFileExists{mpxerr.tex}{\immediate\write18{rm mpxerr.tex}}{}%
+ \fi\fi
+ \fi
+}
+\long\gdef\MPGgraphicsinclude{\MPGgraphicsProcess%
+ \IfFileExists{\mpgfigname.\mpg@graphicsextension}%
+ {\begin{center}
+ \bgroup\fboxsep\@MPGboxsep\fboxrule\@MPGboxrule%
+ \color{\@MPGgraphiccolor}%
+ \fcolorbox{\@MPGgraphiclinecolor}{\@MPGgraphicbackground}%
+ {\if@mpgGINwidth%
+ \includegraphics[width=\@MPGgraphicwidth]{\mpgfigname.\mpg@graphicsextension}\else%
+ \if@mpgGINheight%
+ \includegraphics[height=\@MPGgraphicheight]{\mpgfigname.\mpg@graphicsextension}\else%
+ \if@mpgGINscale%
+ \includegraphics[scale=\@MPGgraphicscale]{\mpgfigname.\mpg@graphicsextension}\else%
+ \includegraphics{\mpgfigname.\mpg@graphicsextension}\fi\fi\fi%
+ }\egroup\end{center}%
+ \global\@mpgGINwidthfalse\let\@MPGgraphicwidth\relax
+ \global\@mpgGINheightfalse\let\@MPGgraphicheight\relax
+ \global\@mpgGINscalefalse\let\@MPGgraphicscale\relax
+ }{\csname @mpg@no@\mpg@graphicsextension true\endcsname}
+ \gdef\@MPGgraphiclinecolor{white}
+ \gdef\@MPGgraphicbackground{white}
+ \gdef\@MPGboxsep{0pt}
+ \gdef\@MPGboxrule{0pt}
+}
+\long\gdef\MPGinlinegraphicsinclude{%
+ \MPGgraphicsProcess%
+ \IfFileExists{\mpgfigname.\mpg@graphicsextension}%
+ {\bgroup\fboxrule0pt%
+ \normalcolor\fbox{\includegraphics{\mpgfigname.\mpg@graphicsextension}}%
+ \egroup}%
+ {\csname @mpg@no@\mpg@graphicsextension true\endcsname}%
+}
+\def\configure[#1][#2]{\setkeys{#1}{#2}
+ \mpg@Warning{mpgraphics}{Reconfigured #1 parameter(s)\MessageBreak
+ #2\MessageBreak}}
+\define@key{mpggraphic}{width} {\gdef\@MPGgraphicwidth{#1}%
+ \global\@mpgGINwidthtrue}
+\define@key{mpggraphic}{height} {\gdef\@MPGgraphicheight{#1}%
+ \global\@mpgGINheighttrue}
+\define@key{mpggraphic}{scale} {\gdef\@MPGgraphicscale{#1}%
+ \global\@mpgGINscaletrue}
+\define@key{mpggraphic}{color} {\gdef\@MPGgraphiccolor{#1}}
+\define@key{mpggraphic}{linecolor} {\gdef\@MPGgraphiclinecolor{#1}}
+\define@key{mpggraphic}{background}{\gdef\@MPGgraphicbackground{#1}}
+\define@key{mpggraphic}{linewidth} {\gdef\@MPGboxrule{#1}}
+\define@key{mpggraphic}{rulesep} {\gdef\@MPGboxsep{#1}}
+\gdef\@MPGgraphiccolor{black}
+\gdef\@MPGgraphiclinecolor{white}
+\gdef\@MPGgraphicbackground{white}
+\gdef\@MPGboxrule{0pt}
+\gdef\@MPGboxsep{0pt}
+\@ifundefined{c@arraylength}{\newcounter{arraylength}}{}%
+\@ifundefined{c@ArrayIndex}{\newcounter{ArrayIndex}}{}%
+\@ifundefined{c@zeroCtr}{\newcounter{zeroCtr}}{}%
+\@ifundefined{c@recordCtr}{\newcounter{recordCtr}}{}
+\setcounter{recordCtr}{1}
+\@ifundefined{c@Ctr}{\newcounter{Ctr}}{}
+\def\DeclareArray#1{\Array{#1}[0]{}}%
+\def\Array#1[#2]#3{%
+ \expandafter\gdef\csname #1#2\endcsname{#3}%
+ \expandafter\gdef\csname #1\endcsname[##1]{\csname #1##1\endcsname}}%
+\def\getArraylength#1{\setcounter{arraylength}{0}%
+ \loop\expandafter\ifx\csname #1\thearraylength\endcsname\relax%
+ \else\stepcounter{arraylength}\repeat}%
+\def\addToArray#1#2{\setcounter{arraylength}{0}%
+ \loop\expandafter\ifx\csname #1\thearraylength\endcsname\relax%
+ \else\stepcounter{arraylength}\repeat%
+ \Array{#1}[\thearraylength]{#2}}%
+\def\clearArray#1{\getArraylength{#1}%
+ \loop\ifnum\c@arraylength >0%
+ \global\expandafter\let\csname #1\thearraylength\endcsname\relax%
+ \addtocounter{arraylength}{-1}\repeat}%
+\long\def\ArrayIterator#1#2{%
+ \setcounter{ArrayIndex}{1}\getArraylength{#1}%
+ \setcounter{zeroCtr}{\c@arraylength}%
+ \loop\ifnum\c@ArrayIndex<\c@zeroCtr{#2}%
+ \stepcounter{ArrayIndex}\repeat%
+}%
+\def\@nnil{\@nil}
+\def\@empty{}
+\def\@cvrstop#1\@@#2{}
+\long\def\cvr@delimfor#1#2#3{\DeclareArray{#1}\clearArray{#1}%
+ \long\def\@icvrloop##1#2##2\@@##3{\def##3{##1}\ifx ##3\@nnil%
+ \expandafter\@cvrstop \else\addToArray{#1}{##1}%
+ \relax\expandafter\@icvrloop\fi##2\@@##3}%
+ \long\def\@cvrloop##1#2##2#2##3\@@##4{\addToArray{#1}{##1}%
+ \def##4{##1}\ifx ##4\@nnil \else%
+ \def##4{##2}\def\y@y{##2}\ifx\y@y\@nnil\else%
+ \addToArray{#1}{##2}\fi\ifx ##4\@nnil \else%
+ \@icvrloop ##3\@@##4\fi\fi}%
+ \expandafter\def\expandafter\@fortmp\expandafter{#3}%
+ \ifx\@fortmp\@empty \else%
+ \expandafter\@cvrloop#3#2\@nil#2\@nil\@@\@ee@\fi}%
+\@ifundefined{c@f@irstCtr}{\newcounter{f@irstCtr}}{}%
+\@ifundefined{c@s@econdCtr}{\newcounter{s@econdCtr}}{}%
+\long\gdef\NoProcess[#1]{%
+ \long\def\@i@@noprocess##1,##2\@@##3{\def##3{##1}\ifx ##3\@nnil%
+ \expandafter\@cvrstop \else
+ \expandafter\hyphencheck##1-@-*[*]
+ \relax\expandafter\@i@@noprocess\fi##2\@@##3}%
+ \long\def\@@@noprocess##1,##2,##3\@@##4{
+ \expandafter\hyphencheck##1-@-*[*]
+ \def##4{##1}\ifx ##4\@nnil \else%
+ \def##4{##2}\def\y@y{##2}\ifx\y@y\@nnil\else%
+ \expandafter\hyphencheck##2-@-*[*]
+ \fi\ifx ##4\@nnil \else%
+ \@i@@noprocess ##3\@@##4\fi\fi}%
+ \expandafter\def\expandafter\@fortmp\expandafter{#1}%
+ \ifx\@fortmp\@empty \else%
+ \expandafter\@@@noprocess#1,\@nil,\@nil\@@\@ee@\fi}%
+\def\d@d#1[*]{}
+\def\hyphencheck#1-#2-#3{\def\r@r{@}\def\s@s{*}\edef\c@c{#3}
+ \ifx\c@c\r@r
+ \setcounter{f@irstCtr}{#1}
+ \setcounter{s@econdCtr}{#2}
+ \stepcounter{s@econdCtr}
+ \loop\ifnum\thes@econdCtr > \thef@irstCtr%
+ \expandafter\edef\csname Fig\thef@irstCtr\endcsname{TRUE}
+ \stepcounter{f@irstCtr}
+ \repeat%
+ \else\ifx\c@c\s@s%
+ \expandafter\edef\csname Fig#1\endcsname{TRUE}
+ \fi\fi\d@d}
+%%
+%% Copyright © 2011 Vafa Khalighi <vafakhlgh@gmail.com>
+%%
+%% It may be distributed and/or modified under the LaTeX Project Public License,
+%% version 1.3c or higher (your choice). The latest version of
+%% this license is at: http://www.latex-project.org/lppl.txt
+%%
+%% This work is “author-maintained” (as per LPPL maintenance status)
+%% by Vafa Khalighi.
+%%
+%%
+%%
+%%
+%% End of file `mpgraphics.sty'.