diff options
author | Karl Berry <karl@freefriends.org> | 2015-11-23 23:03:44 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2015-11-23 23:03:44 +0000 |
commit | a30f052f895d1f1fd9f112c555d360a2f5845929 (patch) | |
tree | 75e851693ac839f7510674f192badb317e43d87b /Master/texmf-dist/source/latex/proposal/base/proposal.dtx | |
parent | 17317dd1f84901e202fb95e31a0eee9c51e50d74 (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.dtx | 716 |
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}\\\hline}%sortkey,due,label,id,title,type,level +\newcommand{\deliverable}[9]{\pdataRef{deliv}{#4}{label}	\\\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: |