Verbatim inside questions

Version 3 (Alexis Bienvenüe, 09/24/2016 03:08 pm)

1 1
h1. Verbatim inside questions
2 1
3 1
h2. The problem
4 1
5 1
The @verbatim@ environment interferes with AMC LaTeX package, so that it is impossible to use it inside @question@ or @questionmult@ environments... As an example, the following code won't compile:
6 1
<pre>
7 1
\begin{question}{program}
8 1
  What is the return value of the following R code?
9 1
  \begin{verbatim}
10 1
    sum(sapply(1:2^2,function(x) { x/2 }))
11 1
  \end{verbatim}
12 1
  \begin{choices}[o]
13 1
    \wrongchoice{2.5}
14 1
    \correctchoice{5}
15 1
    \wrongchoice{NaN}
16 1
  \end{choices}
17 1
\end{question}
18 1
</pre>
19 1
20 1
h2. Some solutions
21 1
22 1
h3. Escaping
23 1
24 1
For very small texts, it is possible to escape all characters that have a special meaning for LaTeX. However, this can become quickly tedious...
25 1
<pre>
26 1
\begin{question}{program}
27 1
  What is the return value of the following R code?
28 1
  \begin{center}
29 1
    \texttt{sum(sapply(1:2\textasciicircum 2,function(x) \{ x/2 \}))}
30 1
  \end{center}
31 1
  \begin{choices}[o]
32 1
    \wrongchoice{2.5}
33 1
    \correctchoice{5}
34 1
    \wrongchoice{NaN}
35 1
  \end{choices}
36 1
\end{question}
37 1
</pre>
38 1
39 1
h3. UseVerb
40 1
41 2 Alexis Bienvenüe
You can also record some one-line verbatims with the *@fancyvrb@* package (define your verbatim outside — before — @\onecopy@):
42 1
<pre>
43 1
\SaveVerb{theRcode}'sum(sapply(1:2^2,function(x) { x/2 }))'
44 1
45 1
...
46 1
47 1
\begin{question}{program}
48 1
  What is the return value of the following R code?
49 1
  \begin{center}
50 1
    \UseVerb{theRcode}
51 1
  \end{center}
52 1
  \begin{choices}[o]
53 1
    \wrongchoice{2.5}
54 1
    \correctchoice{5}
55 1
    \wrongchoice{NaN}
56 1
  \end{choices}
57 1
\end{question}
58 1
</pre>
59 1
60 1
h3. Verbatim boxes
61 1
62 2 Alexis Bienvenüe
For larger verbatims, the *@verbatimbox@* package can help you:
63 1
<pre>
64 1
\begin{myverbbox}{\Rcode}
65 1
sum(sapply(1:2^2,function(x) { x/2 }))
66 1
\end{myverbbox}
67 1
68 1
69 1
...
70 1
71 1
\begin{question}{program}
72 1
  What is the return value of the following R code?
73 1
  \begin{center}
74 1
    \Rcode
75 1
  \end{center}
76 1
  \begin{choices}[o]
77 1
    \wrongchoice{2.5}
78 1
    \correctchoice{5}
79 1
    \wrongchoice{NaN}
80 1
  \end{choices}
81 1
\end{question}
82 1
</pre>
83 3 Alexis Bienvenüe
84 3 Alexis Bienvenüe
h3. Separate file
85 3 Alexis Bienvenüe
86 3 Alexis Bienvenüe
Reading the verbatim from a separate file often helps. As an example, for a syntax highlighted python code stored in a file named @prog.py@ in the project directory, you can use
87 3 Alexis Bienvenüe
88 3 Alexis Bienvenüe
<pre>
89 3 Alexis Bienvenüe
  \lstset{language=Python}
90 3 Alexis Bienvenüe
  \lstinputlisting{prog.py}
91 3 Alexis Bienvenüe
</pre>
92 3 Alexis Bienvenüe
93 3 Alexis Bienvenüe
from package @listings@, or
94 3 Alexis Bienvenüe
95 3 Alexis Bienvenüe
<pre>
96 3 Alexis Bienvenüe
  \inputminted{python}{prog.py}
97 3 Alexis Bienvenüe
</pre>
98 3 Alexis Bienvenüe
99 3 Alexis Bienvenüe
from package @minted@.