diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r-- | Master/texmf-dist/tex/latex/sagetex/sagetex.sty | 133 |
1 files changed, 78 insertions, 55 deletions
diff --git a/Master/texmf-dist/tex/latex/sagetex/sagetex.sty b/Master/texmf-dist/tex/latex/sagetex/sagetex.sty index 16e9a2aefb1..79fccf61d07 100644 --- a/Master/texmf-dist/tex/latex/sagetex/sagetex.sty +++ b/Master/texmf-dist/tex/latex/sagetex/sagetex.sty @@ -5,10 +5,11 @@ %% The original source files were: %% %% sagetexpackage.dtx (with options: `latex') +%% py-and-sty.dtx (with options: `latex') %% -%% This is a generated file. +%% This is a generated file. It is part of the SageTeX package. %% -%% Copyright (C) 2008 by Dan Drake <ddrake@member.ams.org> +%% Copyright (C) 2009 by Dan Drake <ddrake@member.ams.org> %% %% 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 @@ -17,15 +18,15 @@ %% %% 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. +%% 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 <http://www.gnu.org/licenses/> +%% with this program. If not, see <http://www.gnu.org/licenses/>. %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{sagetex} - [2008/03/12 v1.4 embedding Sage into LaTeX documents] + [2009/06/17 v2.2.1 embedding Sage into LaTeX documents] \RequirePackage{verbatim} \RequirePackage{graphicx} \RequirePackage{makecmds} @@ -37,44 +38,55 @@ \setcounter{ST@plot}{0} \newlength{\sagetexindent} \setlength{\sagetexindent}{5ex} -\newcommand{\ST@epsim}{False} -\DeclareOption{imagemagick}{\renewcommand{\ST@epsim}{True}} +\newif\ifST@paused +\ST@pausedfalse +\AtBeginDocument{\@ifundefined{ST@final}{% +\newwrite\ST@sf% +\immediate\openout\ST@sf=\jobname.sage% +\newcommand{\ST@wsf}[1]{\immediate\write\ST@sf{#1}}% +\ST@wsf{# This file (\jobname.sage) was *autogenerated* from the file \jobname.tex.}% +\ST@wsf{import sagetex}% +\ST@wsf{_st_ = sagetex.SageTeXProcessor('\jobname')}}% +{\newcommand{\ST@wsf}[1]{\relax}}} +\DeclareOption{final}{% + \newcommand{\ST@final}{x}% + \IfFileExists{\jobname.sout}{}{\AtEndDocument{\PackageWarningNoLine{sagetex}% + {`final' option provided, but \jobname.sout^^Jdoesn't exist! No Sage + input will appear in your document. Remove the `final'^^Joption and + rerun LaTeX on your document}}}} +\DeclareOption{imagemagick}{% + \newcommand{\ST@useimagemagick}{x}% + \AtBeginDocument{% + \@ifundefined{ST@final}{% + \ST@wsf{_st_.useimagemagick = True}}{}}} +\DeclareOption{epstopdf}{% +\AtBeginDocument{% +\@ifundefined{ST@final}{% + \ST@wsf{_st_.useepstopdf = True}}{}}} \ProcessOptions\relax -\newwrite\ST@sf -\immediate\openout\ST@sf=\jobname.sage -\newcommand{\ST@wsf}[1]{\immediate\write\ST@sf{#1}} -\iffalse -%% To get .sage files to automatically change the Python path to find -%% sagetex.py, delete the \iffalse and \fi lines surrounding this and -%% change the directory below to where sagetex.py can be found. -\ST@wsf{import sys} -\ST@wsf{sys.path.insert(0, 'directory with sagetex.py')} +\InputIfFileExists{\jobname.sout}{}{\typeout{No file \jobname.sout.}} +\AtBeginDocument{\provideenvironment{NoHyper}{}{}} +\newcommand{\sage}[1]{\ST@wsf{% +try:^^J + _st_.inline(\theST@inline, #1)^^Jexcept:^^J + _st_.goboom(\the\inputlineno)}% +\ifST@paused + \mbox{(Sage\TeX{} is paused)}% +\else + \begin{NoHyper}\ref{@sageinline\theST@inline}\end{NoHyper} + \@ifundefined{r@@sageinline\theST@inline}{\gdef\ST@rerun{x}}{} \fi -\ST@wsf{import sagetex} -\ST@wsf{sagetex.openout('\jobname')} -\InputIfFileExists{\jobname.sout}{}{} -\newcommand{\sage}[1]{% -\ST@wsf{try:}% -\ST@wsf{ sagetex.inline(\theST@inline, #1)}% -\ST@wsf{except:}% -\ST@wsf{ sagetex.goboom(\the\inputlineno)}% -\begin{NoHyper}\ref{@sagelabel\theST@inline}\end{NoHyper}% -\@ifundefined{r@@sagelabel\theST@inline}{\gdef\ST@rerun{x}}{}% \stepcounter{ST@inline}} -\AtBeginDocument{\provideenvironment{NoHyper}{}{}} \catcode`\%=12 \newcommand{\percent}{%} \catcode`\%=14 \newcommand{\ST@plotdir}{sage-plots-for-\jobname.tex} +\newcommand{\ST@missingfilebox}{\framebox[2cm]{\rule[-1cm]{0cm}{2cm}\textbf{??}}} \newcommand{\sageplot}[1][width=.75\textwidth]{% - \@ifnextchar[{\ST@sageplot[#1]}{\ST@sageplot[#1][notprovided]}%] -} -\def\ST@sageplot[#1][#2]#3{% -\ST@wsf{try:}% -\ST@wsf{ sagetex.initplot('\jobname')}% -\ST@wsf{ sagetex.plot(\theST@plot, #3, format='#2', epsmagick=\ST@epsim)}% -\ST@wsf{except:}% -\ST@wsf{ sagetex.goboom(\the\inputlineno)}% + \@ifnextchar[{\ST@sageplot[#1]}{\ST@sageplot[#1][notprovided]}} +\def\ST@sageplot[#1][#2]#3{\ST@wsf{try:^^J + _st_.plot(\theST@plot, format='#2', _p_=#3)^^Jexcept:^^J + _st_.goboom(\the\inputlineno)}% \ifpdf \ifthenelse{\equal{#2}{notprovided}}% {\ST@inclgrfx{#1}{pdf}}% @@ -82,38 +94,39 @@ \else \ifthenelse{\equal{#2}{notprovided}}% {\ST@inclgrfx{#1}{eps}}% - {\ifthenelse{\equal{\ST@epsim}{True}} - {\ST@inclgrfx{#1}{eps}}% + {\@ifundefined{ST@useimagemagick}% {\IfFileExists{\ST@plotdir/plot-\theST@plot.#2}% - {\framebox[2cm]{\rule[-1cm]{0cm}{2cm}\textbf{??}}% + {\ST@missingfilebox% \PackageWarning{sagetex}{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{??}}% + {\ST@missingfilebox% \PackageWarning{sagetex}{Graphics file \ST@plotdir/plot-\theST@plot.#2\space on page \thepage\space - does not exist}% - \gdef\ST@rerun{x}}}}% + does not exist. Plot command is}% + \gdef\ST@rerun{x}}}% + {\ST@inclgrfx{#1}{eps}}}% \fi \stepcounter{ST@plot}} -\newcommand{\ST@inclgrfx}[2]{% +\newcommand{\ST@inclgrfx}[2]{\ifST@paused + \fbox{\rule[-1cm]{0cm}{2cm}Sage\TeX{} is paused; no graphic} +\else \IfFileExists{\ST@plotdir/plot-\theST@plot.#2}% {\includegraphics[#1]{\ST@plotdir/plot-\theST@plot.#2}}% - {\framebox[2cm]{\rule[-1cm]{0cm}{2cm}\textbf{??}}% + {\ST@missingfilebox% \PackageWarning{sagetex}{Graphics file \ST@plotdir/plot-\theST@plot.#2\space on page \thepage\space does not - exist}% - \gdef\ST@rerun{x}}} + exist. Plot command is}% + \gdef\ST@rerun{x}} +\fi} \newcommand{\ST@beginsfbl}{% - \@bsphack% - \ST@wsf{sagetex.blockbegin()}% - \ST@wsf{try:}% + \@bsphack\ST@wsf{% +_st_.blockbegin()^^Jtry:}% \let\do\@makeother\dospecials\catcode`\^^M\active} \newcommand{\ST@endsfbl}{% -\ST@wsf{except:}% -\ST@wsf{ sagetex.goboom(\the\inputlineno)}% -\ST@wsf{sagetex.blockend()}} +\ST@wsf{except:^^J + _st_.goboom(\the\inputlineno)^^J_st_.blockend()}} \newenvironment{sageblock}{\ST@beginsfbl% \def\verbatim@processline{\ST@wsf{ \the\verbatim@line}% \hspace{\sagetexindent}\the\verbatim@line\par}% @@ -127,11 +140,21 @@ \def\verbatim@processline{\hspace{\sagetexindent}\the\verbatim@line\par}% \verbatim}% {\endverbatim} -\AtEndDocument{\ST@wsf{sagetex.endofdoc()}% +\newcommand{\sagetexpause}{\ifST@paused\relax\else +\ST@wsf{print 'SageTeX paused on \jobname.tex line \the\inputlineno'^^J"""} +\ST@pausedtrue +\fi} +\newcommand{\sagetexunpause}{\ifST@paused +\ST@wsf{"""^^Jprint 'SageTeX unpaused on \jobname.tex line \the\inputlineno'} +\ST@pausedfalse +\fi} +\AtEndDocument{\ifST@paused +\ST@wsf{"""^^Jprint 'SageTeX unpaused at end of \jobname.tex'} +\fi +\ST@wsf{_st_.endofdoc()}% \@ifundefined{ST@rerun}{}% {\PackageWarningNoLine{sagetex}{There were undefined Sage formulas -and/or plots}% -\PackageWarningNoLine{sagetex}{Run Sage on \jobname.sage, and then run +and/or plots.^^JRun Sage on \jobname.sage, and then run LaTeX on \jobname.tex again}}} \endinput %% |