diff --git a/base/pdata.sty b/base/pdata.sty index edcf5c2..e646675 100644 --- a/base/pdata.sty +++ b/base/pdata.sty @@ -56,6 +56,8 @@ \pdata@def{prop}{gen}{totalduration}{#1}} \define@key{prop@gen}{fundsuntil}{\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}{botupPM}[true]{\def\prop@gen@botupPM{#1}} \newcommand\prop@gen@acro@default{ACRONYM} \def\prop@gen@acro{\prop@gen@acro@default} \newcommand\prop@gen@months@default{???months???} diff --git a/base/proposal.cls b/base/proposal.cls index e0d90e0..ce2c5a3 100644 --- a/base/proposal.cls +++ b/base/proposal.cls @@ -145,6 +145,7 @@ \define@key{workpackage}{short}{\pdata@def{wp}\wp@id{short}{#1}} \define@key{workpackage}{type}{\def\wp@type{#1}\pdata@def{wp}\wp@id{type}{#1}} \define@key{workpackage}{wphases}{\def\wp@wphases{#1}\pdata@def{wp}\wp@id{wphases}{#1}} +\define@key{workpackage}{swsites}[true]{\def\wp@swsites{#1}} \newcommand\wp@mk@title[1]{Work Package {#1}} \newcommand\wp@label[1]{WP{#1}} \ifwork@areas @@ -174,6 +175,7 @@ \if@RAM\newcounter{wp@RAM}\fi \newenvironment{work@package}[1][]% {\def\wp@wphases{0-0}% default values +\def\wp@swsites{false} \setkeys{workpackage}{#1}\stepcounter{wp}\stepcounter{allwp}% \startend@wphases\wp@wphases% \pdata@def{wp}\wp@id{start}\wphase@start\pdata@def{wp}\wp@id{end}\wphase@end% @@ -213,15 +215,23 @@ \newcounter{wp@sites@num} \newcommand\wp@sites@efforts@lines{% \setcounter{wp@sites@num}{0} -{\let\G@refundefinedtrue=\relax\let\@latex@warning=\relax% +{\let\G@refundefinedtrue=\relax\let\@latex@warning=\relax\let\@sw\relax% \let\site\relax\let\textbf\relax\let\sum@style\relax\let\lead@style\relax% \let\pn\relax\let\sys\relax% \xdef\wp@sites@line{\wp@legend@site}\xdef\wp@efforts@line{\wp@legend@effort}%initialize lines \@for\@site:=\prop@gen@sites\do{\if@site@contributes\@site{\stepcounter{wp@sites@num}}% \xdef\wp@sites@line{\wp@sites@line% -\if@site@contributes\@site{&\ifx\@site\wp@lead\lead@style{\site{\@site}}\else\site{\@site}\fi}}% +\if@site@contributes\@site{&% +\ifx\wp@swsites\@true% +\@sw{\ifx\@site\wp@lead\lead@style{\site{\@site}}\else\site{\@site}\fi}% +\else\ifx\@site\wp@lead\lead@style{\site{\@site}}\else\site{\@site}\fi% +\fi}}% \xdef\wp@efforts@line{\wp@efforts@line% -\if@site@contributes\@site{&\pdataref@safe\wp@id\@site{RM}\if@RAM+\pdataref@safe\wp@id\@site{RAM}\fi}}}% +\if@site@contributes\@site{&% +\ifx\@site\wp@lead% +\lead@style{\pdataref@safe\wp@id\@site{RM}\if@RAM+\pdataref@safe\wp@id\@site{RAM}\fi} +\else\pdataref@safe\wp@id\@site{RM}\if@RAM+\pdataref@safe\wp@id\@site{RAM}\fi\fi}}% +}% do \xdef\wp@sites@line{\wp@sites@line&\sum@style{\wp@legend@all}}% \xdef\wp@efforts@line{\wp@efforts@line& \sum@style{\textbf{\pdataref{wp}\wp@id{RM}\if@RAM+\pdataref{wp}\wp@id{RAM}\fi}}}}} @@ -713,9 +723,13 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30} \@wp@lines\hline% \multicolumn{\the\local@count}{|c|}{\prop@legend@totals}\@totals\\\hline% \ifsubmit\else% -\multicolumn{\the\local@count}{|c|}{\prop@legend@intendedtotals}\intended@totals\\\hline -\multicolumn{\the\local@count}{|c|}{\prop@legend@requestedtotals}\requested@totals\\\hline -\fi +\ifx\prop@gen@topdownPM\@true% +\multicolumn{\the\local@count}{|c|}{\prop@legend@intendedtotals}\intended@totals\\\hline% +\fi% topdownPM +\ifx\prop@gen@botupPM\@true% +\multicolumn{\the\local@count}{|c|}{\prop@legend@requestedtotals}\requested@totals\\\hline% +\fi% botupPM +\fi% submit \end{wp@figure}} \newcommand\prop@legend@totals{\textbf{totals}} \newcommand\prop@legend@intendedtotals{\textbf{intended totals}} diff --git a/base/proposal.dtx b/base/proposal.dtx index 1e0f72e..587a27d 100644 --- a/base/proposal.dtx +++ b/base/proposal.dtx @@ -196,6 +196,15 @@ % text. Note that these macros use |\xspace| internallly, so they do not have to be % enclosed in curly braces. % +% There are two ways of organizing the distribution of personnel resources when developing +% a proposal. Either the coordinator takes a \emph{top-down approach} where she assigns +% person months (PM) to the respective site, of she takes a \emph{bottom-up approach}, +% where the sites ``request'' personnel resources by marking them up in the CVs of the +% researchers in the site descriptions. |proposal.cls| supports both of these. Support +% for the first is configured via the \DescribeMacro{topdownPM}|topdownPM| key and for the +% other via the \DescribeMacro{botupPM}|botupPM| key. They add respective lines for +% planning in the WA/WP figure (see~\ref{sec:user:wpwa}). +% % \subsection{Proposal Appearance}\label{sec:user:appearance} % % The |proposal| environment takes a second set of keyval arguments that allow to @@ -279,6 +288,9 @@ % \item In multi-site proposals the \DescribeMacro{lead} |lead| key specifies the work % package or work group lead, the value of this feature should be the short name of the % respective partner. +% \item For work packages with many prospers the \DescribeMacro{swsites}|swsites| key +% can be given (no value needed) to turn the site names sideways to conserve +% (horizontal) space. % \end{compactitem} % % It is often useful to group the work packages in a proposal further (especially for @@ -705,6 +717,8 @@ \pdata@def{prop}{gen}{totalduration}{#1}} \define@key{prop@gen}{fundsuntil}{\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}{botupPM}[true]{\def\prop@gen@botupPM{#1}} % \end{macrocode} % and the default values, these will be used, if the author does not specify something % better. @@ -918,6 +932,7 @@ \define@key{workpackage}{short}{\pdata@def{wp}\wp@id{short}{#1}} \define@key{workpackage}{type}{\def\wp@type{#1}\pdata@def{wp}\wp@id{type}{#1}} \define@key{workpackage}{wphases}{\def\wp@wphases{#1}\pdata@def{wp}\wp@id{wphases}{#1}} +\define@key{workpackage}{swsites}[true]{\def\wp@swsites{#1}} % \end{macrocode} % We define the constructors for the work package and work group labels and titles. % \begin{macrocode} @@ -993,6 +1008,7 @@ \if@RAM\newcounter{wp@RAM}\fi \newenvironment{work@package}[1][]% {\def\wp@wphases{0-0}% default values +\def\wp@swsites{false} \setkeys{workpackage}{#1}\stepcounter{wp}\stepcounter{allwp}% \startend@wphases\wp@wphases% \pdata@def{wp}\wp@id{start}\wphase@start\pdata@def{wp}\wp@id{end}\wphase@end% @@ -1076,15 +1092,23 @@ \newcounter{wp@sites@num} \newcommand\wp@sites@efforts@lines{% \setcounter{wp@sites@num}{0} -{\let\G@refundefinedtrue=\relax\let\@latex@warning=\relax% +{\let\G@refundefinedtrue=\relax\let\@latex@warning=\relax\let\@sw\relax% \let\site\relax\let\textbf\relax\let\sum@style\relax\let\lead@style\relax% \let\pn\relax\let\sys\relax% \xdef\wp@sites@line{\wp@legend@site}\xdef\wp@efforts@line{\wp@legend@effort}%initialize lines \@for\@site:=\prop@gen@sites\do{\if@site@contributes\@site{\stepcounter{wp@sites@num}}% \xdef\wp@sites@line{\wp@sites@line% -\if@site@contributes\@site{&\ifx\@site\wp@lead\lead@style{\site{\@site}}\else\site{\@site}\fi}}% +\if@site@contributes\@site{&% +\ifx\wp@swsites\@true% +\@sw{\ifx\@site\wp@lead\lead@style{\site{\@site}}\else\site{\@site}\fi}% +\else\ifx\@site\wp@lead\lead@style{\site{\@site}}\else\site{\@site}\fi% +\fi}}% \xdef\wp@efforts@line{\wp@efforts@line% -\if@site@contributes\@site{&\pdataref@safe\wp@id\@site{RM}\if@RAM+\pdataref@safe\wp@id\@site{RAM}\fi}}}% +\if@site@contributes\@site{&% +\ifx\@site\wp@lead% +\lead@style{\pdataref@safe\wp@id\@site{RM}\if@RAM+\pdataref@safe\wp@id\@site{RAM}\fi} +\else\pdataref@safe\wp@id\@site{RM}\if@RAM+\pdataref@safe\wp@id\@site{RAM}\fi\fi}}% +}% do \xdef\wp@sites@line{\wp@sites@line&\sum@style{\wp@legend@all}}% \xdef\wp@efforts@line{\wp@efforts@line& \sum@style{\textbf{\pdataref{wp}\wp@id{RM}\if@RAM+\pdataref{wp}\wp@id{RAM}\fi}}}}} @@ -1951,9 +1975,13 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30} \@wp@lines\hline% \multicolumn{\the\local@count}{|c|}{\prop@legend@totals}\@totals\\\hline% \ifsubmit\else% -\multicolumn{\the\local@count}{|c|}{\prop@legend@intendedtotals}\intended@totals\\\hline -\multicolumn{\the\local@count}{|c|}{\prop@legend@requestedtotals}\requested@totals\\\hline -\fi +\ifx\prop@gen@topdownPM\@true% +\multicolumn{\the\local@count}{|c|}{\prop@legend@intendedtotals}\intended@totals\\\hline% +\fi% topdownPM +\ifx\prop@gen@botupPM\@true% +\multicolumn{\the\local@count}{|c|}{\prop@legend@requestedtotals}\requested@totals\\\hline% +\fi% botupPM +\fi% submit \end{wp@figure}} % \end{macrocode} % and now multilinguality support @@ -2372,11 +2400,11 @@ joint&\multicolumn{\the@site}{l|}{\jpub $\hat=$ publication, \jpro $\hat=$ proje % LocalWords: def id title acronym discipline start months Proposal Erg by cls endinput % LocalWords: empty em name affiliation Applicants Work Address email The pn Hartenstein % LocalWords: curriculum vita the applicants are enclosed appendix reference Schr -% LocalWords: Research area and field work Scientific Fields Anticipated write -% LocalWords: duration Application period Summary short lead Package label task -% LocalWords: tasks deps number line Effort target ids count warning at pdata -% LocalWords: for undefined safe zero one two three four five six seven eight -% LocalWords: nine ten eleven twelve style lines totals Packages xscale yscale +% LocalWords: Research area and field work Scientific Fields Anticipated write botupPM +% LocalWords: duration Application period Summary short lead Package label task botupMP +% 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: 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: taskdep from rectangle left right width pt color red above dep % LocalWords: Overview Activities Signatures Date paralist ymonths ymid yinc diff --git a/base/proposal.pdf b/base/proposal.pdf index c0253df..0da5658 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 0e5004e..8e2de97 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 660315b..0fd166d 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 f17b345..5f3d219 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 2b12803..fff0b5a 100644 --- a/eu/euproposal.cls +++ b/eu/euproposal.cls @@ -8,17 +8,21 @@ %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesClass{euproposal}[2013/01/13 v1.4 EU Proposal] +\newif\ifpartB\partBfalse +\DeclareOption{partB}{\partBtrue} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{proposal}} \ProcessOptions -\LoadClass[report,noRAM]{proposal} +\ifpartB\LoadClass[report,noRAM]{proposal}\else\LoadClass[noRAM]{proposal}\fi \RequirePackage{longtable} \RequirePackage{eurosym} \RequirePackage{wrapfig} \RequirePackage{eupdata} +\ifpartB \def\thepart{\Alph{part}} \setcounter{part}{2} \def\thechapter{\thepart.\arabic{chapter}} \def\numberline#1{\hb@xt@\@tempdima{#1\hfil} } +\fi \newcommand\prop@sites@table{\def\@@table{} {\let\tabularnewline\relax\let\hline\relax \@for\@I:=\prop@gen@sites\do{\xdef\@@table{\@@table\pdataref{site}\@I{number}} @@ -69,44 +73,70 @@ \setcounter{tocdepth}{2}\setcounter{part}{2}} {\newpage\printbibliography[heading=warnpubs,maxnames=999]} \def\prop@gen@instrument{Proposal Instrument (e.g. IP)} -\newenvironment{sitedescription}[2][]{\def\@test{#1}% -\begin{wrapfigure}{r}{5.4cm}\vspace{-2.5ex}% -\begin{tabular}{|p{5cm}|}\hline\vspace{1mm}% -\ifx\@test\@empty% -\wa@institution@logo[height=1.3cm]{#2}\else% -\wa@institution@logo[#1]{#2}\fi\\[1ex]% +\define@key{site@desc}{box}[true]{\def\site@desc@box{#1}% +\pdata@def{sitedesc}{\@site}{box}{#1}} +\define@key{site@desc}{logo}[true]{\def\site@desc@logo{#1}% +\pdata@def{sitedesc}{\@site}{logo}{#1}} +\define@key{site@desc}{width}{\def\site@desc@width{#1}% +\pdata@def{sitedesc}{\@site}{width}{#1}\@dmp{wd=#1}} +\define@key{site@desc}{height}{\def\site@desc@height{#1}% +\pdata@def{sitedesc}{\@site}{height}{#1}\@dmp{ht=#1}} +\newenvironment{sitedescription}[2][]% +{\def\@site{#2}% remember the site ID +\newcounter{site@#2@PM} % for the site PM +\def\site@desc@box{false}% not box unless requested +\def\site@desc@logo{false}% not logo unless requested +\def\site@desc@height{1.3cm}% default height +\def\site@desc@width{5cm}% default width +\setkeys{site@desc}{#1}% read the keys to overwrite the defaults +\ifx\@site@desc@box\@true% if we want a logo +\begin{wrapfigure}{r}{\site@desc@width}\vspace{-2.5ex}% +\begin{tabular}{|p{\site@desc@width}|}\hline\vspace{1mm}% +\ifx\@site@desc@logo\@true% if we want a logo +\wa@institution@logo[height=\site@desc@width]{#2}\\[1ex]% +\fi% end logo \textbf{\wa@ref{institution}{#2}{type}.\hfill \wa@ref{institution}{#2}{country}}\\% \small\wa@ref{institution}{#2}{streetaddress}, \wa@ref{institution}{#2}{townzip}\\\hline% \end{tabular}\vspace{-2.5ex}% \end{wrapfigure}% +\fi% end box \pdata@target{site}{#2}% -{\subsection{\wa@ref{institution}{#2}{acronym}:% +{\subsection{\wa@ref{institution}{#2}{acronym}: % space here {\textsc{\wa@ref{institution}{#2}{name}} (\wa@ref{institution}{#2}{countryshort})}}}% \small% \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% {0.25ex \@plus1ex \@minus.2ex}% {-1em}% {\normalfont\normalsize\bfseries}}} -{} +{\pdata@def{site}{\@site}{reqPM}{\csname thesite@\@site @PM\endcsname}} +\define@key{site@part}{type}{\def\site@part@type{#1}\@dmp{type=#1}} +\define@key{site@part}{PM}{\def\site@part@PM{#1}\@dmp{PM=#1}} +\define@key{site@part}{salary}{\def\site@part@salary{#1}}%\@dmp{\euro=#1}} +\newenvironment{participant}[2][]% +{\def\site@part@type{}\def\site@part@PM{}\def\site@part@salary{}% +\setkeys{site@part}{#1}% +\ifx\site@part@PM\@empty\else\addtocounter{site@\@site @PM}{\site@part@PM}\fi% +\paragraph*{#2 \ifx\site@part@type\@empty\else(\site@part@type)\fi}% +\ignorespaces} +{\par\medskip} \newmdenv[frametitle=Objectives]{wpobjectives} \newmdenv[frametitle=Description]{wpdescription} \renewenvironment{workpackage}[1][] -{\begin{work@package}[#1]\subsubsection*{\wptitle} +{\begin{work@package}[#1]\medskip\wpheadertable% \addcontentsline{toc}{subsubsection}{\wp@label\wp@num: \pdataref{wp}\wp@id{title}}} {\end{work@package}} \newcounter{@sitespo}\newcounter{@sitespt} \renewcommand\wpheadertable{% \wp@sites@efforts@lines% \setcounter{@sitespo}{\thewp@sites@num}\addtocounter{@sitespo}{1}% -\setcounter{@sitespt}{\thewp@sites@num}\addtocounter{@sitespt}{2}% \par\noindent\begin{tabular}{|l|*{\thewp@sites@num}{c|}c|}\hline% -\multicolumn{\the@sitespt}{|l|}{\textbf{\wp@mk@title{\wp@num}: }% -\textsf{\pdata@target{wp}{\wp@id}{\pdataref{wp}\wp@id{title}}}}\\\hline% -\textbf{Start: }\pdataref{wp}\wp@id{start}&% -\multicolumn{\the@sitespo}{l|}{\textbf{Activity Type: }\pdataref{wp}\wp@id{type}}\\\hline% +\multicolumn{\the@sitespo}{|l|}{\textbf{\wp@mk@title{\wp@num}: }% +\textsf{\pdata@target{wp}{\wp@id}{\pdataref{wp}\wp@id{title}}}} +&\textbf{Start: }\pdataref{wp}\wp@id{start}\\\hline% \wp@sites@line\\\hline% \wp@efforts@line\\\hline% \end{tabular}\smallskip\par\noindent\ignorespaces} +\surroundwithmdframed{wpdelivs} \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 3965a44..231c078 100644 --- a/eu/euproposal.dtx +++ b/eu/euproposal.dtx @@ -246,7 +246,7 @@ % and the default values, these will be used, if the author does not specify something % better. % -% If the |propB| option is given, wwe need to redefine some of the internal counters and +% If the |propB| option is given, we need to redefine some of the internal counters and % table of contents mechanisms to adapt to the fact that the proposal text is just Part B. % % \begin{macrocode} diff --git a/eu/euproposal.pdf b/eu/euproposal.pdf index 4f9d362..623fa12 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 ac8ff6c..1b5f57f 100644 Binary files a/eu/examples/fetopenstrep/propB.pdf and b/eu/examples/fetopenstrep/propB.pdf differ diff --git a/eu/examples/strep/propB.pdf b/eu/examples/strep/propB.pdf index eb676d0..ef3018c 100644 Binary files a/eu/examples/strep/propB.pdf and b/eu/examples/strep/propB.pdf differ