如何在书籍类别中加入考试类别功能

如何在书籍类别中加入考试类别功能

我目前正在使用包含三个部分的类来编写笔记book,一个用于讲师笔记,一个用于我自己的笔记,一个用于练习问题。我喜欢exam用于格式化问题的类,但我希望使用书籍类来进行所有格式化。有没有办法将环境集成到这个书籍类中,而不是仅仅从我的文档/新包中question复制所需的部分?exam.clsbook.cls

\documentclass{book} % I want it formatted like a book
%\documentclass[answers]{exam} % But have questions formatted like exam

\begin{document}
\title{My Revision Book}
\maketitle

\part{Notes}

% 'normal' LaTeX

\part{Practice questions/past exam papers}
\begin{questions}
\question
How long is a piece of string

\begin{solution}
This long $\leftarrow\rightarrow$ (not to scale).
\end{solution}
\end{questions}

\end{document}

答案1

如果您希望questionsolution环境正常运行确切地就像他们做的那样exam文档类,那么您就需要从中复制相关代码exam.cls

但是,如果你只是想要一些看起来类似的东西,那么你可以定义自己的环境,也许像下面这样,它使用enumitem做艰苦的工作:

\newlist{questions}{enumerate}{3}
\setlist[questions]{label=\arabic*.}
\newcommand{\question}{\item}

类似地,你可以定义自己的solution环境:

\newenvironment{solution}{ {\bfseries Solution}:}{}

当然,你也可以使用theorem包来获得更多的冒险精神,例如amsthm如果您想要更多格式。

最后,另一个想法是简单地pdf使用pdfpages,在这种情况下您根本不需要担心这些环境!

以下是完整的 MWE 构建内容:

\documentclass{book} % I want it formatted like a book
%\documentclass[answers]{exam} % But have questions formatted like exam
\usepackage{enumitem}

\newlist{questions}{enumerate}{3}
\setlist[questions]{label=\arabic*.}
\newcommand{\question}{\item}

\newenvironment{solution}{ {\bfseries Solution}:}{}

\begin{document}
\title{My Revision Book}
\maketitle

\part{Notes}

% 'normal' LaTeX

\part{Practice questions/past exam papers}
\begin{questions}
\question
How long is a piece of string

\begin{solution}
This long $\leftarrow\rightarrow$ (not to scale).
\end{solution}
\end{questions}

\end{document}

相关内容