问题/解决方案环境

问题/解决方案环境

我正在编写一本教科书和一本配套的解决方案手册。在这本书中,我在每一章的末尾都安排了一系列练习。随着章节和练习数量的增加,我很容易将练习和解决方案的顺序搞混。所以我正在寻找一种简单但有效的方法,让它们始终保持一致的顺序。

我曾经想过,但还不知道如何实现,那就是将每个练习和相应的解决方案放在一个 tex 文件中。然后我可以将该\input文件放在书中和手册中的适当位置,并且(通过尚未确定的机制)只输入练习或解决方案。我还认为我可以为每个章节创建一个单独的“主”tex 文件,该文件依次输入练习/解决方案 tex 文件。然后我只需将该“主”tex 文件输入书中和手册中即可。这样,就不可能混淆顺序了。

在 UNIX 中,我猜测实现这一点的一种方法是使用真正的环境变量,但我不知道这在 LaTeX 中是否可行以及是否合理。

提前感谢您的批评、想法和反馈。

答案1

这是一种可能性(我真的不喜欢这种可能性)——再次- 看起来像广告):我有一个包裹外页 我还没有将其上传到 CTAN,因为它还需要一些测试(非常欢迎反馈)。有了它,手头的任务似乎相当容易。

为每个章节创建一个单独的tex文件,其中包含练习和解决方案。在这些文件中,解决方案直接写在它所属的练习之后。

然后,这些文件将被输入到主书各章的适当位置或提供解决方案的文档中。是否打印练习或解决方案可通过包选项进行选择。

例如,主文件看起来如下:

\documentclass{book}
\usepackage{exsheets}

\SetupExSheets{
  counter-format = ch.qu ,
  counter-within = chapter
}

\begin{document}
\chapter{One}
\section{Exercises}
\input{\jobname-exercises-one}

\chapter{Two}
\section{Exercises}
\input{\jobname-exercises-two}
\end{document}

在此处输入图片描述

练习的文件如下所示:

% this is \jobname-exercises-one.tex
\begin{question}
 The first exercise in chapter one.
\end{question}
\begin{solution}
 The answer to the first exercise in chapter one.
\end{solution}
\begin{question}
 The second exercise in chapter one.
\end{question}
\begin{solution}
 The answer to the second exercise in chapter one.
\end{solution}

第二个文件:

% this is \jobname-exercises-two.tex
\begin{question}
 The first exercise in chapter two.
\end{question}
\begin{solution}
 The answer to the first exercise in chapter two.
\end{solution}
\begin{question}
 The second exercise in chapter two.
\end{question}
\begin{solution}
 The answer to the second exercise in chapter two.
\end{solution}

合适的解决方案文档现在可能如下所示:

\documentclass{article}
\usepackage{exsheets}

\SetupExSheets{
  question/print = false ,
  solution/print = true ,
  counter-format = se.qu ,
  counter-within = section
}

\makeatletter
\@addtoreset{question}{section}
\makeatother

\begin{document}
\section{Solutions to chapter one}
\input{\jobname-exercises-one}

\section{Solutions to chapter one}
\input{\jobname-exercises-two}

\end{document}

在此处输入图片描述

答案2

您可能希望查看包toggle中的命令etoolbox。例如,您可以设置如下内容

\documentclass{article}
\usepackage{etoolbox}

\providetoggle{problem}
\toggletrue{problem}

\providetoggle{solution}
\togglefalse{solution}

\begin{document}

\input{problem_file}

\end{document}

problem_file 将包含类似以下内容的内容

\iftoggle{problem}{Problem statement}{}
\iftoggle{solution}{Solution}{}

相关内容