summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/proposal/base/proposal.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-11-23 23:03:44 +0000
committerKarl Berry <karl@freefriends.org>2015-11-23 23:03:44 +0000
commita30f052f895d1f1fd9f112c555d360a2f5845929 (patch)
tree75e851693ac839f7510674f192badb317e43d87b /Master/texmf-dist/source/latex/proposal/base/proposal.dtx
parent17317dd1f84901e202fb95e31a0eee9c51e50d74 (diff)
proposal (23nov15)
git-svn-id: svn://tug.org/texlive/trunk@38923 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/proposal/base/proposal.dtx')
-rw-r--r--Master/texmf-dist/source/latex/proposal/base/proposal.dtx716
1 files changed, 464 insertions, 252 deletions
diff --git a/Master/texmf-dist/source/latex/proposal/base/proposal.dtx b/Master/texmf-dist/source/latex/proposal/base/proposal.dtx
index 84d735b0812..d58fadbca23 100644
--- a/Master/texmf-dist/source/latex/proposal/base/proposal.dtx
+++ b/Master/texmf-dist/source/latex/proposal/base/proposal.dtx
@@ -8,14 +8,14 @@
% Either version 1.0 or, at your option, any later version.
%
% The development version of this file can be found at
-% $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/base/proposal.dtx $
+% https://github.com/KWARC/LaTeX-proposal
% \fi
%
% \iffalse
%<cls|pdata|reporting>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<cls>\ProvidesClass{proposal}[2013/02/13 v1.4 Project Proposal]
-%<pdata>\ProvidesPackage{pdata}[2013/02/13 v1.4 Project Data]
-%<reporting>\ProvidesPackage{reporting}[2013/02/13 v1.4 Project Reporting]
+%<cls>\ProvidesClass{proposal}[2015/11/22 v1.5 Project Proposal]
+%<pdata>\ProvidesPackage{pdata}[2015/11/22 v1.5 Project Data]
+%<reporting>\ProvidesPackage{reporting}[2015/11/22 v1.5 Project Reporting]
%<*driver>
\documentclass{ltxdoc}
\DoNotIndex{\def,\long,\edef,\xdef,\gdef,\let,\global}
@@ -28,23 +28,21 @@
\RecordChanges
\usepackage{textcomp,url,paralist,a4wide,xspace}
\usepackage[show]{ed}
-\usepackage[eso-foot,today,draft]{svninfo}
-\usepackage[maxnames=6,hyperref=auto,style=alphabetic,backend=bibtex]{biblatex}
+\usepackage[maxbibnames=6,hyperref=auto,style=alphabetic]{biblatex}
\bibliography{kwarc}
\usepackage[bookmarks=true,linkcolor=blue,
citecolor=blue,urlcolor=blue,colorlinks=true,
breaklinks=true, bookmarksopen=true]{hyperref}
\makeindex
\def\subversion{\textsc{Subversion}\xspace}
+\def\git{\textsc{Git}\xspace}
\begin{document}
-\svnInfo $Id: proposal.dtx 24170 2013-02-19 12:06:45Z kohlhase $
-\svnKeyword $URL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/base/proposal.dtx $
\DocInput{proposal.dtx}
\end{document}
%</driver>
% \fi
%
-%\CheckSum{3723}
+%\CheckSum{4091}
%
% \changes{v0.4}{2009/05/12}{copied over from eustrep.dtx}
% \changes{v0.5}{2009/05/27}{added gantt charts}
@@ -66,6 +64,7 @@
% \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}{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}
%
@@ -88,20 +87,38 @@
%
% Writing grant proposals is a collaborative effort that requires the integration of
% contributions from many individuals. The use of an ASCII-based format like {\LaTeX}
-% allows to coordinate the process via a source code control system like
-% \subversion, allowing the proposal writing team to concentrate on the contents
-% rather than the mechanics of wrangling with text fragments and revisions.
+% allows to coordinate the process via a source code control system like \git or
+% \subversion, allowing the proposal writing team to concentrate on the contents rather
+% than the mechanics of wrangling with text fragments and revisions. In fact the
+% |proposal| package has evolved out of a series of collaborative proposal writing
+% efforts, where large teams (up to 30 individuals from up to 20 sites) have written a
+% 100-page proposal in three weeks (with over 2000 commits). Such collaborative writing
+% sprints are impossible without a revision control system and a ``semantic'' document
+% class that generates tables, charts, and deliverable lists from content markup and thus
+% takes care of many of the routine tasks of keeping information consistent.
%
% The |proposal| class supports many of the generic elements of Grant Proposals. The
% package documentation is still preliminary, fragmented and incomplete.
%
-% The |proposal| class is distributed under the terms of the LaTeX Project Public
-% License from CTAN archives in directory |macros/latex/base/lppl.txt|. Either version
-% 1.0 or, at your option, any later version. The CTAN archive always contains the latest
-% stable version, the development version can be found at
-% {\url{https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal}}. For bug
-% reports please use the sTeX trac at {\url{https://trac.kwarc.info/sTeX/}} with component
-% |proposal|.
+% The |proposal| class is distributed under the terms of the LaTeX Project Public License
+% from CTAN archives in directory |macros/latex/base/lppl.txt|. Either version 1.0 or, at
+% your option, any later version.
+%
+% The CTAN archive always contains the latest stable version, the development version can
+% be found on GitHub at \url{https://github.com/KWARC/LaTeX-proposal}. For bug reports
+% please use the issue tracker there. Please feel free to fork the repository and provide
+% extensions and improvements.
+%
+% The development version also contains example proposals and a very useful script that
+% generates GitHub issues for all the workpackages, tasks, and deliverables. This is a
+% great way of starting up a project and controlling its progress. The OpenDreamKit EU
+% project (see \url{http://opendreamkit.org}) uses this for its (very public) project
+% planning on the issue tracker at \url{https://github.com/OpenDreamKit} after (also
+% publicly) developing the proposal on GitHub.
+%
+% Finally, the GitHub reposistory contains example project proposals and specialized
+% Makefiles that help start off the proposal development process. These are not part of
+% the CTAN/TeXLive distributions.
%
% \section{The User Interface}\label{sec:user-interface}
%
@@ -110,8 +127,8 @@
%
% \subsection{Package Options}\label{sec:user:options}
%
-% The |proposal| package takes the options |submit|, |noworkareas|, |public|, and
-% |keys|.
+% The |proposal| package takes the options |submit|, |noworkareas|, |RAM|, |deliverables|,
+% |wpsubsection|, |keys|, |svninfo|, |gitinfo|, and |public|.
%
% The \DescribeMacro{submit}|submit| option will disable various proposal management decorations
% which are enabled by default for submission.
@@ -129,6 +146,26 @@
% The \DescribeMacro{wpsubsection}|wpsubsection| option specifies that we want to see
% subsections headings for the WPs (and WAs, if we have them).
%
+% The \DescribeMacro{report}|report| option specifies that we want to use the |report.cls|
+% class as a basis for |proposal| instead of the default |article.cls|.
+%
+% The \DescribeMacro{keys}|keys| option specifies that we want to see the values of various
+% keyval arguments in the margin.
+%
+% The \DescribeMacro{svninfo}|svninfo| option specifies specifies that we want to use the
+% |svninfo| package for displaying version control metadata in the document (except when
+% the |submit| option is also given). For this we need the |svninfo| metadata line of the
+% form
+% \begin{verbatim}
+% \SVN $Id: proposal.tex 13610 2007-07-11 04:30:16Z kohlhase $
+% \svnKeyword $HeadURL: https://svn.kwarc.info/../proposal.tex $
+% \end{verbatim}
+% at the beginning of each file (or in the preamble).
+%
+% Analogously, the \DescribeMacro{gitinfo}|gitinfo| option uses the |gitinfo2| package for
+% GIT metadata. Note that you will need to install the post-commit hooks in your working
+% copy according to~\cite{gitinfo2:on} for this to work.
+%
% Finally, the \DescribeMacro{public}|public| option allows to hide certain sensitive
% (e.g. financial) parts of the proposal. For this, the |proposal| class provides the
% \DescribeEnv{private}|private| environment. If the option |public| is set, the parts of
@@ -141,12 +178,6 @@
% \DescribeMacro{\ifpublic}|\ifpublic| conditional: |\ifpublic{3}\else{5}\fi| will result
% in ``5'' in the submitted draft and ``3'' in the public document.
%
-% The \DescribeMacro{report}|report| option specifies that we want to use the |report.cls|
-% class as a basis for |proposal| instead of the default |article.cls|.
-%
-% The \DescribeMacro{keys}|keys| option specifies that we want to see the values of various
-% keyval arguments in the margin.
-%
% \subsection{Proposal Metadata and Title page}\label{sec:user:metadata}
%
% The metadata of the proposal is specified in the \DescribeEnv{proposal}|proposal|
@@ -186,6 +217,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
@@ -230,7 +270,7 @@
% Chart (see Section~\ref{sec:user:gantt}).
%
% To achieve the automation, work plan is marked up by the
-% \DescribeEnv{workplan}|workplan| environment, which setsup various internal counters and
+% \DescribeEnv{workplan}|workplan| environment, which sets up various internal counters and
% bookeeping macros. It contains texts and |workpackage| environments for the work
% packages.
%
@@ -269,6 +309,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
@@ -286,8 +329,11 @@
% In the work packages we can list tasks that need to be undertaken with the
% \DescribeEnv{tasklist}|tasklist| environment. The individual tasks are marked up with
% the \DescribeEnv{task}|task| environment. This takes a keyval argument with the keys
-% |id| for identification, |title| for a title, and the workphase keys (see
-% Section~\ref{sec:user:workphase}).
+% |id| for identification, |title| for a title, and the workphase keys |wphases|,
+% |start|, |end|, and |force| (see Section~\ref{sec:user:workphase}). For planning
+% involvement we can specify the overall person months via the |PM| key, the task lead via
+% |lead|, and the partners involved via the |partners| key. Finally task dependencies can
+% be specified via the |requires| key.
%
% Tasks can be referenced by the \DescribeMacro{\taskref}|\taskref| macro that takes two
% arguments: the work package identifier and the task identifier. As for work packages and
@@ -319,7 +365,7 @@
% expensive to run) are carried out. Note that the value does not have to be given, so
% |\begin{gantt}{draft,yscale=.5,step=3}| is a perfectly good invocation.
%
-% Usually, the |gant| environment is not used however, since it is part of the
+% Usually, the |gantt| environment is not used however, since it is part of the
% \DescribeMacro{\ganttchart} macro that takes the same keys. This generates a whole
% Gantt chart automatically from the work phase specifications in the work packages. As
% above we have to run {\LaTeX} two times for the work phases to show up.
@@ -342,25 +388,23 @@
% 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
-% \DescribeMacro{\miletref}|\miletref{|\meta{id}|}| for a refernece with milestone
+% 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.
%
% Deliverables are usually defined as part of the work package descriptions (see
% Section~\ref{sec:user:wpwa}) and listed in an overview table in a separate of the
% proposal. As for the milestones, we use an environment
-% \DescribeMacro{wpdelivs}|wpdelivs| that contains the delirable descriptions. These are
+% \DescribeMacro{wpdelivs}|wpdelivs| that contains the deliverable descriptions. These are
% marked up via the \DescribeMacro{wpdeliv} environment which takes an optional keyval
-% argument for the delivrable metadata a regular argument for the title and contains the
+% argument for the deliverable metadata a regular argument for the title and contains the
% description of the deliverable as the body. For the metadata we have the keys |id| for
% the deliverable identifier, |due| for the target date (a number that denotes the project
% month), |nature| and |dissem| for specifying the deliverable nature and dissemination
% status (usually as short strings prescribed by the proposal template), and |miles| for
-% the milestone this deliverable is targetted for (specified by the milestone
+% the milestone this deliverable is targeted for (specified by the milestone
% identifier). For repeating deliverables (e.g. project reports), both |due| and |miles|
% can contain comma-separated lists. Deliverables are numbered by labels whose shape can
% be customized by number, where the shape of the label can be specified by redefining
@@ -368,9 +412,10 @@
% \DescribeMacro{\delivref}|\delivref{|\meta{wp}|}{|\meta{id}|}| where \meta{wp} is the
% work package identifier and \meta{id} that if the deliverable and
% \DescribeMacro{\delivtref}|\delivtref{|\meta{wp}|}{|\meta{id}|}| for a reference with
-% title. |\pdatacount{|\meta{wp}|}{delivs}| gives the number of milestones of the work
-% package \meta{wp} |\pdatacount{all}{delivs}| that of all deliverables (aggregating over
-% all work packages).
+% title. \DescribeMacro{\localdelivref}|\localdelivref| can be used to reference
+% deliverables in the same work package. |\pdatacount{|\meta{wp}|}{delivs}| gives the
+% number of milestones of the work package \meta{wp} |\pdatacount{all}{delivs}| that of
+% all deliverables (aggregating over all work packages).
%
% Some proposal templates ask for an overview table of the deliverables which aggregates
% the deliverables of the respective work packages and areas ordered by due date. This can
@@ -394,26 +439,28 @@
% includes to work packages, work groups, \ldots. Whenever these are defined using the
% |proposal| infrastructure, the class saves the relevant information in the auxiliary
% file \meta{proposal}|.aux|. This information can be referenced via the
-% \DescribeMacro{\pdataref}|\pdataref| macro, which takes three arguments.
+% \DescribeMacro {\pdataref}|\pdataref| macro, which takes three arguments.
%
% In a reference |\pdataref{|\meta{type}|}{|\meta{id}|}{|\meta{aspect}|}| the first argument
% \meta{type} specifies the type of the object (currently one of |wp|, |wa|, and
% |partner|) to be referenced, \meta{id} specifies the identifier of the referenced object
% (it matches the identifier given in the |id| key of the object), and \meta{aspect}
% specifies the aspect of the saved information that is referenced.
-%
-% For a partner \meta{aspect} can be one of |number| (partner number), |short| (partner
-% acronym), |long| (official partner name), |nationality| (partner nationality).
+%
+% \DescribeMacro{\pdatarefFB}|\pdatarefFB{|\meta{type}|}{|\meta{id}|}{|\meta{a1}|}{|\meta{a2}|}|
+% tries first |\pdataref{|\meta{type}|}{|\meta{id}|}{|\meta{a1}|}| and if that is not
+% given |\pdataref{|\meta{type}|}{|\meta{id}|}{|\meta{a2}|}|.
%
% For a work package \meta{aspect} can be |number|, (the work package number), |label|
% (the label {\bf{WP$n$}} where $n$ is the work package number for referencing), |title|
% (the work package title), |lead| the work package leader, |short| (a short version of
% the WP title for tables). For work groups we have the same aspects with analogous
% meanings. In all cases, the referenced information carries a hyperlink to the referenced
-% object.
+% object.
%
-% The \DescribeMacro{\pdataRef}|\pdataRef| macro is a variant of |\pdataref| that also carries a
-% hyperlink (if the |hyperref| package is loaded).
+% The \DescribeMacro{\pdataRef}|\pdataRef| and \DescribeMacro{\pdataRefFB}|\pdataRefFB|
+% macros are variant of |\pdataref| and |\pdataRef| that also carry a hyperlink (if the
+% |hyperref| package is loaded).
%
% The \DescribeMacro{\pdatacount}|\pdatacount| macro gives access to the numbers of
% certain aspects. For instance, the number of work packages in the proposal can be cited
@@ -441,17 +488,20 @@
%
% Many proposals require ways to show coherence between the partners. The |proposal| class
% offers the macro \DescribeMacro{\coherencematrix}|\coherencematrix| for this which
-% generates a matrix of symbols specifying joint publications and joint projects by the
-% project partners that have been declared by the \DescribeMacro{\jointpub}|\jointpub|,
-% \DescribeMacro{\jointproj}|\jointproj|, and \DescribeMacro{\jointorga}|\jointorga|
-% macros before. These macros all take a comma-separated list of site identifiers as an
+% generates a matrix of symbols specifying joint publications, project organization,
+% software/resource development, and supervision of students by the project partners that
+% have been declared by the \DescribeMacro{\jointpub}|\jointpub|,
+% \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
% identifiers |a|, |b| and |c| have a joint
% project. \DescribeMacro{\coherencetable}|\coherencetable| is a variant which packages
% the coherence table in a table figure with label |tab:collaboration|.
%
% 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}
%
@@ -493,8 +543,9 @@
%
% \section*{Acknowledgements}
%
-% The author is indebted to Christoph Lange, Florian Rabe, and Tsanko Tsankov for
-% error reports, feature suggestions, and code snippets.
+% The author is indebted to Jake Hartenstein, Christoph Lange, Florian Rabe, Lutz
+% Schr\"oder, and Tsanko Tsankov for error reports, feature suggestions, and code
+% snippets.
%
% \StopEventually{\newpage\PrintIndex\newpage\PrintChanges\newpage\printbibliography}\newpage
%
@@ -510,14 +561,20 @@
%<*cls|reporting>
\newif\if@wpsubsection\@wpsubsectionfalse
\newif\ifsubmit\submitfalse
+\newif\ifgrantagreement\grantagreementfalse
\newif\ifpublic\publicfalse
\newif\ifkeys\keysfalse
\newif\ifdelivs\delivsfalse
\newif\ifwork@areas\work@areastrue
\newif\if@RAM\@RAMfalse
+\newif\if@svninfo\@svninfofalse
+\newif\if@gitinfo\@gitinfofalse
\def\proposal@class{article}
\DeclareOption{wpsubsection}{\@wpsubsectiontrue}
\DeclareOption{submit}{\submittrue}
+\DeclareOption{grantagreement}{\grantagreementtrue}
+\DeclareOption{gitinfo}{\@gitinfotrue}
+\DeclareOption{svninfo}{\@svninfotrue}
\DeclareOption{public}{\publictrue}
\DeclareOption{noworkareas}{\work@areasfalse\PassOptionsToClass{\CurrentOption}{pdata}}
\DeclareOption{RAM}{\@RAMtrue}
@@ -533,6 +590,7 @@
% \begin{macrocode}
\LoadClass[a4paper,twoside]{\proposal@class}
\RequirePackage{amssymb}
+\RequirePackage{wasysym}
\RequirePackage{url}
\RequirePackage{graphicx}
\RequirePackage{colortbl}
@@ -545,14 +603,14 @@
\AtBeginDocument{\ifpublic\excludecomment{private}\fi}
\RequirePackage{tikz}
\RequirePackage{paralist}
-\RequirePackage{a4wide}
+\RequirePackage[a4paper,margin=18mm]{geometry}
\RequirePackage{boxedminipage}
% so that ednotes in wps do not run out of symbols
\renewcommand{\thempfootnote}{\roman{mpfootnote}}
\renewcommand{\familydefault}{\sfdefault}
\RequirePackage[scaled=.90]{helvet}
\RequirePackage{textcomp}
-\RequirePackage[hyperref=auto,style=numeric,defernumbers=true,backend=bibtex]{biblatex}[2010/11-19]
+\RequirePackage[hyperref=auto,style=numeric,defernumbers=true,backend=bibtex,backref=true,firstinits=true,maxbibnames=6]{biblatex}[2010/11-19]
\RequirePackage{csquotes}
\RequirePackage{mdframed}
\RequirePackage{pdata}
@@ -569,15 +627,16 @@
% the |ed| package~\cite{Kohlhase:ed:ctan} is very useful for collaborative writing and
% passing messages between collaborators or simply reminding yourself of editing tasks, so
% we preload it in the class. However, we only want to show the information in draft
-% mode. Furthermore, we adapt the options for the |svninfo| package.
+% mode. Furthermore, we adapt the options for the |svninfo| and |gitinfo2| packages.
%
% \begin{macrocode}
\ifsubmit
\RequirePackage[hide]{ed}
-\RequirePackage[final,today]{svninfo}
+\if@svninfo\RequirePackage[final,today]{svninfo}\fi
\else
\RequirePackage[show]{ed}
-\RequirePackage[eso-foot,today]{svninfo}
+\if@svninfo\RequirePackage[eso-foot,today]{svninfo}\fi
+\if@gitinfo\RequirePackage[mark]{gitinfo2}\fi
\fi
\renewcommand\ednoteshape{\sl\footnotesize}
% \end{macrocode}
@@ -597,9 +656,22 @@
% We specify the page headings.
% \begin{macrocode}
\newif\ifofpage\ofpagefalse
+\ifgrantagreement
+\fancyhead{}
+\renewcommand{\headrulewidth}{0pt}
+\renewcommand{\footrulewidth}{0.4pt}
+\else
\fancyhead[RE,LO]{\prop@gen@acronym}
+\fancyhfoffset{0pt}
+\fi
+\fancyfoot[C]{}
\newcommand\prop@of@pages[2]{page~#1\ifofpage~of~#2\fi}
+\ifgrantagreement
+\fancyfoot[L]{\prop@gen@proposalnumber\quad \prop@gen@acronym\quad --\quad Part B}
+\fancyfoot[R]{\thepage}
+\else
\fancyhead[LE,RO]{\prop@of@pages\thepage{\pdataref@num{prop}{page}{last}}}
+\fi
\pagestyle{fancyplain}
%</cls|reporting>
% \end{macrocode}
@@ -670,6 +742,8 @@
\pdata@def{prop}{gen}{acronym}{#1}\@dmp{acro=#1}}
\define@key{prop@gen}{acrolong}{\def\prop@gen@acrolong{#1}%
\pdata@def{prop}{gen}{acrolong}{#1}}
+\define@key{prop@gen}{proposalnumber}{\def\prop@gen@proposalnumber{#1}%
+\pdata@def{prop}{gen}{proposalnumber}{#1}}
\define@key{prop@gen}{discipline}{\def\prop@gen@discipline{#1}%
\pdata@def{prop}{gen}{discipline}{#1}}
\define@key{prop@gen}{areas}{\def\prop@gen@areas{#1}%
@@ -684,15 +758,22 @@
\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}}
+\define@key{prop@gen}{keywords}{\def\prop@gen@keywords{#1}}
% \end{macrocode}
% and the default values, these will be used, if the author does not specify something
% better.
%
% \begin{macrocode}
-\newcommand\prop@gen@acro{ACRONYM}
-\newcommand\prop@gen@months{???}
-\newcommand\prop@gen@title{???Proposal Title???}
-\newcommand\prop@gen@instrument{??? Instrument ???}
+\newcommand\prop@gen@acro@default{ACRONYM}
+\def\prop@gen@acro{\prop@gen@acro@default}
+\newcommand\prop@gen@months@default{???months???}
+\def\prop@gen@months{\prop@gen@months@default}
+\newcommand\prop@gen@title@default{???Proposal Title???}
+\def\prop@gen@title{\prop@gen@title@default}
+\newcommand\prop@gen@instrument@default{??? Instrument ???}
+\def\prop@gen@instrument{\prop@gen@instrument@default}
% \end{macrocode}
%
% \begin{macro}{\prop@tl}
@@ -720,7 +801,7 @@
% \end{macrocode}
% \end{environment}
%
-% \subsection{Title Page}\label{sec:impl:metadata}
+% \subsection{Title Page}\label{sec:impl:titlepage}
%
% \begin{environment}{prop@proposal}
% This internal environment is called in the |proposal| environment from the |proposal|
@@ -749,12 +830,12 @@
\item Curriculum Vitae and list of publications for
\wa@ref{person}\@I{personaltitle} \wa@ref{person}\@I{name}
\end{itemize}}\newpage
-\printbibliography[heading=warnpubs,maxnames=999]}
+\printbibliography[heading=warnpubs]}
% \end{macrocode}
% \end{environment}
%
% \begin{environment}{proposal}
-% The |proposal| environment reads the metdata keys defined above, and if there were no
+% The |proposal| environment reads the metadata keys defined above, and if there were no
% |site| keys, then it defines keys |RM| and |RAM| (unless the |noRAM| package option
% was given) for the |workpackage| environment. Also it reads the project data file and
% opens up the project data file |\pdata@out|, which it also closes at the end.
@@ -802,7 +883,7 @@
\begin{prop@report}}
{\end{prop@report}%
\pdata@def{prop}{page}{last}{\thepage}\ofpagefalse\newpage
-\printbibliography[heading=warnpubs,maxnames=999]
+\printbibliography[heading=warnpubs]
\pdata@close}
% \end{macrocode}
% \end{environment}
@@ -855,8 +936,8 @@
% \begin{environment}{objective}
% \begin{macrocode}
\newenvironment{objective}[1][]
-{\let\obj@id\relax\let\obj@title\relax\let\obj@short%
-\relax\setkeys{obj}{#1}\stepcounter{objective}%
+{\let\obj@id\relax\let\obj@title\relax\let\obj@short\relax%
+\setkeys{obj}{#1}\stepcounter{objective}%
\goodbreak\smallskip\par\noindent%
\textbf{\objective@label{\arabic{objective}}:%
~\pdata@target{obj}{\obj@id}{\pdataref{obj}{\obj@id}{title}}\ignorespaces}%
@@ -870,7 +951,7 @@
% \begin{macro}{\OBJref}
% \begin{macrocode}
\newcommand\OBJref[1]{\pdataRef{obj}{#1}{label}}
-\newcommand\OBJtref[1]{\pdataRef{obj}{#1}{label}: \pdataRef{obj}{#1}{title}}
+\newcommand\OBJtref[1]{\OBJref{#1}: \pdataRefFB{obj}{#1}{short}{title}}
% \end{macrocode}
% \end{macro}
%
@@ -889,10 +970,11 @@
% \begin{macrocode}
\define@key{workpackage}{id}{\def\wp@id{#1}\@dmp{id=#1}}
\define@key{workpackage}{title}{\pdata@def{wp}\wp@id{title}{#1}}
-\define@key{workpackage}{lead}{\pdata@def{wp}\wp@id{lead}{#1}\def\wp@lead{#1}\@dmp{lead=#1}}
\define@key{workpackage}{short}{\pdata@def{wp}\wp@id{short}{#1}}
+\define@key{workpackage}{lead}{\pdata@def{wp}\wp@id{lead}{#1}\def\wp@lead{#1}\@dmp{lead=#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}
@@ -968,6 +1050,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%
@@ -1002,11 +1085,13 @@
% \begin{macrocode}
\newenvironment{workpackage}[1][]%
{\begin{work@package}[#1]%
+\ifgrantagreement\else
%\if@wpsubsection\subsubsection*{{\wp@mk@title\thewp}: \pdataref{wp}\wp@id{title}}\fi
\if@sites\goodbreak\medskip\wpheadertable%
\else\subsubsection*{{\wptitle} (\wprm)}\fi%
\addcontentsline{toc}{paragraph}{{\wp@mk@title\thewp}: \pdataref{wp}\wp@id{title}}%
-}
+\noindent\ignorespaces%
+\fi}
{\end{work@package}}
% \end{macrocode}
% \end{environment}
@@ -1051,14 +1136,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}}}}}
@@ -1121,7 +1215,8 @@
\pdata@def{prop}{all}{RAM}\theprop@RAM
\fi
\subsubsection*{{\wa@mk@title\thewa}: {\pdata@target{wa}\wa@id{\pdataref{wa}\wa@id{title}}}}
-\addcontentsline{toc}{subsubsection}{{\wa@mk@title\thewa}: \pdataref{wa}\wa@id{title}}}
+\addcontentsline{toc}{subsubsection}{{\wa@mk@title\thewa}: \pdataref{wa}\wa@id{title}}%
+\ignorespaces}
{\@ifundefined{@wps}{}{\pdata@def\wa@id{wp}{ids}\@wps}\pdata@def\wa@id{wp}{count}\thewa@wps}\fi
% \end{macrocode}
% \end{environment}
@@ -1203,16 +1298,18 @@
%
% \begin{macro}{\deliv@label}
% \begin{macrocode}
-\newcommand\deliv@label[1]{M{#1}}
+\newcommand\deliv@label[1]{D{#1}}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\delivref}
+% \begin{macro}{\*deliv*ref}
% This macro is generally useful to put a comment at the end of the line, possibly
% making a new one if there is not enough space.
% \begin{macrocode}
\newcommand\delivref[2]{\pdataRef{deliv}{#1#2}{label}}
-\newcommand\delivtref[2]{\pdataRef{deliv}{#1#2}{label}: \pdataRef{deliv}{#1#2}{short}}
+\newcommand\localdelivref[1]{\delivref{\wp@id}{#1}}
+\newcommand\delivtref[2]{\delivref{#1}{#2}: \pdataRefFB{deliv}{#1#2}{short}{title}}
+\newcommand\localdelivtref[1]{\delivtref{\wp@id}{#1}}
% \end{macrocode}
% \end{macro}
%
@@ -1225,6 +1322,7 @@
\define@key{deliv}{nature}{\def\deliv@nature{#1}}
\define@key{deliv}{miles}{\def\deliv@miles{#1}}
\define@key{deliv}{short}{\def\deliv@short{#1}}
+\define@key{deliv}{lead}{\def\deliv@lead{#1}}
% \end{macrocode}
% The |\wpdeliv| macro cycles over the due dates and generates the relevant entries into
% the deliverables file. The first step is to write the general metadata to the pdata
@@ -1241,11 +1339,19 @@
\else\def\current@label{\deliv@label{\thewa.\thedeliv}}\fi
\pdata@def{deliv}{\wpg@id\deliv@id}{label}{\current@label}
\pdata@def{deliv}{\wpg@id\deliv@id}{title}{#2}
+\pdata@def{deliv}{\wpg@id\deliv@id}{page}{\thepage}%
\@ifundefined{deliv@short}
{\pdata@def{deliv}{\wpg@id\deliv@id}{short}{#2}}
{\pdata@def{deliv}{\wpg@id\deliv@id}{short}{\deliv@short}}
-\pdata@def{deliv}{\wpg@id\deliv@id}{nature}{\deliv@nature}
-\pdata@def{deliv}{\wpg@id\deliv@id}{dissem}{\deliv@dissem}
+\@ifundefined{deliv@nature}
+{\protect\G@refundefinedtrue\@latex@warning{key 'nature' for Deliv \wpg@id undefined}}
+{\pdata@def{deliv}{\wpg@id\deliv@id}{nature}{\deliv@nature}}
+\@ifundefined{deliv@dissem}
+{\protect\G@refundefinedtrue\@latex@warning{key 'dissem' for Deliv \wpg@id undefined}}
+{\pdata@def{deliv}{\wpg@id\deliv@id}{dissem}{\deliv@dissem}}
+\@ifundefined{deliv@lead}
+{\protect\G@refundefinedtrue\@latex@warning{key 'lead' for Deliv \wpg@id undefined}}
+{\pdata@def{deliv}{\wpg@id\deliv@id}{lead}{\deliv@lead}}
% \end{macrocode}
% Then we iterate over the due dates and generate an entry for teach of them.
% \begin{macrocode}
@@ -1254,18 +1360,21 @@
{\ifnum\@I<10 0\@I\else\@I\fi}% sort key
{\@I}% due date
{\current@label}% label
-{\@ifundefined{deliv@id}{\protect\G@refundefinedtrue\@latex@warning{key 'id' for Deliv #1
- undefined}??}{\wpg@id\deliv@id}}% id
-{\@ifundefined{deliv@dissem}{\protect\G@refundefinedtrue\@latex@warning{key 'dissem' for
- Deliv #1 undefined}??}{\deliv@dissem}}% dissemination level
-{\@ifundefined{deliv@nature}{\protect\G@refundefinedtrue\@latex@warning{key 'nature' for Deliv
- #1 undefined}??}{\deliv@nature}}% nature
+{\@ifundefined{deliv@id}{??}{\wpg@id\deliv@id}}% id
+{\@ifundefined{deliv@dissem}{??}{\deliv@dissem}}% dissemination level
+{\@ifundefined{deliv@nature}{??}{\deliv@nature}}% nature
{#2}
-{\ifx\@type\@wp{WP\ifwork@areas\thewa.\fi\thewp}\else{WA\thewa}\fi}}}}%WP
+{\ifx\@type\@wp{WP\ifwork@areas\thewa.\fi\thewp}\else{WA\thewa}\fi}%WP
+{\@ifundefined{deliv@lead}{??}{\string\site{\deliv@lead}}}}}}% lead
% \end{macrocode}
% And finally, we generate the entry into the deliverables table.
% \begin{macrocode}
-\item[\current@label: (Month \deliv@due; nature: \deliv@nature, dissem.: \deliv@dissem)] \pdata@target{deliv}{\wpg@id\deliv@id}{\textit{#2}}
+\item[\current@label\ (%
+\delivs@legend@due: \@ifundefined{deliv@due}{??}{\deliv@due},
+\delivs@legend@nature: \@ifundefined{deliv@nature}{??}{\deliv@nature},
+\delivs@legend@dissem: \@ifundefined{deliv@dissem}{??}{\deliv@dissem},
+\delivs@legend@lead: \@ifundefined{deliv@lead}{??}{\site{\deliv@lead}})]
+ \pdata@target{deliv}{\wpg@id\deliv@id}{\textit{#2}}
\@ifundefined{deliv@miles}{}{% print the milestones and update their deliverables
\let\m@sep=\relax% do not print the separator the first time round
\lec{\@for\@I:=\deliv@miles\do{% Iterate over the milestones mentioned
@@ -1305,7 +1414,7 @@
% making a new one if there is not enough space.
% \begin{macrocode}
\newcommand\mileref[1]{\pdataRef{mile}{#1}{label}}
-\newcommand\miletref[1]{\pdataRef{mile}{#1}{label}: \pdataRef{mile}{#1}{short}}
+\newcommand\miletref[1]{\mileref{#1}: \pdataRefFB{mile}{#1}{short}{title}}
% \end{macrocode}
% \end{macro}
%
@@ -1324,8 +1433,9 @@
\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{#1}{#2}{#3}% presentation
+\@milestone{\mile@id}{#2}{#3}% presentation
\else\deliv@error\fi}
% \end{macrocode}
% \end{macro}
@@ -1333,72 +1443,64 @@
% \begin{macro}{\@milestone}
% the corresponding presentation macro.
% \begin{macrocode}
-\newcommand\@milestone[3]{%
-\pdata@target{mile}\mile@id{\textbf{\milestone@label\themilestone}}&
-\textbf{#2} &
-\prop@milesfor\mile@id &
-\pdataref{mile}\mile@id{month} &
-\pdataref{mile}\mile@id{verif}\\\hline
-\multicolumn{5}{|p{14cm}|}{#3}\\\hline\hline}
+\newcommand\@milestone[3]{% id, title, description
+\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}
%
% \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}
-\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{environment}
%
% \begin{environment}{@milestones}
+% here we do the work.
% \begin{macrocode}
-\newenvironment{@milestones}
-{\ifdelivs\begin{longtable}{|l|p{4cm}|p{5cm}|l|p{2.5cm}|}\hline
-\#&\miles@legend@name&\miles@legend@involved&\miles@legend@month&\miles@legend@verif\\\hline\hline%
-\else\deliv@error\fi}
-{\ifdelivs\end{longtable}%
-\footnotetext\miles@legend@footnote\fi}
-% \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.}
+\newenvironment{@milestones}{\begin{enumerate}}{\end{enumerate}}
% \end{macrocode}
% \end{environment}
%
-% \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}
-\newcommand{\deliverable}[8]{\pdataRef{deliv}{#4}{label}&#7&#8&#6&#5&#2\\\hline}%sortkey,due,label,id,title,type,level
+\newcommand{\deliverable}[9]{\pdataRef{deliv}{#4}{label}&#7&#8&#9&#6&#5&#2\\\hline}%sortkey,due,label,id,title,type,level,lead
% \end{macrocode}
% \end{macro}
%
% \begin{environment}{deliverables}
%
% \begin{macrocode}
-\newenvironment{deliverables}[1]{\ifdelivs\begin{longtable}{|l|p{#1}|l|l|l|l|}\hline
-\#&\delivs@legend@name&\delivs@legend@wp&\delivs@legend@nature&
-\delivs@legend@level&\delivs@legend@due\\\hline\hline\else\deliv@error\fi}
+\newenvironment{deliverables}[1]{\ifdelivs\begin{longtable}{|l|p{#1}|l|l|l|l|l|}\hline%
+\#&\textbf{\delivs@legend@name}&%
+\textbf{\delivs@legend@wp}&%
+\textbf{\delivs@legend@lead}&%
+\textbf{\delivs@legend@nature}&%
+\textbf{\delivs@legend@level}&%
+\textbf{\delivs@legend@due}\\\hline\hline%
+\endhead%
+\else\deliv@error\fi}
{\ifdelivs\end{longtable}\fi}
% \end{macrocode}
% now the multilingual support
% \begin{macrocode}
\newcommand\delivs@legend@name{Deliverable name}
\newcommand\delivs@legend@wp{WP}
-\newcommand\delivs@legend@nature{Nature}
+\newcommand\delivs@legend@nature{Type}
\newcommand\delivs@legend@level{Level}
\newcommand\delivs@legend@due{Due}
+\newcommand\delivs@legend@dissem{Dissem.}
+\newcommand\delivs@legend@lead{Lead}
% \end{macrocode}
% \end{environment}
%
@@ -1424,44 +1526,62 @@
% \end{environment}
% The next step is to
% \begin{macrocode}
-\newcommand\task@label[1]{T#1}
+\newcommand\task@label[2]{\textbf{T#1.#2}}
% \end{macrocode}
% We define the keys for the task macro
% \begin{macrocode}
\define@key{task}{id}{\def\task@id{#1}\@dmp{id=#1}}
\define@key{task}{wphases}{\def\task@wphases{#1}\pdata@def{task}{\taskin\task@id\wp@id}{wphases}{#1}\@dmp{wphases=#1}}
\define@key{task}{requires}{\@requires\task@id{#1}\@dmp{req=#1}}
-\define@key{task}{title}{\def\task@title{#1}\pdata@def{task}{\taskin\task@id\wp@id}{title}{#1}\@dmp{title=#1}}
-\define@key{task}{lead}{\def\task@lead{#1}\pdata@def{task}{\taskin\task@id\wp@id}{lead}{#1}\@dmp{lead=#1}}
-\define@key{task}{partners}{\def\task@partners{#1}\pdata@def{task}{\taskin\task@id\wp@id}{partners}{#1}\@dmp{partners=#1}}
+\define@key{task}{title}{\def\task@title{#1}\pdata@def{task}{\taskin\task@id\wp@id}{title}{#1}}
+\define@key{task}{lead}{\def\task@lead{#1}\pdata@def{task}{\taskin\task@id\wp@id}{lead}{#1}}
+\define@key{task}{partners}{\def\task@partners{#1}\pdata@def{task}{\taskin\task@id\wp@id}{partners}{#1}}
+\define@key{task}{PM}{\def\task@PM{#1}\pdata@def{task}{\taskin\task@id\wp@id}{PM}{#1}}
% \end{macrocode}
% then we define an auxiliary function that gives them sensible defaults and sets the
% internal macros.
% \begin{macrocode}
\def\task@set#1{\edef\task@id{task\thetask@all}
-\def\task@wphases{0-0}\def\task@partners{}\def\task@lead{}
+\def\task@wphases{0-0}\def\task@partners{}\def\task@lead{}\def\task@PM{}
\setkeys{task}{#1}}
% \end{macrocode}
%
+% \begin{macro}{\task@post@title@space}
+% make the space after the title tweakable
+% \begin{macrocode}
+\def\task@post@title@space{\;}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{environment}{task}
% \begin{macrocode}
\newcounter{alltasks}
+\def\task@post@title@space{\quad}
+\newcommand\task@legend@partners{Sites: }
+\newcommand\task@legend@PM{PM}
\newenvironment{task}[1][]%
-{\stepcounter{alltasks}
-\@task{#1}\item[\pdata@target{task}{\taskin\task@id\wp@id}{\task@label{\thetask@wp}}]%
-\@ifundefined{task@title}{}{\textbf\task@title}%
+{\stepcounter{alltasks}%
+\@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%
\def\@initial{0-0}\ifx\task@wphases\@initial\else%
-\ (\let\@@sep=\relax\@for\@I:=\task@wphases%
-\do{\decode@wphase\@I\@@sep\show@wphase\wphase@start\wphase@end\wphase@force\let\@@sep=\sep@wphases}%
-\ifx\task@lead\@empty\else; \task@legend@partners: \site\task@lead~(\legend@lead)\fi%
-\ifx\task@partners\@empty\else\@for \@I:=\task@partners\do{, \site\@I}\fi)\\\fi}
-{}
+\let\@@sep=\relax\@for\@I:=\task@wphases%
+\do{\decode@wphase\@I%
+\@@sep\show@wphase\wphase@start\wphase@end\wphase@force%
+\let\@@sep=\sep@wphases}%
+\fi% initial
+\hfill%
+\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%
+\@for\@I:=\task@partners\do{, \site\@I}\\%
+\ignorespaces}
+{\medskip}
% \end{macrocode}
% now the multilingual support and presentation configuration
% \begin{macrocode}
\newcommand\month@label[1]{M#1}
-\newcommand\show@wphase[3]{\def\@test{#3}\month@label{#1}-\month@label{#2}%
-\ifx\@test\@empty\@ #3}
+\newcommand\show@wphase[3]{\edef\@test{#3}\def\@one{1}%
+\month@label{#1}-\month@label{#2}%
+\ifx\@test\@empty\else\ifx\@test\@one\else @#3\fi\fi}
\newcommand\sep@wphases{; }
\newcommand\legend@partners{Partners}
\newcommand\legend@lead{lead}
@@ -1478,7 +1598,7 @@
\def\@task#1{\stepcounter{task@all}\stepcounter{task@wp}%
\task@set{#1}%
\pdata@def{task}{\taskin\task@id\wp@id}{wphases}\task@wphases
-\pdata@def{task}{\taskin\task@id\wp@id}{label}{\task@label\thetask@wp}%
+\pdata@def{task}{\taskin\task@id\wp@id}{label}{\task@label\thewp\thetask@wp}%
\pdata@def{task}{\taskin\task@id\wp@id}{number}{\thetask@wp}%
\pdata@def{task}{\taskin\task@id\wp@id}{page}{\thepage}%
\update@tasks{\taskin\task@id\wp@id}}
@@ -1493,18 +1613,18 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\localtaskref}
+% \begin{macro}{\*task*ref}
% \begin{macrocode}
-\newcommand\localtaskref[1]{\pdataRef{task}{\wp@id @#1}{label}}
+\newcommand\taskin[2]{#2@#1}
+\newcommand\taskref[2]{\pdataRef{task}{#1@#2}{label}}
+\newcommand\taskreflong[2]{\pdataRef{task}{#2}{label}}
+\newcommand\tasktref[2]{\taskref{#1}{#2}: \pdataRefFB{task}{#1@#2}{short}{title}}
+\newcommand\localtaskref[1]{\taskref{\wp@id}{#1}}
+\newcommand\localtasktref[1]{\tasktref{\wp@id}{#1}}
% \end{macrocode}
% \end{macro}
-%
-% \begin{macro}{\taskref}
+% now we initialize experimental infrastructure for task dependencies (not very well used/tested)
% \begin{macrocode}
-\newcommand\taskin[2]{#2@#1}
-\newcommand\taskref[2]{\WPref{#1}.\pdataRef{task}{#1@#2}{label}}
-\newcommand\taskreflong[2]{\WPref{#1}.\pdataRef{task}{#2}{label}}
-\newcommand\tasktref[2]{\WPref{#1} (\task@label@long \pdataRef{task}{#1@#2}{number})}
\newcounter{gantt@deps}
\def\@requires#1#2{\stepcounter{gantt@deps}%
\edef\dep@id{taskdep\thegantt@deps}%
@@ -1513,7 +1633,6 @@
\update@deps\dep@id}
%</cls>
% \end{macrocode}
-% \end{macro}
%
% \subsection{Project Data, Referencing \& Hyperlinking}\label{sec:impl:hyperlinking}
%
@@ -1542,7 +1661,7 @@
% \end{macro}
%
% \begin{macro}{\pdata@target}
-% This internal macro makes a hypertarget:
+% This internal macro makes a hyper-target:
% |\pdata@target{|\meta{cat}|}{|\meta{id}|}{|\meta{label}|}| prints \meta{label} with a
% target name \meta{cat}|@|\meta{id}|@target| attached to it.
% \begin{macrocode}
@@ -1576,6 +1695,17 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\pdatarefFB}
+% a variant with fallback field,
+% \begin{macrocode}
+\newcommand\pdatarefFB[4]{\@ifundefined{#1@#2@#3}%
+{\@ifundefined{#1@#2@#4}%
+{\protect\G@refundefinedtrue\@latex@warning{both #3 and its fallback #4 undefined for #1 #2}??}%
+{\csname #1@#2@#4\endcsname}}
+{\csname #1@#2@#3\endcsname}}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\pdataRef}
% \begin{macrocode}
\newcommand\pdataRef[3]{\@ifundefined{#1@#2@#3}%
@@ -1584,6 +1714,17 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\pdataRefFB}
+% a variant with fallback field,
+% \begin{macrocode}
+\newcommand\pdataRefFB[4]{\@ifundefined{#1@#2@#3}%
+{\@ifundefined{#1@#2@#4}%
+{\protect\G@refundefinedtrue\@latex@warning{both #3 and its fallback #4 undefined for #1 #2}??}%
+{\hyperlink{#1@#2@target}{\csname #1@#2@#4\endcsname}}}
+{\hyperlink{#1@#2@target}{\csname #1@#2@#3\endcsname}}}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\pdatacount}
% \begin{macrocode}
\newcommand\prop@count[1]{\ifcase #1 zero\or one\or two\or three\or four\or five\or six\or seven \or
@@ -1602,10 +1743,10 @@
% \begin{macro}{\W*ref}
% \begin{macrocode}
\newcommand\WPref[1]{\pdataRef{wp}{#1}{label}}
-\newcommand\WPtref[1]{\pdataRef{wp}{#1}{label}: \pdataRef{wp}{#1}{short}}
+\newcommand\WPtref[1]{\WPref{#1}: \pdataRefFB{wp}{#1}{short}{title}}
\ifwork@areas
\newcommand\WAref[1]{\pdataRef{wa}{#1}{label}}
-\newcommand\WAtref[1]{\pdataRef{wa}{#1}{label}: \pdataRef{wa}{#1}{title}}
+\newcommand\WAtref[1]{\WAref{#1}: \pdataRefFB{wa}{#1}{short}{title}}
\fi
%</pdata>
% \end{macrocode}
@@ -1627,7 +1768,8 @@
% \begin{macrocode}
\definecolorset{gray/rgb/hsb/cmyk}{}{}%
{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\wa@style[1]{\cellcolor{wagray}{\textbf{#1}}}
\newcommand\wp@style[1]{#1}
@@ -1651,9 +1793,11 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
\define@key{wpfig}{length}[true]{\def\wpfig@length{#1}\stepcounter{wpfig@options}}
\def\wpfig@end{false}
\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}}
-\newenvironment{wp@figure}{\begin{figure}[ht]\wpfig@style\begin{center}
-{\let\@sw\relax\let\textbf\relax\let\site\relax%
+\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%
\gdef\wpfig@headline{\wpfig@legend@wap&\wpfig@legend@title%
\ifx\wpfig@type\@true&\wpfig@legend@type\fi%
\ifx\wpfig@pages\@true&\@sw{\wpfig@legend@page}\fi%
@@ -1670,13 +1814,14 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
\xdef\wpfig@headline{\wpfig@headline &\@sw{\wpfig@legend@RM}\if@RAM&\@sw{\wpfig@legend@RAM}\fi}
\fi}%if@sites
\if@RAM\begin{tabular}{|l|l|*{\thewpfig@options}{r|}*{\the@sites}{r|r|}|r|r|}\hline
-\else\begin{tabular}{|l|l|*{\thewpfig@options}{r|}|*{\the@sites}{r|}|r|}\hline\fi
+\else\begin{tabular}{|l|l|*{\thewpfig@options}{r|}|*{\the@sites}{r|}|r|}\hline\fi%|
\wpfig@headline\\\hline\hline}
{\end{tabular}\smallskip\\
\wpfig@legend@RAM@expl
\if@sites; \wpfig@legend@lead@expl\fi
-\caption{\wpfig@legend@caption}\label{fig:wplist}
-\end{center}\end{figure}}
+\@ifundefined{wpfig@label}{\caption{\wpfig@legend@caption}}{\caption{\wpfig@caption}}
+\@ifundefined{wpfig@label}{\label{fig:wplist}}{\label{\wpfig@label}}
+\end{center}\end{table}}
% \end{macrocode}
% and now multilinguality support
% \begin{macrocode}
@@ -1892,12 +2037,16 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
% \end{macrocode}
% And we finally have a line for the intended totals which we use in draft mode.
% \begin{macrocode}
-\gdef\intended@totals{}
+\gdef\intended@totals{}\gdef\requested@totals{}
\if@sites
\@for\@site:=\prop@gen@sites\do{
\xdef\intended@totals{\intended@totals&\textbf{\pdataref@safe{site}\@site{intendedRM}}}
+\xdef\requested@totals{\requested@totals&\pdataref@safe{site}\@site{reqPM}}
\if@RAM\xdef\intended@totals{\intended@totals&\textbf{\pdataref@safe{site}\@site{intendedRAM}}}\fi}
-\if@RAM\xdef\intended@totals{\intended@totals&&}\else\xdef\intended@totals{\intended@totals&}\fi
+\if@RAM\xdef\intended@totals{\intended@totals&&}\else%
+\xdef\intended@totals{\intended@totals&}%
+\xdef\requested@totals{\requested@totals&}%
+\fi
\else% if@sites
\xdef\intended@totals{\intended@totals&\textbf{\pdataref@safe{all}{intended}{RM}}}
\if@RAM\xdef\intended@totals{\intended@totals&\textbf{\pdataref@safe{all}{intended}{RAM}}}\fi
@@ -1909,15 +2058,22 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
\local@count\thewpfig@options\advance\local@count by 2
\begin{wp@figure}
\@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\fi
+\multicolumn{\the\local@count}{|c|}{\prop@legend@totals}\@totals\\\hline%
+\ifsubmit\else%
+\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
% \begin{macrocode}
\newcommand\prop@legend@totals{\textbf{totals}}
\newcommand\prop@legend@intendedtotals{\textbf{intended totals}}
+\newcommand\prop@legend@requestedtotals{\textbf{requested totals}}
% \end{macrocode}
% \end{macro}
%
@@ -1930,11 +2086,13 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
% We define the keys for Gantt tables
% \begin{macrocode}
\newif\ifgantt@draft\gantt@draftfalse
+\newif\ifgantt@miles\gantt@milesfalse
\define@key{gantt}{xscale}{\def\gantt@xscale{#1}}
\define@key{gantt}{yscale}{\def\gantt@yscale{#1}}
\define@key{gantt}{step}{\def\gantt@step{#1}}
\define@key{gantt}{size}{\def\gantt@size{#1}}
\define@key{gantt}{draft}[true]{\ifsubmit\else\gantt@drafttrue\fi}
+\define@key{gantt}{milestones}[true]{\gantt@milestrue}
% \end{macrocode}
% Then we define an auxiliary function that provides defaults for these keys and sets the
% internal macros.
@@ -1950,15 +2108,31 @@ 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.
% \begin{macrocode}
\newenvironment{gantt}[2][]
-{\gantt@set{#1}
+{\gantt@set{#1}\gdef\gantt@height{#2}
+\def\@test{\prop@gen@months@default}
+\ifx\@test\prop@gen@months
+\ClassError{proposal}{Need overall project months to draw gantt
+ chart - expect trouble;\MessageBreak specify
+ \protect\begin{proposal}[...,months=??,...] to fix}\fi
\@ifundefined{gantt@size}{}{\csname\gantt@size\endcsname}
\newdimen\gantt@ymonths
-\gantt@ymonths=#2 cm
-\advance\gantt@ymonths by .5cm
-\begin{tikzpicture}[xscale=\gantt@xscale,yscale=\gantt@yscale]
-\draw[xstep=\gantt@step,gray,very thin] (0,0) grid (\prop@gen@months,#2);
-\foreach \x in {0,\gantt@step,...,\prop@gen@months} \node at (\x,\gantt@ymonths) {\x};}
-{\end{tikzpicture}}
+\gantt@ymonths=\gantt@height cm
+\advance\gantt@ymonths by .8cm
+\begin{tikzpicture}[xscale=\gantt@xscale,yscale=\gantt@yscale]}
+{\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};
+\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{environment}
%
@@ -1969,13 +2143,14 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
% \meta{month} with length \meta{len} that is \meta{force} thick.
% \begin{macrocode}
\newdimen\gantt@ymid\newdimen\gantt@yinc\newdimen\gantt@xend
-\newcommand{\@action}[5]{%
-\gantt@ymid=#2 cm\gantt@yinc=\gantt@yscale cm
-\gantt@xend=#3 cm\advance\gantt@xend by #4 cm
+\newcommand{\@action}[6][]{\def\@test{#1}%
+\ifx\@test\@empty\def\@@color{ganttgray}\else\def\@@color{#1}\fi
+\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
-\fill (#3,#2) rectangle +(#4,#5);
-\node (#1@left) at (#3,\gantt@ymid) {};
-\node (#1@right) at (\gantt@xend,\gantt@ymid) {};}
+\fill[\@@color] (#4,#3) rectangle +(#5,#6);
+\node (#2@left) at (#4,\gantt@ymid) {};
+\node (#2@right) at (\gantt@xend,\gantt@ymid) {};}
% \end{macrocode}
% \end{macro}
%
@@ -2024,7 +2199,7 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
\@for\@@ft:=\@@wphases\do{%task-level work phases
\decode@wphase\@@ft
\@action\@@task\@@line\wphase@start\wphase@len\wphase@force}}}}
- \else% ifwork@ares
+ \else% ifwork@areas false
\edef\@@wps{\pdataref@safe{all}{wp}{ids}}
\@for\@@wp:=\@@wps\do{% iterate over work packages
\stepcounter{taskwps}
@@ -2040,7 +2215,7 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
\@for\@@ft:=\@@wphases\do{%iterate over the task-level work phases
\decode@wphase\@@ft
\@action\@@task\@@line\wphase@start\wphase@len\wphase@force}}}
- \fi% ifwork@areas
+ \fi% ifwork@areas end
\edef\@@deps{\pdataref@safe{all}{task}{deps}}
\@for\@@dep:=\@@deps\do{%
\@dependency{\pdataref@safe{taskdep}\@@dep{from}}{\pdataref@safe{taskdep}\@@dep{to}}}
@@ -2067,7 +2242,7 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
\@for\@@ft:=\@@wphases\do{%iterate over the wp-level work phases
\decode@wphase\@@ft
\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
\edef\@@wps{\pdataref@safe{all}{wp}{ids}}
\@for\@@wp:=\@@wps\do{% iterate over work packages
@@ -2081,19 +2256,22 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
\@for\@@ft:=\@@wphases\do{%iterate over the wp-level work phases
\decode@wphase\@@ft
\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
\stepcounter{gantt@month}}
\fi% ifgantt@draft
\end{gantt}
\caption{\gantt@caption}\label{fig:gantt}
-\end{figure}}
+\end{figure}\footnotetext\gantt@footnote}
% \end{macrocode}
% now the multilingual support
% \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{\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{macro}
%
@@ -2102,24 +2280,28 @@ 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,
% but I am currently to scared to do it so close to the deadline}
% \begin{macrocode}
-\newcommand{\gantttaskchart}[1][]{\begin{figure}[ht]\centering\gantt@set{#1}
-\def\gantt@tasks{\pdataref@num{all}{task}{count}}
-\begin{gantt}[#1]{\gantt@tasks}
+\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
\edef\@@wps{\pdataref@safe{all}{wp}{ids}}
\@for\@@wp:=\@@wps\do{% iterate over work packages
+ \stepcounter{gantt@tasks}
+% \@action[white]{}\@@line0{48}1
\edef\@@tasks{\pdataref@safe\@@wp{task}{ids}}
\@for\@@task:=\@@tasks\do{% iterate over the tasks
\stepcounter{gantt@tasks}
- \@@line=\gantt@tasks\advance\@@line by -\thegantt@tasks
- \node at (-1/\gantt@xscale,\@@line) [above=-2pt] {\taskreflong\@@wp\@@task};
+ \@@line=\thegantt@all@tasks\advance\@@line by -\thegantt@tasks
+ \node at (-.5/\gantt@xscale,\@@line) [above=-2pt] {{\footnotesize\taskreflong\@@wp\@@task}};
\edef\@@wphases{\pdataref@safe{task}\@@task{wphases}}
\@for\@@ft:=\@@wphases\do{%iterate over the task-level work phases
\decode@wphase\@@ft
\@action\@@task\@@line\wphase@start\wphase@len\wphase@force
}}}% end all iterations
\end{gantt}
- \caption{\gantt@caption@main}\label{fig:gantt}
+ \caption{\gantt@caption@main{} -- \emph{\gantt@footnote}}\label{fig:gantt}
\end{figure}}
% \end{macrocode}
% \end{macro}
@@ -2128,9 +2310,11 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
%
% \begin{macro}{\j*}
% \begin{macrocode}
-\newcommand\jpub{\textcolor{\prop@link@color}{\textbf{\large{$\star$}}}}
-\newcommand\jpro{\textcolor{\prop@link@color}{\textbf{\large{$\bullet$}}}}
-\newcommand\jorga{\textcolor{\prop@link@color}{\textbf{\large{$\circ$}}}}
+\newcommand\jpub{\textcolor{\prop@link@color}{\textbf{\Large{$\star$}}}}
+\newcommand\jpro{\textcolor{\prop@link@color}{\textbf{\Large{$\bullet$}}}}
+\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{macro}
%
@@ -2157,8 +2341,10 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
% Now, some instances that use these.
% \begin{macrocode}
\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\jointsoft[1]{\prop@joint\jsoft{#1}}
+\newcommand\jointsup[1]{\prop@joint\jsup{#1}}
% \end{macrocode}
% \end{macro}
%
@@ -2166,30 +2352,38 @@ wagray,.70/.70,.70,.70/0,0,.70/0,0,0,.30}
% \begin{macrocode}
\newcommand{\coherencematrix}{
{\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
-\gdef\@ct@head{}
-\@for\@site:=\prop@gen@sites\do{\xdef\@ct@head{\@ct@head &\site{\@site}}}
+ \let\@sw\relax\let\jpub\relax\let\jpro\relax\let\jorga\relax% not bother
+ \let\jsoft\relax\let\jsup\relax\let\cellcolor\relax% us
+\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
-\@for\@site:=\prop@gen@sites\do{\xdef\@ct@line{\site{\@site}}
- \@for\@@site:=\prop@gen@sites\do{
- \xdef\@ct@line{\@ct@line&\ifx\@site\@@site{X}\fi
- \@ifundefined{coherence@\@site @\@@site}{}{\@nameuse{coherence@\@site @\@@site}}}}
- \xdef\@ct@lines{\@ct@lines\@ct@line\tabularnewline\hline}}}
-\begin{tabular}{|l||*{\the@site}{c|}}\hline
-\@ct@lines\hline
+\@for\@site:=\prop@gen@sites\do{\xdef\@ct@line{\site{\@site}}%
+ \@for\@@site:=\prop@gen@sites\do{%
+ \xdef\@ct@line{\@ct@line&\ifx\@site\@@site{\cellcolor{wagray}{}}\fi%
+ \@ifundefined{coherence@\@site @\@@site}{}{\@nameuse{coherence@\@site @\@@site}}}}%
+ \xdef\@ct@lines{\@ct@lines\@ct@line\tabularnewline\hline}}}%
+\begin{tabular}{|l||*{\the@site}{c|}}\hline%
+\@ct@lines\hline%
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{macrocode}
% \end{macro}
%
% \begin{macro}{\coherencetable}
% \begin{macrocode}
-\newcommand\coherencetable{%
-\begin{table}[ht]
-\begin{center}\small\setlength{\tabcolsep}{.5em}
-\renewcommand{\arraystretch}{.9}\coherencematrix
-\end{center}
+\define@key{coherencetable}{swsites}[true]{\def\cht@swsites{#1}}
+\define@key{coherencetable}{stretch}{\def\cht@stretch{#1}}
+\newcommand\coherencetable[1][]{%
+\def\cht@swsites{false}%
+\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}
\end{table}}
% \end{macrocode}
@@ -2214,7 +2408,7 @@ joint&\multicolumn{\the@site}{l|}{\jpub $\hat=$ publication, \jpro $\hat=$ proje
% \begin{macrocode}
\newif\if@allpapers\@allpaperstrue
\newcommand\prop@ppl[3][]{\@allpapersfalse\message{ppl processing: #2}%
-\printbibliography[heading=subbibliography,maxnames=999,type=#2,title=#3#1]%
+\printbibliography[heading=subbibliography,type=#2,title=#3#1]%
\@ifundefined{prop@rl}{\xdef\prop@rl{#2}}{\xdef\prop@rl{\prop@rl, #2}}}
% \end{macrocode}
% The following code does not work yet, it would have been nice to be able to just add a
@@ -2222,7 +2416,7 @@ joint&\multicolumn{\the@site}{l|}{\jpub $\hat=$ publication, \jpro $\hat=$ proje
% warning instead.
% \begin{macrocode}
\newcommand\prop@prl[1]{\message{unclassified: #1}%
-\printbibliography[heading=subbibliography,maxnames=999,title=Unclassified,#1]}%
+\printbibliography[heading=subbibliography,title=Unclassified,#1]}%
\define@key{paperlist}{unclassified}[true]{\message{unclass: \prop@rl}\prop@prl\prop@rl}
% \end{macrocode}
% with this, we define a couple of keys that generate
@@ -2237,6 +2431,14 @@ joint&\multicolumn{\the@site}{l|}{\jpub $\hat=$ publication, \jpro $\hat=$ proje
\define@key{paperlist}{techreports}[true]{\prop@ppl{techreport}{Technical Reports}}
% \end{macrocode}
%
+% \begin{macro}{featured}
+% We introduce a new bibLaTeX category |featured| for those papers that were already
+% mentioned in |\prop@paperlist| and the macros defined from it.
+% \begin{macrocode}
+\DeclareBibliographyCategory{featured}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\prop@paperlist}
% We generate a subsection with a |refsection| (this makes a separate bibliography for
% this section) and activate the keys via |\nocite|. Then we just print the bibliography
@@ -2244,13 +2446,13 @@ joint&\multicolumn{\the@site}{l|}{\jpub $\hat=$ publication, \jpro $\hat=$ proje
% \begin{macrocode}
\newcommand\prop@paperlist[2][]{%
\begin{refsection}%
-\nocite{#2}%
+\nocite{#2}\addtocategory{featured}{#2}%
\let\biboldfont\bibfont%
\renewcommand{\bibfont}{\footnotesize}%
\renewcommand{\baselinestretch}{.9}
\setkeys{paperlist}{#1}
\@ifundefined{prop@rl}{}{\@latex@warning{some papers are not classified!}}
-\if@allpapers\printbibliography[heading=empty,maxnames=999]\fi%
+\if@allpapers\printbibliography[heading=empty]\fi%
\let\bibfont\biboldfont%
\end{refsection}}
% \end{macrocode}
@@ -2285,6 +2487,8 @@ joint&\multicolumn{\the@site}{l|}{\jpub $\hat=$ publication, \jpro $\hat=$ proje
%
%
% \begin{macro}{\@dmp}
+% The |\@dmp| macro shows metadata information about the keys in the margin if
+% |\keystrue| is specified. This is a debugging tool.
% \begin{macrocode}
\def\@dmp#1{\ifkeys\marginpar{#1}\fi}
% \end{macrocode}
@@ -2298,36 +2502,36 @@ joint&\multicolumn{\the@site}{l|}{\jpub $\hat=$ publication, \jpro $\hat=$ proje
% \end{macro}
% \Finale
\endinput
-% LocalWords: proposal dtx xkohlhase areastrue svninfo noworkareas twoside emph
-% LocalWords: areasfalse wa textcomp amssymb url graphicx colortbl xcolor RO
-% LocalWords: fancyhdr keyval eurosym tikz calc USenglish ngerman linkcolor ne
-% LocalWords: citecolor urlcolor colorlinks pagecolor breaklinks bookmarksopen
-% LocalWords: hyperref LaTeX workpackage PIs thema acrolong anzungsantrag im
-% LocalWords: Einzelverfahren tabline Allgemeine Angaben Antragsteller worktel
-% LocalWords: bitabline personaltitle academictitle birthdate Dienstanschrift
-% LocalWords: workaddress atabline workfax Privatanschrift privaddress privtel
-% LocalWords: dt Kennwort Fachgebiet und Arbeitsrichtung Voraussichtliche wa
-% LocalWords: Gesamtdauer Antragszeitraum Zusammenfassung workarea wp wps num
-% LocalWords: refundefinedtrue lightgray gantt xstep Unterschriften Id areas
-% LocalWords: submit hide ed public article paper today array comment wide RE
-% LocalWords: babel true bookmarks blue LO LE page of prop sites key site RM
-% LocalWords: def id title acronym discipline start months Proposal Erg by cls
-% LocalWords: empty em name affiliation Applicants Work Address email The pn
-% LocalWords: curriculum vita the applicants are enclosed appendix reference
-% 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: 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
-% LocalWords: xend effort month iffalse eustrep.dtx fileversion maketitle Antr
-% LocalWords: tableofcontents DescribeEnv ifpublic ifpublic compactitem wpfig
-% LocalWords: wpfig workplan workplan bookeeping wissenchaftliche tasklist dmp
-% LocalWords: tasklist taskin taskref taskref tasktref tasktref localtaskref
-% LocalWords: localtaskref ganttchart biblatex ifx dfgproposal.dtx newpage pn
-% LocalWords: bibtex proposal1-blx.aux pdataref WPtref WPtref WAref WAref WAtref
+% LocalWords: proposal dtx xkohlhase areastrue svninfo noworkareas twoside emph gitinfo
+% LocalWords: areasfalse wa textcomp amssymb url graphicx colortbl xcolor RO OJBref sl
+% LocalWords: fancyhdr keyval eurosym tikz calc USenglish ngerman linkcolor ne WPref gen
+% LocalWords: citecolor urlcolor colorlinks pagecolor breaklinks bookmarksopen WPref
+% LocalWords: hyperref LaTeX workpackage PIs thema acrolong anzungsantrag im Mitarbeiter
+% LocalWords: Einzelverfahren tabline Allgemeine Angaben Antragsteller worktel ifsvninfo
+% LocalWords: bitabline personaltitle academictitle birthdate Dienstanschrift Hilfskraft
+% LocalWords: workaddress atabline workfax Privatanschrift privaddress privtel ifgitinfo
+% LocalWords: dt Kennwort Fachgebiet und Arbeitsrichtung Voraussichtliche wa fancyfoot
+% LocalWords: Gesamtdauer Antragszeitraum Zusammenfassung workarea wp wps num prop@gen
+% LocalWords: refundefinedtrue lightgray gantt xstep Unterschriften Id areas acro Lutz
+% LocalWords: submit hide ed public article paper today array comment wide RE tweakable
+% LocalWords: babel true bookmarks blue LO LE page of prop sites key site RM hypertarget
+% 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 doctex
+% 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 endhead
+% LocalWords: taskdep from rectangle left right width pt color red above dep jointsub
+% LocalWords: Overview Activities Signatures Date paralist ymonths ymid yinc jointsoft
+% LocalWords: xend effort month iffalse eustrep.dtx fileversion maketitle Antr jointsoft
+% LocalWords: tableofcontents DescribeEnv ifpublic ifpublic compactitem wpfig jointsup
+% LocalWords: wpfig workplan workplan bookeeping wissenchaftliche tasklist dmp jointsup
+% LocalWords: tasklist taskin taskref taskref tasktref tasktref localtaskref jsoft jsoft
+% LocalWords: localtaskref ganttchart biblatex ifx dfgproposal.dtx newpage pn jsup jsup
+% LocalWords: bibtex proposal1-blx.aux pdataref WPtref WPtref WAref WAref WAtref wasysym
% LocalWords: WAtref protectmacro thebibliography bibitem newblock newif inst
% LocalWords: ifsubmit submitfalse publicfalse ifkeys keysfalse ifwork RAMtrue
% LocalWords: submittrue publictrue excludecomment RAMfalse keystrue sfdefault
@@ -2351,7 +2555,7 @@ joint&\multicolumn{\the@site}{l|}{\jpub $\hat=$ publication, \jpro $\hat=$ proje
% LocalWords: delivstrue boxedminipage ednotes thempfootnote mpfootnote xdef
% LocalWords: csquotes eso-foot ednoteshape footnotesize importfrom readpdata
% LocalWords: pubspage newcommand jobname.pdata jobname compromized warnpubs
-% LocalWords: maxnames reportfalse reporttrue noindent goodbreak theobjective
+% LocalWords: maxbibnames reportfalse reporttrue noindent goodbreak theobjective
% LocalWords: deliv ednote wpheadertable wptitle wprm hline theprop newwrite
% LocalWords: delivs openout deliverables themilestone wpdelivs textwidth lec
% LocalWords: compactdesc wadelivs hfil nobreak hbox leadsto delivref dissem
@@ -2367,5 +2571,13 @@ joint&\multicolumn{\the@site}{l|}{\jpub $\hat=$ publication, \jpro $\hat=$ proje
% LocalWords: inproceedings wspapers notkeyword techreports techreport emphbox
% LocalWords: textbackslash wpsectionheadings compactht compactht emphbox sym
% LocalWords: dfgproposal Tsanko Tsankov mdframed newmdenv wphase thealltasks
-% LocalWords: alltasks taskreflong definecolorset leadgray wagray thewpfig
-% LocalWords: wpfigstyle colspan keyvals gantttaskchart baselinestretch
+% LocalWords: alltasks taskreflong definecolorset leadgray wagray thewpfig fancyhfoffset
+% LocalWords: wpfigstyle colspan keyvals gantttaskchart baselinestretch NeedsTeXFormat
+% LocalWords: mileref mileref miletref backref firstinits wissenschaftlicher
+% LocalWords: wissenschaftliche startend@wphases addtocategory localdelivref
+
+% \endinput
+% Local Variables:
+% mode: doctex
+% TeX-master: t
+% End: