我有一个名为 \task 的宏,它以特定方式格式化文本。现在对于每个任务,我必须将任务名称添加为一列,并在其下方添加一个空单元格。
那么我该如何实现以下目标呢?
\documentclass{article}
\newcommand{\task}[1]{\par \bigskip \noindent {\bf{Task {#1}}}}
\newcommand{\makeTasktable}{%
\begin{tabular}{*{10}{|c}}
% For every \task do:
% echo taskname &
% done
1.1 & 1.2 & 1.3 \\
\hline
% For every \task do:
% echo &
% done
& &
\end{tabular}
}
\begin{document}
\makeTasktable
\task{1.1} Foo
\task{1.2} Bar
\task{1.3} Baz
\end{document}
答案1
使用包exsheets
。成绩表甚至作为示例文件,复制/粘贴即可完成。
\documentclass{article}
\usepackage{exsheets}
\SetupExSheets{
counter-format=se.qu,
counter-within=section,
headings=runin,
}
\DeclareTranslation{english}{exsheets-exercise-name}{Task}
\begin{document}
\section{Capybara}
\begin{question}{2}
Foo
\end{question}
\begin{question}{6}
Bar
\end{question}
\section{Wombat}
\begin{question}{1}
Baz
\end{question}
\bigskip\noindent
\begin{tabular}{|l|*{\numberofquestions}{c|}c|}\hline
Task & \ForEachQuestion{\QuestionNumber{#1}\iflastquestion{}{&}} & Total \\ \hline
Points & \ForEachQuestion{\GetQuestionProperty{points}{#1}\iflastquestion{}{&}} & \pointssum* \\ \hline
Reached & \ForEachQuestion{\iflastquestion{}{&}} & \\ \hline
\end{tabular}
\end{document}