sagemath / sagetex

Embed code, results of computations, and plots from the Sage mathematics software suite (https://www.sagemath.org) into LaTeX documents. Source repository for https://pypi.org/project/sagetex/ and https://ctan.org/pkg/sagetex
https://ctan.org/pkg/sagetex
Other
58 stars 22 forks source link

tcolorbox combined with sageblock? #54

Open mjungmath opened 3 years ago

mjungmath commented 3 years ago

Hello there, For my current project I'd like to depict Sage code in fancy Jupyter style. For that, I have already made a tcolorbox listing environment. Now it would be nice to combine that with sageblock in order to reuse the code snippets written in there.

Here is a minimal example:

\documentclass{article}
\usepackage[margin=0.7in]{geometry}
\usepackage[parfill]{parskip}
\usepackage[utf8]{inputenc}
\usepackage[many,breakable,listings]{tcolorbox}

\newtcblisting{sagenotebook}{%
    breakable,
    enhanced,
    size=fbox, 
    pad at break*=1mm,
    opacityfill=1,
    boxrule=.7pt,
    before skip=\medskipamount,
    after={\par\noindent},
    colback=lightgray,
    colframe=gray,
    attach title to upper,
    listing only,
    listing options={
        language=Python,
        upquote= true,
        tabsize=4,
        basicstyle=\linespread{1}\small\ttfamily,
        basewidth=.5em,
        aboveskip=0pt,
        belowskip=-2pt,
    },
}

\begin{document}

\begin{sagenotebook}
P = QQ[x]
\end{sagenotebook}

\end{document}

However, I have no clue how to proceed from here. Any help, comment or hint is appreciated. Thanks!

mjungmath commented 3 years ago

I might have something but it's not finished yet. Is there a general interest to add this to sagetex?

kcrisman commented 3 years ago

I might have something but it's not finished yet. Is there a general interest to add this to sagetex?

If you can show before/after output files, that might be helpful. I'm just not sure what you are trying to accomplish - clearly it's more than styling, but I think I just need the purpose explained more thoroughly. (On a side note, keep in mind that especially things like tcolorbox are said to be extraordinarily brittle, and that the order various packages are loaded makes a huge difference sometimes, so precise instructions on how to use this would be crucial.)

mjungmath commented 3 years ago

Okay, here is an example. Suppose we call the new environment sagenotebook. Then

\begin{sagenotebook}
P = QQ[x]
P
\end{sagenotebook}

should produce

Screenshot from 2021-08-21 00-52-30

but in LaTeX code. The above MWE shows one way to produce a Jupyter-like cell. I am not sure whether there is a way too avoid tcolorbox, but I doubt there is.

Please let me know if you need further details.

mjungmath commented 3 years ago

I created a repo. Please check this out:

https://github.com/mjungmath/sagetex_notebook

Feedback is highly appreciated.

mjungmath commented 2 years ago

Opinions on my above approach? Is that something we would like to implement?