Estou usando \fillin[]
o comando na exam
classe latex para produzir a seguinte saída:
Convert the following angles from degrees to radians:
\begin{questions}
\begin{multicols}{4}
\question
\begin{align*}
180 \degree
&= \fillin[$1$] \pi \\
&= \fillin[$\frac{1}{2}$] \tau \\
&\approx \fillin[$3.14159$]
\end{align*}
\columnbreak
\question
\begin{align*}
90 \degree
&= \fillin[$\frac{1}{2}$] \pi \\
&= \fillin[$\frac{1}{4}$] \tau \\
&\approx \fillin[$1.57079$]
\end{align*}
\columnbreak
\question
\begin{align*}
270 \degree
&= \fillin[$\frac{3}{2}$] \pi \\
&= \fillin[$\frac{3}{4}$] \tau \\
&\approx \fillin[$4.71238$]
\end{align*}
\columnbreak
\question
\begin{align*}
360 \degree
&= \fillin[$2$] \pi \\
&= \fillin[$1$] \tau \\
&\approx \fillin[$6.28318$]
\end{align*}
\end{multicols}
\vspace*{\stretch{1}}
\end{questions}
A saída é exatamente como eu esperava. No entanto, estou recebendo vários erros do Overleaf:
Suspeito que não seja adequado colocar \fillin[]
dentro de um align
ambiente. Também tentei remover os cifrões, que normalmente não são permitidos dentro de um align
ambiente, mas isso não ajudou e fez com que as frações parassem de ser renderizadas corretamente.
Existe uma maneira adequada de lidar com \fillin[]
dentro de um align
ambiente?
Além disso, é melhor guardar isso para uma pergunta separada, mas existe uma maneira de criar um \fillin[]
comando que funcione fora da exam
classe, por exemplo, na kaobook
classe?
Responder1
Estes não são de forma alguma erros. O editor Overleaf é instruído a marcar casos onde há $
sinais dentro de um ambiente de exibição matemática conhecido.
O texto que você dá entre colchetes é a resposta correta e \fillin
não “sabe” se está em modo matemático ou não: ele usa seu argumento em modo texto de qualquer maneira.
Você pode evitar ser sinalizado como um “erro” usando
\fillin[\ensuremath{\frac{1}{2}}]
ou definir um alias para um argumento a ser usado no modo matemático.
\documentclass[answers]{exam}
\usepackage{multicol,amsmath}
\NewDocumentCommand{\mathfillin}{oo}{%
\IfNoValueTF{#1}{\fillin}{%
\IfNoValueTF{#2}{\fillin[$#1$]}{%
\fillin[$#1$][#2]%
}%
}%
}
% guesses to make the code to compile
\newcommand{\degree}{\ensuremath{^\circ}}
\setlength{\fillinlinelength}{3em}
%%%
\begin{document}
Convert the following angles from degrees to radians:
\begin{questions}
\begin{multicols}{4}
\question
$\begin{aligned}[t]
180 \degree
&= \mathfillin[1] \pi \\
&= \mathfillin[\frac{1}{2}] \tau \\
&\approx \mathfillin[3.14159]
\end{aligned}$
\question
$\begin{aligned}[t]
90 \degree
&= \mathfillin[\frac{1}{2}] \pi \\
&= \mathfillin[\frac{1}{4}] \tau \\
&\approx \mathfillin[1.57079]
\end{aligned}$
\question
$\begin{aligned}[t]
270 \degree
&= \mathfillin[\frac{3}{2}] \pi \\
&= \mathfillin[\frac{3}{4}] \tau \\
&\approx \mathfillin[4.71238]
\end{aligned}$
\question
$\begin{aligned}[t]
360 \degree
&= \mathfillin[2] \pi \\
&= \mathfillin[1] \tau \\
&\approx \mathfillin[6.28318]
\end{aligned}$
\end{multicols}
\vspace*{\stretch{1}}
\end{questions}
\end{document}
Por favor, observe que esta align*
não é a ferramenta certa para o trabalho: `$\begin{aligned}[t]...\end{aligned}$ é muito melhor.
Sem a answers
opção: