使用 LaTeX 进行考试(不是考试课)

使用 LaTeX 进行考试(不是考试课)

我想用 LaTeX 做考试。我想使用课程srcartcl,考试本身也已准备就绪。但我喜欢用数字作为学生的唯一标识符。因此,对于 60 名学生,我喜欢在文档中定义的位置写上 01、02、03……直到 60。其余部分当然保持不变。这能以某种方式实现吗?

答案1

更好地了解考试的格式可能会有所帮助。但我会尝试一下。我在一个非常拥挤的教室里上课。因此,当我管理考试和测验时,我会使用多个版本的测验。这写起来很麻烦。但有办法简化这个过程。

首先,我将前言和 LaTeX 命令定义与文档正文分开。因此主文件我通过 LaTeX 进行的处理非常简单:

\documentclass{article}
\input{preamble}
\begin{document}
\input{quizbody}
\end{document}

然后我可以发出版本控制命令并重复输入测验,如下所示:

\documentclass{article}
\input{preamble}
\begin{document}

\setversion{a}
\input{quizbody}
\clearpage

\setversion{b}
\input{quizbody}
\clearpage

\setversion{c}
\input{quizbody}
\clearpage

\end{document}

其机制可能比你文档中需要的要复杂一些。因此,多了解一些有关如何实施考试的知识可能会很有用。但以下是一些基本知识:

以下是一个例子:

序言:文件句柄序言.tex

这是我加载所有包的地方,也是定义我将在整个文档中使用的所有计数器和命令的地方。

\usepackage{multido}
\usepackage{lipsum}
%% student specific commands
\newcounter{studentidcounter}
\setcounter{studentidcounter}{1}
\newcommand{\studentid}{\thestudentidcounter}
%% formatting the header and footer
\usepackage{fancyhdr}
\pagestyle{fancy}
\rhead{Student ID: \texttt{\large\studentid}}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}
%% formatting for quiz questions
\newcounter{quizproblemcounter}
\newcommand{\quizproblem}{\vspace{2ex}\par\stepcounter{quizproblemcounter}%
                          \noindent\textbf{\sffamily QP\thequizproblemcounter.}%
                          \hspace*{1em}}

测验文件:文件句柄:quizbody.tex

这是文档的内容。这里没有定义任何新命令。也没有定义任何新计数器。

\quizproblem \lipsum[1]

\quizproblem \lipsum[2]

\quizproblem \lipsum[3]

\quizproblem \lipsum[4]

\quizproblem \lipsum[5]

\quizproblem \lipsum[6]

\quizproblem \lipsum[7]

\quizproblem \lipsum[8]

\quizproblem \lipsum[9]

主文件: 文件句柄——由你决定

在这里我只需输入我需要的各种文件,并且只执行格式化下一版本的测验之间必要的操作。

\documentclass{article}
\input{preamble}
\begin{document}

\multido{\nx=1+1}{60}{  
    \input{quizbody}    
    \clearpage
    \stepcounter{studentidcounter}%
    \setcounter{page}{1}%
    \setcounter{quizproblemcounter}{0}%
}
\end{document}

编辑

重新格式化学生 ID:

\newcommand{\studentid}{%
        \ifnum\thestudentidcounter<10\relax%
        0\thestudentidcounter\else%
        \thestudentidcounter\fi}

相关内容