多次打印包含姓名列表的表格

多次打印包含姓名列表的表格

如何多次打印同一份考试(可能长达多页)并使用不同的学生姓名?

类似的事情已经报道过这里。但是,我希望名称列表仅用换行符分隔(例如从 Google Drive 或 Excel 复制粘贴):

Sam Student
John Doe
Bat Man

答案1

这是除了学生名单之外仅使用一个文件的方法。在示例中,我使用filecontents*环境使其自足。

\begin{filecontents*}{students.lst}
Sam Student
John Doe
Bat Man
\end{filecontents*}

\documentclass{article}
\usepackage{xparse,environ}

\ExplSyntaxOn
\NewDocumentCommand{\printexamtext}{m}
 {
  \ior_open:Nn \g_mappi_student_list_stream { #1 }
  \ior_map_inline:Nn \g_mappi_student_list_stream
   {
    \tl_set:Nn \studentname {##1}
    \mappi_print_exam:
   }
 }
\ior_new:N \g_mappi_student_list_stream
\cs_new_protected:Npn \mappi_print_exam:
 {
  \clearpage
  \setcounter{page}{1}
  \ExamHeader
  \BODY
  \ExamFooter
 }
\ExplSyntaxOff  

\NewEnviron{ExamText}[1]{%
  \printexamtext{#1}%
}

\newcommand{\ExamHeader}{%
  \begin{center}
  \LARGE Linear Algebra -- 2014 -- Fall Session \\[2ex]
  \large \studentname
  \end{center}
  \vspace{2cm}
}

\newcommand{\ExamFooter}{%
  \vfill
  \hrule
  \vspace{2ex}
  \noindent Please, answer all questions\par
}

\begin{document}

\begin{ExamText}{students.lst}
\noindent\textbf{Exercise 1}

Compute the rank of a matrix of your choice.

\bigskip

\noindent\textbf{Exercise 2}

What are the eigenvalues of the identity matrix?

\bigskip

\noindent\textbf{Exercise 3}

Prove that the zero matrix is not invertible.
\end{ExamText}

\end{document}

环境ExamText包含问题,将其输入为普通文档。我拆分了页眉和页脚,将它们放在单独的位置(以便代码重用)。

在此处输入图片描述

xparse并不是真正必要的,它只是使循环外部文件变得更容易。

答案2

厚颜无耻地基于egreg 的回答

我会使用textmerg。结合 和titlingfancyhdr您无需做任何特殊的事情即可获得针对每个学生的试卷定制的考试标题等。enumitem如果需要,使用 可以轻松定制问题的格式。

\begin{filecontents*}{students.lst}
  Sam Student
  John Doe
  Bat Man
\end{filecontents*}

\documentclass{article}
\usepackage{textmerg,titling,fancyhdr,enumitem,kantlipsum}
\newlist{examqns}{enumerate}{1}
\setlist[examqns]{label=Question \arabic*, font=\bfseries, wide, ref=\arabic*}

\begin{document}
  \title{Introduction to Philosophy --- Autumn 2014}
  \date{Date of Examination}
  \pagestyle{fancy}
  \fancyhf{}
  \fancyhf[lh]{\thetitle}
  \fancyhf[cf]{\theauthor}
  \fancyhf[rh]{\thepage}
  \renewcommand{\footrulewidth}{\headrulewidth}

  \Fields{\studentname}
  \Merge{students.lst}{%
    \clearpage% use \cleardoublepage if printing double-sided
    \author{\studentname}
    \maketitle
    \setcounter{page}{1}
    \begin{center}
      \fbox{\parbox{.5\linewidth}{%
          \centering\bfseries
          \large Answer ALL questions.\\
          \normalsize There are \ref{lastone} questions.\\
        }}
    \end{center}
    \bigskip

    \begin{examqns}
        \item Could this examination have been a surprise?
        \item Prove God's existence. (Maximum 250 words)
        \item Why does Russell's barber present a problem?
        \item \label{lastone}Critically evaluate the following passage from Kant:
        \begin{quote}
            \kant[1-3]
        \end{quote}
    \end{examqns}
  }

\end{document}

考试

相关内容