First time here? Check out the FAQ!

Ask Your Question
2

TexShop sage.engine can't tell if running Sage is necessary

asked 8 years ago

markus gravatar image

updated 8 years ago

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.

Preview: (hide)

Comments

I feel like this might have happened to me before, but certainly not consistently enough to have noticed it for sure. Can you give a minimal example of a file and a change in it that (reproducibly) doesn't trigger the recompile? That is what we'd really need to think about this properly.

kcrisman gravatar imagekcrisman ( 8 years ago )
1

Thanks for your response. I've added an example.

markus gravatar imagemarkus ( 8 years ago )

Glad you figured out your problem, but I still don't see what the line you would change would be that in the current SageTeX causes it not to recompile with Sage.

kcrisman gravatar imagekcrisman ( 8 years ago )

2 Answers

Sort by » oldest newest most voted
2

answered 8 years ago

markus gravatar image

I've figured it out. Replacing the new_sum line sage.engine by

new_sum=$(egrep -v '^( _st_.goboom|print .SageT)' "$sagename" | egrep -v '(_st_.current_tex_line)' | md5)

does the trick.

Preview: (hide)
link

Comments

If you think this is really a bug, I highly recommend emailing Richard Koch, the TeXShop author (http://pages.uoregon.edu/koch/texshop...) to report this. Apparently he is very responsive, or so the frequent updating would suggest.

kcrisman gravatar imagekcrisman ( 8 years ago )

As of TeXShop 3.77, this is in TeXShop! Thank you very much @markus!

kcrisman gravatar imagekcrisman ( 7 years ago )

Thank you very much! but didn't work. ;-) I needed also to change soutname as below!

MacOS 10.12.6 Beta SageMath version 7.6, Release Date: 2017-03-25 TexShop Version 3.77 (3.77)

qgfreire gravatar imageqgfreire ( 7 years ago )
0

answered 8 years ago

Hi guys!

I think also line 8 in sage.engine can cause the same problem. In my experience if line 8 is soutname=${filename/%tex/.sout} md5 doesn’t recognise created file.

So I put soutname=${filename/%tex/sagetex.sout} and it can tell if running Sage is necessary.

What's your experience?

Preview: (hide)
link

Comments

Again, you should bring these issues to the attention of the TeXShop developer, I don't think these files are in SageTeX itself - I think?

kcrisman gravatar imagekcrisman ( 8 years ago )

Thank you very much! It WORKED :-)

MacOS 10.12.6 Beta SageMath version 7.6, Release Date: 2017-03-25 TexShop Version 3.77 (3.77)

qgfreire gravatar imageqgfreire ( 7 years ago )

@qgfreire - Great! I also emailed the TeXShop developer about this one so I think it should be fixed eventually in TeXShop too.

kcrisman gravatar imagekcrisman ( 7 years ago )

I've confirmed this fix will be in TeXShop Version 3.80, which will probably be released soon this week.

kcrisman gravatar imagekcrisman ( 7 years ago )

when updated to 2023 sage.engine can't tell if running Sage is necessary because pattern not found in .sout.

I changed old_sum line to

   old_sum=$(egrep -o '^%[0-9a-f]{32}%' "$soutname" | cut -b 2-33)

putting the search pattern in between quotation marks or single quotes, both work.

Now is working.

qgfreire gravatar imageqgfreire ( 1 year ago )

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

Asked: 8 years ago

Seen: 422 times

Last updated: Dec 02 '16