我正在使用 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{}%
\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}