コマンドでテーブル列を増やす

コマンドでテーブル列を増やす

テキストを特定の方法でフォーマットする \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。成績表はサンプルファイルとしても提供されており、コピー/貼り付けするだけで完了します。

hsnエクスシート

\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}

関連情報