因此,我正在创建包含文本段落和编号问题的文档。我一直使用“考试”类来创建这些文档。
但是,我决定设置段落之间的默认间距,并注意到在考试类别中,一旦我开始“问题”环境,就没有段落了。
话虽如此,我计划花费大量时间处理许多文件,而且我有点担心我会后悔使用“考试”课程。
人们在为特定文档选择特定类别时会考虑哪些因素?如果您决定将来修改文档,如何保持最大的灵活性?(我知道这是一个非常广泛的问题)。
答案1
听起来,考试类不仅超出了你的预期,而且还强迫你的格式看起来像你不想要的东西。如果你只想要能够列出问题,可能还有部分问题,那么你只需要设置代码来创建这些环境。这是一个完整的 latex 文件,显示了如何做到这一点:
\documentclass{article}
%--------------------------------------------------------------------
\newcounter{question}
\setcounter{question}{0}
\newenvironment{questions}{%
\list{\thequestion.}%
{%
% We don't say \usecounter because we don't want the counter
% to be reset at the start of the environment:
\def\question{\refstepcounter{question}\item}%
\settowidth{\leftmargin}{10.\hskip\labelsep}%
\labelwidth\leftmargin\advance\labelwidth-\labelsep
}%
}
{%
\endlist
}%
\newcounter{partno}
\renewcommand\thepartno{\alph{partno}}
\newenvironment{parts}{%
\list{(\thepartno)}%
{%
\def\part{\item}%
\usecounter{partno}%
\settowidth{\leftmargin}{(m)\hskip\labelsep}%
\labelwidth\leftmargin\advance\labelwidth-\labelsep
}%
}%
{%
\endlist
}
%--------------------------------------------------------------------
\begin{document}
Here's some text. Here's some text. Here's some text. Here's some
text. Here's some text. Here's some text. Here's some text. Here's
some text. Here's some text. Here's some text. Here's some
text. Here's some text. Here's some text. Here's some text.
\begin{questions}
\question \label{first} Why is there air?
\question \label{second} What if there were no air?
\begin{parts}
\part \label{balloon} Describe the effect on the balloon industry.
\part \label{aircraft} Describe the effect on the aircraft industry.
\end{parts}
\end{questions}
That was question~\ref{first} and question~\ref{second}.
Question~\ref{second} had parts \ref{balloon} and \ref{aircraft}.
Here's some text. Here's some text. Here's some text. Here's some
text. Here's some text. Here's some text. Here's some text. Here's
some text. Here's some text. Here's some text. Here's some
text. Here's some text. Here's some text. Here's some text.
\begin{questions}
\question \label{grant} Who's buried in Grant's tomb?
\question \label{another} What was the color of George Washington's
white horse?
\question \label{yetanother} What was the color of the bus driver's
eyes?
\end{questions}
That was questions~\ref{grant} through \ref{yetanother}.
\end{document}
您会注意到,此问题环境不会在您每次进入时重置问题计数器。也就是说,在您列出一些问题后,您应该结束问题环境。当您稍后想要列出更多问题时,您创建的下一个问题环境将从最后一个问题停止的位置继续对问题进行编号。这样,问题列表的格式就不会干扰各个问题集合之间材料的格式。如果您想下一个问题环境要再次从问题 1 开始,您应该\setcounter{question}{0}
在之前插入\begin{questions}
。
答案2
这有点不像答案,但其基本观点可能有用。
在我能力范围内,我不选择要使用的类别。我的大部分文档都是打算在期刊上发表的文章。当我开始写文章时,我通常不会考虑特定的期刊。但是当我提交文章时,我经常发现我选择的期刊希望文章使用其“内部风格”,通常以类别文件的形式。因此,如果我的文章很大程度上依赖于某个特定的类别,那么我将不得不费很大劲地重新格式化它以适应新的类别。
事实上,我已经厌倦了这个过程,因此我编写了一个“包装器”类,它可以轻松地交换各种日志类,同时保持我的文档不变。
所以我的建议是:如果你以后有机会想要改变类,那么尽量不要依赖类提供的任何功能。如果你发现自己需要某个类提供的某些特定功能,那么当然要使用那个类。但是,需要那个功能就足以让你做出选择(并坚持下去),也足以让你以后不改变主意。换句话说,为一个类做出选择积极的理由是可以的,但仅仅因为你觉得应该这么做就做出选择是不可以的。
(在我理想的世界中,类不会提供任何功能 - 这些功能将由包提供。类更像 CSS 样式文件,只会改变事物的外观。当我在做梦时,我也想要一匹小马。)