ASKSAGE: Sage Q&A Forum - RSS feedhttps://ask.sagemath.org/questions/Q&A Forum for SageenCopyright Sage, 2010. Some rights reserved under creative commons license.Thu, 10 Sep 2020 19:16:43 +0200texshop condahttps://ask.sagemath.org/question/53396/texshop-conda/ Someone could produce a sage.engine for texshop in order to run the sagetex if it was installed by conda?
I tried to call sage including sage -root in the path and changing sage.engine to
then
echo Running Sage, please wait a moment...
# New versions of Sage cannot be renamed; thus users need to read the
# documentation in ~/TeXShop/Engines/Inactive/Sage whenever they update Sage;
# for instance, the line below must contain the current name of Sage
/opt/anaconda3/envs/sage/bin/sage "$sagename"
pdflatex --file-line-error --synctex=1 "$filename"
else
but give the error
Running Sage, please wait a moment...
Error: You must set the SAGE_ROOT environment variable or run this
script from the SAGE_ROOT or SAGE_ROOT/local/bin/ directory.
Error setting environment variables by sourcing '/opt/anaconda3/envs/sage/bin/sage-env';
possibly contact sage-devel (see h t t p ://groups.google.com/group/sage-devel).
ThanksFlipsThu, 10 Sep 2020 19:16:43 +0200https://ask.sagemath.org/question/53396/TexShop sage.engine can't tell if running Sage is necessaryhttps://ask.sagemath.org/question/35835/texshop-sageengine-cant-tell-if-running-sage-is-necessary/I have switched from `sagetex.py` version `2012/01/16 v2.3.3-69dcb0eb93de` to version `2015/08/26 v3.0-92d9f7a`. When I compile a tex file using `sage.engine` it can't determine whether sage needs to run or not. I've narrowed this down to the if statement in `sage.engine`
# do we need to run Sage?
if [ -f "$soutname" ]
then
new_sum=$(egrep -v '^( _st_.goboom|print .SageT)' "$sagename" | md5)
old_sum=$(egrep -o ^%[0-9a-f]{32}% "$soutname" | cut -b 2-33)
if [ "$new_sum" != "$old_sum" ]
then
run_sage=yes
fi
else
# no .sout file, so run Sage
run_sage=yes
fi
I think the first `egrep` call should also eliminate lines containing `current_tex_line`. I've tried
new_sum=$(egrep -v '^( _st_.goboom|print .SageT)' "$sagename" | egrep -v '^( _st_.current_tex_line)' | md5)
but to no avail.
Any ideas would be much appreciated. Thanks.
Here is an **example**: the test.tex file
% !TEX TS-program = sage
\documentclass[12pt]{article}
\usepackage{sagetex}
\begin{document}
$2+3=\sage{2+3}$
\end{document}
produces among other things a `sagetex.sout` file that contains
% This file was *autogenerated* from test.sagetex.sage with
% sagetex.py version 2015/08/26 v3.0-92d9f7a
\newlabel{@sageinline0}{{%
5}{}{}{}{}}
%b22d43e1240df548df8cf6749b32284b% md5sum of corresponding .sage file (minus "goboom", "current_tex_line", and pause/unpause lines)
The `sage.engine` if statement should compare the md5 value of `sagetex.sage` minus a few lines to the md5sum in `sagetex.sout`.markusThu, 01 Dec 2016 06:06:03 +0100https://ask.sagemath.org/question/35835/