我的问题源于此处显示的解决方案的改编: 根据文档中的命令生成项目列表和表格
这个想法是将给定文档的评论汇总到一个表格中。由于表格位于整个文档系列的首页上,因此我正在寻找一种自动化的方法。
在我的文档类中:
\usepackage{datatool}
\usepackage{booktabs}
\usepackage{longtable}
\DTLnewdb{docreview}
\newcommand{\review}[6]{%
\DTLnewrow{docreview}%
\DTLnewdbentry{docreview}{Date}{#1}%
\DTLnewdbentry{docreview}{Redacteur}{#2}%
\DTLnewdbentry{docreview}{Verificateur}{#3}%
\DTLnewdbentry{docreview}{Approbateur}{#4}%
\DTLnewdbentry{docreview}{Modification}{#5}%
\DTLnewdbentry{docreview}{Indice}{#6}%
}
\renewcommand{\maketitle}{
[...]
\begin{tabular}{|c|c|c|c|c|c|c|} \hline
Date & Redacteur & Verificateur & Approbateur & Visa de l'approbateur & Modification & Indice \\ \hline\hline
\DTLforeach{docreview}{%
\Date=Date,\Redacteur=Redacteur,\Verificateur=Verificateur,\Approbateur=Approbateur,\Modification=Modification, \Indice=Indice}{%
\Date & \Redacteur & \Verificateur & \Approbateur & & \Modification & \Indice \\\hline}
\end{tabular}
}
在我的文档中:
\begin{document}
\review{1 janvier 1970}{Me}{Verif.}{Approb.}{Epoch}{0}
\review{22 avril 2019}{Me}{Verif.}{Approb.}{Mod.}{0}
\maketitle
\end{document}
除了一个我无法弄清楚的细节外,该解决方案非常有效。生成的表格显示前两个垂直条(第一列限制),并且仅显示继续附加行的这两个垂直条...
有人有什么主意吗 ?
多谢
答案1
最后一句\\\hline
不应该在循环内部,而应该在循环之后,这样循环的代码就不会触发新行的创建:
\documentclass{article}
\usepackage{datatool}
\usepackage{booktabs}
\usepackage{longtable}
\DTLnewdb{docreview}
\newcommand{\review}[6]{%
\DTLnewrow{docreview}%
\DTLnewdbentry{docreview}{Date}{#1}%
\DTLnewdbentry{docreview}{Redacteur}{#2}%
\DTLnewdbentry{docreview}{Verificateur}{#3}%
\DTLnewdbentry{docreview}{Approbateur}{#4}%
\DTLnewdbentry{docreview}{Modification}{#5}%
\DTLnewdbentry{docreview}{Indice}{#6}%
}
\renewcommand{\maketitle}{
[...]
\begin{tabular}{|c|c|c|c|c|c|c|} \hline
Date & Redacteur & Verificateur & Approbateur & Visa de l'approbateur & Modification & Indice \\ \hline\hline
\DTLforeach{docreview}{%
\Date=Date,\Redacteur=Redacteur,\Verificateur=Verificateur,\Approbateur=Approbateur,\Modification=Modification, \Indice=Indice}{%
\Date & \Redacteur & \Verificateur & \Approbateur & & \Modification & \Indice
\DTLiflastrow{}{\\\hline}} %<-------
\\\hline %<---------
\end{tabular}
}
\begin{document}
\review{1 janvier 1970}{Me}{Verif.}{Approb.}{Epoch}{0}
\review{22 avril 2019}{Me}{Verif.}{Approb.}{Mod.}{0}
\maketitle
\end{document}