使用 exsheets 包在每个子问题后显示解决方案

使用 exsheets 包在每个子问题后显示解决方案

我有一份scrbook包含章节和节的文档,每个节包含一组问题 + 解决方案(使用exsheets包,每个节的编号都重置;请参阅下面的 MWE)。每个问题都有一组子问题,由于子问题的数量有时非常大,我想在子问题之后立即打印解决方案(而不是在每个问题之后打印所有解决方案)。我该怎么做?下面的 MWE 在每个问题之后打印解决方案。

PS 我使用enumerate而不是tasks来创建子问题,因为该tasks包给我丢失浮点数错误。

\documentclass{scrbook}
\usepackage[counter-within = section, counter-format=ch.se.qu]{exsheets}
\usepackage{enumitem}
\SetupExSheets{solution/print=true}

\begin{document}
\chapter{first chapter}
   first chapter
\section{first section}
   first section of first chapter\\

   \begin{question}
      first question
      \begin{enumerate}[label=\alph*)]
         \item first subquestion
         \item second subquestion
      \end{enumerate}
   \end{question}

   \begin{solution}
      \begin{enumerate}[label=\alph*)]
         \item solution to first subquestion
         \item solution to second subquestion
      \end{enumerate}
   \end{solution}

   \begin{question}
       second question
       \begin{enumerate}[label=\alph*)]
           \item first subquestion
           \item second subquestion
       \end{enumerate}
   \end{question}

   \begin{solution}
   \begin{enumerate}[label=\alph*)]
         \item solution to first subquestion
         \item solution to second subquestion
      \end{enumerate}
   \end{solution}
\end{document} 

答案1

一种可能性——我现在能想到的唯一一种——是使用\PrintSolutionT(手册第 11 节中提到,但那里的解释是错误的……)。

\PrintSolutionT{<true code>}及其兄弟\PrintSolutionTF{<true code>}{<false code>}\PrintSolutionF{<false code>}检查选项是否solution/print已设置为 true 或 false,并将相应的代码保留在输入流中。相应的代码将不会被保存(显然),也无法调用,\printsolutions但如果我理解正确的话,这不是你想要的。

\documentclass{scrbook}
\usepackage[counter-within = section, counter-format=ch.se.qu]{exsheets}
\usepackage{enumitem}
\SetupExSheets{solution/print=true}
% or \SetupExSheets{solution/print=false} to hide the answers

\begin{document}
\chapter{first chapter}
first chapter

\section{first section}
first section of first chapter

\begin{question}
  first question
  \begin{enumerate}[label=\alph*)]
    \item first subquestion
    \PrintSolutionsT{\par\emph{solution to first subquestion}}
    \item second subquestion
    \PrintSolutionsT{\par\emph{solution to second subquestion}}
  \end{enumerate}
\end{question}

\begin{question}
  second question
  \begin{enumerate}[label=\alph*)]
    \item first subquestion
    \PrintSolutionsT{\par\emph{solution to first subquestion}}
    \item second subquestion
    \PrintSolutionsT{\par\emph{solution to second subquestion}}
  \end{enumerate}
\end{question}

\end{document} 

关于你的 PS:你不能在tasks环境中使用浮点数。原因与脚注在里面不起作用tasks。但tasks它(也从来不是)旨在取代enumerate。在我看来,tasks只有当您想要一个包含两列或更多列的列表时,列表才有意义。

相关内容