copying over the advances from the OpenDreamKIT proposal effort

This commit is contained in:
Michael Kohlhase 2015-01-15 12:40:29 +01:00
parent 4562f340f7
commit 7139425218
15 changed files with 367 additions and 208 deletions

View File

@ -7,7 +7,7 @@
%% proposal.dtx (with options: `pdata') %% proposal.dtx (with options: `pdata')
%% %%
\NeedsTeXFormat{LaTeX2e}[1999/12/01] \NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{pdata}[2013/02/19 v1.4 Project Data] \ProvidesPackage{pdata}[2015/01/14 v1.5 Project Data]
\RequirePackage{workaddress}[2011/05/03] \RequirePackage{workaddress}[2011/05/03]
\RequirePackage{eurosym} \RequirePackage{eurosym}
\newif\if@sites\@sitesfalse\let\prop@gen@sites=\relax% \newif\if@sites\@sitesfalse\let\prop@gen@sites=\relax%
@ -58,6 +58,7 @@
\pdata@def{prop}{gen}{fundsuntil}{#1}} \pdata@def{prop}{gen}{fundsuntil}{#1}}
\define@key{prop@gen}{topdownPM}[true]{\def\prop@gen@topdownPM{#1}} \define@key{prop@gen}{topdownPM}[true]{\def\prop@gen@topdownPM{#1}}
\define@key{prop@gen}{botupPM}[true]{\def\prop@gen@botupPM{#1}} \define@key{prop@gen}{botupPM}[true]{\def\prop@gen@botupPM{#1}}
\define@key{prop@gen}{keywords}{\def\prop@gen@keywords{#1}}
\newcommand\prop@gen@acro@default{ACRONYM} \newcommand\prop@gen@acro@default{ACRONYM}
\def\prop@gen@acro{\prop@gen@acro@default} \def\prop@gen@acro{\prop@gen@acro@default}
\newcommand\prop@gen@months@default{???months???} \newcommand\prop@gen@months@default{???months???}

View File

@ -7,7 +7,7 @@
%% proposal.dtx (with options: `cls') %% proposal.dtx (with options: `cls')
%% %%
\NeedsTeXFormat{LaTeX2e}[1999/12/01] \NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesClass{proposal}[2013/02/19 v1.4 Project Proposal] \ProvidesClass{proposal}[2015/01/14 v1.5 Project Proposal]
\newif\if@wpsubsection\@wpsubsectionfalse \newif\if@wpsubsection\@wpsubsectionfalse
\newif\ifsubmit\submitfalse \newif\ifsubmit\submitfalse
\newif\ifpublic\publicfalse \newif\ifpublic\publicfalse
@ -32,6 +32,7 @@
\ProcessOptions \ProcessOptions
\LoadClass[a4paper,twoside]{\proposal@class} \LoadClass[a4paper,twoside]{\proposal@class}
\RequirePackage{amssymb} \RequirePackage{amssymb}
\RequirePackage{wasysym}
\RequirePackage{url} \RequirePackage{url}
\RequirePackage{graphicx} \RequirePackage{graphicx}
\RequirePackage{colortbl} \RequirePackage{colortbl}
@ -44,7 +45,7 @@
\AtBeginDocument{\ifpublic\excludecomment{private}\fi} \AtBeginDocument{\ifpublic\excludecomment{private}\fi}
\RequirePackage{tikz} \RequirePackage{tikz}
\RequirePackage{paralist} \RequirePackage{paralist}
\RequirePackage{a4wide} \RequirePackage[a4paper,margin=18mm]{geometry}
\RequirePackage{boxedminipage} \RequirePackage{boxedminipage}
\renewcommand{\thempfootnote}{\roman{mpfootnote}} \renewcommand{\thempfootnote}{\roman{mpfootnote}}
\renewcommand{\familydefault}{\sfdefault} \renewcommand{\familydefault}{\sfdefault}
@ -393,23 +394,46 @@
\pdata@def{mile}\mile@id{month}{\mile@month}% \pdata@def{mile}\mile@id{month}{\mile@month}%
\pdata@def{mile}\mile@id{verif}{\mile@verif}% \pdata@def{mile}\mile@id{verif}{\mile@verif}%
\pdata@def{mile}\mile@id{title}{#2}% \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}}% \@ifundefined{mile@stones}{\xdef\mile@stones{\mile@id}}{\xdef\mile@stones{\mile@stones,\mile@id}}%
\@milestone{#1}{#2}{#3}% presentation \@milestone{\mile@id}{#2}{#3}% presentation
\else\deliv@error\fi} \else\deliv@error\fi}
\newcommand\@milestone[3]{% \newcommand\@milestone[3]{% id, title, description
\pdata@target{mile}\mile@id{\textbf{\milestone@label\themilestone}}& \item \textbf{Milestone \pdataref{mile}{#1}{label} (Month \pdataref{mile}\mile@id{month})
\textbf{#2} & \textbf{#2}} #3}
\prop@milesfor\mile@id & \newenvironment{milestones}%
\pdataref{mile}\mile@id{month} & {\ifdelivs\begin{@milestones}\else\deliv@error\fi}
\pdataref{mile}\mile@id{verif}\\\hline {\ifdelivs\pdata@def{all}{mile}{ids}{\mile@stones}%
\multicolumn{5}{|p{14cm}|}{#3}\\\hline\hline} \pdata@def{all}{mile}{count}{\themilestone}%
\newenvironment{milestones}{\begin{@milestones}}{\end{@milestones}} \end{@milestones}\fi}
\newenvironment{@milestones} \newenvironment{@milestones}{\begin{enumerate}}{\end{enumerate}}
{\ifdelivs\begin{longtable}{|l|p{4cm}|p{5cm}|l|p{2.5cm}|}\hline \newcommand\milestonetable{%
\#&\miles@legend@name&\miles@legend@involved&\miles@legend@month&\miles@legend@verif\\\hline\hline% {\gdef\mst@lines{}%initialize
\else\deliv@error\fi} \let\tabularnewline\relax\let\hline\relax% so they
{\ifdelivs\end{longtable}% \let\textbf\relax\let\emph\relax% do not bother us
\footnotetext\miles@legend@footnote\fi} \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@name{Name}
\newcommand\miles@legend@month{Mo} \newcommand\miles@legend@month{Mo}
\newcommand\miles@legend@verif{Means of Verif.} \newcommand\miles@legend@verif{Means of Verif.}
@ -455,27 +479,31 @@
\def\task@set#1{\edef\task@id{task\thetask@all} \def\task@set#1{\edef\task@id{task\thetask@all}
\def\task@wphases{0-0}\def\task@partners{}\def\task@lead{}\def\task@PM{} \def\task@wphases{0-0}\def\task@partners{}\def\task@lead{}\def\task@PM{}
\setkeys{task}{#1}} \setkeys{task}{#1}}
\def\task@post@title@space{\quad} \def\task@post@title@space{\;}
\newcounter{alltasks} \newcounter{alltasks}
\def\task@post@title@space{\quad} \def\task@post@title@space{\quad}
\newcommand\task@legend@partners{Sites: } \newcommand\task@legend@partners{Sites: }
\newcommand\task@legend@PM{PM} \newcommand\task@legend@PM{PM}
\newenvironment{task}[1][]% \newenvironment{task}[1][]%
{\stepcounter{alltasks} {\stepcounter{alltasks}%
\@task{#1}\item[\pdata@target{task}{\taskin\task@id\wp@id}{\task@label\thewp\thetask@wp}]% \@task{#1}\item[\pdata@target{task}{\taskin\task@id\wp@id}{\task@label\thewp\thetask@wp}]%
\@ifundefined{task@title}{}{\textbf\task@title}\task@post@title@space% \@ifundefined{task@title}{}{\textbf\task@title}\task@post@title@space%
\def\@initial{0-0}\ifx\task@wphases\@initial\else% \def\@initial{0-0}\ifx\task@wphases\@initial\else%
\let\@@sep=\relax\@for\@I:=\task@wphases% \let\@@sep=\relax\@for\@I:=\task@wphases%
\do{\decode@wphase\@I\@@sep\show@wphase\wphase@start\wphase@end\wphase@force\let\@@sep=\sep@wphases}% \do{\decode@wphase\@I%
\@@sep\show@wphase\wphase@start\wphase@end\wphase@force%
\let\@@sep=\sep@wphases}%
\fi% initial \fi% initial
\hfill% \hfill%
\ifsubmit\else\ifx\task@PM\@empty\else\task@PM\ \task@legend@PM;\fi\fi% \ifsubmit\else\ifx\task@PM\@empty\else\task@PM~\task@legend@PM;\fi\fi%
\ifx\task@lead\@empty\else\ \task@legend@partners\site\task@lead~(\legend@lead)\fi% \ifx\task@lead\@empty\else\ \task@legend@partners\site\task@lead~(\legend@lead)\fi%
\@for\@I:=\task@partners\do{, \site\@I}\\} \@for\@I:=\task@partners\do{, \site\@I}\\%
{\ignorespaces} \ignorespaces}
{\medskip}
\newcommand\month@label[1]{M#1} \newcommand\month@label[1]{M#1}
\newcommand\show@wphase[3]{\def\@test{#3}\month@label{#1}-\month@label{#2}% \newcommand\show@wphase[3]{\edef\@test{#3}\def\@one{1}%
\ifx\@test\@empty\@ #3} \month@label{#1}-\month@label{#2}%
\ifx\@test\@empty\else\ifx\@test\@one\else @#3\fi\fi}
\newcommand\sep@wphases{; } \newcommand\sep@wphases{; }
\newcommand\legend@partners{Partners} \newcommand\legend@partners{Partners}
\newcommand\legend@lead{lead} \newcommand\legend@lead{lead}
@ -509,7 +537,8 @@
{\csname wp@#1@lead\endcsname}} {\csname wp@#1@lead\endcsname}}
\definecolorset{gray/rgb/hsb/cmyk}{}{}% \definecolorset{gray/rgb/hsb/cmyk}{}{}%
{leadgray,.90/.90,.90,.90/0,0,.90/0,0,0,.10;% {leadgray,.90/.90,.90,.90/0,0,.90/0,0,0,.10;%
wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30} wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30;%
ganttgray,.60/.60,.60,.60/0,0,.60/0,0,0,.40}
\newcommand\sum@style[1]{\cellcolor{wagray}{\textbf{#1}}} \newcommand\sum@style[1]{\cellcolor{wagray}{\textbf{#1}}}
\newcommand\wa@style[1]{\cellcolor{wagray}{\textbf{#1}}} \newcommand\wa@style[1]{\cellcolor{wagray}{\textbf{#1}}}
\newcommand\wp@style[1]{#1} \newcommand\wp@style[1]{#1}
@ -528,8 +557,10 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
\define@key{wpfig}{length}[true]{\def\wpfig@length{#1}\stepcounter{wpfig@options}} \define@key{wpfig}{length}[true]{\def\wpfig@length{#1}\stepcounter{wpfig@options}}
\def\wpfig@end{false} \def\wpfig@end{false}
\define@key{wpfig}{end}[true]{\def\wpfig@end{#1}\stepcounter{wpfig@options}} \define@key{wpfig}{end}[true]{\def\wpfig@end{#1}\stepcounter{wpfig@options}}
\define@key{wpfig}{label}{\def\wpfig@label{#1}}
\define@key{wpfig}{caption}{\def\wpfig@caption{#1}}
\def\@sw#1{\begin{sideways}#1\end{sideways}} \def\@sw#1{\begin{sideways}#1\end{sideways}}
\newenvironment{wp@figure}{\begin{figure}[ht]\wpfig@style\begin{center} \newenvironment{wp@figure}{\begin{table}[ht]\wpfig@style\begin{center}
{\let\@sw\relax\let\textbf\relax\let\site\relax\let\pn\relax\let\sys\relax% {\let\@sw\relax\let\textbf\relax\let\site\relax\let\pn\relax\let\sys\relax%
\gdef\wpfig@headline{\wpfig@legend@wap&\wpfig@legend@title% \gdef\wpfig@headline{\wpfig@legend@wap&\wpfig@legend@title%
\ifx\wpfig@type\@true&\wpfig@legend@type\fi% \ifx\wpfig@type\@true&\wpfig@legend@type\fi%
@ -552,8 +583,9 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
{\end{tabular}\smallskip\\ {\end{tabular}\smallskip\\
\wpfig@legend@RAM@expl \wpfig@legend@RAM@expl
\if@sites; \wpfig@legend@lead@expl\fi \if@sites; \wpfig@legend@lead@expl\fi
\caption{\wpfig@legend@caption}\label{fig:wplist} \@ifundefined{wpfig@label}{\caption{\wpfig@legend@caption}}{\caption{\wpfig@caption}}
\end{center}\end{figure}} \@ifundefined{wpfig@label}{\label{fig:wplist}}{\label{\wpfig@label}}
\end{center}\end{table}}
\newcommand\wpfig@legend@wap{\textbf{\ifwork@areas{WA/P}\else{WP}\fi}} \newcommand\wpfig@legend@wap{\textbf{\ifwork@areas{WA/P}\else{WP}\fi}}
\newcommand\wpfig@legend@title{\textbf{Title}} \newcommand\wpfig@legend@title{\textbf{Title}}
\newcommand\wpfig@legend@type{\textbf{type}} \newcommand\wpfig@legend@type{\textbf{type}}
@ -762,15 +794,17 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
\newcommand\prop@legend@intendedtotals{\textbf{intended totals}} \newcommand\prop@legend@intendedtotals{\textbf{intended totals}}
\newcommand\prop@legend@requestedtotals{\textbf{requested totals}} \newcommand\prop@legend@requestedtotals{\textbf{requested totals}}
\newif\ifgantt@draft\gantt@draftfalse \newif\ifgantt@draft\gantt@draftfalse
\newif\ifgantt@miles\gantt@milesfalse
\define@key{gantt}{xscale}{\def\gantt@xscale{#1}} \define@key{gantt}{xscale}{\def\gantt@xscale{#1}}
\define@key{gantt}{yscale}{\def\gantt@yscale{#1}} \define@key{gantt}{yscale}{\def\gantt@yscale{#1}}
\define@key{gantt}{step}{\def\gantt@step{#1}} \define@key{gantt}{step}{\def\gantt@step{#1}}
\define@key{gantt}{size}{\def\gantt@size{#1}} \define@key{gantt}{size}{\def\gantt@size{#1}}
\define@key{gantt}{draft}[true]{\ifsubmit\else\gantt@drafttrue\fi} \define@key{gantt}{draft}[true]{\ifsubmit\else\gantt@drafttrue\fi}
\define@key{gantt}{milestones}[true]{\gantt@milestrue}
\def\gantt@set#1{\gantt@draftfalse\def\gantt@xscale{1}\def\gantt@yscale{.35}\def\gantt@step{3} \def\gantt@set#1{\gantt@draftfalse\def\gantt@xscale{1}\def\gantt@yscale{.35}\def\gantt@step{3}
\setkeys{gantt}{#1}} \setkeys{gantt}{#1}}
\newenvironment{gantt}[2][] \newenvironment{gantt}[2][]
{\gantt@set{#1} {\gantt@set{#1}\gdef\gantt@height{#2}
\def\@test{\prop@gen@months@default} \def\@test{\prop@gen@months@default}
\ifx\@test\prop@gen@months \ifx\@test\prop@gen@months
\ClassError{proposal}{Need overall project months to draw gantt \ClassError{proposal}{Need overall project months to draw gantt
@ -778,20 +812,31 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
\protect\begin{proposal}[...,months=??,...] to fix}\fi \protect\begin{proposal}[...,months=??,...] to fix}\fi
\@ifundefined{gantt@size}{}{\csname\gantt@size\endcsname} \@ifundefined{gantt@size}{}{\csname\gantt@size\endcsname}
\newdimen\gantt@ymonths \newdimen\gantt@ymonths
\gantt@ymonths=#2 cm \gantt@ymonths=\gantt@height cm
\advance\gantt@ymonths by .5cm \advance\gantt@ymonths by .8cm
\begin{tikzpicture}[xscale=\gantt@xscale,yscale=\gantt@yscale] \begin{tikzpicture}[xscale=\gantt@xscale,yscale=\gantt@yscale]}
\draw[xstep=\gantt@step,gray,very thin] (0,0) grid (\prop@gen@months,#2); {\draw[xstep=\gantt@step,very thin] (0,0) grid (\prop@gen@months,\gantt@height);
\foreach \x in {0,\gantt@step,...,\prop@gen@months} \node at (\x,\gantt@ymonths) {\x};} \foreach \x in {0,\gantt@step,...,\prop@gen@months} \node at (\x,\gantt@ymonths) {\x};
{\end{tikzpicture}} \ifgantt@miles
\newdimen\gantt@ymiles\gantt@ymiles=\gantt@height cm
\advance\gantt@ymiles by 2cm
\newdimen\gantt@ymiles@top\gantt@ymiles@top=\gantt@height cm
\edef\@@miles{\pdataref@safe{all}{mile}{ids}}
\@for\@I:=\@@miles\do{%
\edef\@@month{\pdataref@safe{mile}{\@I}{month}}
\draw[very thick,blue] (\@@month,\gantt@ymiles@top) -- (\@@month,0);
\node[blue] at (\@@month,\gantt@ymiles) {\pdataref{mile}{\@I}{label}};}
\fi %gantt@miles
\end{tikzpicture}}
\newdimen\gantt@ymid\newdimen\gantt@yinc\newdimen\gantt@xend \newdimen\gantt@ymid\newdimen\gantt@yinc\newdimen\gantt@xend
\newcommand{\@action}[5]{% \newcommand{\@action}[6][]{\def\@test{#1}%
\gantt@ymid=#2 cm\gantt@yinc=\gantt@yscale cm \ifx\@test\@empty\def\@@color{ganttgray}\else\def\@@color{#1}\fi
\gantt@xend=#3 cm\advance\gantt@xend by #4 cm \gantt@ymid=#3 cm\gantt@yinc=\gantt@yscale cm
\gantt@xend=#4 cm\advance\gantt@xend by #5 cm
\advance\gantt@ymid by \gantt@yinc \advance\gantt@ymid by \gantt@yinc
\fill (#3,#2) rectangle +(#4,#5); \fill[\@@color] (#4,#3) rectangle +(#5,#6);
\node (#1@left) at (#3,\gantt@ymid) {}; \node (#2@left) at (#4,\gantt@ymid) {};
\node (#1@right) at (\gantt@xend,\gantt@ymid) {};} \node (#2@right) at (\gantt@xend,\gantt@ymid) {};}
\def\@dependency#1#2{\draw[->,line width=2pt,color=red] (#1@right) -- (#2@left);} \def\@dependency#1#2{\draw[->,line width=2pt,color=red] (#1@right) -- (#2@left);}
\newcommand\gantt@compute@effort[3]{% start, len, force \newcommand\gantt@compute@effort[3]{% start, len, force
\@@e=#1\advance\@@e by #2 \@@e=#1\advance\@@e by #2
@ -861,7 +906,7 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
\@for\@@ft:=\@@wphases\do{%iterate over the wp-level work phases \@for\@@ft:=\@@wphases\do{%iterate over the wp-level work phases
\decode@wphase\@@ft \decode@wphase\@@ft
\gantt@compute@effort\wphase@start\wphase@len\wphase@force}}}} \gantt@compute@effort\wphase@start\wphase@len\wphase@force}}}}
\fill (\thegantt@month,-5) rectangle +(1,\gantt@effort); \fill[ganttgray] (\thegantt@month,-5) rectangle +(1,\gantt@effort);
\else% ifwork@areas \else% ifwork@areas
\edef\@@wps{\pdataref@safe{all}{wp}{ids}} \edef\@@wps{\pdataref@safe{all}{wp}{ids}}
\@for\@@wp:=\@@wps\do{% iterate over work packages \@for\@@wp:=\@@wps\do{% iterate over work packages
@ -875,26 +920,32 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
\@for\@@ft:=\@@wphases\do{%iterate over the wp-level work phases \@for\@@ft:=\@@wphases\do{%iterate over the wp-level work phases
\decode@wphase\@@ft \decode@wphase\@@ft
\gantt@compute@effort\wphase@start\wphase@len\wphase@force}}} \gantt@compute@effort\wphase@start\wphase@len\wphase@force}}}
\fill (\thegantt@month,-5) rectangle +(1,\gantt@effort); \fill[ganttgray] (\thegantt@month,-5) rectangle +(1,\gantt@effort);
\fi% ifwork@areas \fi% ifwork@areas
\stepcounter{gantt@month}} \stepcounter{gantt@month}}
\fi% ifgantt@draft \fi% ifgantt@draft
\end{gantt} \end{gantt}
\caption{\gantt@caption}\label{fig:gantt} \caption{\gantt@caption}\label{fig:gantt}
\end{figure}} \end{figure}\footnotetext\gantt@footnote}
\newcommand\gantt@caption@main{Overview Work Package Activities} \newcommand\gantt@caption@main{Gantt Chart: Overview Work Package Activities}
\newcommand\gantt@caption@lower{lower bar shows the overall effort \if@RAM (RAM only)\fi per month} \newcommand\gantt@caption@lower{lower bar shows the overall effort \if@RAM (RAM only)\fi per month}
\newcommand\gantt@caption{\gantt@caption@main\ifgantt@draft\xspace (\gantt@caption@lower)\fi} \newcommand\gantt@caption{\gantt@caption@main\ifgantt@draft\xspace
\newcommand{\gantttaskchart}[1][]{\begin{figure}[ht]\centering\gantt@set{#1} (\gantt@caption@lower)\fi}
\def\gantt@tasks{\pdataref@num{all}{task}{count}} \newcommand\gantt@footnote{Bars shown at reduced height (e.g. 50\%) indicate reduced
\begin{gantt}[#1]{\gantt@tasks} intensity during that work phase (e.g. to 50\%).}
\newcommand{\gantttaskchart}[1][]{\begin{figure}[hbtp]\centering\gantt@set{#1}
\newcounter{gantt@all@tasks}%
\setcounter{gantt@all@tasks}{\pdataref@num{all}{task}{count}}
\addtocounter{gantt@all@tasks}{\pdataref@num{all}{wp}{count}}
\begin{gantt}[#1]{\thegantt@all@tasks}
\newcounter{gantt@tasks}\newcount\@@line \newcounter{gantt@tasks}\newcount\@@line
\edef\@@wps{\pdataref@safe{all}{wp}{ids}} \edef\@@wps{\pdataref@safe{all}{wp}{ids}}
\@for\@@wp:=\@@wps\do{% iterate over work packages \@for\@@wp:=\@@wps\do{% iterate over work packages
\stepcounter{gantt@tasks}
\edef\@@tasks{\pdataref@safe\@@wp{task}{ids}} \edef\@@tasks{\pdataref@safe\@@wp{task}{ids}}
\@for\@@task:=\@@tasks\do{% iterate over the tasks \@for\@@task:=\@@tasks\do{% iterate over the tasks
\stepcounter{gantt@tasks} \stepcounter{gantt@tasks}
\@@line=\gantt@tasks\advance\@@line by -\thegantt@tasks \@@line=\thegantt@all@tasks\advance\@@line by -\thegantt@tasks
\node at (-.5/\gantt@xscale,\@@line) [above=-2pt] {{\footnotesize\taskreflong\@@wp\@@task}}; \node at (-.5/\gantt@xscale,\@@line) [above=-2pt] {{\footnotesize\taskreflong\@@wp\@@task}};
\edef\@@wphases{\pdataref@safe{task}\@@task{wphases}} \edef\@@wphases{\pdataref@safe{task}\@@task{wphases}}
\@for\@@ft:=\@@wphases\do{%iterate over the task-level work phases \@for\@@ft:=\@@wphases\do{%iterate over the task-level work phases
@ -902,40 +953,52 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
\@action\@@task\@@line\wphase@start\wphase@len\wphase@force \@action\@@task\@@line\wphase@start\wphase@len\wphase@force
}}}% end all iterations }}}% end all iterations
\end{gantt} \end{gantt}
\caption{\gantt@caption@main}\label{fig:gantt} \caption{\gantt@caption@main{} -- \emph{\gantt@footnote}}\label{fig:gantt}
\end{figure}} \end{figure}}
\newcommand\jpub{\textcolor{\prop@link@color}{\textbf{\large{$\star$}}}} \newcommand\jpub{\textcolor{\prop@link@color}{\textbf{\Large{$\star$}}}}
\newcommand\jpro{\textcolor{\prop@link@color}{\textbf{\large{$\bullet$}}}} \newcommand\jpro{\textcolor{\prop@link@color}{\textbf{\Large{$\bullet$}}}}
\newcommand\jorga{\textcolor{\prop@link@color}{\textbf{\large{$\circ$}}}} \newcommand\jsoft{\textcolor{\prop@link@color}{\textbf{@}}}
\newcommand\jorga{\textcolor{\prop@link@color}{\textbf{\Large{$\circ$}}}}
\newcommand\jsup{\textcolor{\prop@link@color}{\textbf{\smiley}}}
\newcommand\add@joint[3]{\@ifundefined{coherence@#1@#2}% \newcommand\add@joint[3]{\@ifundefined{coherence@#1@#2}%
{\@namedef{coherence@#1@#2}{#3}}% {\@namedef{coherence@#1@#2}{#3}}%
{\expandafter\g@addto@macro\csname coherence@#1@#2\endcsname{#3}}} {\expandafter\g@addto@macro\csname coherence@#1@#2\endcsname{#3}}}
\newcommand\prop@joint[2]{\@for\@first:=#2\do{% \newcommand\prop@joint[2]{\@for\@first:=#2\do{%
\@for\@second:=#2\do{\ifx\@first\@second\else\add@joint\@first\@second{#1}\fi}}} \@for\@second:=#2\do{\ifx\@first\@second\else\add@joint\@first\@second{#1}\fi}}}
\newcommand\jointproj[1]{\prop@joint\jpro{#1}} \newcommand\jointproj[1]{\prop@joint\jpro{#1}}
\newcommand\jointpub[1]{\prop@joint\jpro{#1}} \newcommand\jointpub[1]{\prop@joint\jpub{#1}}
\newcommand\jointorga[1]{\prop@joint\jorga{#1}} \newcommand\jointorga[1]{\prop@joint\jorga{#1}}
\newcommand\jointsoft[1]{\prop@joint\jsoft{#1}}
\newcommand\jointsup[1]{\prop@joint\jsup{#1}}
\newcommand{\coherencematrix}{ \newcommand{\coherencematrix}{
{\let\tabularnewline\relax\let\hline\relax\let\site\relax% so they do {\let\tabularnewline\relax\let\hline\relax\let\site\relax% so they do
\let\@sw\relax\let\jpub\relax\let\jpro\relax\let\jorga\relax% not bother us \let\@sw\relax\let\jpub\relax\let\jpro\relax\let\jorga\relax% not bother
\gdef\@ct@head{} \let\jsoft\relax\let\jsup\relax\let\cellcolor\relax% us
\@for\@site:=\prop@gen@sites\do{\xdef\@ct@head{\@ct@head &\site{\@site}}} \gdef\@ct@head{}%
\@for\@site:=\prop@gen@sites\do{\xdef\@ct@head{\@ct@head%
&\ifx\cht@swsites\@true\@sw{\site{\@site}}\else\site{\@site}\fi}}%
\gdef\@ct@lines{\@ct@head\tabularnewline\hline\hline} %initialize with head line \gdef\@ct@lines{\@ct@head\tabularnewline\hline\hline} %initialize with head line
\@for\@site:=\prop@gen@sites\do{\xdef\@ct@line{\site{\@site}} \@for\@site:=\prop@gen@sites\do{\xdef\@ct@line{\site{\@site}}%
\@for\@@site:=\prop@gen@sites\do{ \@for\@@site:=\prop@gen@sites\do{%
\xdef\@ct@line{\@ct@line&\ifx\@site\@@site{X}\fi \xdef\@ct@line{\@ct@line&\ifx\@site\@@site{\cellcolor{wagray}{}}\fi%
\@ifundefined{coherence@\@site @\@@site}{}{\@nameuse{coherence@\@site @\@@site}}}} \@ifundefined{coherence@\@site @\@@site}{}{\@nameuse{coherence@\@site @\@@site}}}}%
\xdef\@ct@lines{\@ct@lines\@ct@line\tabularnewline\hline}}} \xdef\@ct@lines{\@ct@lines\@ct@line\tabularnewline\hline}}}%
\begin{tabular}{|l||*{\the@site}{c|}}\hline \begin{tabular}{|l||*{\the@site}{c|}}\hline%
\@ct@lines\hline \@ct@lines\hline%
joint&\multicolumn{\the@site}{l|}{\jpub $\hat=$ publication, \jpro $\hat=$ project, joint&\multicolumn{\the@site}{l|}{\jpub $\hat=$ publication, \jpro $\hat=$ project,
\jorga $\hat=$ organization}\\\hline \jorga $\hat=$ organization, \jsoft $\hat=$ software/resource dev,
\jsup $\hat=$ supervision}\\\hline
\end{tabular}} \end{tabular}}
\newcommand\coherencetable{% \define@key{coherencetable}{swsites}[true]{\def\cht@swsites{#1}}
\begin{table}[ht] \define@key{coherencetable}{stretch}{\def\cht@stretch{#1}}
\begin{center}\small\setlength{\tabcolsep}{.5em} \newcommand\coherencetable[1][]{%
\renewcommand{\arraystretch}{.9}\coherencematrix \def\cht@swsites{false}%
\end{center} \def\cht@stretch{1}%
\setkeys{coherencetable}{#1}%
\begin{table}[ht]\centering%
\small\setlength{\tabcolsep}{.5em}%
\renewcommand{\arraystretch}{\cht@stretch}%
\coherencematrix%
\caption{\coherence@caption}\label{tab:collaboration} \caption{\coherence@caption}\label{tab:collaboration}
\end{table}} \end{table}}
\newcommand\coherence@caption{Previous Collaboration between {\pn} members} \newcommand\coherence@caption{Previous Collaboration between {\pn} members}

View File

@ -13,9 +13,9 @@
% %
% \iffalse % \iffalse
%<cls|pdata|reporting>\NeedsTeXFormat{LaTeX2e}[1999/12/01] %<cls|pdata|reporting>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<cls>\ProvidesClass{proposal}[2013/02/19 v1.4 Project Proposal] %<cls>\ProvidesClass{proposal}[2015/01/14 v1.5 Project Proposal]
%<pdata>\ProvidesPackage{pdata}[2013/02/19 v1.4 Project Data] %<pdata>\ProvidesPackage{pdata}[2015/01/14 v1.5 Project Data]
%<reporting>\ProvidesPackage{reporting}[2013/02/19 v1.4 Project Reporting] %<reporting>\ProvidesPackage{reporting}[2015/01/14 v1.5 Project Reporting]
%<*driver> %<*driver>
\documentclass{ltxdoc} \documentclass{ltxdoc}
\DoNotIndex{\def,\long,\edef,\xdef,\gdef,\let,\global} \DoNotIndex{\def,\long,\edef,\xdef,\gdef,\let,\global}
@ -63,6 +63,7 @@
% \changes{v1.4}{2012/01/18}{various extensions for the Jan 2012 EU proposals} % \changes{v1.4}{2012/01/18}{various extensions for the Jan 2012 EU proposals}
% \changes{v1.4}{2012/01/28}{some localization support} % \changes{v1.4}{2012/01/28}{some localization support}
% \changes{v1.4}{2013/01/12}{more documentation of milestones} % \changes{v1.4}{2013/01/12}{more documentation of milestones}
% \changes{v1.5}{2014/01/14}{many layout tweaks support for CVs, milestones in gantt}
% %
% \GetFileInfo{proposal.cls} % \GetFileInfo{proposal.cls}
% %
@ -469,17 +470,20 @@
% %
% Many proposals require ways to show coherence between the partners. The |proposal| class % Many proposals require ways to show coherence between the partners. The |proposal| class
% offers the macro \DescribeMacro{\coherencematrix}|\coherencematrix| for this which % offers the macro \DescribeMacro{\coherencematrix}|\coherencematrix| for this which
% generates a matrix of symbols specifying joint publications and joint projects by the % generates a matrix of symbols specifying joint publications, project organization,
% project partners that have been declared by the \DescribeMacro{\jointpub}|\jointpub|, % software/resource development, and supervision of students by the project partners that
% \DescribeMacro{\jointproj}|\jointproj|, and \DescribeMacro{\jointorga}|\jointorga| % have been declared by the \DescribeMacro{\jointpub}|\jointpub|,
% macros before. These macros all take a comma-separated list of site identifiers as an % \DescribeMacro{\jointsub}|\jointproj|, \DescribeMacro{\jointorga}|\jointorga|
% \DescribeMacro{\jointsoft}|\jointsoft|, and \DescribeMacro{\jointsup}|\jointsup| macros
% before. These macros all take a comma-separated list of site identifiers as an
% argument. Use for instance |\jointproj{a,b,c}| to specify that the sites with the % argument. Use for instance |\jointproj{a,b,c}| to specify that the sites with the
% identifiers |a|, |b| and |c| have a joint % identifiers |a|, |b| and |c| have a joint
% project. \DescribeMacro{\coherencetable}|\coherencetable| is a variant which packages % project. \DescribeMacro{\coherencetable}|\coherencetable| is a variant which packages
% the coherence table in a table figure with label |tab:collaboration|. % the coherence table in a table figure with label |tab:collaboration|.
% %
% The symbols used an be configured by redefining \DescribeMacro{\jpub}|\jpub|, % The symbols used an be configured by redefining \DescribeMacro{\jpub}|\jpub|,
% \DescribeMacro{\jproj}|\jproj|, and \DescribeMacro{\jorga}|\jorga|. % \DescribeMacro{\jproj}|\jproj|, and \DescribeMacro{\jorga}|\jorga|,
% \DescribeMacro{\jsoft}|\jsoft|, and \DescribeMacro{\jsup}|\jsup|.
% %
% \subsection{Localization}\label{sec:use:localization} % \subsection{Localization}\label{sec:use:localization}
% %
@ -566,6 +570,7 @@
% \begin{macrocode} % \begin{macrocode}
\LoadClass[a4paper,twoside]{\proposal@class} \LoadClass[a4paper,twoside]{\proposal@class}
\RequirePackage{amssymb} \RequirePackage{amssymb}
\RequirePackage{wasysym}
\RequirePackage{url} \RequirePackage{url}
\RequirePackage{graphicx} \RequirePackage{graphicx}
\RequirePackage{colortbl} \RequirePackage{colortbl}
@ -578,7 +583,7 @@
\AtBeginDocument{\ifpublic\excludecomment{private}\fi} \AtBeginDocument{\ifpublic\excludecomment{private}\fi}
\RequirePackage{tikz} \RequirePackage{tikz}
\RequirePackage{paralist} \RequirePackage{paralist}
\RequirePackage{a4wide} \RequirePackage[a4paper,margin=18mm]{geometry}
\RequirePackage{boxedminipage} \RequirePackage{boxedminipage}
% so that ednotes in wps do not run out of symbols % so that ednotes in wps do not run out of symbols
\renewcommand{\thempfootnote}{\roman{mpfootnote}} \renewcommand{\thempfootnote}{\roman{mpfootnote}}
@ -722,6 +727,7 @@
\pdata@def{prop}{gen}{fundsuntil}{#1}} \pdata@def{prop}{gen}{fundsuntil}{#1}}
\define@key{prop@gen}{topdownPM}[true]{\def\prop@gen@topdownPM{#1}} \define@key{prop@gen}{topdownPM}[true]{\def\prop@gen@topdownPM{#1}}
\define@key{prop@gen}{botupPM}[true]{\def\prop@gen@botupPM{#1}} \define@key{prop@gen}{botupPM}[true]{\def\prop@gen@botupPM{#1}}
\define@key{prop@gen}{keywords}{\def\prop@gen@keywords{#1}}
% \end{macrocode} % \end{macrocode}
% and the default values, these will be used, if the author does not specify something % and the default values, these will be used, if the author does not specify something
% better. % better.
@ -1391,8 +1397,9 @@
\pdata@def{mile}\mile@id{month}{\mile@month}% \pdata@def{mile}\mile@id{month}{\mile@month}%
\pdata@def{mile}\mile@id{verif}{\mile@verif}% \pdata@def{mile}\mile@id{verif}{\mile@verif}%
\pdata@def{mile}\mile@id{title}{#2}% \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}}% \@ifundefined{mile@stones}{\xdef\mile@stones{\mile@id}}{\xdef\mile@stones{\mile@stones,\mile@id}}%
\@milestone{#1}{#2}{#3}% presentation \@milestone{\mile@id}{#2}{#3}% presentation
\else\deliv@error\fi} \else\deliv@error\fi}
% \end{macrocode} % \end{macrocode}
% \end{macro} % \end{macro}
@ -1400,30 +1407,62 @@
% \begin{macro}{\@milestone} % \begin{macro}{\@milestone}
% the corresponding presentation macro. % the corresponding presentation macro.
% \begin{macrocode} % \begin{macrocode}
\newcommand\@milestone[3]{% \newcommand\@milestone[3]{% id, title, description
\pdata@target{mile}\mile@id{\textbf{\milestone@label\themilestone}}& \item \textbf{Milestone \pdataref{mile}{#1}{label} (Month \pdataref{mile}\mile@id{month})
\textbf{#2} & \textbf{#2}} #3}
\prop@milesfor\mile@id &
\pdataref{mile}\mile@id{month} &
\pdataref{mile}\mile@id{verif}\\\hline
\multicolumn{5}{|p{14cm}|}{#3}\\\hline\hline}
% \end{macrocode} % \end{macrocode}
% \end{macro} % \end{macro}
% %
% \begin{environment}{milestones} % \begin{environment}{milestones}
% This does the metadata bookkeeping, the layout is delegated to the presentation
% environment |@milestones| and the legend macros that can be customized for specific
% proposals.
% \begin{macrocode} % \begin{macrocode}
\newenvironment{milestones}{\begin{@milestones}}{\end{@milestones}} \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}
% \end{macrocode} % \end{macrocode}
% \end{environment} % \end{environment}
% %
% \begin{environment}{@milestones} % \begin{environment}{@milestones}
% here we do the work.
% \begin{macrocode} % \begin{macrocode}
\newenvironment{@milestones} \newenvironment{@milestones}{\begin{enumerate}}{\end{enumerate}}
{\ifdelivs\begin{longtable}{|l|p{4cm}|p{5cm}|l|p{2.5cm}|}\hline % \end{macrocode}
\#&\miles@legend@name&\miles@legend@involved&\miles@legend@month&\miles@legend@verif\\\hline\hline% % \end{environment}
\else\deliv@error\fi} %
{\ifdelivs\end{longtable}% % \begin{macro}{milestonetable}
\footnotetext\miles@legend@footnote\fi} % 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} % \end{macrocode}
% now the multilinguality support % now the multilinguality support
% \begin{macrocode} % \begin{macrocode}
@ -1433,7 +1472,7 @@
\newcommand\miles@legend@involved{WPs\footnotemark/Deliverables involved} \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\miles@legend@footnote{The work package number is the first number in the deliverable number.}
% \end{macrocode} % \end{macrocode}
% \end{environment} % \end{macro}
% %
% \begin{macro}{\prop@milesfor} % \begin{macro}{\prop@milesfor}
% the due date is the first argument to facilitate sorting % the due date is the first argument to facilitate sorting
@ -1522,7 +1561,7 @@
% \begin{macro}{\task@post@title@space} % \begin{macro}{\task@post@title@space}
% make the space after the title tweakable % make the space after the title tweakable
% \begin{macrocode} % \begin{macrocode}
\def\task@post@title@space{\quad} \def\task@post@title@space{\;}
% \end{macrocode} % \end{macrocode}
% \end{macro} % \end{macro}
% %
@ -1533,24 +1572,28 @@
\newcommand\task@legend@partners{Sites: } \newcommand\task@legend@partners{Sites: }
\newcommand\task@legend@PM{PM} \newcommand\task@legend@PM{PM}
\newenvironment{task}[1][]% \newenvironment{task}[1][]%
{\stepcounter{alltasks} {\stepcounter{alltasks}%
\@task{#1}\item[\pdata@target{task}{\taskin\task@id\wp@id}{\task@label\thewp\thetask@wp}]% \@task{#1}\item[\pdata@target{task}{\taskin\task@id\wp@id}{\task@label\thewp\thetask@wp}]%
\@ifundefined{task@title}{}{\textbf\task@title}\task@post@title@space% \@ifundefined{task@title}{}{\textbf\task@title}\task@post@title@space%
\def\@initial{0-0}\ifx\task@wphases\@initial\else% \def\@initial{0-0}\ifx\task@wphases\@initial\else%
\let\@@sep=\relax\@for\@I:=\task@wphases% \let\@@sep=\relax\@for\@I:=\task@wphases%
\do{\decode@wphase\@I\@@sep\show@wphase\wphase@start\wphase@end\wphase@force\let\@@sep=\sep@wphases}% \do{\decode@wphase\@I%
\@@sep\show@wphase\wphase@start\wphase@end\wphase@force%
\let\@@sep=\sep@wphases}%
\fi% initial \fi% initial
\hfill% \hfill%
\ifsubmit\else\ifx\task@PM\@empty\else\task@PM\ \task@legend@PM;\fi\fi% \ifsubmit\else\ifx\task@PM\@empty\else\task@PM~\task@legend@PM;\fi\fi%
\ifx\task@lead\@empty\else\ \task@legend@partners\site\task@lead~(\legend@lead)\fi% \ifx\task@lead\@empty\else\ \task@legend@partners\site\task@lead~(\legend@lead)\fi%
\@for\@I:=\task@partners\do{, \site\@I}\\} \@for\@I:=\task@partners\do{, \site\@I}\\%
{\ignorespaces} \ignorespaces}
{\medskip}
% \end{macrocode} % \end{macrocode}
% now the multilingual support and presentation configuration % now the multilingual support and presentation configuration
% \begin{macrocode} % \begin{macrocode}
\newcommand\month@label[1]{M#1} \newcommand\month@label[1]{M#1}
\newcommand\show@wphase[3]{\def\@test{#3}\month@label{#1}-\month@label{#2}% \newcommand\show@wphase[3]{\edef\@test{#3}\def\@one{1}%
\ifx\@test\@empty\@ #3} \month@label{#1}-\month@label{#2}%
\ifx\@test\@empty\else\ifx\@test\@one\else @#3\fi\fi}
\newcommand\sep@wphases{; } \newcommand\sep@wphases{; }
\newcommand\legend@partners{Partners} \newcommand\legend@partners{Partners}
\newcommand\legend@lead{lead} \newcommand\legend@lead{lead}
@ -1737,7 +1780,8 @@
% \begin{macrocode} % \begin{macrocode}
\definecolorset{gray/rgb/hsb/cmyk}{}{}% \definecolorset{gray/rgb/hsb/cmyk}{}{}%
{leadgray,.90/.90,.90,.90/0,0,.90/0,0,0,.10;% {leadgray,.90/.90,.90,.90/0,0,.90/0,0,0,.10;%
wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30} wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30;%
ganttgray,.60/.60,.60,.60/0,0,.60/0,0,0,.40}
\newcommand\sum@style[1]{\cellcolor{wagray}{\textbf{#1}}} \newcommand\sum@style[1]{\cellcolor{wagray}{\textbf{#1}}}
\newcommand\wa@style[1]{\cellcolor{wagray}{\textbf{#1}}} \newcommand\wa@style[1]{\cellcolor{wagray}{\textbf{#1}}}
\newcommand\wp@style[1]{#1} \newcommand\wp@style[1]{#1}
@ -1761,8 +1805,10 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
\define@key{wpfig}{length}[true]{\def\wpfig@length{#1}\stepcounter{wpfig@options}} \define@key{wpfig}{length}[true]{\def\wpfig@length{#1}\stepcounter{wpfig@options}}
\def\wpfig@end{false} \def\wpfig@end{false}
\define@key{wpfig}{end}[true]{\def\wpfig@end{#1}\stepcounter{wpfig@options}} \define@key{wpfig}{end}[true]{\def\wpfig@end{#1}\stepcounter{wpfig@options}}
\define@key{wpfig}{label}{\def\wpfig@label{#1}}
\define@key{wpfig}{caption}{\def\wpfig@caption{#1}}
\def\@sw#1{\begin{sideways}#1\end{sideways}} \def\@sw#1{\begin{sideways}#1\end{sideways}}
\newenvironment{wp@figure}{\begin{figure}[ht]\wpfig@style\begin{center} \newenvironment{wp@figure}{\begin{table}[ht]\wpfig@style\begin{center}
{\let\@sw\relax\let\textbf\relax\let\site\relax\let\pn\relax\let\sys\relax% {\let\@sw\relax\let\textbf\relax\let\site\relax\let\pn\relax\let\sys\relax%
\gdef\wpfig@headline{\wpfig@legend@wap&\wpfig@legend@title% \gdef\wpfig@headline{\wpfig@legend@wap&\wpfig@legend@title%
\ifx\wpfig@type\@true&\wpfig@legend@type\fi% \ifx\wpfig@type\@true&\wpfig@legend@type\fi%
@ -1785,8 +1831,9 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
{\end{tabular}\smallskip\\ {\end{tabular}\smallskip\\
\wpfig@legend@RAM@expl \wpfig@legend@RAM@expl
\if@sites; \wpfig@legend@lead@expl\fi \if@sites; \wpfig@legend@lead@expl\fi
\caption{\wpfig@legend@caption}\label{fig:wplist} \@ifundefined{wpfig@label}{\caption{\wpfig@legend@caption}}{\caption{\wpfig@caption}}
\end{center}\end{figure}} \@ifundefined{wpfig@label}{\label{fig:wplist}}{\label{\wpfig@label}}
\end{center}\end{table}}
% \end{macrocode} % \end{macrocode}
% and now multilinguality support % and now multilinguality support
% \begin{macrocode} % \begin{macrocode}
@ -2051,11 +2098,13 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
% We define the keys for Gantt tables % We define the keys for Gantt tables
% \begin{macrocode} % \begin{macrocode}
\newif\ifgantt@draft\gantt@draftfalse \newif\ifgantt@draft\gantt@draftfalse
\newif\ifgantt@miles\gantt@milesfalse
\define@key{gantt}{xscale}{\def\gantt@xscale{#1}} \define@key{gantt}{xscale}{\def\gantt@xscale{#1}}
\define@key{gantt}{yscale}{\def\gantt@yscale{#1}} \define@key{gantt}{yscale}{\def\gantt@yscale{#1}}
\define@key{gantt}{step}{\def\gantt@step{#1}} \define@key{gantt}{step}{\def\gantt@step{#1}}
\define@key{gantt}{size}{\def\gantt@size{#1}} \define@key{gantt}{size}{\def\gantt@size{#1}}
\define@key{gantt}{draft}[true]{\ifsubmit\else\gantt@drafttrue\fi} \define@key{gantt}{draft}[true]{\ifsubmit\else\gantt@drafttrue\fi}
\define@key{gantt}{milestones}[true]{\gantt@milestrue}
% \end{macrocode} % \end{macrocode}
% Then we define an auxiliary function that provides defaults for these keys and sets the % Then we define an auxiliary function that provides defaults for these keys and sets the
% internal macros. % internal macros.
@ -2071,7 +2120,7 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
% for a gantt chart. The grid is |\prop@gen@months| wide and \meta{height} high. % for a gantt chart. The grid is |\prop@gen@months| wide and \meta{height} high.
% \begin{macrocode} % \begin{macrocode}
\newenvironment{gantt}[2][] \newenvironment{gantt}[2][]
{\gantt@set{#1} {\gantt@set{#1}\gdef\gantt@height{#2}
\def\@test{\prop@gen@months@default} \def\@test{\prop@gen@months@default}
\ifx\@test\prop@gen@months \ifx\@test\prop@gen@months
\ClassError{proposal}{Need overall project months to draw gantt \ClassError{proposal}{Need overall project months to draw gantt
@ -2079,12 +2128,23 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
\protect\begin{proposal}[...,months=??,...] to fix}\fi \protect\begin{proposal}[...,months=??,...] to fix}\fi
\@ifundefined{gantt@size}{}{\csname\gantt@size\endcsname} \@ifundefined{gantt@size}{}{\csname\gantt@size\endcsname}
\newdimen\gantt@ymonths \newdimen\gantt@ymonths
\gantt@ymonths=#2 cm \gantt@ymonths=\gantt@height cm
\advance\gantt@ymonths by .5cm \advance\gantt@ymonths by .8cm
\begin{tikzpicture}[xscale=\gantt@xscale,yscale=\gantt@yscale] \begin{tikzpicture}[xscale=\gantt@xscale,yscale=\gantt@yscale]}
\draw[xstep=\gantt@step,gray,very thin] (0,0) grid (\prop@gen@months,#2); {\draw[xstep=\gantt@step,very thin] (0,0) grid (\prop@gen@months,\gantt@height);
\foreach \x in {0,\gantt@step,...,\prop@gen@months} \node at (\x,\gantt@ymonths) {\x};} \foreach \x in {0,\gantt@step,...,\prop@gen@months} \node at (\x,\gantt@ymonths) {\x};
{\end{tikzpicture}} \ifgantt@miles
\newdimen\gantt@ymiles\gantt@ymiles=\gantt@height cm
\advance\gantt@ymiles by 2cm
\newdimen\gantt@ymiles@top\gantt@ymiles@top=\gantt@height cm
%\advance\gantt@ymiles@top by 2cm
\edef\@@miles{\pdataref@safe{all}{mile}{ids}}
\@for\@I:=\@@miles\do{%
\edef\@@month{\pdataref@safe{mile}{\@I}{month}}
\draw[very thick,blue] (\@@month,\gantt@ymiles@top) -- (\@@month,0);
\node[blue] at (\@@month,\gantt@ymiles) {\pdataref{mile}{\@I}{label}};}
\fi %gantt@miles
\end{tikzpicture}}
% \end{macrocode} % \end{macrocode}
% \end{environment} % \end{environment}
% %
@ -2095,13 +2155,14 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
% \meta{month} with length \meta{len} that is \meta{force} thick. % \meta{month} with length \meta{len} that is \meta{force} thick.
% \begin{macrocode} % \begin{macrocode}
\newdimen\gantt@ymid\newdimen\gantt@yinc\newdimen\gantt@xend \newdimen\gantt@ymid\newdimen\gantt@yinc\newdimen\gantt@xend
\newcommand{\@action}[5]{% \newcommand{\@action}[6][]{\def\@test{#1}%
\gantt@ymid=#2 cm\gantt@yinc=\gantt@yscale cm \ifx\@test\@empty\def\@@color{ganttgray}\else\def\@@color{#1}\fi
\gantt@xend=#3 cm\advance\gantt@xend by #4 cm \gantt@ymid=#3 cm\gantt@yinc=\gantt@yscale cm
\gantt@xend=#4 cm\advance\gantt@xend by #5 cm
\advance\gantt@ymid by \gantt@yinc \advance\gantt@ymid by \gantt@yinc
\fill (#3,#2) rectangle +(#4,#5); \fill[\@@color] (#4,#3) rectangle +(#5,#6);
\node (#1@left) at (#3,\gantt@ymid) {}; \node (#2@left) at (#4,\gantt@ymid) {};
\node (#1@right) at (\gantt@xend,\gantt@ymid) {};} \node (#2@right) at (\gantt@xend,\gantt@ymid) {};}
% \end{macrocode} % \end{macrocode}
% \end{macro} % \end{macro}
% %
@ -2193,7 +2254,7 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
\@for\@@ft:=\@@wphases\do{%iterate over the wp-level work phases \@for\@@ft:=\@@wphases\do{%iterate over the wp-level work phases
\decode@wphase\@@ft \decode@wphase\@@ft
\gantt@compute@effort\wphase@start\wphase@len\wphase@force}}}} \gantt@compute@effort\wphase@start\wphase@len\wphase@force}}}}
\fill (\thegantt@month,-5) rectangle +(1,\gantt@effort); \fill[ganttgray] (\thegantt@month,-5) rectangle +(1,\gantt@effort);
\else% ifwork@areas \else% ifwork@areas
\edef\@@wps{\pdataref@safe{all}{wp}{ids}} \edef\@@wps{\pdataref@safe{all}{wp}{ids}}
\@for\@@wp:=\@@wps\do{% iterate over work packages \@for\@@wp:=\@@wps\do{% iterate over work packages
@ -2207,19 +2268,22 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
\@for\@@ft:=\@@wphases\do{%iterate over the wp-level work phases \@for\@@ft:=\@@wphases\do{%iterate over the wp-level work phases
\decode@wphase\@@ft \decode@wphase\@@ft
\gantt@compute@effort\wphase@start\wphase@len\wphase@force}}} \gantt@compute@effort\wphase@start\wphase@len\wphase@force}}}
\fill (\thegantt@month,-5) rectangle +(1,\gantt@effort); \fill[ganttgray] (\thegantt@month,-5) rectangle +(1,\gantt@effort);
\fi% ifwork@areas \fi% ifwork@areas
\stepcounter{gantt@month}} \stepcounter{gantt@month}}
\fi% ifgantt@draft \fi% ifgantt@draft
\end{gantt} \end{gantt}
\caption{\gantt@caption}\label{fig:gantt} \caption{\gantt@caption}\label{fig:gantt}
\end{figure}} \end{figure}\footnotetext\gantt@footnote}
% \end{macrocode} % \end{macrocode}
% now the multilingual support % now the multilingual support
% \begin{macrocode} % \begin{macrocode}
\newcommand\gantt@caption@main{Overview Work Package Activities} \newcommand\gantt@caption@main{Gantt Chart: Overview Work Package Activities}
\newcommand\gantt@caption@lower{lower bar shows the overall effort \if@RAM (RAM only)\fi per month} \newcommand\gantt@caption@lower{lower bar shows the overall effort \if@RAM (RAM only)\fi per month}
\newcommand\gantt@caption{\gantt@caption@main\ifgantt@draft\xspace (\gantt@caption@lower)\fi} \newcommand\gantt@caption{\gantt@caption@main\ifgantt@draft\xspace
(\gantt@caption@lower)\fi}
\newcommand\gantt@footnote{Bars shown at reduced height (e.g. 50\%) indicate reduced
intensity during that work phase (e.g. to 50\%).}
% \end{macrocode} % \end{macrocode}
% \end{macro} % \end{macro}
% %
@ -2228,16 +2292,20 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
% useful for EU projects\ednote{this should be incorporated with the gantt chart above, % useful for EU projects\ednote{this should be incorporated with the gantt chart above,
% but I am currently to scared to do it so close to the deadline} % but I am currently to scared to do it so close to the deadline}
% \begin{macrocode} % \begin{macrocode}
\newcommand{\gantttaskchart}[1][]{\begin{figure}[ht]\centering\gantt@set{#1} \newcommand{\gantttaskchart}[1][]{\begin{figure}[hbtp]\centering\gantt@set{#1}
\def\gantt@tasks{\pdataref@num{all}{task}{count}} \newcounter{gantt@all@tasks}%
\begin{gantt}[#1]{\gantt@tasks} \setcounter{gantt@all@tasks}{\pdataref@num{all}{task}{count}}
\addtocounter{gantt@all@tasks}{\pdataref@num{all}{wp}{count}}
\begin{gantt}[#1]{\thegantt@all@tasks}
\newcounter{gantt@tasks}\newcount\@@line \newcounter{gantt@tasks}\newcount\@@line
\edef\@@wps{\pdataref@safe{all}{wp}{ids}} \edef\@@wps{\pdataref@safe{all}{wp}{ids}}
\@for\@@wp:=\@@wps\do{% iterate over work packages \@for\@@wp:=\@@wps\do{% iterate over work packages
\stepcounter{gantt@tasks}
% \@action[white]{}\@@line0{48}1
\edef\@@tasks{\pdataref@safe\@@wp{task}{ids}} \edef\@@tasks{\pdataref@safe\@@wp{task}{ids}}
\@for\@@task:=\@@tasks\do{% iterate over the tasks \@for\@@task:=\@@tasks\do{% iterate over the tasks
\stepcounter{gantt@tasks} \stepcounter{gantt@tasks}
\@@line=\gantt@tasks\advance\@@line by -\thegantt@tasks \@@line=\thegantt@all@tasks\advance\@@line by -\thegantt@tasks
\node at (-.5/\gantt@xscale,\@@line) [above=-2pt] {{\footnotesize\taskreflong\@@wp\@@task}}; \node at (-.5/\gantt@xscale,\@@line) [above=-2pt] {{\footnotesize\taskreflong\@@wp\@@task}};
\edef\@@wphases{\pdataref@safe{task}\@@task{wphases}} \edef\@@wphases{\pdataref@safe{task}\@@task{wphases}}
\@for\@@ft:=\@@wphases\do{%iterate over the task-level work phases \@for\@@ft:=\@@wphases\do{%iterate over the task-level work phases
@ -2245,7 +2313,7 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
\@action\@@task\@@line\wphase@start\wphase@len\wphase@force \@action\@@task\@@line\wphase@start\wphase@len\wphase@force
}}}% end all iterations }}}% end all iterations
\end{gantt} \end{gantt}
\caption{\gantt@caption@main}\label{fig:gantt} \caption{\gantt@caption@main{} -- \emph{\gantt@footnote}}\label{fig:gantt}
\end{figure}} \end{figure}}
% \end{macrocode} % \end{macrocode}
% \end{macro} % \end{macro}
@ -2254,9 +2322,11 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
% %
% \begin{macro}{\j*} % \begin{macro}{\j*}
% \begin{macrocode} % \begin{macrocode}
\newcommand\jpub{\textcolor{\prop@link@color}{\textbf{\large{$\star$}}}} \newcommand\jpub{\textcolor{\prop@link@color}{\textbf{\Large{$\star$}}}}
\newcommand\jpro{\textcolor{\prop@link@color}{\textbf{\large{$\bullet$}}}} \newcommand\jpro{\textcolor{\prop@link@color}{\textbf{\Large{$\bullet$}}}}
\newcommand\jorga{\textcolor{\prop@link@color}{\textbf{\large{$\circ$}}}} \newcommand\jsoft{\textcolor{\prop@link@color}{\textbf{@}}}
\newcommand\jorga{\textcolor{\prop@link@color}{\textbf{\Large{$\circ$}}}}
\newcommand\jsup{\textcolor{\prop@link@color}{\textbf{\smiley}}}
% \end{macrocode} % \end{macrocode}
% \end{macro} % \end{macro}
% %
@ -2283,8 +2353,10 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
% Now, some instances that use these. % Now, some instances that use these.
% \begin{macrocode} % \begin{macrocode}
\newcommand\jointproj[1]{\prop@joint\jpro{#1}} \newcommand\jointproj[1]{\prop@joint\jpro{#1}}
\newcommand\jointpub[1]{\prop@joint\jpro{#1}} \newcommand\jointpub[1]{\prop@joint\jpub{#1}}
\newcommand\jointorga[1]{\prop@joint\jorga{#1}} \newcommand\jointorga[1]{\prop@joint\jorga{#1}}
\newcommand\jointsoft[1]{\prop@joint\jsoft{#1}}
\newcommand\jointsup[1]{\prop@joint\jsup{#1}}
% \end{macrocode} % \end{macrocode}
% \end{macro} % \end{macro}
% %
@ -2292,30 +2364,38 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
% \begin{macrocode} % \begin{macrocode}
\newcommand{\coherencematrix}{ \newcommand{\coherencematrix}{
{\let\tabularnewline\relax\let\hline\relax\let\site\relax% so they do {\let\tabularnewline\relax\let\hline\relax\let\site\relax% so they do
\let\@sw\relax\let\jpub\relax\let\jpro\relax\let\jorga\relax% not bother us \let\@sw\relax\let\jpub\relax\let\jpro\relax\let\jorga\relax% not bother
\gdef\@ct@head{} \let\jsoft\relax\let\jsup\relax\let\cellcolor\relax% us
\@for\@site:=\prop@gen@sites\do{\xdef\@ct@head{\@ct@head &\site{\@site}}} \gdef\@ct@head{}%
\@for\@site:=\prop@gen@sites\do{\xdef\@ct@head{\@ct@head%
&\ifx\cht@swsites\@true\@sw{\site{\@site}}\else\site{\@site}\fi}}%
\gdef\@ct@lines{\@ct@head\tabularnewline\hline\hline} %initialize with head line \gdef\@ct@lines{\@ct@head\tabularnewline\hline\hline} %initialize with head line
\@for\@site:=\prop@gen@sites\do{\xdef\@ct@line{\site{\@site}} \@for\@site:=\prop@gen@sites\do{\xdef\@ct@line{\site{\@site}}%
\@for\@@site:=\prop@gen@sites\do{ \@for\@@site:=\prop@gen@sites\do{%
\xdef\@ct@line{\@ct@line&\ifx\@site\@@site{X}\fi \xdef\@ct@line{\@ct@line&\ifx\@site\@@site{\cellcolor{wagray}{}}\fi%
\@ifundefined{coherence@\@site @\@@site}{}{\@nameuse{coherence@\@site @\@@site}}}} \@ifundefined{coherence@\@site @\@@site}{}{\@nameuse{coherence@\@site @\@@site}}}}%
\xdef\@ct@lines{\@ct@lines\@ct@line\tabularnewline\hline}}} \xdef\@ct@lines{\@ct@lines\@ct@line\tabularnewline\hline}}}%
\begin{tabular}{|l||*{\the@site}{c|}}\hline \begin{tabular}{|l||*{\the@site}{c|}}\hline%
\@ct@lines\hline \@ct@lines\hline%
joint&\multicolumn{\the@site}{l|}{\jpub $\hat=$ publication, \jpro $\hat=$ project, joint&\multicolumn{\the@site}{l|}{\jpub $\hat=$ publication, \jpro $\hat=$ project,
\jorga $\hat=$ organization}\\\hline \jorga $\hat=$ organization, \jsoft $\hat=$ software/resource dev,
\jsup $\hat=$ supervision}\\\hline
\end{tabular}} \end{tabular}}
% \end{macrocode} % \end{macrocode}
% \end{macro} % \end{macro}
% %
% \begin{macro}{\coherencetable} % \begin{macro}{\coherencetable}
% \begin{macrocode} % \begin{macrocode}
\newcommand\coherencetable{% \define@key{coherencetable}{swsites}[true]{\def\cht@swsites{#1}}
\begin{table}[ht] \define@key{coherencetable}{stretch}{\def\cht@stretch{#1}}
\begin{center}\small\setlength{\tabcolsep}{.5em} \newcommand\coherencetable[1][]{%
\renewcommand{\arraystretch}{.9}\coherencematrix \def\cht@swsites{false}%
\end{center} \def\cht@stretch{1}%
\setkeys{coherencetable}{#1}%
\begin{table}[ht]\centering%
\small\setlength{\tabcolsep}{.5em}%
\renewcommand{\arraystretch}{\cht@stretch}%
\coherencematrix%
\caption{\coherence@caption}\label{tab:collaboration} \caption{\coherence@caption}\label{tab:collaboration}
\end{table}} \end{table}}
% \end{macrocode} % \end{macrocode}
@ -2455,15 +2535,15 @@ joint&\multicolumn{\the@site}{l|}{\jpub $\hat=$ publication, \jpro $\hat=$ proje
% LocalWords: tasks deps number line Effort target ids count warning at pdata swsites % LocalWords: tasks deps number line Effort target ids count warning at pdata swsites
% LocalWords: for undefined safe zero one two three four five six seven eight swsites % LocalWords: for undefined safe zero one two three four five six seven eight swsites
% LocalWords: nine ten eleven twelve style lines totals Packages xscale yscale wphrases % LocalWords: nine ten eleven twelve style lines totals Packages xscale yscale wphrases
% LocalWords: step set gray very thin grid workphase len force phase length to % LocalWords: step set gray very thin grid workphase len force phase length to endhead
% LocalWords: taskdep from rectangle left right width pt color red above dep % LocalWords: taskdep from rectangle left right width pt color red above dep jointsub
% LocalWords: Overview Activities Signatures Date paralist ymonths ymid yinc % LocalWords: Overview Activities Signatures Date paralist ymonths ymid yinc jointsoft
% LocalWords: xend effort month iffalse eustrep.dtx fileversion maketitle Antr % LocalWords: xend effort month iffalse eustrep.dtx fileversion maketitle Antr jointsoft
% LocalWords: tableofcontents DescribeEnv ifpublic ifpublic compactitem wpfig % LocalWords: tableofcontents DescribeEnv ifpublic ifpublic compactitem wpfig jointsup
% LocalWords: wpfig workplan workplan bookeeping wissenchaftliche tasklist dmp % LocalWords: wpfig workplan workplan bookeeping wissenchaftliche tasklist dmp jointsup
% LocalWords: tasklist taskin taskref taskref tasktref tasktref localtaskref % LocalWords: tasklist taskin taskref taskref tasktref tasktref localtaskref jsoft jsoft
% LocalWords: localtaskref ganttchart biblatex ifx dfgproposal.dtx newpage pn % LocalWords: localtaskref ganttchart biblatex ifx dfgproposal.dtx newpage pn jsup jsup
% LocalWords: bibtex proposal1-blx.aux pdataref WPtref WPtref WAref WAref WAtref % LocalWords: bibtex proposal1-blx.aux pdataref WPtref WPtref WAref WAref WAtref wasysym
% LocalWords: WAtref protectmacro thebibliography bibitem newblock newif inst % LocalWords: WAtref protectmacro thebibliography bibitem newblock newif inst
% LocalWords: ifsubmit submitfalse publicfalse ifkeys keysfalse ifwork RAMtrue % LocalWords: ifsubmit submitfalse publicfalse ifkeys keysfalse ifwork RAMtrue
% LocalWords: submittrue publictrue excludecomment RAMfalse keystrue sfdefault % LocalWords: submittrue publictrue excludecomment RAMfalse keystrue sfdefault

Binary file not shown.

View File

@ -7,7 +7,7 @@
%% proposal.dtx (with options: `reporting') %% proposal.dtx (with options: `reporting')
%% %%
\NeedsTeXFormat{LaTeX2e}[1999/12/01] \NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{reporting}[2013/02/19 v1.4 Project Reporting] \ProvidesPackage{reporting}[2015/01/14 v1.5 Project Reporting]
\newif\if@wpsubsection\@wpsubsectionfalse \newif\if@wpsubsection\@wpsubsectionfalse
\newif\ifsubmit\submitfalse \newif\ifsubmit\submitfalse
\newif\ifpublic\publicfalse \newif\ifpublic\publicfalse
@ -32,6 +32,7 @@
\ProcessOptions \ProcessOptions
\LoadClass[a4paper,twoside]{\proposal@class} \LoadClass[a4paper,twoside]{\proposal@class}
\RequirePackage{amssymb} \RequirePackage{amssymb}
\RequirePackage{wasysym}
\RequirePackage{url} \RequirePackage{url}
\RequirePackage{graphicx} \RequirePackage{graphicx}
\RequirePackage{colortbl} \RequirePackage{colortbl}
@ -44,7 +45,7 @@
\AtBeginDocument{\ifpublic\excludecomment{private}\fi} \AtBeginDocument{\ifpublic\excludecomment{private}\fi}
\RequirePackage{tikz} \RequirePackage{tikz}
\RequirePackage{paralist} \RequirePackage{paralist}
\RequirePackage{a4wide} \RequirePackage[a4paper,margin=18mm]{geometry}
\RequirePackage{boxedminipage} \RequirePackage{boxedminipage}
\renewcommand{\thempfootnote}{\roman{mpfootnote}} \renewcommand{\thempfootnote}{\roman{mpfootnote}}
\renewcommand{\familydefault}{\sfdefault} \renewcommand{\familydefault}{\sfdefault}

Binary file not shown.

Binary file not shown.

View File

@ -7,8 +7,9 @@
%% euproposal.dtx (with options: `pdata') %% euproposal.dtx (with options: `pdata')
%% %%
\NeedsTeXFormat{LaTeX2e}[1999/12/01] \NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{eupdata}[2013/01/13 v1.4 EU Project Data] \ProvidesPackage{eupdata}[2015/01/14 v1.5 EU Project Data]
\define@key{prop@gen}{coordinator}{\def\prop@gen@coordinator{#1}\pdata@def{prop}{gen}{coordinator}{#1}} \define@key{prop@gen}{coordinator}{\def\prop@gen@coordinator{#1}\pdata@def{prop}{gen}{coordinator}{#1}}
\define@key{prop@gen}{coordinatorsite}{\def\prop@gen@coordinatorsite{#1}\pdata@def{prop}{gen}{coordinator}{#1}}
\def\prop@gen@challenge{??}\def\prop@gen@challengeid{??} \def\prop@gen@challenge{??}\def\prop@gen@challengeid{??}
\define@key{prop@gen}{challenge}{\def\prop@gen@challenge{#1}\pdata@def{prop}{gen}{challenge}{#1}} \define@key{prop@gen}{challenge}{\def\prop@gen@challenge{#1}\pdata@def{prop}{gen}{challenge}{#1}}
\define@key{prop@gen}{challengeid}{\def\prop@gen@challengeid{#1}\pdata@def{prop}{gen}{challengeid}{#1}} \define@key{prop@gen}{challengeid}{\def\prop@gen@challengeid{#1}\pdata@def{prop}{gen}{challengeid}{#1}}

View File

@ -7,7 +7,7 @@
%% euproposal.dtx (with options: `cls') %% euproposal.dtx (with options: `cls')
%% %%
\NeedsTeXFormat{LaTeX2e}[1999/12/01] \NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesClass{euproposal}[2013/01/13 v1.4 EU Proposal] \ProvidesClass{euproposal}[2015/01/14 v1.5 EU Proposal]
\newif\ifpartB\partBfalse \newif\ifpartB\partBfalse
\DeclareOption{partB}{\partBtrue} \DeclareOption{partB}{\partBtrue}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{proposal}} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{proposal}}
@ -17,6 +17,9 @@
\RequirePackage{eurosym} \RequirePackage{eurosym}
\RequirePackage{wrapfig} \RequirePackage{wrapfig}
\RequirePackage{eupdata} \RequirePackage{eupdata}
\RequirePackage{chngcntr}
\counterwithin{figure}{subsection}
\counterwithin{table}{subsection}
\ifpartB \ifpartB
\def\thepart{\Alph{part}} \def\thepart{\Alph{part}}
\setcounter{part}{2} \setcounter{part}{2}
@ -26,7 +29,8 @@
\newcommand\prop@sites@table{\def\@@table{} \newcommand\prop@sites@table{\def\@@table{}
{\let\tabularnewline\relax\let\hline\relax {\let\tabularnewline\relax\let\hline\relax
\@for\@I:=\prop@gen@sites\do{\xdef\@@table{\@@table\pdataref{site}\@I{number}} \@for\@I:=\prop@gen@sites\do{\xdef\@@table{\@@table\pdataref{site}\@I{number}}
\xdef\@@table{\@@table&\@nameuse{wa@institution@\@I @name}} \xdef\@@table{\@@table&\@nameuse{wa@institution@\@I @name}
\ifx\@I\prop@gen@coordinatorsite (coordinator)\fi}
\xdef\@@table{\@@table&\@nameuse{wa@institution@\@I @acronym}} \xdef\@@table{\@@table&\@nameuse{wa@institution@\@I @acronym}}
\xdef\@@table{\@@table&\@nameuse{wa@institution@\@I @countryshort}\tabularnewline\hline}}} \xdef\@@table{\@@table&\@nameuse{wa@institution@\@I @countryshort}\tabularnewline\hline}}}
\begin{tabular}{|l|p{8cm}|l|l|}\hline%| \begin{tabular}{|l|p{8cm}|l|l|}\hline%|
@ -36,31 +40,25 @@
\renewenvironment{prop@proposal} \renewenvironment{prop@proposal}
{\thispagestyle{empty}\begin{center} {\thispagestyle{empty}\begin{center}
{\Large \prop@gen@instrument}\\[.2cm] {\Large \prop@gen@instrument}\\[.2cm]
{\LARGE\textbf\prop@gen@callname}\\[.4cm] {\Large\textbf\prop@gen@callname}\\[.4cm]
{\Large \prop@gen@callid}\\[.4cm] {\LARGE \prop@gen@callid}\\[.8cm]
{\LARGE\textbf\prop@gen@title}\\[.3cm] {\huge\textbf\prop@gen@title}\\[.4cm]
{\LARGE Acronym: {\prop@gen@acronym}}\\[.2cm] {\LARGE Acronym: {\prop@gen@acronym}}\\[2cm]
\end{center} \end{center}
{\large\prop@gen@instrument}\\
{\large\textbf{Date of Preparation: \today}} {\large\textbf{Date of Preparation: \today}}
\ifsubmit\else\\ \\[1em]
{\large\textbf{Revision}:
\if@svninfo\svnInfoRevision\fi\if@gitinfo\gitAbbrevHash\fi
of
\if@svninfo\svnInfoDate\fi\if@gitinfo\gitAuthorDate\fi}
\fi\\[1em]
{\large}
\begin{large} \begin{large}
\begin{description} \begin{description}
\item[Work program topics addressed by \pn:] % \item[Work program topics addressed by \pn:]
\@ifundefined{prop@gen@topicsaddressed} % \@ifundefined{prop@gen@topicsaddressed}
{\textbf{Challenge \prop@gen@challengeid}: \prop@gen@challenge, % {\textbf{Challenge \prop@gen@challengeid}: \prop@gen@challenge,
\textbf{Objective \prop@gen@objectiveid}: \prop@gen@objective, % \textbf{Objective \prop@gen@objectiveid}: \prop@gen@objective,
\textbf{target outcome \prop@gen@outcomeid}) \prop@gen@outcome.} % \textbf{target outcome \prop@gen@outcomeid}) \prop@gen@outcome.
{\prop@gen@topicsaddressed}\\[1em] % {\prop@gen@topicsaddressed}\\[1em]
\item[Coordinator:] \wa@ref{person}\prop@gen@coordinator{name} \item[Coordinator:] \wa@ref{person}\prop@gen@coordinator{name}
\item[e-mail:] \wa@ref{person}\prop@gen@coordinator{email} \item[e-mail:] \wa@ref{person}\prop@gen@coordinator{email}
\item[tel/fax:] \wa@ref{person}\prop@gen@coordinator{worktelfax} \item[tel/fax:] \wa@ref{person}\prop@gen@coordinator{worktelfax}
\@ifundefined{prop@gen@keywords}{}{\item[Keywords:] \prop@gen@keywords}
\end{description} \end{description}
\end{large} \end{large}
\vspace*{1em} \vspace*{1em}

View File

@ -13,9 +13,9 @@
% %
% \iffalse % \iffalse
%<cls|pdata|reporting>\NeedsTeXFormat{LaTeX2e}[1999/12/01] %<cls|pdata|reporting>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<cls>\ProvidesClass{euproposal}[2013/01/13 v1.4 EU Proposal] %<cls>\ProvidesClass{euproposal}[2015/01/14 v1.5 EU Proposal]
%<pdata>\ProvidesPackage{eupdata}[2013/01/13 v1.4 EU Project Data] %<pdata>\ProvidesPackage{eupdata}[2015/01/14 v1.5 EU Project Data]
%<reporting>\ProvidesPackage{eureporting}[2013/01/13 v1.4 EU Project Reporting] %<reporting>\ProvidesPackage{eureporting}[2015/01/14 v1.5 EU Project Reporting]
%<*driver> %<*driver>
\documentclass[twoside]{ltxdoc} \documentclass[twoside]{ltxdoc}
\DoNotIndex{\def,\long,\edef,\xdef,\gdef,\let,\global} \DoNotIndex{\def,\long,\edef,\xdef,\gdef,\let,\global}
@ -49,6 +49,7 @@
% \changes{v0.3a}{2008/01/18}{error corrections and more documentation} % \changes{v0.3a}{2008/01/18}{error corrections and more documentation}
% \changes{v1.3}{2011/05/18}{basing this on proposal.cls} % \changes{v1.3}{2011/05/18}{basing this on proposal.cls}
% \changes{v1.4}{2012/01/18}{various tweaks for the Jan 2012 proposal deadline} % \changes{v1.4}{2012/01/18}{various tweaks for the Jan 2012 proposal deadline}
% \changes{v1.4}{2015/01/14}{lots of tweaks}
% %
% \GetFileInfo{euproposal.cls} % \GetFileInfo{euproposal.cls}
% %
@ -141,6 +142,8 @@
% \item The \DescribeMacro{coordinator}|coordinator| key gives the identifier of the % \item The \DescribeMacro{coordinator}|coordinator| key gives the identifier of the
% proposal coordinator. The |euproposal| package uses the |workaddress| package for % proposal coordinator. The |euproposal| package uses the |workaddress| package for
% representation of personal metadata, see~\cite{Kohlhase:workaddress:ctan} for details. % representation of personal metadata, see~\cite{Kohlhase:workaddress:ctan} for details.
% \item The \DescribeMacro{coordinatorsite}|coordinatorsite| key gives the identifier of
% the coordinating site (for the table).
% \item If given, the \DescribeMacro{iconrowheight}|iconrowheight| key instructs the % \item If given, the \DescribeMacro{iconrowheight}|iconrowheight| key instructs the
% |euproposal| class to make a line with the logos of the participants at the bottom of % |euproposal| class to make a line with the logos of the participants at the bottom of
% the title page, and specify their heights; |1.5cm| is often a good value. % the title page, and specify their heights; |1.5cm| is often a good value.
@ -208,6 +211,12 @@
\RequirePackage{eurosym} \RequirePackage{eurosym}
\RequirePackage{wrapfig} \RequirePackage{wrapfig}
\RequirePackage{eupdata} \RequirePackage{eupdata}
% \end{macrocode}
% we want to change the numbering of figures and tables
% \begin{macrocode}
\RequirePackage{chngcntr}
\counterwithin{figure}{subsection}
\counterwithin{table}{subsection}
%</cls|reporting> %</cls|reporting>
% \end{macrocode} % \end{macrocode}
% %
@ -217,6 +226,7 @@
% \begin{macrocode} % \begin{macrocode}
%<*pdata> %<*pdata>
\define@key{prop@gen}{coordinator}{\def\prop@gen@coordinator{#1}\pdata@def{prop}{gen}{coordinator}{#1}} \define@key{prop@gen}{coordinator}{\def\prop@gen@coordinator{#1}\pdata@def{prop}{gen}{coordinator}{#1}}
\define@key{prop@gen}{coordinatorsite}{\def\prop@gen@coordinatorsite{#1}\pdata@def{prop}{gen}{coordinator}{#1}}
\def\prop@gen@challenge{??}\def\prop@gen@challengeid{??} \def\prop@gen@challenge{??}\def\prop@gen@challengeid{??}
\define@key{prop@gen}{challenge}{\def\prop@gen@challenge{#1}\pdata@def{prop}{gen}{challenge}{#1}} \define@key{prop@gen}{challenge}{\def\prop@gen@challenge{#1}\pdata@def{prop}{gen}{challenge}{#1}}
\define@key{prop@gen}{challengeid}{\def\prop@gen@challengeid{#1}\pdata@def{prop}{gen}{challengeid}{#1}} \define@key{prop@gen}{challengeid}{\def\prop@gen@challengeid{#1}\pdata@def{prop}{gen}{challengeid}{#1}}
@ -264,7 +274,8 @@
\newcommand\prop@sites@table{\def\@@table{} \newcommand\prop@sites@table{\def\@@table{}
{\let\tabularnewline\relax\let\hline\relax {\let\tabularnewline\relax\let\hline\relax
\@for\@I:=\prop@gen@sites\do{\xdef\@@table{\@@table\pdataref{site}\@I{number}} \@for\@I:=\prop@gen@sites\do{\xdef\@@table{\@@table\pdataref{site}\@I{number}}
\xdef\@@table{\@@table&\@nameuse{wa@institution@\@I @name}} \xdef\@@table{\@@table&\@nameuse{wa@institution@\@I @name}
\ifx\@I\prop@gen@coordinatorsite (coordinator)\fi}
\xdef\@@table{\@@table&\@nameuse{wa@institution@\@I @acronym}} \xdef\@@table{\@@table&\@nameuse{wa@institution@\@I @acronym}}
\xdef\@@table{\@@table&\@nameuse{wa@institution@\@I @countryshort}\tabularnewline\hline}}} \xdef\@@table{\@@table&\@nameuse{wa@institution@\@I @countryshort}\tabularnewline\hline}}}
\begin{tabular}{|l|p{8cm}|l|l|}\hline%| \begin{tabular}{|l|p{8cm}|l|l|}\hline%|
@ -279,31 +290,32 @@
\renewenvironment{prop@proposal} \renewenvironment{prop@proposal}
{\thispagestyle{empty}\begin{center} {\thispagestyle{empty}\begin{center}
{\Large \prop@gen@instrument}\\[.2cm] {\Large \prop@gen@instrument}\\[.2cm]
{\LARGE\textbf\prop@gen@callname}\\[.4cm] {\Large\textbf\prop@gen@callname}\\[.4cm]
{\Large \prop@gen@callid}\\[.4cm] {\LARGE \prop@gen@callid}\\[.8cm]
{\LARGE\textbf\prop@gen@title}\\[.3cm] {\huge\textbf\prop@gen@title}\\[.4cm]
{\LARGE Acronym: {\prop@gen@acronym}}\\[.2cm] {\LARGE Acronym: {\prop@gen@acronym}}\\[2cm]
\end{center} \end{center}
{\large\prop@gen@instrument}\\ %{\large\prop@gen@instrument}\\
{\large\textbf{Date of Preparation: \today}} {\large\textbf{Date of Preparation: \today}}
\ifsubmit\else\\ % \ifsubmit\else\if@svninfo\if@gitinfo\\
{\large\textbf{Revision}: % {\large\textbf{Revision}:
\if@svninfo\svnInfoRevision\fi\if@gitinfo\gitAbbrevHash\fi % \if@svninfo\svnInfoRevision\fi\if@gitinfo\gitAbbrevHash\fi
of % of
\if@svninfo\svnInfoDate\fi\if@gitinfo\gitAuthorDate\fi} % \if@svninfo\svnInfoDate\fi\if@gitinfo\gitAuthorDate\fi}
\fi\\[1em] % \fi\fi\fi
{\large} \\[1em]
\begin{large} \begin{large}
\begin{description} \begin{description}
\item[Work program topics addressed by \pn:] % \item[Work program topics addressed by \pn:]
\@ifundefined{prop@gen@topicsaddressed} % \@ifundefined{prop@gen@topicsaddressed}
{\textbf{Challenge \prop@gen@challengeid}: \prop@gen@challenge, % {\textbf{Challenge \prop@gen@challengeid}: \prop@gen@challenge,
\textbf{Objective \prop@gen@objectiveid}: \prop@gen@objective, % \textbf{Objective \prop@gen@objectiveid}: \prop@gen@objective,
\textbf{target outcome \prop@gen@outcomeid}) \prop@gen@outcome.} % \textbf{target outcome \prop@gen@outcomeid}) \prop@gen@outcome.
{\prop@gen@topicsaddressed}\\[1em] % {\prop@gen@topicsaddressed}\\[1em]
\item[Coordinator:] \wa@ref{person}\prop@gen@coordinator{name} \item[Coordinator:] \wa@ref{person}\prop@gen@coordinator{name}
\item[e-mail:] \wa@ref{person}\prop@gen@coordinator{email} \item[e-mail:] \wa@ref{person}\prop@gen@coordinator{email}
\item[tel/fax:] \wa@ref{person}\prop@gen@coordinator{worktelfax} \item[tel/fax:] \wa@ref{person}\prop@gen@coordinator{worktelfax}
\@ifundefined{prop@gen@keywords}{}{\item[Keywords:] \prop@gen@keywords}
\end{description} \end{description}
\end{large} \end{large}
\vspace*{1em} \vspace*{1em}

Binary file not shown.

View File

@ -7,7 +7,7 @@
%% euproposal.dtx (with options: `reporting') %% euproposal.dtx (with options: `reporting')
%% %%
\NeedsTeXFormat{LaTeX2e}[1999/12/01] \NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{eureporting}[2013/01/13 v1.4 EU Project Reporting] \ProvidesPackage{eureporting}[2015/01/14 v1.5 EU Project Reporting]
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{reporting}} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{reporting}}
\ProcessOptions \ProcessOptions
\LoadClass[report,noRAM]{reporting} \LoadClass[report,noRAM]{reporting}
@ -15,6 +15,9 @@
\RequirePackage{eurosym} \RequirePackage{eurosym}
\RequirePackage{wrapfig} \RequirePackage{wrapfig}
\RequirePackage{eupdata} \RequirePackage{eupdata}
\RequirePackage{chngcntr}
\counterwithin{figure}{subsection}
\counterwithin{table}{subsection}
\define@key{prop@gen}{reportperiod}{\def\prop@gen@reportperiod{#1}} \define@key{prop@gen}{reportperiod}{\def\prop@gen@reportperiod{#1}}
\define@key{prop@gen}{key}{\@dmp{key=#1}% \define@key{prop@gen}{key}{\@dmp{key=#1}%
\@ifundefined{prop@gen@keys}{\xdef\prop@gen@keys{#1}}{\xdef\prop@gen@keys{\prop@gen@keys,#1}}} \@ifundefined{prop@gen@keys}{\xdef\prop@gen@keys{#1}}{\xdef\prop@gen@keys{\prop@gen@keys,#1}}}

Binary file not shown.

Binary file not shown.