Forums » Using AMC (english) »

## AMC with sagetex

Added by Juani Mela over 3 years ago

Does anyone have experience with AMC and sagetex [1]?

This could really expand the possibilities of package fp.

With sage, it is possible to do symbolic derivation, plotting a computed function, or solving a linear system of equations, to name a few.

### Replies (3)

#### RE: AMC with sagetex - Added by Pablo UPM over 3 years ago

A small inconvenience is that in order to use sagetex you have to:

- run
`pdflatex sagetex_example`

- run
`sage sagetex_example.sagetex.sage`

- run
`pdflatex sagetex_example`

again

#### RE: AMC with sagetex - Added by Pablo UPM over 3 years ago

Running sage in between is only a small inconvenience. The problems with the sage verbatim environments are more serious:

- Inline environments can not be used to assign to variables
- Multiline environments are equivalent to verbatim environments, which mess up with AMC seriously
- It is crucial to define variables to do really meaningful examples

Partial+inconvenient workaround: combine latex variables and sage commands. Example:

\element{T1q1}{ \FPeval\a{trunc(6 + random * 3,0)} \FPeval\b{10-\a} \begin{question}{T1q1} Statement of the question: \a, $\a$, \sage{2+3}, \sage{\a}, \sage{\b}, \sage{2+\a} \AMCOpen{lines=2, dots=False}{ \wrongchoice[0]{0}\scoring{0} \wrongchoice[0.5]{0.5}\scoring{0.5} \wrongchoice[1]{1}\scoring{1} \wrongchoice[1.5]{1.5}\scoring{1.5} \wrongchoice[2]{2}\scoring{2} } \explain{ Solution is \sageplot[width=10cm]{plot(sin(x), 0, pi)} \sageplot[width=10cm]{plot(\a*sin(x), 0, pi)} } \end{question} }

I guess I should be happy, since this is better than fpeval alone, but it is not possible to store a polynomial, matrix, function, etc in an fpeval variable.

#### RE: AMC with sagetex - Added by Pablo UPM over 3 years ago

Much better, I added a sageraw environment to sagetex.sty

\newcommand{\sagerawline}[1]{\ST@wsf{\% try:^^J _st_.current_tex_line = \the\inputlineno^^J #1^^J\% except:^^J _st_.goboom(\the\inputlineno)}\% \stepcounter{ST@inline}}

(note: the \% go without a backslash, but this forum complains if I leave the percentage sign alone)

and now I can define variables within latex

\sagerawline{m=randint(10,20)}

Then make computations and plots

\sage{Combinations(100,m).cardinality()}

My limited knowledge of latex does not allow me to do multiline sage raw input without relying on verbatim. I understand the problem is not easy even for the latex masters.

My sagerawline also breaks sageplot in DOC-corrige (although it works in DOC-sujet), but this can be done in other ways.

Not perfect, but this will suffice: each student gets a different question, but we are not limited to basic arithmetic.

This could be done with any other script language (at least haskell and R had latex extensions before Sage did).

(1-3/3)