diff --git a/base/proposal.cls b/base/proposal.cls index 3290d6f..73c1b57 100644 --- a/base/proposal.cls +++ b/base/proposal.cls @@ -386,62 +386,27 @@ \newcounter{milestone} \define@key{milestone}{id}{\gdef\mile@id{#1}} \define@key{milestone}{month}{\gdef\mile@month{#1}} -\define@key{milestone}{verif}{\gdef\mile@verif{#1}} \newcommand\milestone[3][]{% \ifdelivs% \setkeys{milestone}{#1}\stepcounter{milestone}% \pdata@def{mile}\mile@id{label}{\milestone@label{\themilestone}}% \pdata@def{mile}\mile@id{month}{\mile@month}% -\pdata@def{mile}\mile@id{verif}{\mile@verif}% \pdata@def{mile}\mile@id{title}{#2}% \pdata@def{mile}\mile@id{description}{#3}% \@ifundefined{mile@stones}{\xdef\mile@stones{\mile@id}}{\xdef\mile@stones{\mile@stones,\mile@id}}% \@milestone{\mile@id}{#2}{#3}% presentation \else\deliv@error\fi} \newcommand\@milestone[3]{% id, title, description -\item \textbf{Milestone \pdataref{mile}{#1}{label} (Month \pdataref{mile}\mile@id{month}) +\item \textbf{\miles@legend@milestone \pdataref{mile}{#1}{label} (\miles@legend@month \pdataref{mile}\mile@id{month}) \textbf{#2}} #3} +\newcommand\miles@legend@month{Month} +\newcommand\miles@legend@milestone{Milestone} \newenvironment{milestones}% {\ifdelivs\begin{@milestones}\else\deliv@error\fi} {\ifdelivs\pdata@def{all}{mile}{ids}{\mile@stones}% \pdata@def{all}{mile}{count}{\themilestone}% \end{@milestones}\fi} \newenvironment{@milestones}{\begin{enumerate}}{\end{enumerate}} -\newcommand\milestonetable{% -{\gdef\mst@lines{}%initialize -\let\tabularnewline\relax\let\hline\relax% so they -\let\textbf\relax\let\emph\relax% do not bother us -\edef\@@miles{\pdataref{all}{mile}{ids}} -\@for\@I:=\@@miles\do{ -\edef\@delivs{\pdataref@safe{mile}{\@I}{delivs}}% -\def\@@delivs{} -\@for\@J:=\@delivs\do{\xdef\@@delivs{\@@delivs\ \pdataref{deliv}\@J{label}}} -\def\@@line{ -\textbf{\pdataref{mile}\@I{label}}& -\emph{\pdataref{mile}{\@I}{title}} & -\@@delivs& -\pdataref{mile}\@I{month} & -\pdataref{mile}\@I{verif}} -\xdef\mst@lines{\mst@lines\@@line\tabularnewline\hline}}} -\begin{table}[ht] -\begin{tabular}{|l|p{2.5cm}|p{7cm}|l|p{4cm}|}\hline -\#&\textbf{\miles@legend@name} -&\textbf{\miles@legend@involved} -&\textbf{\miles@legend@month} -&\textbf{\miles@legend@verif}\\\hline\hline -\mst@lines -\end{tabular} -\caption{Milestones, Deliverables, and Verification}\label{tab:milestonetable} -\end{table} -\footnotetext\miles@legend@footnote} -\newcommand\miles@legend@name{Name} -\newcommand\miles@legend@month{Mo} -\newcommand\miles@legend@verif{Means of Verif.} -\newcommand\miles@legend@involved{WPs\footnotemark/Deliverables involved} -\newcommand\miles@legend@footnote{The work package number is the first number in the deliverable number.} -\newcommand\prop@milesfor[1]{\edef\@delivs{\pdataref@safe{mile}{#1}{delivs}}% -\let\m@sep=\relax\def\new@sep{,\ }% -\@for\@I:=\@delivs\do{\m@sep\pdataRef{deliv}\@I{label}\let\m@sep=\new@sep}} \newcommand{\deliverable}[9]{\pdataRef{deliv}{#4}{label} \\\hline}%sortkey,due,label,id,title,type,level,lead \newenvironment{deliverables}[1]{\ifdelivs\begin{longtable}{|l|p{#1}|l|l|l|l|l|}\hline% \#&\textbf{\delivs@legend@name}&% diff --git a/base/proposal.dtx b/base/proposal.dtx index 80a6280..7cbe417 100644 --- a/base/proposal.dtx +++ b/base/proposal.dtx @@ -368,11 +368,9 @@ % descriptions via the \DescribeMacro{\milestone}|\milestone| macro which is invoked as % |\milestone[|\meta{keys}|]{|\meta{title}|}{|\meta{desc}|}|, where \meta{keys} supports % the keys |id| for identification |month| for specifying the milestone date (in months of -% the project duration), and |verif| for specifying a means of -% verification\footnote{Arguably, this set of keys is inspired by EU proposals, but can be -% extended in class instances.} Milestones are numbered with labels whose shape can be -% customized by redefining \DescribeMacro{\milestone@label}|\milestone@label| and -% referenced by the \DescribeMacro{\mileref}|\mileref{|\meta{id}|}| and +% the project duration). Milestones are numbered with labels whose shape can be customized +% by redefining \DescribeMacro{\milestone@label}|\milestone@label| and referenced by the +% \DescribeMacro{\mileref}|\mileref{|\meta{id}|}| and % \DescribeMacro{\miletref}|\miletref{|\meta{id}|}| for a reference with milestone % title. |\pdatacount{all}{miles}| gives the number of milestones. % @@ -1353,7 +1351,7 @@ % \end{macrocode} % \end{macro} % -% Now, we only need to instantiate +% Now, we only need to instantsiate % % \begin{environment}{wadeliv} % \begin{macrocode} @@ -1389,13 +1387,11 @@ \newcounter{milestone} \define@key{milestone}{id}{\gdef\mile@id{#1}} \define@key{milestone}{month}{\gdef\mile@month{#1}} -\define@key{milestone}{verif}{\gdef\mile@verif{#1}} \newcommand\milestone[3][]{% \ifdelivs% \setkeys{milestone}{#1}\stepcounter{milestone}% \pdata@def{mile}\mile@id{label}{\milestone@label{\themilestone}}% \pdata@def{mile}\mile@id{month}{\mile@month}% -\pdata@def{mile}\mile@id{verif}{\mile@verif}% \pdata@def{mile}\mile@id{title}{#2}% \pdata@def{mile}\mile@id{description}{#3}% \@ifundefined{mile@stones}{\xdef\mile@stones{\mile@id}}{\xdef\mile@stones{\mile@stones,\mile@id}}% @@ -1408,8 +1404,10 @@ % the corresponding presentation macro. % \begin{macrocode} \newcommand\@milestone[3]{% id, title, description -\item \textbf{Milestone \pdataref{mile}{#1}{label} (Month \pdataref{mile}\mile@id{month}) +\item \textbf{\miles@legend@milestone \pdataref{mile}{#1}{label} (\miles@legend@month \pdataref{mile}\mile@id{month}) \textbf{#2}} #3} +\newcommand\miles@legend@month{Month} +\newcommand\miles@legend@milestone{Milestone} % \end{macrocode} % \end{macro} % @@ -1433,56 +1431,6 @@ % \end{macrocode} % \end{environment} % -% \begin{macro}{milestonetable} -% here we do the work. -% \begin{macrocode} -\newcommand\milestonetable{% -{\gdef\mst@lines{}%initialize -\let\tabularnewline\relax\let\hline\relax% so they -\let\textbf\relax\let\emph\relax% do not bother us -\edef\@@miles{\pdataref{all}{mile}{ids}} -\@for\@I:=\@@miles\do{ -\edef\@delivs{\pdataref@safe{mile}{\@I}{delivs}}% -\def\@@delivs{} -\@for\@J:=\@delivs\do{\xdef\@@delivs{\@@delivs\ \pdataref{deliv}\@J{label}}} -\def\@@line{ -\textbf{\pdataref{mile}\@I{label}}& -\emph{\pdataref{mile}{\@I}{title}} & -\@@delivs& -\pdataref{mile}\@I{month} & -\pdataref{mile}\@I{verif}} -\xdef\mst@lines{\mst@lines\@@line\tabularnewline\hline}}} -\begin{table}[ht] -\begin{tabular}{|l|p{2.5cm}|p{7cm}|l|p{4cm}|}\hline -\#&\textbf{\miles@legend@name} -&\textbf{\miles@legend@involved} -&\textbf{\miles@legend@month} -&\textbf{\miles@legend@verif}\\\hline\hline -\mst@lines -\end{tabular} -\caption{Milestones, Deliverables, and Verification}\label{tab:milestonetable} -\end{table} -\footnotetext\miles@legend@footnote} -% \end{macrocode} -% now the multilinguality support -% \begin{macrocode} -\newcommand\miles@legend@name{Name} -\newcommand\miles@legend@month{Mo} -\newcommand\miles@legend@verif{Means of Verif.} -\newcommand\miles@legend@involved{WPs\footnotemark/Deliverables involved} -\newcommand\miles@legend@footnote{The work package number is the first number in the deliverable number.} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\prop@milesfor} -% the due date is the first argument to facilitate sorting -% \begin{macrocode} -\newcommand\prop@milesfor[1]{\edef\@delivs{\pdataref@safe{mile}{#1}{delivs}}% -\let\m@sep=\relax\def\new@sep{,\ }% -\@for\@I:=\@delivs\do{\m@sep\pdataRef{deliv}\@I{label}\let\m@sep=\new@sep}} -% \end{macrocode} -% \end{macro} -% % \begin{macro}{\deliverable} % the first argument is an extended due date to facilitate sorting. % \begin{macrocode} diff --git a/base/proposal.pdf b/base/proposal.pdf index 3b74b9b..01f0e54 100644 Binary files a/base/proposal.pdf and b/base/proposal.pdf differ diff --git a/dfg/examples/proposal/proposal.pdf b/dfg/examples/proposal/proposal.pdf index 6591bc3..437b7ab 100644 Binary files a/dfg/examples/proposal/proposal.pdf and b/dfg/examples/proposal/proposal.pdf differ diff --git a/dfg/examples/report/finalreport.pdf b/dfg/examples/report/finalreport.pdf index bd9f105..7bc1160 100644 Binary files a/dfg/examples/report/finalreport.pdf and b/dfg/examples/report/finalreport.pdf differ diff --git a/dfg/examples/simple-proposal/proposal.pdf b/dfg/examples/simple-proposal/proposal.pdf index d9d6d4d..dfa346b 100644 Binary files a/dfg/examples/simple-proposal/proposal.pdf and b/dfg/examples/simple-proposal/proposal.pdf differ diff --git a/eu/euproposal.cls b/eu/euproposal.cls index 9cb4511..6449df5 100644 --- a/eu/euproposal.cls +++ b/eu/euproposal.cls @@ -140,6 +140,49 @@ \wp@efforts@line\\\hline% \end{tabular}\smallskip\par\noindent\ignorespaces} \surroundwithmdframed{wpdelivs} +\define@key{milestone}{verif}{\gdef\mile@verif{#1}\pdata@def{mile}\mile@id{verif}{#1}} +\define@key{mst}{caption}{\gdef\mst@caption{#1}} +\define@key{mst}{wname}{\gdef\mst@wname{#1}} +\define@key{mst}{wdeliv}{\gdef\mst@wdeliv{#1}} +\define@key{mst}{wverif}{\gdef\mst@wverif{#1}} +\newcommand\milestonetable[1][]{% +\def\mst@caption{Milestones, Deliverables, and Verification}% +\def\mst@wname{2.5cm}\def\mst@wdeliv{7cm}\def\mst@wverif{4cm} +\setkeys{mst}{#1}% +{\gdef\mst@lines{}%initialize +\let\tabularnewline\relax\let\hline\relax% so they +\let\textbf\relax\let\emph\relax% do not bother us +\edef\@@miles{\pdataref{all}{mile}{ids}} +\@for\@I:=\@@miles\do{ +\edef\@delivs{\pdataref@safe{mile}{\@I}{delivs}}% +\def\@@delivs{} +\@for\@J:=\@delivs\do{\xdef\@@delivs{\@@delivs\ \pdataref{deliv}\@J{label}}} +\def\@@line{ +\textbf{\pdataref{mile}\@I{label}}& +\emph{\pdataref{mile}{\@I}{title}} & +\@@delivs& +\pdataref{mile}\@I{month} & +\pdataref{mile}\@I{verif}} +\xdef\mst@lines{\mst@lines\@@line\tabularnewline\hline}}} +\begin{table}[ht] +\begin{tabular}{|l|p{\mst@wname}|p{\mst@wdeliv}|l|p{\mst@wverif}|}\hline +\#&\textbf{\miles@legend@name} +&\textbf{\miles@legend@involved} +&\textbf{\miles@legend@mo} +&\textbf{\miles@legend@verif}\\\hline\hline +\mst@lines +\end{tabular} +\caption{\mst@caption}\label{tab:milestonetable} +\end{table} +\footnotetext\miles@legend@footnote} +\newcommand\miles@legend@name{Name} +\newcommand\miles@legend@mo{Mo} +\newcommand\miles@legend@verif{Means of Verif.} +\newcommand\miles@legend@involved{WPs\footnotemark/Deliverables involved} +\newcommand\miles@legend@footnote{The work package number is the first number in the deliverable number.} +\newcommand\prop@milesfor[1]{\edef\@delivs{\pdataref@safe{mile}{#1}{delivs}}% +\let\m@sep=\relax\def\new@sep{,\ }% +\@for\@I:=\@delivs\do{\m@sep\pdataRef{deliv}\@I{label}\let\m@sep=\new@sep}} \newenvironment{risk}[3] {\paragraph{Risk: #1}\hfill\emph{probability}: #2, \emph{gravity}: #3\par\noindent\ignorespaces} {} diff --git a/eu/euproposal.dtx b/eu/euproposal.dtx index 6630369..61e3e99 100644 --- a/eu/euproposal.dtx +++ b/eu/euproposal.dtx @@ -157,6 +157,22 @@ % |DEM| = Demonstration; |MGT| = Management of the consortium; |OTHER| = Other specific % activities, if applicable in this call. % +% \subsection{Milestones and Deliverables}\label{sec:user:deliverables} +% +% |euproposal.cls| adds the \DescribeMacro{verif}|verif| key to \DescribeMacro{\milestone} +% for specifying a means of verification that the milestone has been successful. +% +% With this, we can generate the milestone table that is required in many EU +% proposals. This can simply be done via the +% \DescribeMacro{\milestonetable}|\milestonetable| macro. It takes a keyword argument with +% the keys \DescribeMacro{caption}|caption| for specifying a different caption, and the +% widths \DescribeMacro{wname}|wname|, \DescribeMacro{wdeliv}|wdeliv|, and +% \DescribeMacro{wverif}|wverif| that can be used to specify different widths for the +% name/deliverables/verification columns in the milestone table. +% +% \subsection{Risks}\label{sec:user:risks} +% \ednote{MK: document the infrastructure, make examples} +% % \begin{newpart}{MK@MK: This is new, and only partially implemented} % \subsection{Reporting Infrastructure}\label{sec:user:report} % @@ -447,12 +463,77 @@ % \end{macrocode} % \end{macro} % +% \subsection{Milestones and Deliverables}\label{sec:impl:deliverables} +% % \begin{environment}{wpdelivs} -% We make the deliverables boxed, this is simple with |mdframed.sty|. +% We make the deliverables boxed in EU proposals, this is simple with |mdframed.sty|. % \begin{macrocode} \surroundwithmdframed{wpdelivs} % \end{macrocode} % \end{environment} +% +% \begin{macro}{\milestone} +% \begin{macrocode} +\define@key{milestone}{verif}{\gdef\mile@verif{#1}\pdata@def{mile}\mile@id{verif}{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{milestonetable} +% here we do the work. +% \begin{macrocode} +\define@key{mst}{caption}{\gdef\mst@caption{#1}} +\define@key{mst}{wname}{\gdef\mst@wname{#1}} +\define@key{mst}{wdeliv}{\gdef\mst@wdeliv{#1}} +\define@key{mst}{wverif}{\gdef\mst@wverif{#1}} +\newcommand\milestonetable[1][]{% +\def\mst@caption{Milestones, Deliverables, and Verification}% +\def\mst@wname{2.5cm}\def\mst@wdeliv{7cm}\def\mst@wverif{4cm} +\setkeys{mst}{#1}% +{\gdef\mst@lines{}%initialize +\let\tabularnewline\relax\let\hline\relax% so they +\let\textbf\relax\let\emph\relax% do not bother us +\edef\@@miles{\pdataref{all}{mile}{ids}} +\@for\@I:=\@@miles\do{ +\edef\@delivs{\pdataref@safe{mile}{\@I}{delivs}}% +\def\@@delivs{} +\@for\@J:=\@delivs\do{\xdef\@@delivs{\@@delivs\ \pdataref{deliv}\@J{label}}} +\def\@@line{ +\textbf{\pdataref{mile}\@I{label}}& +\emph{\pdataref{mile}{\@I}{title}} & +\@@delivs& +\pdataref{mile}\@I{month} & +\pdataref{mile}\@I{verif}} +\xdef\mst@lines{\mst@lines\@@line\tabularnewline\hline}}} +\begin{table}[ht] +\begin{tabular}{|l|p{\mst@wname}|p{\mst@wdeliv}|l|p{\mst@wverif}|}\hline +\#&\textbf{\miles@legend@name} +&\textbf{\miles@legend@involved} +&\textbf{\miles@legend@mo} +&\textbf{\miles@legend@verif}\\\hline\hline +\mst@lines +\end{tabular} +\caption{\mst@caption}\label{tab:milestonetable} +\end{table} +\footnotetext\miles@legend@footnote} +% \end{macrocode} +% now the multilinguality support +% \begin{macrocode} +\newcommand\miles@legend@name{Name} +\newcommand\miles@legend@mo{Mo} +\newcommand\miles@legend@verif{Means of Verif.} +\newcommand\miles@legend@involved{WPs\footnotemark/Deliverables involved} +\newcommand\miles@legend@footnote{The work package number is the first number in the deliverable number.} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\prop@milesfor} +% the due date is the first argument to facilitate sorting +% \begin{macrocode} +\newcommand\prop@milesfor[1]{\edef\@delivs{\pdataref@safe{mile}{#1}{delivs}}% +\let\m@sep=\relax\def\new@sep{,\ }% +\@for\@I:=\@delivs\do{\m@sep\pdataRef{deliv}\@I{label}\let\m@sep=\new@sep}} +% \end{macrocode} +% \end{macro} % % \subsection{Risks}\label{sec:impl:risks} % diff --git a/eu/euproposal.pdf b/eu/euproposal.pdf index 26b6797..984a941 100644 Binary files a/eu/euproposal.pdf and b/eu/euproposal.pdf differ diff --git a/eu/examples/fetopenstrep/propB.pdf b/eu/examples/fetopenstrep/propB.pdf index df8610b..cd5f4bc 100644 Binary files a/eu/examples/fetopenstrep/propB.pdf and b/eu/examples/fetopenstrep/propB.pdf differ diff --git a/eu/examples/strep/Makefile b/eu/examples/strep/Makefile index 9b4a6fd..e287da8 100644 --- a/eu/examples/strep/Makefile +++ b/eu/examples/strep/Makefile @@ -18,7 +18,7 @@ TBIB.pdf = $(TBIB:%.tex=%.pdf) # PDFs to be produced TBIB.aux = $(TBIB:%.tex=%.aux) # their aux files. PDATA = $(PROPOSAL:%.tex=%.pdata) # the proposal project data SRC = $(filter-out $(TARGET),$(shell ls *.tex)) # included files -PDFLATEX = pdflatex -interaction batchmode -file-line-error +PDFLATEX = pdflatex -interaction scrollmode -file-line-error BBL.base = 1 2 3 4 BBL = $(PROPOSAL:%.tex=%.bbl) $(BBL.base:%=$(PROPOSAL:%.tex=%)%-blx.bbl) PROPCLS.dir = $(PROP.dir)/base diff --git a/eu/examples/strep/implementation.tex b/eu/examples/strep/implementation.tex index 0014912..bf54131 100644 --- a/eu/examples/strep/implementation.tex +++ b/eu/examples/strep/implementation.tex @@ -11,6 +11,8 @@ The Project Management of {\pn} is based on its Consortium Agreement, which will signed before the Contract is signed by the Commission. The Consortium Agreement will enter into force as from the date the contract with the European Commission is signed. \subsection{Organizational structure}\label{sec:management-structure} +\subsection{Milestones}\label{sec:milestones} +\milestonetable \subsection{Risk Assessment and Management} \subsection{Information Flow and Outreach}\label{sec:spread-excellence} \subsection{Quality Procedures}\label{sec:quality-management} @@ -51,6 +53,8 @@ joint publications (only international, peer reviewed ones). \jointorga{jacu,efo,baz} \jointpub{efo,baz,jacu} \jointproj{efo,bar} +\jointsup{jacu,bar} +\jointsoft{baz,efo} \coherencetable \subsection{Subcontracting}\label{sec:subcontracting} diff --git a/eu/examples/strep/propB.pdf b/eu/examples/strep/propB.pdf index fdfce00..ed3bc6b 100644 Binary files a/eu/examples/strep/propB.pdf and b/eu/examples/strep/propB.pdf differ