我发现答案软件包使用起来有点困难,文档对于我这样的新手来说也不是那么容易理解。我不确定,但有时似乎涉及多个文件,特别是我不理解\Newassociation
,并谈到“符号文件句柄”。这听起来像是编程术语,我不明白。有人能用不同于手册的语言解释 \Newassociation 的功能吗?还请简单概述一下软件包的工作原理。
这项工作的替代方案,锻炼和普罗布索恩,也不是特别容易理解。但如果您觉得这两个包更容易学习,请告诉我,我会考虑使用更简单的替代方案。
补充:不幸的是,这些软件包的文档没有包含实际描述或输出的视觉示例,因此我不确定应用了什么格式,尤其是当我似乎无法使其工作时。我认为文档最好包含输出描述,尤其是视觉描述。我也非常欣赏试图降低进入 LaTeX 世界的门槛的理念,所以也许软件包作者会善意考虑这个反馈并可能将其付诸实施。我认为,当它注定会变得复杂时,包含初学者版本的文档通常是一种很好的做法,就像 LaTeX 世界中的一些软件包一样。
答案1
我同意这个软件包的文档answers
有点过于简洁。我觉得文档并不exercise
难懂;它可以做很多事情,但我认为文档写得相当好。我从未使用过,probsoln
所以我不会对此发表进一步的评论。
由于您具体询问了该 answers
软件包,因此我尝试解释该软件包,并至少澄清文档中给出的简单示例。
首先,基本命令\Newassociation{xxx}{yyy}{zzz}
执行以下操作:
- 它创建了一个环境
{xxx}
,用于文档中问题本身的解决方案。这个环境通常不是[nosolutionfiles]
除非在加载包时选择了该选项,否则不会显示。 - 它创建了一个环境
{yyy}
,该环境将用于展示解决方案。这些解决方案被写入单独的文件(或多个文件),然后可以在稍后的位置输入到您的文档中(例如,在章节末尾或整本书的末尾)。 - 它根据 为解决方案文件创建文件命名模式
zzz
。要么使用单个文件(在这种情况下它将是zzz.tex
),要么使用多个文件,在这种情况下,zzz
它充当一种标签,用于标识解决方案的类型,并且文件名是明确给出的。
由于xxx
、yyy
和zzz
用作环境/宏名称的一部分,因此它们只能包含字母,因为这些是 TeX 中多字符宏名称的唯一有效字符。与其他宏名称一样,它们区分大小写(Xxx
≠ xxx
)。此外,您应确保它们不会与文档中可能存在的现有环境冲突。
在文档中,有三个示例文档 ( ansexam{1|2|3}.tex
) 展示了其实际工作原理。我在这里选取了一个简单的示例 ( ansexam1.tex
),并对其进行了一些注释。(在 TeXLive 发行版中,这些文件可以在 中找到/usr/local/texlive/2010/texmf-dist/doc/latex/answers/
)。
\documentclass[12pt,a4paper]{article}
% First we load the package.
\usepackage{answers}
% Now we set up a solution set.
% The environment that marks solutions within exercises is {sol}.
% The environment that marks solutions to be displayed is {Solution}
% The solution file type is "ans".
\Newassociation{sol}{Solution}{ans}
% Now we set up a theorem-like environment for exercises (this is)
% standard LaTeX; you could also use any of the more sophisticated
% theorem packages to do this.
\newtheorem{ex}{Exercise}
\begin{document}
% The next command opens a file to store the solutions. Without the second
% argument, the file would be called `ans.tex`. With the second argument
% the file is called `ans1.tex` and it is of the "ans" type.
\Opensolutionfile{ans}[ans1]
% Now we write our problems, and for each problem we write its solution into the
% "sol" environment. The solutions will not be displayed here.
\section{Problems}
\begin{ex}
First exercise
\begin{sol}
First solution.
\end{sol}
\end{ex}
\begin{ex}
Second exercise
\begin{sol}
Second solution.
\end{sol}
\end{ex}
% Now that we are done with our exercises and our solutions,
% we close the solution file
%
\Closesolutionfile{ans}
% Now our document has created a file called "ans1.tex" which contains a bunch of
% "Solution" environments, one for each "sol" environment that we put into the
% exercises. This file can now be \input back into another place in the document,
% here in the section called "Solutions".
\section{Solutions}
\input{ans1}
\end{document}
如果你运行该文档,你会发现它创建了一个ans1.tex
如下所示的文件:
\begin{Solution}{1}
First solution.
\end{Solution}
\begin{Solution}{2}
Second solution.
\end{Solution}
环境Solution
由命令设置\Newassociation
。它有一些基本格式,您可以根据需要更改它们,可以使用包提供的钩子,也可以\renewenvironment
在发出\Newassociation
命令后使用。
例如,有一个钩子\solutionstyle
用于格式化每个解决方案的标签。它最初设置为\bfseries
,因此解决方案环境会产生:
1第一个解决方案
2第二种解决方案
您可以按如下方式重新定义它:
\renewcommand{\solutionstyle}[1]{\bfseries Answer to Exercise #1 }
现在您的解决方案将显示为:
练习 1 的答案第一个解决方案
练习 2 的答案第二种解决方案
yyy
对于使用命令参数创建的任何环境,都可以进行更复杂的格式设置\Newassociation
。有两个钩子,\preyyy
和\postyyy
(在此示例中,这将是\preSolution
和\postSolution
。)它们必须由您使用创建\newcommand
,并将根据需要添加到输出解决方案的前面或后面。例如,如果您希望每个解决方案都以项目符号结尾,则可以使用:
\newcommand\postSolution{\hfill\textbullet}
这将导致在其自己的行上出现右对齐的项目符号(不好看,但只是一个例子。)
如果您希望您的解决方案格式更加精美,您可以\renewenvironment
按照您喜欢的方式定义环境。