Как набирать подвопросы и соответствующие ответы

Как набирать подвопросы и соответствующие ответы

Я хотел бы набрать упражнения с подвопросами так, чтобы в коде ответ был сразу после каждого подвопроса, но в выводе все ответы были бы в конце. Также я хочу, чтобы и упражнения, и подвопросы автоматически нумеровались. Я знаю, что есть несколько пакетов для набора упражнений (например, 'answers', 'exercise' и 'probsoln'). ​​Я также знаю, что есть тип документа под названием 'exam'.

Мой вопрос: какой пакет подойдет для этого лучше всего и какой код даст результат?

Я хотел бы написать что-то вроде следующего:

\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}

И я хочу, чтобы окончательный документ выглядел примерно так:

Упражнение 1
Рассчитайте следующее:
а) 7+2 б) 9-9 в) 5+5+5

Упражнение 2
Решите следующие уравнения:
а) x+5=7 б) x-5=9 в) 5x=20

Решения:

Упражнение 1
а) 9 б) 0 в) 15

Упражнение 2
а) х+5=7 б) х=14 в) х=4

Код, который я привел выше, — это всего лишь пример. Команды не обязательно должны быть точно такими, как я написал, главное, чтобы структура была похожей.

решение1

С помощью probsolnпакета проблемы можно определять либо в документе, либо во внешнем файле, который можно загрузить с помощью такой команды, как \loadallproblemsили \loadrandomproblems.

Вот простой пример проблем, определенных в документе:

\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}

Это производит

Изображение документа, показывающего проблемы и решения

Форматирование можно изменить. Например, с помощьюenumitemупаковка:

\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}

Это производит:

Изображение полученного документа

Редактировать:

Вот альтернативный вариант, где вы можете написать ответ рядом с вопросом в коде:

\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}

Результат такой же, как в предыдущем примере.

Редактировать 2:

Вот метод, который определяет и отображает проблему. Метка генерируется автоматически:

\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}

решение2

Вот решение с использованием answersпакета. Вы можете повозиться с форматированием ответов.

\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}

введите описание изображения здесь

решение3

Вот предложение с использованием пакетов exsheetsи 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}

введите описание изображения здесь

Связанный контент