一个文件中包含多个检查

一个文件中包含多个检查

我需要创建一个由 A 和 B 两部分组成的考试。根据这两部分,我需要创建三个版本:一个包含 A 和 B 部分,一个仅包含 A 部分,一个仅包含 B 部分。每个版本都需要有一个自定义标题页、自己的页面和问题编号以及一个积分表。

我最终想要得到的是一个具有以下结构的单个 PDF 文件:

  • A + B 的标题页(第 1 页)
  • 从 A 开始编号为 1 到 n 的问题
  • 来自 B 的问题编号为 n + 1 至 m
  • A 的标题页(重新开始页面和问题编号,将分数总和设置回 0)
  • 从 A 开始编号为 1 到 n 的问题
  • B 的标题页(重新开始页面和问题编号,将分数总和设置回 0)
  • B 中编号为 1 至 m 的问题

目前,我使用以下方法:一个文件包含来自 A 的问题;一个文件包含来自 B 的问题。主文件包含这些文件,并在适当的时候使用自定义计数器重新开始页面/问题编号。这种方法行得通,但如果我可以使用类中的某些功能exam(例如,可选地显示解决方案、相对于页面高度的答案框),那就太好了。我知道这些功能可以手动实现,但这很耗时,而且结果可能不如使用维护良好、文档齐全的外部包/类那么用户友好。

这最终让我想到了我的问题:可以使用考试类(特别是在一个文件中包含多个分数总和)或不同的包来实现吗?

编辑:使用评论中链接的问题的答案,我能够非常接近我需要的内容。我现在有三个文件:

a.tex

\question A's first question
\begin{parts}
  \part[1] part 1
  \part[2] part 2
  \part 
  \begin{subparts}
    \subpart[1] 3a
    \subpart[2] 3b
  \end{subparts}
\end{parts}

\question[2] A's second question

b.tex

\question B's first question
\begin{parts}
  \part[2] part b1
  \part[2] part b2
\end{parts}

\question[1] B's second question
\question[2] B's third question

main.tex

    \documentclass[a5paper, addpoints]{exam}

\pointsinrightmargin

\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage[english]{babel}

\begin{document}  
  \begin{questions}
    \begingradingrange{AB}
      \uplevel{
        % Title page for A + B
        \partialgradetable{AB}[h][questions]
      }

      \input{a.tex}
      \input{b.tex}
    \endgradingrange{AB}
    \clearpage
    \setcounter{page}{1}

    \begingradingrange{onlyA}
      \uplevel{
        % Title page for A
        \partialgradetable{onlyA}[h][questions]
      }
      \input{a.tex}
    \endgradingrange{onlyA}
    \clearpage
    \setcounter{page}{1}

    \begingradingrange{onlyB}
      \uplevel{
        % Title page for B
        \partialgradetable{onlyB}[h][questions]
      }
      \input{b.tex}
    \endgradingrange{onlyB}
    \clearpage
  \end{questions}
\end{document}

编译后main.tex会创建三个页面:

第 1 页

第2页

第 3 页

第一页正是我想要的样子。但是,第二页和第三页的问题编号(尤其是成绩表中的问题编号)必须再次从问题 1 开始。

我希望这能解答我的问题。

答案1

这是一个解决方案

\documentclass[a5paper, addpoints]{exam}

\pointsinrightmargin

\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage[english]{babel}
%---------------------------------------------------
\newcounter{mtexo}
\newcommand{\setpart}{%
\setcounter{page}{1}\setcounter{mtexo}{0}%
\renewcommand{\thequestion}{\themtexo}}
%---------------------------------------------------
\begin{document}  
  \begin{questions}
%---------------------------------------------------
\let\mtquestion\question
\def\question{\refstepcounter{mtexo}\mtquestion}
%---------------------------------------------------
    \begingradingrange{AB}
      \uplevel{
        % Title page for A + B
        \partialgradetable{AB}[h][questions]
      }

      \input{a.tex}
      \input{b.tex}
    \endgradingrange{AB}
    \clearpage
    \setpart%\setcounter{page}{1}

    \begingradingrange{onlyA}
      \uplevel{
        % Title page for A
        \partialgradetable{onlyA}[h][questions]
      }
      \input{a.tex}
    \endgradingrange{onlyA}
    \clearpage
    \setpart%\setcounter{page}{1}

    \begingradingrange{onlyB}
      \uplevel{
        % Title page for B
        \partialgradetable{onlyB}[h][questions]
      }
      \input{b.tex}
    \endgradingrange{onlyB}
    \clearpage
  \end{questions}
\end{document}

您可以将 \clearpage 命令添加到 \setpart

相关内容