Problem with sagetex and fancyhdr

43 views
Skip to first unread message

David Sevilla

unread,
May 13, 2020, 6:52:56 PM5/13/20
to sage-support


Hi, I have been trying to use SageTeX in a document where I also use the fancyhdr package, and I am not able to put Sage computations in the header (or the footer). A minimal example follows.

\documentclass{article}
\usepackage{sagetex}
\usepackage{fancyhdr}

\begin{document}

\begin{sagesilent}
n
= 1
\end{sagesilent}

\fancyhead[R]{$\sage{n}$}
\title
{$\sage{n}$}
\maketitle
\thispagestyle{fancy}

\end{document}


After pdflatex, and running sage on the .sagetex.sage file, I get the following error:

Processing Sage code for test02.tex...
Code block (line 7) begin...end
Inline formula 0 (line 14)
Sage processing complete. Run LaTeX on test02.tex again.
Inline formula 1 (line 17)

**** Error in Sage code on line 17 of test02.tex! Traceback follows.
Traceback (most recent call last):
 
File "test02.sagetex.sage.py", line 24, in <module>
    _st_
.inline(_sage_const_1 , latex(n))
 
File "/usr/lib/python2.7/dist-packages/sagetex.py", line 121, in inline
   
'}{{%\n' + s.rstrip() + '}{}{}{}{}}\n')
ValueError: I/O operation on closed file

**** Running Sage on test02.sage failed! Fix test02.tex and try again.
Traceback (most recent call last):
 
File "test02.sagetex.sage.py", line 26, in <module>
    _st_
.goboom(_sage_const_17 )
 
File "/usr/lib/python2.7/dist-packages/sagetex.py", line 264, in goboom
    os
.remove(self.filename + '.sagetex.sout.tmp')
OSError: [Errno 2] No such file or directory: 'test02.sagetex.sout.tmp'

As you can see, "inline formula 0" was generated properly and the processing ended there; that line (14) is the \maketitle. On the other hand, inline formula 1 was not resolved because the file was already closed (note the "Sage processing complete" before); the line 17 where it arose is the \end{document}. After the second pdflatex, the Sage result appears correctly in the title but "??" appears instead in the header, and I get the:

LaTeX Warning: Reference `@sageinline1' on page 1 undefined on input line 17.



Any suggestions on how to combine these two packages is very welcome, or at least an explanation of this behaviour (why did Sage think that there was nothing else to do after formula 0???). I cannot think of a workaround, other than avoiding fancyhdr and searching for smart LaTeX to be able to put things into place.

Thanks!

David Sevilla

unread,
May 13, 2020, 6:54:52 PM5/13/20
to sage-support
(By the way, I wasn't able to ask at https://ask.sagemath.org/ because my question was detected as spam. So was an answer or comment I tried to post earlier in the day.)

Dima Pasechnik

unread,
May 14, 2020, 7:14:36 AM5/14/20
to sage-support
Hi David,
Thanks for the record. A hotfix is to edit
/usr/lib/python2.7/dist-packages/sagetex.py
and replace the line 285, which is

self.souttmp.close()

with the following 2 lines:

self.souttmp.flush()
os.fsync(self.souttmp.fileno())

Then it should work. The problem is that fancyhdr does some kind of
postprocessing, after sagetex thinks all is done.
Indeed, with this fix I see running sage with the pdflatex output of
your file hh.tex

$ sage hh.sagetex.sage
Processing Sage code for hh.tex...
Code block (line 7) begin...end
Inline formula 0 (line 14)
Sage processing complete. Run LaTeX on hh.tex again.
Inline formula 1 (line 17)

This should be of course properly fixed - please open an issue on
https://github.com/sagemath/sagetex

Best
Dmirii


> Thanks!
>
> --
> You received this message because you are subscribed to the Google Groups "sage-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to sage-support...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/sage-support/fabb1997-a5c5-4a5f-819c-1f5a4fb63ff3%40googlegroups.com.

Dima Pasechnik

unread,
May 14, 2020, 1:00:34 PM5/14/20
to sage-support


On Thursday, May 14, 2020 at 12:14:36 PM UTC+1, Dima Pasechnik wrote:
Hi David,

to fix this proprely.

David Sevilla

unread,
May 14, 2020, 2:02:01 PM5/14/20
to sage-support
That was quick, thanks a lot Dima!!

Reply all
Reply to author
Forward
0 new messages