管理和包含 SAT 或任何考试的历史问题的巧妙方法?(部分包含?)

管理和包含 SAT 或任何考试的历史问题的巧妙方法?(部分包含?)

假设,我正在为学生准备 SAT(实际上,这是我们国家的一些大型考试,而不是 SAT)编写一些讲义。我有几个.tex文件,例如polynomial.tex,,,,conic sections.tex每个triangular functions.tex文件对应一个章节。同时,“SAT”已经有 10 年或更长时间的测试了。我认为我应该创建几个像下面这样的文件

  1. 2018SAT问题.tex
  2. 2017SAT问题.tex
  3. 2016SAT试题.tex
  4. ...

例如2018SATquestions.tex,我希望文档可以以某种方式构造如下:(当然它不能单独编译)

true or false
\item Can a polynomial be degree $0$?
\item Is $\tan x'=\sec x$?
\item Is $x^2+2y^2=4$ a circle?
...

Fill in blanks
\item How many real roots of $f(x)=x^5+x^3-1$? \rule[..][..]
\item $\sin(120^\circ)=$\rule[..][..]
\item The radius of $x^2+y^2=16$ is \rule[..][..].
...

现在,在我的 中polynomial.tex,当我想包含 SAT 历史问题时,我只需使用命令,如\sat{2018}{torf}{1}\sat{2018TF1}\sat{2018}[tf][1],... 等等。在 中triangular functions.tex,我只需使用命令,如\sat{2018}{finb}{2},等等。

那我该怎么做呢?有没有什么有用的包可以满足这种需要?或者有另一种巧妙的方法来维护测试?PS:我还担心\input{...}(或类似命令)会包含整个 SAT 文件,从而降低编译速度,即使我只想包含一些问题中的一两个问题201xSATquestions.tex。可以避免这样的问题吗?

答案1

当然,我不确定这是否是解决大量问题的好方法,但至少它是有效的。该memory包允许您定义一个类似结构的变量,并在稍后获取其内容。我使用了exam允许简单问题的类,请参阅文档以获得更多选项。我还擅自创建了一个\blank带有可选宽度参数的命令。该类exam已经有一个\fillin[correct anwser][optional width]命令。

梅威瑟:

\documentclass{exam}

\usepackage{filecontents}
\usepackage{memory}

%\newcommand{\blank}[1][1cm]{\rule[-2pt]{#1}{0.4pt}} % Not needed

\begin{filecontents*}{SAT2018questions}
\newdata*{SAT}
\SAT[2018-1]={
\question[6]
True or false
\begin{parts}
    \part Can a polynomial be degree $0$?
    \part Is $\tan x'=\sec x$?
    \part Is $x^2+2y^2=4$ a circle?
\end{parts}
}
\SAT[2018-2]={
\question[15]
Fill in blanks
\begin{parts}
    \part How many real roots of $f(x)=x^5+x^3-1$? \fillin[][15pt]
    \part $\sin(120^\circ)=$ \fillin
    \part The radius of $x^2+y^2=16$ is \fillin[][3cm] 
\end{parts}
}
\end{filecontents*}

\input{SAT2018questions}

\begin{document}
    \begin{questions}
        \SAT[2018-1]
        \SAT[2018-2]
    \end{questions}
\end{document}

结果如下:

在此处输入图片描述

相关内容