Metadata-Version: 2.1
Name: texsurgery
Version: 0.0.2
Summary: Replace some commands and environments within a TeX document by evaluating code inside a jupyter kernel
Home-page: https://framagit.org/pang/texsurgery
Author: Pablo Angulo
Author-email: pablo.angulo@upm.es
License: UNKNOWN
Description: # TexSurgery
        
            Replaces some commands and environments within a TeX document
            by evaluating code inside a jupyter kernel
        
        Start with this LaTeX code:
        
        ~~~~~~~~~~latex
        % Any jupyter kernel is available
        \usepackage[sagemath]{texsurgery}
        
        % Compatible with any other LaTeX package
        \usepackage[bloc,completemulti]{automultiplechoice}
        
        % Example of user macros
        \providecommand{\abs}[1]{\lvert#1\rvert}
        \newcommand{\R}{\mathbb{R}}
        
        % TexSurgery can replace some \commands before pdflatex runs
        \begin{minipage}{.85\linewidth}
        Student: {\bf \name \;  \surname},  \quad ID:  {\bf \id}
        \end{minipage}
        
        \begin{question}{derivative-sin}
        \qvariant{1} \qtags{derivative}
        % TexSurgery will run code in a jupyter kernel
        \begin{runsilent}
        set_random_seed(\seed)
        a = randint(2,10)
        f = sin(a*x)
        fd = f.derivative(x)
        \end{runsilent}
        % TexSurgery will eval code in a jupyter kernel
        % and replace \eval{expr} with the output from the kernel
        % \sage{expr} is just an alias for \eval{latex(expr)}
        What is the first derivative of $\sage{f}$?
        \begin{choices}
          \correctchoice{$\sage{fd}$}
          \wrongchoice{$\sage{fd*a}$}
          \wrongchoice{$\sage{fd + a}$}
        \end{choices}
        \begin{explain}
        \begin{run}
        # TexSurgery will run code in the jupyter kernel
        # and replace this environment with the full output
        \end{run}
        \end{explain}
        \end{question}
        ~~~~~~~~~~
        
        and run this `python` code:
        ~~~~~~~~~~python
        student_vars = dict(name='Fulano', surname='de Tal', seed=1, id='314159')
        ts = TexSurgery(tex_source).data_surgery(student_vars).code_surgery()
        ~~~~~~~~~~
        
        in order to transform it into this:
        
        ~~~~~~~~~~latex
        % Compatible with any other LaTeX package
        \usepackage[bloc,completemulti]{automultiplechoice}
        
        % Example of user macros
        \providecommand{\abs}[1]{\lvert#1\rvert}
        \newcommand{\R}{\mathbb{R}}
        
        \begin{minipage}{.85\linewidth}
        Student: {\bf Fulano \;  de Tal},  \quad ID:  {\bf 314159}
        \end{minipage}
        
        \begin{question}{derivative-sin}
        \qvariant{1} \qtags{derivative}
        What is the first derivative of $\sin\left(7 \, x\right)$?
        \begin{choices}
          \correctchoice{$7 \, \cos\left(7 \, x\right)$}
          \wrongchoice{$49 \, \cos\left(7 \, x\right)$}
          \wrongchoice{$7 \, \cos\left(7 \, x\right) + 7$}
        \end{choices}
        \begin{explain}
        \begin{run}
        # TexSurgery will run code in the jupyter kernel
        # and replace this environment with the full output
        \end{run}
        \end{explain}
        \end{question}
        ~~~~~~~~~~
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
