在 xsim 中拆分成绩表

在 xsim 中拆分成绩表

我正在使用 great xsim-package 在工作中创建一个新的考试模板。

到目前为止,我有以下设置:

我创建了两种练习类型,一种用于考试的第一部分(question),另一种用于考试的其余部分(exercise)。结构如下:

\documentclass[chapterprefix]{scrreprt}
\usepackage{scrlayer-scrpage}
\usepackage[]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\usepackage[verbose]{xsim}


% Chapter-Format
\setkomafont{chapterprefix}{\Huge\sffamily\bfseries}
\setkomafont{chapter}{\LARGE\sffamily\mdseries}
\renewcommand*\chapterformat{
    Aufgabe~\thechapter
}

\xsimsetup{
    solution/print=true
}

\DeclareExerciseType{question}{
    exercise-env = question,
    solution-env = answer,
    exercise-name = Frage,
    solution-name =  \XSIMtranslate{solution},
    exercise-template = default,
    solution-template = default
}

\SetExerciseParameters{exercise}{
    exercise-name = Aufgabe,
    exercise-template = default,
    counter = section
}

\begin{document}



\part*{Exam 2017}

    \section*{Question Section}
    \gradingtable[template=default,type=question]

    \section*{Calculations}
    \gradingtable[template=default,type=exercise]

    \chapter{Question Section}

    \begin{question}
        Die Frage lautet so
    \end{question}

    \begin{solution}
        \blank{Die Lösung ist 3}
    \end{solution}

    \begin{question}
        Die Frage lautet so
    \end{question}

    \begin{solution}
        \blank{Die Lösung ist 3}
    \end{solution}

    \begin{question}
        Die Frage lautet so
    \end{question}

    \begin{solution}
        \blank{Die Lösung ist 3}
    \end{solution}


    \chapter{First Big Exercise}

    Description.

    \begin{exercise}
        Wir befinden uns im Jahre 50 v.Chr. Ganz Gallien ist von den Römern besetzt... Ganz Gallien?
    \end{exercise}

    \begin{exercise}
        Wir befinden uns im Jahre 50 v.Chr. Ganz Gallien ist von den Römern besetzt... Ganz Gallien?
    \end{exercise}

    \begin{exercise}
        Wir befinden uns im Jahre 50 v.Chr. Ganz Gallien ist von den Römern besetzt... Ganz Gallien?
    \end{exercise}

    \begin{exercise}
        Wir befinden uns im Jahre 50 v.Chr. Ganz Gallien ist von den Römern besetzt... Ganz Gallien?
    \end{exercise}

    \chapter{Second Main Exercise}

    Decription.

    \begin{exercise}
        Wir befinden uns im Jahre 50 v.Chr. Ganz Gallien ist von den Römern besetzt... Ganz Gallien?
    \end{exercise}

    \begin{exercise}
        Wir befinden uns im Jahre 50 v.Chr. Ganz Gallien ist von den Römern besetzt... Ganz Gallien?
    \end{exercise}

    \begin{exercise}
        Wir befinden uns im Jahre 50 v.Chr. Ganz Gallien ist von den Römern besetzt... Ganz Gallien?
    \end{exercise}

    \begin{exercise}
        Wir befinden uns im Jahre 50 v.Chr. Ganz Gallien ist von den Römern besetzt... Ganz Gallien?
    \end{exercise}

    \chapter{Third Big Exercise}

    Description.

    \begin{exercise}
        Wir befinden uns im Jahre 50 v.Chr. Ganz Gallien ist von den Römern besetzt... Ganz Gallien?
    \end{exercise}

    \begin{exercise}
        Wir befinden uns im Jahre 50 v.Chr. Ganz Gallien ist von den Römern besetzt... Ganz Gallien?
    \end{exercise}

\end{document}

-environmentsexercise使用section-counter 将所有问题分组到一个章节中。

问题:是否可以为包含所含问题的每章创建评分表?到目前为止,我只能为每种练习类型(问题和练习)创建两个评分表。

基本上,我只需要将类型“ ”的表拆分exercise成多个表,因为单个表太长或太宽。

有任何想法吗?

答案1

也许类似于以下内容。下面定义的模板per-chapter依赖于

  • \chapternumber定义为要打印评级表的章节的值,并且
  • type给予的选择\gradingtable

用法如下:

\def\chapternumber{2}
\gradingtable[type=exercise,template=per-chapter]

代码:

\documentclass{report}
\usepackage{xsim}

\SetExerciseParameter{exercise}{counter-within}{chapter}

\newcommand\chapternumber{1}

\DeclareExerciseTableTemplate{per-chapter}{%
  \def\numberofcolumns{0}%
  % build top row:
  \XSIMputright\ExerciseTableCode{%
    \toprule
    \XSIMmixedcase{\GetExerciseParameter{exercise-name}}%
  }
  \ForEachUsedExerciseByType{%
    \XSIMifeqTF{#1}{\ExerciseTableType{#1}}{%
      \def\ExerciseID{#2}%
      \XSIMifeqTF{\GetExerciseProperty{chapter-value}}{\chapternumber}{%
        \XSIMputright\ExerciseTableCode{&#3}%
        \edef\numberofcolumns{\numexpr\numberofcolumns+1\relax}%
      }{}%
    }{}%
  }%
  % finish row and build row of points:
  \XSIMputright\ExerciseTableCode{%
     \\ \midrule \XSIMmixedcase{\XSIMtranslate{points}}%
  }%
  \ForEachUsedExerciseByType{%
    \XSIMifeqTF{#1}{\ExerciseTableType{#1}}{%
      \def\ExerciseID{#2}%
      \XSIMifeqTF{\GetExerciseProperty{chapter-value}}{\chapternumber}{%
        \XSIMputright\ExerciseTableCode{& \XSIMifblankTF{#5}{\printgoal{0}}{\printgoal{#5}}}%
      }{}%
    }{}%
  }%
  % finish row and build empty row:
  \XSIMputright\ExerciseTableCode{%
    \\ \midrule \XSIMtranslate{reached}%
  }%
  \ForEachUsedExerciseByType{%
    \XSIMifeqTF{#1}{\ExerciseTableType{#1}}{%
      \def\ExerciseID{#2}%
      \XSIMifeqTF{\GetExerciseProperty{chapter-value}}{\chapternumber}{%
        \XSIMputright\ExerciseTableCode{&}%
      }{}%
    }{}%
  }%
  % finish up table:
  \XSIMputright\ExerciseTableCode{\\\bottomrule}
  % print table:
  \begin{tabular}{l*{\numberofcolumns}{c}}
     \ExerciseTableCode
  \end{tabular}%
}

\begin{document}

\chapter{Exercises}

\begin{exercise}[points=3]
\end{exercise}

\begin{exercise}[points=4]
\end{exercise}

\chapter{Questions}

\begin{exercise}[points=5]
\end{exercise}

\begin{exercise}[points=2]
\end{exercise}

\chapter{Grading Tables}

\section{Grading Table of Chapter 1}
\def\chapternumber{1}
\gradingtable[type=exercise,template=per-chapter]

\section{Grading Table of Chapter 2}
\def\chapternumber{2}
\gradingtable[type=exercise,template=per-chapter]

\end{document}

在此处输入图片描述

相关内容