Forums » Using AMC (english) »
AMC with sagetex
Added by Juani Mela over 5 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 5 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_exampleagain
RE: AMC with sagetex
-
Added by Pablo UPM over 5 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 5 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)