
Gostaria de compor exercícios com subquestões para que no código eu tenha uma resposta imediatamente após cada subquestão, mas na saída todas as respostas estarão no final. Também quero que os exercícios e as subquestões sejam numerados automaticamente. Eu sei que existem vários pacotes para exercícios de composição tipográfica (por exemplo 'respostas', 'exercício' e 'probsoln'). Também sei que existe um tipo de documento chamado ‘exame’.
Minha pergunta é: qual pacote funcionaria melhor para isso e que tipo de código produziria o resultado?
Eu gostaria de escrever algo como o seguinte:
\begin{ExerciseList}
\Exercise{}
Calculate the following:
\Question{$7+2$}
\Answer{$9$}
\Question{$9-9$}
\Answer{$0$}
\Question{$5+5+5$}
\Answer{$15$}
\Exercise{}
Solve the following equations:
\Question{$x+5=7$}
\Answer{$x=2$}
\Question{$x-5=9$}
\Answer{$x=14$}
\Question{$5x=20$}
\Answer{$x=4$}
\end{ExerciseList}
E quero que o documento final seja mais ou menos assim:
Exercício 1
Calcule o seguinte:
a) 7+2 b) 9-9 c) 5+5+5Exercício 2
Resolva as seguintes equações:
a) x+5=7 b) x-5=9 c) 5x=20Soluções:
Exercício 1
a) 9 b) 0 c) 15Exercício 2
a) x+5=7 b) x=14 c) x=4
O código que tenho acima é apenas um exemplo. Os comandos não precisam ser exatamente como escrevi, desde que a estrutura seja semelhante.
Responder1
Com o probsoln
pacote, os problemas podem ser definidos dentro do documento ou em um arquivo externo que pode ser carregado usando um comando como \loadallproblems
ou \loadrandomproblems
.
Aqui está um exemplo simples com os problemas definidos no documento:
\documentclass{article}
\usepackage{probsoln}
\begin{defproblem}{prob1}% label
\begin{onlyproblem}% question
Calculate the following:%
\begin{textenum}
\item $7+2$
\item $9-9$
\item $5+5+5$
\end{textenum}
\end{onlyproblem}%
\begin{onlysolution}% solution
\begin{textenum}
\item $9$
\item $0$
\item $15$
\end{textenum}
\end{onlysolution}
\end{defproblem}
\begin{defproblem}{prob2}% label
\begin{onlyproblem}% question
Solve the following equations:
\begin{textenum}
\item $x+5=7$
\item $x-5=9$
\item $5x=20$
\end{textenum}
\end{onlyproblem}%
\begin{onlysolution}% solution
\begin{textenum}
\item $x=2$
\item $x=14$
\item $x=4$
\end{textenum}
\end{onlysolution}
\end{defproblem}
\begin{document}
\renewcommand{\labelenumii}{\theenumii)}
\begin{enumerate}
\foreachproblem{\item\thisproblem}
\end{enumerate}
\section*{Solutions}
\showanswers
\begin{enumerate}
\foreachsolution{\item\thisproblem}
\end{enumerate}
\end{document}
Isso produz
A formatação pode ser alterada. Por exemplo, usando oenumitem
pacote:
\documentclass{article}
\usepackage{probsoln}
\usepackage{enumitem}
\begin{defproblem}{prob1}% label
\begin{onlyproblem}% question
Calculate the following:%
\begin{textenum}
\item $7+2$
\item $9-9$
\item $5+5+5$
\end{textenum}
\end{onlyproblem}%
\begin{onlysolution}% solution
\begin{textenum}
\item $9$
\item $0$
\item $15$
\end{textenum}
\end{onlysolution}
\end{defproblem}
\begin{defproblem}{prob2}% label
\begin{onlyproblem}% question
Solve the following equations:
\begin{textenum}
\item $x+5=7$
\item $x-5=9$
\item $5x=20$
\end{textenum}
\end{onlyproblem}%
\begin{onlysolution}% solution
\begin{textenum}
\item $x=2$
\item $x=14$
\item $x=4$
\end{textenum}
\end{onlysolution}
\end{defproblem}
\newenvironment{ExerciseList}
{\begin{enumerate}[label={\emph{Exercise \arabic*}},%
ref={\arabic*},wide]
\renewcommand{\labelenumii}{\theenumii)}%
}
{\end{enumerate}}
\newcommand{\exercise}{\item\mbox{}\par}
\begin{document}
\begin{ExerciseList}
\foreachproblem{\exercise\thisproblem}
\end{ExerciseList}
\section*{Solutions}
\showanswers
\begin{ExerciseList}
\foreachsolution{\exercise\thisproblem}
\end{ExerciseList}
\end{document}
Isso produz:
Editar:
Aqui está uma alternativa onde você pode escrever a resposta ao lado da pergunta no código:
\documentclass{article}
\usepackage{probsoln}
\usepackage{enumitem}
\newcommand{\QA}[2]{%
\begin{onlyproblem}#1\end{onlyproblem}%
\begin{onlysolution}#2\end{onlysolution}}
\begin{defproblem}{prob1}% label
\begin{onlyproblem}% question
Calculate the following:%
\end{onlyproblem}%
\begin{textenum}
\item \QA{$7+2$}{$9$}
\item \QA{$9-9$}{$0$}
\item \QA{$5+5+5$}{$15$}
\end{textenum}
\end{defproblem}
\begin{defproblem}{prob2}% label
\begin{onlyproblem}% question
Solve the following equations:
\end{onlyproblem}%
\begin{textenum}
\item \QA{$x+5=7$}{$x=2$}
\item \QA{$x-5=9$}{$x=14$}
\item \QA{$5x=20$}{$x=4$}
\end{textenum}
\end{defproblem}
\newenvironment{ExerciseList}
{\begin{enumerate}[label={\emph{Exercise \arabic*}},%
ref={\arabic*},wide]
\renewcommand{\labelenumii}{\theenumii)}%
}
{\end{enumerate}}
\newcommand{\exercise}{\item\mbox{}\par}
\begin{document}
\begin{ExerciseList}
\foreachproblem{\exercise\thisproblem}
\end{ExerciseList}
\section*{Solutions}
\showanswers
\begin{ExerciseList}
\foreachsolution{\exercise\thisproblem}
\end{ExerciseList}
\end{document}
O resultado é o mesmo do exemplo anterior.
Editar 2:
Aqui está um método que define e exibe o problema. A etiqueta é gerada automaticamente:
\documentclass{article}
\usepackage{probsoln}
\usepackage{enumitem}
\newcommand{\QA}[2]{%
\begin{onlyproblem}#1\end{onlyproblem}%
\begin{onlysolution}#2\end{onlysolution}}
\newenvironment{ExerciseList}
{\begin{enumerate}[label={\emph{Exercise \arabic*}},%
ref={\arabic*},wide]
\renewcommand{\labelenumii}{\theenumii)}%
}
{\end{enumerate}}
\newcommand{\exercise}{\item\mbox{}\par}
\newcommand{\Exercise}[2]{\exercise
#1\par
\begin{defproblem}{prob\arabic{enumi}}%
\begin{textenum}%
#2%
\end{textenum}%
\end{defproblem}%
\useproblem{prob\arabic{enumi}}%
}
\begin{document}
\begin{ExerciseList}
\Exercise{Calculate the following:}%
{%
\item \QA{$7+2$}{$9$}
\item \QA{$9-9$}{$0$}
\item \QA{$5+5+5$}{$15$}
}%
\Exercise{Solve the following equations:}
{%
\item \QA{$x+5=7$}{$x=2$}
\item \QA{$x-5=9$}{$x=14$}
\item \QA{$5x=20$}{$x=4$}
}
\end{ExerciseList}
\section*{Solutions}
\showanswers
\begin{ExerciseList}
\foreachsolution{\exercise\thisproblem}
\end{ExerciseList}
\end{document}
Responder2
Aqui está uma solução usando o answers
pacote. Você pode mexer na formatação das respostas.
\documentclass[pdftex,12pt]{article}
\usepackage{amsmath}
\usepackage{answers}
\newcommand{\answerFileName}{anexamanswers}
\Newassociation{sol}{Solution}{\answerFileName}
\Opensolutionfile{\answerFileName}
\newenvironment{Exercise}[1]
{\item #1
\begin{enumerate}
}
{
\end{enumerate}
}
\newcommand{\Question}[1]{%
\item #1
}
\begin{document}
\begin{enumerate}
\begin{Exercise}{Calculate the following:}
\Question{$7+2$}
\begin{sol}
$9$
\end{sol}
\Question{$9-9$}
\begin{sol}
$0$
\end{sol}
\end{Exercise}
\begin{Exercise}{Solve the following equations:}
\Question{$x+5=7$}
\begin{sol}
$x=2$
\end{sol}
\Question{$x-5=9$}
% \Answer{$x=14$}
\Question{$5x=20$}
% \Answer{$x=4$}
\end{Exercise}
\end{enumerate}
\Closesolutionfile{\answerFileName}
\newpage
Answers to Exercises:
\input{\answerFileName}
\end{document}
Responder3
Aqui está uma sugestão usando os pacotes exsheets
e tasks
:
\documentclass{article}
\usepackage{exsheets,tasks}
\SetupExSheets{
solution/name=Exercise ,
headings-format=\itshape
}
\begin{document}
\begin{question}
Calculate the following:
\begin{tasks}(3)
\task $7+2$
\task $9-9$
\task $5+5+5$
\end{tasks}
\end{question}
\begin{solution}
\begin{tasks}(3)
\task $9$
\task $0$
\task $15$
\end{tasks}
\end{solution}
\begin{question}
Solve the following equations:
\begin{tasks}(3)
\task $x+5=7$
\task $x-5=9$
\task $5x=20$
\end{tasks}
\end{question}
\begin{solution}
\begin{tasks}(3)
\task $x=2$
\task $x=14$
\task $x=4$
\end{tasks}
\end{solution}
\section*{Solutions}
\printsolutions
\end{document}