%% %% This is file `sympytex.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% sympytexpackage.dtx (with options: `latex') %% %% This is a generated file. %% %% Copyright (C) 2009 by Tim Molteno %% %% This program is free software: you can redistribute it and/or modify it %% under the terms of the GNU General Public License as published by the %% Free Software Foundation, either version 2 of the License, or (at your %% option) any later version. %% %% This program is distributed in the hope that it will be useful, but %% WITHOUT ANY WARRANTY; without even the implied warranty of %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %% General Public License for more details. %% %% You should have received a copy of the GNU General Public License along %% with this program. If not, see %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{sympytex} [2014/05/16 v0.3 Added sympy plotting support. Code cleanup] \RequirePackage{verbatim} \RequirePackage{graphicx} \RequirePackage{makecmds} \RequirePackage{ifpdf} \RequirePackage{ifthen} \newcounter{ST@inline} \newcounter{ST@plot} \setcounter{ST@inline}{0} \setcounter{ST@plot}{0} \newlength{\sympytexindent} \setlength{\sympytexindent}{5ex} \newcommand{\ST@epsim}{False} \DeclareOption{imagemagick}{\renewcommand{\ST@epsim}{True}} \ProcessOptions\relax \newwrite\ST@sf \immediate\openout\ST@sf=\jobname.sympy \newcommand{\ST@wsf}[1]{\immediate\write\ST@sf{#1}} \iffalse %% To get .sympy files to automatically change the Python path to find %% sympytex.py, delete the \iffalse and \fi lines surrounding this and %% change the directory below to where sympytex.py can be found. \ST@wsf{import sys} \ST@wsf{sys.path.insert(0, 'directory with sympytex.py')} \fi \ST@wsf{import sympy} \ST@wsf{import sympytex} \ST@wsf{sympytex.openout('\jobname')} \InputIfFileExists{\jobname.sout}{}{} \newcommand{\sympy}[1]{% \ST@wsf{try:}% \ST@wsf{ sympytex.inline(\theST@inline, #1)}% \ST@wsf{except:}% \ST@wsf{ sympytex.goboom(\the\inputlineno)}% \begin{NoHyper}\ref{@sympylabel\theST@inline}\end{NoHyper}% \@ifundefined{r@@sympylabel\theST@inline}{\gdef\ST@rerun{x}}{}% \stepcounter{ST@inline}} \newcommand{\sympyplain}[1]{% \ST@wsf{try:}% \ST@wsf{ sympytex.inlineplain(\theST@inline, #1)}% \ST@wsf{except:}% \ST@wsf{ sympytex.goboom(\the\inputlineno)}% \begin{NoHyper}\ref{@sympylabel\theST@inline}\end{NoHyper}% \@ifundefined{r@@sympylabel\theST@inline}{\gdef\ST@rerun{x}}{}% \stepcounter{ST@inline}} \AtBeginDocument{\provideenvironment{NoHyper}{}{}} \catcode`\%=12 \newcommand{\percent}{%} \catcode`\%=14 \newcommand{\ST@plotdir}{sympy-plots-for-\jobname.tex} \newcommand{\sympyplot}[1][width=.75\textwidth]{% \@ifnextchar[{\ST@sympyplot[#1]}{\ST@sympyplot[#1][notprovided]}%] } \def\ST@sympyplot[#1][#2]#3{% \ST@wsf{try:}% \ST@wsf{ sympytex.initplot('\jobname')}% \ST@wsf{ sympytex.plot(\theST@plot, #3, format='#2', epsmagick=\ST@epsim)}% \ST@wsf{except:}% \ST@wsf{ sympytex.goboom(\the\inputlineno)}% \ifpdf \ifthenelse{\equal{#2}{notprovided}}% {\ST@inclgrfx{#1}{pdf}}% {\ST@inclgrfx{#1}{#2}}% \else \ifthenelse{\equal{#2}{notprovided}}% {\ST@inclgrfx{#1}{eps}}% {\ifthenelse{\equal{#2}{eps}} {\ST@inclgrfx{#1}{eps}}% {\ifthenelse{\equal{\ST@epsim}{True}} {\ST@inclgrfx{#1}{eps}}% {\IfFileExists{\ST@plotdir/plot-\theST@plot.#2}% {\framebox[2cm]{\rule[-1cm]{0cm}{2cm}\textbf{??}}% \PackageWarning{sympytex}{Graphics file \ST@plotdir/plot-\theST@plot.#2\space on page \thepage\space cannot be used with DVI output. Use pdflatex or create an EPS file. Plot command is}}% {\framebox[2cm]{\rule[-1cm]{0cm}{2cm}\textbf{??}}% \PackageWarning{sympytex}{Graphics file \ST@plotdir/plot-\theST@plot.#2\space on page \thepage\space does not exist}% \gdef\ST@rerun{x}}}}}% \fi \stepcounter{ST@plot}} \newcommand{\ST@inclgrfx}[2]{% \IfFileExists{\ST@plotdir/plot-\theST@plot.#2}% {\includegraphics[#1]{\ST@plotdir/plot-\theST@plot.#2}}% {\framebox[2cm]{\rule[-1cm]{0cm}{2cm}\textbf{??}}% \PackageWarning{sympytex}{Graphics file \ST@plotdir/plot-\theST@plot.#2\space on page \thepage\space does not exist}% \gdef\ST@rerun{x}}} \newcommand{\ST@beginsfbl}{% \@bsphack% \ST@wsf{sympytex.blockbegin()}% \ST@wsf{try:}% \let\do\@makeother\dospecials\catcode`\^^M\active} \newcommand{\ST@endsfbl}{% \ST@wsf{except:}% \ST@wsf{ sympytex.goboom(\the\inputlineno)}% \ST@wsf{sympytex.blockend()}} \newenvironment{sympyblock}{\ST@beginsfbl% \def\verbatim@processline{\ST@wsf{ \the\verbatim@line}% \hspace{\sympytexindent}\the\verbatim@line\par}% \verbatim}% {\ST@endsfbl\endverbatim} \newenvironment{sympysilent}{\ST@beginsfbl% \def\verbatim@processline{\ST@wsf{ \the\verbatim@line}}% \verbatim@start}% {\ST@endsfbl\@esphack} \newenvironment{sympyverbatim}{% \def\verbatim@processline{\hspace{\sympytexindent}\the\verbatim@line\par}% \verbatim}% {\endverbatim} \AtEndDocument{\ST@wsf{sympytex.endofdoc()}% \@ifundefined{ST@rerun}{}% {\PackageWarningNoLine{sympytex}{There were undefined Sympy formulas and/or plots}% \PackageWarningNoLine{sympytex}{Run python on \jobname.sympy, and then run LaTeX on \jobname.tex again}}} \endinput %% %% End of file `sympytex.sty'.