diff options
Diffstat (limited to 'Master/texmf-dist/source')
3 files changed, 781 insertions, 403 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: diff --git a/Master/texmf-dist/source/latex/proposal/dfg/dfgproposal.dtx b/Master/texmf-dist/source/latex/proposal/dfg/dfgproposal.dtx index 0b2513e6342..53d3ecc23e8 100644 --- a/Master/texmf-dist/source/latex/proposal/dfg/dfgproposal.dtx +++ b/Master/texmf-dist/source/latex/proposal/dfg/dfgproposal.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/dfg/dfgproposal.dtx $ +% https://github.com/KWARC/LaTeX-proposal % \fi % % \iffalse %<cls|pdata|reporting>\NeedsTeXFormat{LaTeX2e}[1999/12/01] -%<cls>\ProvidesClass{dfgproposal}[2013/02/13 v1.4 DFG Proposal] -%<pdata>\ProvidesPackage{dfgpdata}[2013/02/13 v1.4 DFG Project Data] -%<reporting>\ProvidesPackage{dfgreporting}[2013/02/13 v1.4 DFG Project Reporting] +%<cls>\ProvidesClass{dfgproposal}[2015/11/22 v1.4 DFG Proposal] +%<pdata>\ProvidesPackage{dfgpdata}[2015/11/22 v1.4 DFG Project Data] +%<reporting>\ProvidesPackage{dfgreporting}[2015/11/22 v1.4 DFG Project Reporting] %<*driver> \documentclass[twoside]{ltxdoc} \DoNotIndex{\def,\long,\edef,\xdef,\gdef,\let,\global} @@ -28,8 +28,7 @@ \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[maxnames=6,hyperref=auto,style=alphabetic]{biblatex} \bibliography{kwarc} \usepackage[bookmarks=true,linkcolor=blue, citecolor=blue,urlcolor=blue,colorlinks=true, @@ -37,14 +36,12 @@ \makeindex \newcommand\subversion{\textsc{Subversion}\xspace} \begin{document} -\svnInfo $Id: dfgproposal.dtx 24170 2013-02-19 12:06:45Z kohlhase $ -\svnKeyword $URL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/dfg/dfgproposal.dtx $ \DocInput{dfgproposal.dtx} \end{document} %</driver> % \fi % -%\CheckSum{627} +%\CheckSum{629} % % \changes{v1.1}{2011/03/18}{separating out from new proposal class} % \changes{v1.1}{2011/12/09}{various tweaks and corrections} @@ -93,10 +90,8 @@ % 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 -% |dfgproposal|. +% version can be found at \url{https://github.com/KWARC/LaTeX-proposal}. For bug reports +% please use the sTeX TRAC at \url{https://github.com/KWARC/LaTeX-proposal/issues}. % % \section{The User Interface}\label{sec:user-interface} % @@ -132,9 +127,6 @@ % \item \DescribeMacro{thema}|thema| for a concise (up to 140 characters) description of % the topic of the proposal. This has to be in German and will be used by the DFG in % internal communications and publications. -% \item The \DescribeMacro{pubspage}|pubspage| key can be used to give URIs of publication -% pages that are mentioned in the references sections as sources of publications of the -% proposers. Use one |pubspage| key per URI. % \end{compactitem} % % \subsection{Project-Related Papers}\label{sec:user:papers} @@ -146,7 +138,11 @@ % you will have to run |bibtex -min-crossrefs=999 proposal1-blx.aux| to generate file % |proposal1.bbl| that generates the bibliography list. To automate this (at least on Unix % systems), we have added the field |Makefile.template|, which allows you do do any -% necessary steps by just typing |make|. +% necessary steps by just typing |make|. +% +% The papers listed in |\dfgprojpapers| are put into a special bib\LaTeX category +% \DescribeMacro{featured}|featured|, and can thus be excluded from the general +% bibliography by adding |notcategory=featured| to the final |\printbibliography|. % % \subsection{Final Report Infrastructure}\label{sec:user:report} % @@ -348,10 +344,10 @@ Applicant\if@sites\ifnum\the@PIs>1{s}\fi\fi\ \deu{(Antragsteller)}}% \WAauthorblock[aff]\prop@gen@PIs\\[2cm] \end{center} \edef\keep@tocdepth{\value{tocdepth}} -\setcounter{tocdepth}{1}\tableofcontents +\setcounter{tocdepth}{2}\tableofcontents \setcounter{tocdepth}{\keep@tocdepth} -\newpage\thispagestyle{empty} \ifgeneral\setcounter{section}{-1} +\newpage\thispagestyle{empty} \ifdeutsch\section{Allgemeine Angaben (nur f\"ur ELAN)}\else \section{General Information (for the ELAN system only)}\fi \dfg@applicants @@ -372,14 +368,14 @@ Applicant\if@sites\ifnum\the@PIs>1{s}\fi\fi\ \deu{(Antragsteller)}}% \subsection{Application period \deu{(Antragszeitraum)}}\fi \prop@gen@months\quad Months starting \prop@gen@start \@ifundefined{prop@gen@fundsuntil}{} -{ (\ifdeutsch mittel reichen bis\else funds last until\fi\ \prop@gen@fundsuntil)} +{ (\ifdeutsch Mittel reichen bis\else funds last until\fi\ \prop@gen@fundsuntil)} \ifdeutsch\else\selectlanguage{USenglish}\fi -\newpage\fi %ifgeneral -\setcounter{page}{1}} +\newpage\fi%ifgeneral +\setcounter{page}{0}} {} % \end{macrocode} % \end{environment} -% We also need to translage some of the generated parts +% We also need to translate some of the generated parts % \begin{macrocode} \ifdeutsch \def\prop@warnpubs@message{Viele der Publikationen der Antragsteller sind verf\"ugbar unter folgenden URLs:} @@ -402,7 +398,7 @@ Applicant\if@sites\ifnum\the@PIs>1{s}\fi\fi\ \deu{(Antragsteller)}}% \ifdeutsch \item Publications either cited in section~\ref{sec:ourpubs} or occurring in one of the curricula vitae (CD only)\else -\item Zitierte Publicationen aus Abschnitt~\ref{sec:ourpubs} oder einem der Lebensl\"aufe +\item Zitierte Publikationen aus Abschnitt~\ref{sec:ourpubs} oder einem der Lebensl\"aufe (nur CD)\fi \end{itemize}} %</cls> @@ -487,12 +483,14 @@ Applicant\if@sites\ifnum\the@PIs>1{s}\fi\fi\ \deu{(Antragsteller)}}% % \begin{macrocode} %<*cls> \ifgeneral -\newenvironment{Summary}{% -\thispagestyle{empty} -\ifdeutsch\subsection{Zusammenfassung}\else -\subsection{Summary \deu{(Zusammenfassung; siehe~\ref{sec:zusammenfassung})}}\fi} +\newenvironment{Zusammenfassung}{\thispagestyle{empty}\subsection{Zusammenfassung}\begin{otherlanguage}{ngerman}} +{\end{otherlanguage}\newpage\setcounter{page}1} +\newenvironment{Summary}{\thispagestyle{empty}\subsection{Summary}} {\newpage\setcounter{page}1} -\else\excludecomment{Summary}\fi +\else +\excludecomment{Summary} +\excludecomment{Zusammenfassung} +\fi %</cls> % \end{macrocode} % @@ -555,54 +553,65 @@ Applicant\if@sites\ifnum\the@PIs>1{s}\fi\fi\ \deu{(Antragsteller)}}% % \end{macrocode} % \Finale \endinput -% LocalWords: dfgproposal dtx kohlhase areastrue svninfo noworkareas twoside -% 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: DFG empty em name affiliation Applicants Work Address email The -% 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 aux dfg count warning at -% 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 dfgprojpapers dfgprojpapers ifx -% LocalWords: bibtex proposal1-blx.aux pdataref WPtref WPtref WAref WAref WAtref -% LocalWords: WAtref protectmacro thebibliography bibitem newblock newif inst -% LocalWords: ifsubmit submitfalse publicfalse ifkeys keysfalse ifwork RAMtrue -% LocalWords: submittrue publictrue excludecomment RAMfalse keystrue sfdefault -% LocalWords: renewcommand familydefault helvet includecomment subsubsections -% LocalWords: setcounter secnumdepth ifofpage ofpagefalse fancyhead thepage sw -% LocalWords: pagestyle fancyplain sitesfalse sitestrue ifundefined gdef allwp -% LocalWords: fundedperiod reportperiod textbf newenvironment titlepage auxout -% LocalWords: thispagestyle newcounter stepcounter tocdepth ofpagetrue setkeys -% LocalWords: finalreport orderzeitraum thewa thewp addtocounter bigskip pws -% LocalWords: textsf smallskip ignorespaces subsubsection thedfg theallwp req -% LocalWords: compactenum compactenum thetask newcount thegantt refsection tl -% LocalWords: nocite defbibheading ourpubs printbibliography expandafter ifnum -% LocalWords: csname endcsname dfgcount ifcase cellcolor wptable widehat qquad -% LocalWords: tabularnewline wplist ifgantt drafttrue RMdisclaimer draftfalse -% LocalWords: RMdisclaimerfalse RMdisclaimertrue newdimen taskwps thetaskwps -% LocalWords: whilenum hfill marginpar texteuro officialeuro texttt newpage cb -% LocalWords: pubspage pubspage min-crossrefs pdata xdef newcommand hline aff -% LocalWords: renewenvironment nameuse paperlist applareas applareas dfgpdata -% LocalWords: Gesch aftszeichen projpapers shortname sitedescription ednote -% LocalWords: textsc newlength setlength textwidth WAauthorblock assoc tmpop -% LocalWords: tmpop tmpop +% LocalWords: dfgproposal dtx kohlhase areastrue svninfo noworkareas twoside notcategory +% LocalWords: areasfalse wa textcomp amssymb url graphicx colortbl xcolor RO Abriss Rabe +% LocalWords: fancyhdr keyval eurosym tikz calc USenglish ngerman linkcolor ne ifgeneral +% LocalWords: citecolor urlcolor colorlinks pagecolor breaklinks bookmarksopen ifdeutsch +% LocalWords: hyperref LaTeX workpackage PIs thema acrolong anzungsantrag im generaltrue +% LocalWords: Einzelverfahren tabline Allgemeine Angaben Antragsteller worktel Deutscher +% LocalWords: bitabline personaltitle academictitle birthdate Dienstanschrift Antrag gen +% LocalWords: workaddress atabline workfax Privatanschrift privaddress privtel prop@gen +% LocalWords: dt Kennwort Fachgebiet und Arbeitsrichtung Voraussichtliche wa deutschtrue +% LocalWords: Gesamtdauer Antragszeitraum Zusammenfassung workarea wp wps num Neuantrag +% LocalWords: refundefinedtrue lightgray gantt xstep Unterschriften Id areas auf deu nur +% LocalWords: submit hide ed public article paper today array comment wide RE Disziplin +% LocalWords: babel true bookmarks blue LO LE page of prop sites key site RM ur das auft +% LocalWords: def id title acronym discipline start months Proposal Erg by cls seit der +% LocalWords: DFG empty em name affiliation Applicants Work Address email The Erstantrag +% LocalWords: curriculum vita the applicants are enclosed appendix reference mittel der +% LocalWords: Research area and field work Scientific Fields Anticipated write reichen +% LocalWords: duration Application period Summary short lead Package label task Viele pn +% LocalWords: tasks deps number line Effort target ids aux dfg count warning at sind aus +% LocalWords: for undefined safe zero one two three four five six seven eight verf ugbar +% LocalWords: nine ten eleven twelve style lines totals Packages xscale yscale unter von +% LocalWords: step set gray very thin grid workphase len force phase length to folgenden +% LocalWords: taskdep from rectangle left right width pt color red above dep Literatur +% LocalWords: Overview Activities Signatures Date paralist ymonths ymid yinc Verzeichnis +% LocalWords: xend effort month iffalse eustrep.dtx fileversion maketitle Antr Ausdruck +% LocalWords: tableofcontents DescribeEnv ifpublic ifpublic compactitem wpfig Lebenslauf +% LocalWords: wpfig workplan workplan bookeeping wissenchaftliche tasklist dmp Zitierte +% LocalWords: tasklist taskin taskref taskref tasktref tasktref localtaskref Abschnitt +% LocalWords: localtaskref ganttchart biblatex dfgprojpapers dfgprojpapers ifx einem Typ +% LocalWords: bibtex proposal1-blx.aux pdataref WPtref WPtref WAref WAref WAtref Lebensl +% LocalWords: WAtref protectmacro thebibliography bibitem newblock newif inst aufe Seite +% LocalWords: ifsubmit submitfalse publicfalse ifkeys keysfalse ifwork RAMtrue Institut +% LocalWords: submittrue publictrue excludecomment RAMfalse keystrue sfdefault Lehrstuhl +% LocalWords: renewcommand familydefault helvet includecomment subsubsections bezahlte +% LocalWords: setcounter secnumdepth ifofpage ofpagefalse fancyhead thepage sw Berichts +% LocalWords: pagestyle fancyplain sitesfalse sitestrue ifundefined gdef allwp Summen +% LocalWords: fundedperiod reportperiod textbf newenvironment titlepage auxout Titel +% LocalWords: thispagestyle newcounter stepcounter tocdepth ofpagetrue setkeys Dauer +% LocalWords: finalreport orderzeitraum thewa thewp addtocounter bigskip pws DFG-Mitteln +% LocalWords: textsf smallskip ignorespaces subsubsection thedfg theallwp req Ende Summe +% LocalWords: compactenum compactenum thetask newcount thegantt refsection tl Personen +% LocalWords: nocite defbibheading ourpubs printbibliography expandafter ifnum Monate +% LocalWords: csname endcsname dfgcount ifcase cellcolor wptable widehat qquad Aufw ande +% LocalWords: tabularnewline wplist ifgantt drafttrue RMdisclaimer draftfalse Hilfskraft +% LocalWords: RMdisclaimerfalse RMdisclaimertrue newdimen taskwps thetaskwps intendierte +% LocalWords: whilenum hfill marginpar texteuro officialeuro texttt newpage cb grau +% LocalWords: min-crossrefs pdata xdef newcommand hline aff NeedsTeXFormat dfgreporting +% LocalWords: renewenvironment nameuse paperlist applareas applareas dfgpdata kursiv +% LocalWords: Gesch aftszeichen projpapers shortname sitedescription ednote generalfalse +% LocalWords: textsc newlength setlength textwidth WAauthorblock assoc tmpop markiert +% LocalWords: tmpop tmpop deutschfalse Sachbeihilfe Arbeitsgebiet Fortsetungsantrag +% LocalWords: Publikationen Publikatinsverzeichnis Wissenschaftler Verwertungsfelder +% LocalWords: Kooperationspartner otherlanguage Arbeitspaket Arbeitsbereich Aufwand +% LocalWords: Arbeitsbereiche Personenmonaten Arbeitspaketleiter Arbeitspakete unten +% LocalWords: Zeitliche Verteilung Lastverteilung Bisherige Kollaboration Leiter +% LocalWords: Schritt endinput + +% \endinput +% Local Variables: +% mode: doctex +% TeX-master: t +% End: diff --git a/Master/texmf-dist/source/latex/proposal/eu/euproposal.dtx b/Master/texmf-dist/source/latex/proposal/eu/euproposal.dtx index b1aaeafe2fc..190575903b1 100644 --- a/Master/texmf-dist/source/latex/proposal/eu/euproposal.dtx +++ b/Master/texmf-dist/source/latex/proposal/eu/euproposal.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/eu/euproposal.dtx $ +% https://github.com/KWARC/LaTeX-proposal % \fi % % \iffalse %<cls|pdata|reporting>\NeedsTeXFormat{LaTeX2e}[1999/12/01] -%<cls>\ProvidesClass{euproposal}[2013/01/13 v1.4 EU Proposal] -%<pdata>\ProvidesPackage{eudata}[2013/01/13 v1.4 EU Project Data] -%<reporting>\ProvidesPackage{eureporting}[2013/01/13 v1.4 EU Project Reporting] +%<cls>\ProvidesClass{euproposal}[2015/11/22 v1.5 EU Proposal] +%<pdata>\ProvidesPackage{eupdata}[2015/11/22 v1.5 EU Project Data] +%<reporting>\ProvidesPackage{eureporting}[2015/11/22 v1.5 EU Project Reporting] %<*driver> \documentclass[twoside]{ltxdoc} \DoNotIndex{\def,\long,\edef,\xdef,\gdef,\let,\global} @@ -28,8 +28,7 @@ \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[maxnames=6,hyperref=auto,style=alphabetic]{biblatex} \bibliography{kwarc} \usepackage[bookmarks=true,linkcolor=blue, citecolor=blue,urlcolor=blue,colorlinks=true, @@ -37,14 +36,12 @@ \makeindex \newcommand\subversion{\textsc{Subversion}\xspace} \begin{document} -\svnInfo $Id: euproposal.dtx 24071 2013-01-13 12:52:43Z kohlhase $ -\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/euproposal.dtx $ \DocInput{euproposal.dtx} \end{document} %</driver> % \fi % -%\CheckSum{365} +%\CheckSum{639} % % \changes{v0.1}{2007/05/07}{used in the SciML proposal} % \changes{v0.2}{2007/05/09}{First Version with Documentation} @@ -52,6 +49,7 @@ % \changes{v0.3a}{2008/01/18}{error corrections and more documentation} % \changes{v1.3}{2011/05/18}{basing this on proposal.cls} % \changes{v1.4}{2012/01/18}{various tweaks for the Jan 2012 proposal deadline} +% \changes{v1.4}{2015/01/14}{lots of tweaks} % % \GetFileInfo{euproposal.cls} % @@ -96,10 +94,8 @@ % 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/euproposal}} For bug reports -% please use the sTeX trac at {\url{https://trac.kwarc.info/sTeX/}} with component -% |euproposal|. +% version can be found at \url{https://github.com/KWARC/LaTeX-proposal}. For bug reports +% please use the sTeX TRAC at \url{https://github.com/KWARC/LaTeX-proposal/issues}. % % \section{The User Interface}\label{sec:user-interface} % @@ -114,7 +110,10 @@ % % As usual in {\LaTeX}, the package is loaded by % |\documentclass[|\meta{options}|]{euproposal}|, where |[|\meta{options}|]| is optional -% and gives a comma separated list of options specified in~\cite{Kohlhase:pplp:svn}. +% and gives a comma separated list of options specified in~\cite{Kohlhase:pplp:svn}. Some +% versions EU proposals want non-standard numbering schemes (e.g. starting with +% \textbf{B...} since we are writing Part B.), this can be reached by giving the |propB| +% option. % % \subsection{Proposal Metadata and Title page}\label{sec:user:metadata} % @@ -143,6 +142,8 @@ % \item The \DescribeMacro{coordinator}|coordinator| key gives the identifier of the % proposal coordinator. The |euproposal| package uses the |workaddress| package for % representation of personal metadata, see~\cite{Kohlhase:workaddress:ctan} for details. +% \item The \DescribeMacro{coordinatorsite}|coordinatorsite| key gives the identifier of +% the coordinating site (for the table). % \item If given, the \DescribeMacro{iconrowheight}|iconrowheight| key instructs the % |euproposal| class to make a line with the logos of the participants at the bottom of % the title page, and specify their heights; |1.5cm| is often a good value. @@ -156,6 +157,22 @@ % |DEM| = Demonstration; |MGT| = Management of the consortium; |OTHER| = Other specific % activities, if applicable in this call. % +% \subsection{Milestones and Deliverables}\label{sec:user:deliverables} +% +% |euproposal.cls| adds the \DescribeMacro{verif}|verif| key to \DescribeMacro{\milestone} +% for specifying a means of verification that the milestone has been successful. +% +% With this, we can generate the milestone table that is required in many EU +% proposals. This can simply be done via the +% \DescribeMacro{\milestonetable}|\milestonetable| macro. It takes a keyword argument with +% the keys \DescribeMacro{caption}|caption| for specifying a different caption, and the +% widths \DescribeMacro{wname}|wname|, \DescribeMacro{wdeliv}|wdeliv|, and +% \DescribeMacro{wverif}|wverif| that can be used to specify different widths for the +% name/deliverables/verification columns in the milestone table. +% +% \subsection{Risks}\label{sec:user:risks} +% \ednote{MK: document the infrastructure, make examples} +% % \begin{newpart}{MK@MK: This is new, and only partially implemented} % \subsection{Reporting Infrastructure}\label{sec:user:report} % @@ -191,7 +208,11 @@ % We first set up the options for the package. % % \begin{macrocode} -%<cls>\DeclareOption*{\PassOptionsToClass{\CurrentOption}{proposal}} +%<*cls> +\newif\ifpartB\partBfalse +\DeclareOption{partB}{\partBtrue} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{proposal}} +%</cls> %<reporting>\DeclareOption*{\PassOptionsToClass{\CurrentOption}{reporting}} %<cls|reporting>\ProcessOptions % \end{macrocode} @@ -199,13 +220,19 @@ % Then we load the packages we make use of % % \begin{macrocode} -%<cls>\LoadClass[report,noRAM]{proposal} +%<cls>\ifpartB\LoadClass[report,noRAM]{proposal}\else\LoadClass[noRAM]{proposal}\fi %<reporting>\LoadClass[report,noRAM]{reporting} %<*cls|reporting> \RequirePackage{longtable} \RequirePackage{eurosym} \RequirePackage{wrapfig} \RequirePackage{eupdata} +% \end{macrocode} +% we want to change the numbering of figures and tables +% \begin{macrocode} +\RequirePackage{chngcntr} +\counterwithin{figure}{subsection} +\counterwithin{table}{subsection} %</cls|reporting> % \end{macrocode} % @@ -215,6 +242,7 @@ % \begin{macrocode} %<*pdata> \define@key{prop@gen}{coordinator}{\def\prop@gen@coordinator{#1}\pdata@def{prop}{gen}{coordinator}{#1}} +\define@key{prop@gen}{coordinatorsite}{\def\prop@gen@coordinatorsite{#1}\pdata@def{prop}{gen}{coordinator}{#1}} \def\prop@gen@challenge{??}\def\prop@gen@challengeid{??} \define@key{prop@gen}{challenge}{\def\prop@gen@challenge{#1}\pdata@def{prop}{gen}{challenge}{#1}} \define@key{prop@gen}{challengeid}{\def\prop@gen@challengeid{#1}\pdata@def{prop}{gen}{challengeid}{#1}} @@ -244,15 +272,17 @@ % and the default values, these will be used, if the author does not specify something % better. % -% We need to redefine some of the internal counters and table of contents mechanisms to -% adapt to the fact that the proposal text is just Part B. +% If the |propB| option is given, we need to redefine some of the internal counters and +% table of contents mechanisms to adapt to the fact that the proposal text is just Part B. % % \begin{macrocode} %<*cls> +\ifpartB \def\thepart{\Alph{part}} \setcounter{part}{2} \def\thechapter{\thepart.\arabic{chapter}} \def\numberline#1{\hb@xt@\@tempdima{#1\hfil} } +\fi % \end{macrocode} % % \begin{macro}{\prop@sites@table} @@ -260,10 +290,11 @@ \newcommand\prop@sites@table{\def\@@table{} {\let\tabularnewline\relax\let\hline\relax \@for\@I:=\prop@gen@sites\do{\xdef\@@table{\@@table\pdataref{site}\@I{number}} -\xdef\@@table{\@@table&\@nameuse{wa@institution@\@I @name}} +\xdef\@@table{\@@table&\@nameuse{wa@institution@\@I @name} +\ifx\@I\prop@gen@coordinatorsite (coordinator)\fi} \xdef\@@table{\@@table&\@nameuse{wa@institution@\@I @acronym}} \xdef\@@table{\@@table&\@nameuse{wa@institution@\@I @countryshort}\tabularnewline\hline}}} -\begin{tabular}{|l|p{8cm}|l|l|}\hline +\begin{tabular}{|l|p{8cm}|l|l|}\hline%| \# & Participant organisation name & Short name & Country\\\hline\hline \@@table \end{tabular}} @@ -273,28 +304,35 @@ % \begin{environment}{prop@proposal} % \begin{macrocode} \renewenvironment{prop@proposal} -{\thispagestyle{empty}\begin{center} +{\ifgrantagreement\else + \thispagestyle{empty}\begin{center} {\Large \prop@gen@instrument}\\[.2cm] - {\LARGE\textbf\prop@gen@callname}\\[.4cm] - {\Large \prop@gen@callid}\\[.4cm] - {\LARGE\textbf\prop@gen@title}\\[.3cm] - {\LARGE Acronym: {\prop@gen@acronym}}\\[.2cm] + {\Large\textbf\prop@gen@callname}\\[.4cm] + {\LARGE \prop@gen@callid}\\[.8cm] + {\huge\textbf\prop@gen@title}\\[.4cm] + {\LARGE Acronym: {\prop@gen@acronym}}\\[2cm] \end{center} -{\large\prop@gen@instrument}\\ +%{\large\prop@gen@instrument}\\ {\large\textbf{Date of Preparation: \today}} -\ifsubmit\else\\{\large\textbf{Revision}: {\svnInfoRevision} of \svnInfoDate}\fi\\[1em] -{\large} +% \ifsubmit\else\if@svninfo\if@gitinfo\\ +% {\large\textbf{Revision}: +% \if@svninfo\svnInfoRevision\fi\if@gitinfo\gitAbbrevHash\fi +% of +% \if@svninfo\svnInfoDate\fi\if@gitinfo\gitAuthorDate\fi} +% \fi\fi\fi +\\[1em] \begin{large} \begin{description} - \item[Work program topics addressed by \pn:] - \@ifundefined{prop@gen@topicsaddressed} - {\textbf{Challenge \prop@gen@challengeid}: \prop@gen@challenge, - \textbf{Objective \prop@gen@objectiveid}: \prop@gen@objective, - \textbf{target outcome \prop@gen@outcomeid}) \prop@gen@outcome.} - {\prop@gen@topicsaddressed}\\[1em] + % \item[Work program topics addressed by \pn:] + % \@ifundefined{prop@gen@topicsaddressed} + % {\textbf{Challenge \prop@gen@challengeid}: \prop@gen@challenge, + % \textbf{Objective \prop@gen@objectiveid}: \prop@gen@objective, + % \textbf{target outcome \prop@gen@outcomeid}) \prop@gen@outcome. + % {\prop@gen@topicsaddressed}\\[1em] \item[Coordinator:] \wa@ref{person}\prop@gen@coordinator{name} \item[e-mail:] \wa@ref{person}\prop@gen@coordinator{email} \item[tel/fax:] \wa@ref{person}\prop@gen@coordinator{worktelfax} + \@ifundefined{prop@gen@keywords}{}{\item[Keywords:] \prop@gen@keywords} \end{description} \end{large} \vspace*{1em} @@ -304,6 +342,7 @@ {\@for\@site:=\prop@gen@sites\do{\wa@institution@logo[height=\prop@gen@iconrowheight]\@site\qquad}} \end{center} \newpage +\fi% ifgrantagreement \setcounter{tocdepth}{2}\setcounter{part}{2}} {\newpage\printbibliography[heading=warnpubs,maxnames=999]} % \end{macrocode} @@ -313,28 +352,78 @@ \def\prop@gen@instrument{Proposal Instrument (e.g. IP)} % \end{macrocode} % +% \subsection{Site Descriptions}\label{sec:sitedesc} +% \ednote {this functionality should probably be refactored into proposal.dtx} +% % \begin{environment}{sitedescription} -% \ednote{this code should probably be refactored into proposal.dtx} +% \ednote{document this above} |\begin{sitedescritpion}[|\meta{opt}|]{\meta{site}}| +% marks up the description for the site \meta{site}. It looks up the relevant metadata +% from the respective |\WAinstitution| declarations. The options argument \meta{opt} +% is a key-value list for the keys \DescribeMacro{logo}|logo| (add the logo from +% |\WAinstitution| to the site description), \DescribeMacro{width}|width|, +% \DescribeMacro{height}|height| (intended dimensions of the logo), \ednote{more?}. % \begin{macrocode} -\newenvironment{sitedescription}[2][]{\def\@test{#1}% -\begin{wrapfigure}{r}{5.4cm}\vspace{-2.5ex}% -\begin{tabular}{|p{5cm}|}\hline\vspace{1mm}% -\ifx\@test\@empty% -\wa@institution@logo[height=1.3cm]{#2}\else% -\wa@institution@logo[#1]{#2}\fi\\[1ex]% +\define@key{site@desc}{box}[true]{\def\site@desc@box{#1}% +\pdata@def{sitedesc}{\@site}{box}{#1}} +\define@key{site@desc}{logo}[true]{\def\site@desc@logo{#1}% +\pdata@def{sitedesc}{\@site}{logo}{#1}} +\define@key{site@desc}{width}{\def\site@desc@width{#1}% +\pdata@def{sitedesc}{\@site}{width}{#1}\@dmp{wd=#1}} +\define@key{site@desc}{height}{\def\site@desc@height{#1}% +\pdata@def{sitedesc}{\@site}{height}{#1}\@dmp{ht=#1}} +\newenvironment{sitedescription}[2][]% +{\def\c@site{#2}% remember the site ID +\newcounter{site@#2@PM} % for the site PM +\def\site@desc@box{false}% not box unless requested +\def\site@desc@logo{false}% not logo unless requested +\def\site@desc@height{1.3cm}% default height +\def\site@desc@width{5cm}% default width +\setkeys{site@desc}{#1}% read the keys to overwrite the defaults +\ifx\@site@desc@box\@true% if we want a logo +\begin{wrapfigure}{r}{\site@desc@width}\vspace{-2.5ex}% +\begin{tabular}{|p{\site@desc@width}|}\hline\vspace{1mm}% +\ifx\@site@desc@logo\@true% if we want a logo +\wa@institution@logo[height=\site@desc@width]{#2}\\[1ex]% +\fi% end logo \textbf{\wa@ref{institution}{#2}{type}.\hfill \wa@ref{institution}{#2}{country}}\\% \small\wa@ref{institution}{#2}{streetaddress}, \wa@ref{institution}{#2}{townzip}\\\hline% \end{tabular}\vspace{-2.5ex}% \end{wrapfigure}% +\fi% end box \pdata@target{site}{#2}% -{\subsection{\wa@ref{institution}{#2}{acronym}:% +{\subsubsection{\wa@ref{institution}{#2}{acronym}: % space here {\textsc{\wa@ref{institution}{#2}{name}} (\wa@ref{institution}{#2}{countryshort})}}}% \small% \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% {0.25ex \@plus1ex \@minus.2ex}% {-1em}% {\normalfont\normalsize\bfseries}}} -{} +{\pdata@def{site}{\c@site}{reqPM}{\csname thesite@\c@site @PM\endcsname}} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{participant} +% \ednote{document this above} |\begin{picv}[|\meta{PM}|]{\meta{name}}| marks up the CV +% and metadata about a principal investigator of a site (it can only be use inside a +% |sitedescription| environment). The first argument \meta{PM} specifies the +% involvement in person months: a fair estimation this PI will spend on this specific +% project over its whole duration. +% \begin{macrocode} +\define@key{site@part}{type}{\def\site@part@type{#1}\@dmp{type=#1}} +\define@key{site@part}{PM}{\def\site@part@PM{#1}\@dmp{PM=#1}} +\define@key{site@part}{salary}{\def\site@part@salary{#1}}%\@dmp{\euro=#1}} +\define@key{site@part}{gender}{\def\site@part@gender{#1}}%\@dmp{\euro=#1}} +\newenvironment{participant}[2][]% +{\def\site@part@type{}\def\site@part@PM{}\def\site@part@salary{}\def\site@part@gender{}% +\setkeys{site@part}{#1}% +\ifx\site@part@PM\@empty\else\addtocounter{site@\c@site @PM}{\site@part@PM}\fi% +\paragraph*{#2\ % +(\ifx\site@part@type\@empty\else\site@part@type\fi% +\ifx\site@part@gender\@empty\else, \site@part@gender\fi% +\ifx\site@part@PM\@empty\else, \site@part@PM~PM\fi% +)}% +\ignorespaces} +{\par\medskip} % \end{macrocode} % \end{environment} % @@ -351,7 +440,7 @@ % % \begin{macrocode} \renewenvironment{workpackage}[1][] -{\begin{work@package}[#1]\subsubsection*{\wptitle} +{\begin{work@package}[#1]\medskip\wpheadertable% \addcontentsline{toc}{subsubsection}{\wp@label\wp@num: \pdataref{wp}\wp@id{title}}} {\end{work@package}} % \end{macrocode} @@ -359,30 +448,94 @@ % % \begin{macro}{\wpheadertable} % We redefine the macro that computes the default work package header table, since there -% are more sites in a EU proposal +% are more sites in a EU proposal, we do this in a tabular form as asked for in the +% template. We use the internal counter |@sites@po| (sites plus one) for convenience. % \begin{macrocode} \newcounter{@sitespo}\newcounter{@sitespt} \renewcommand\wpheadertable{% \wp@sites@efforts@lines% \setcounter{@sitespo}{\thewp@sites@num}\addtocounter{@sitespo}{1}% -\setcounter{@sitespt}{\thewp@sites@num}\addtocounter{@sitespt}{2}% \par\noindent\begin{tabular}{|l|*{\thewp@sites@num}{c|}c|}\hline% -\multicolumn{\the@sitespt}{|l|}{\textbf{\wp@mk@title{\wp@num}: }% -\textsf{\pdata@target{wp}{\wp@id}{\pdataref{wp}\wp@id{title}}}}\\\hline% -\textbf{Start: }\pdataref{wp}\wp@id{start}&% -\multicolumn{\the@sitespo}{l|}{\textbf{Activity Type: }\pdataref{wp}\wp@id{type}}\\\hline% +\multicolumn{\the@sitespo}{|l|}{\textbf{\wp@mk@title{\wp@num}: }% +\textsf{\pdata@target{wp}{\wp@id}{\pdataref{wp}\wp@id{title}}}} +&\textbf{Start: }\pdataref{wp}\wp@id{start}\\\hline% \wp@sites@line\\\hline% \wp@efforts@line\\\hline% \end{tabular}\smallskip\par\noindent\ignorespaces} % \end{macrocode} % \end{macro} % +% \subsection{Milestones and Deliverables}\label{sec:impl:deliverables} +% % \begin{environment}{wpdelivs} -% \ednote{MK: boxing compactdesc does not seem to work any more} +% We make the deliverables boxed in EU proposals, this is simple with |mdframed.sty|. % \begin{macrocode} -%\surroundwithmdframed{wpdelivs} +\surroundwithmdframed{wpdelivs} % \end{macrocode} % \end{environment} +% +% \begin{macro}{\milestone} +% \begin{macrocode} +\define@key{milestone}{verif}{\gdef\mile@verif{#1}\pdata@def{mile}\mile@id{verif}{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{milestonetable} +% here we do the work. +% \begin{macrocode} +\define@key{mst}{caption}{\gdef\mst@caption{#1}} +\define@key{mst}{wname}{\gdef\mst@wname{#1}} +\define@key{mst}{wdeliv}{\gdef\mst@wdeliv{#1}} +\define@key{mst}{wverif}{\gdef\mst@wverif{#1}} +\newcommand\milestonetable[1][]{% +\def\mst@caption{Milestones, Deliverables, and Verification}% +\def\mst@wname{2.5cm}\def\mst@wdeliv{7cm}\def\mst@wverif{4cm} +\setkeys{mst}{#1}% +{\gdef\mst@lines{}%initialize +\let\tabularnewline\relax\let\hline\relax% so they +\let\textbf\relax\let\emph\relax% do not bother us +\edef\@@miles{\pdataref{all}{mile}{ids}} +\@for\@I:=\@@miles\do{ +\edef\@delivs{\pdataref@safe{mile}{\@I}{delivs}}% +\def\@@delivs{} +\@for\@J:=\@delivs\do{\xdef\@@delivs{\@@delivs\ \pdataref{deliv}\@J{label}}} +\def\@@line{ +\textbf{\pdataref{mile}\@I{label}}& +\emph{\pdataref{mile}{\@I}{title}} & +\@@delivs& +\pdataref{mile}\@I{month} & +\pdataref{mile}\@I{verif}} +\xdef\mst@lines{\mst@lines\@@line\tabularnewline\hline}}} +\begin{table}[ht] +\begin{tabular}{|l|p{\mst@wname}|p{\mst@wdeliv}|l|p{\mst@wverif}|}\hline +\#&\textbf{\miles@legend@name} +&\textbf{\miles@legend@involved} +&\textbf{\miles@legend@mo} +&\textbf{\miles@legend@verif}\\\hline\hline +\mst@lines +\end{tabular} +\caption{\mst@caption}\label{tab:milestonetable} +\end{table} +\footnotetext\miles@legend@footnote} +% \end{macrocode} +% now the multilinguality support +% \begin{macrocode} +\newcommand\miles@legend@name{Name} +\newcommand\miles@legend@mo{Mo} +\newcommand\miles@legend@verif{Means of Verif.} +\newcommand\miles@legend@involved{WPs\footnotemark/Deliverables involved} +\newcommand\miles@legend@footnote{The work package number is the first number in the deliverable number.} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\prop@milesfor} +% the due date is the first argument to facilitate sorting +% \begin{macrocode} +\newcommand\prop@milesfor[1]{\edef\@delivs{\pdataref@safe{mile}{#1}{delivs}}% +\let\m@sep=\relax\def\new@sep{,\ }% +\@for\@I:=\@delivs\do{\m@sep\pdataRef{deliv}\@I{label}\let\m@sep=\new@sep}} +% \end{macrocode} +% \end{macro} % % \subsection{Risks}\label{sec:impl:risks} % @@ -408,8 +561,8 @@ % mitigation plans for them. In the |euproposal| we use two environments to mark them up. % % \DescribeMacro{risk}|\begin{risk}{|\meta{title}|}{|\meta{prob}|}{|\meta{grav}|}|\ldots|\end{risk}| -% makes a paragraph no a rist \meta{title} with gravity \meta{grav} and probability -% \meta{prob}, where the body of the environment contains a desription of the risk. The +% makes a paragraph no a risk \meta{title} with gravity \meta{grav} and probability +% \meta{prob}, where the body of the environment contains a description of the risk. The % \DescribeMacro{riskcont}|riskcont| is a variant, where \meta{title} names a risk and the % body is a description of the contingency plan. % @@ -429,20 +582,24 @@ % % \Finale \endinput -% LocalWords: iffalse cls euproposal euproposal.dtx tt maketitle newpage wpwa -% LocalWords: tableofcontents ednote euproposal DescribeEnv compactitem impl -% LocalWords: longtable eurosym pdata thepart setcounter env vfill qquad -% LocalWords: thechapter newcommand tabularnewline hline xdef pdataref nameuse -% LocalWords: countryshort rpoposal clange wrapfig wrapfigure vspace bfseries -% LocalWords: startsection normalfont normalsize baselinestretch callname hb -% LocalWords: countryshort rpoposal clange wrapfig renewenvironment worktelfax -% LocalWords: tocdepth wpobjectives newenvironment noindent boxedminipage fbox -% LocalWords: textwidth textbf wpdescription sitedescription pgfdeclareimage -% LocalWords: wrapfigure vspace pgfuseimage streetaddress townzip textsc xt wa -% LocalWords: renewcommand startsection normalfont normalsize bfseries wptitle -% LocalWords: workpackage subsubsection wpheadertable newcounter sitespo hfil -% LocalWords: newcounter sitespt addtocounter textsf smallskip ignorespaces pn -% LocalWords: cellcolor lightgray keypubs paperlist callname callid callid ifx -% LocalWords: challengeid challengeid objectiveid objectiveid outcomeid hfill -% LocalWords: outcomeid metakeys workaddress numberline tempdima ifsubmit -% LocalWords: proposal.dtx texttt paperslist workaddress.dtx +% LocalWords: iffalse cls euproposal euproposal.dtx tt maketitle newpage wpwa eudata dfg +% LocalWords: tableofcontents ednote euproposal DescribeEnv compactitem impl eureporting +% LocalWords: longtable eurosym pdata thepart setcounter env vfill qquad NeedsTeXFormat +% LocalWords: thechapter newcommand tabularnewline hline xdef pdataref nameuse SciML gen +% LocalWords: countryshort rpoposal clange wrapfig wrapfigure vspace bfseries eupdata wd +% LocalWords: startsection normalfont normalsize baselinestretch callname hb newpart wp +% LocalWords: countryshort rpoposal clange wrapfig renewenvironment worktelfax prop@gen +% LocalWords: tocdepth wpobjectives newenvironment noindent boxedminipage fbox warnpubs +% LocalWords: textwidth textbf wpdescription sitedescription pgfdeclareimage projpapers +% LocalWords: wrapfigure vspace pgfuseimage streetaddress townzip textsc xt wa maxnames +% LocalWords: renewcommand startsection normalfont normalsize bfseries wptitle sitedesc +% LocalWords: workpackage subsubsection wpheadertable newcounter sitespo hfil if@svninfo +% LocalWords: newcounter sitespt addtocounter textsf smallskip ignorespaces pn setkeys +% LocalWords: cellcolor lightgray keypubs paperlist callname callid callid ifx csname +% LocalWords: challengeid challengeid objectiveid objectiveid outcomeid hfill if@gitinfo +% LocalWords: outcomeid metakeys workaddress numberline tempdima ifsubmit iconrowheight +% LocalWords: proposal.dtx texttt paperslist workaddress.dtx topicsaddressed thesite +% LocalWords: topicsaddressed iconrowheight finalreport.tex printbibliography endcsname +% LocalWords: reportperiod organisation thispagestyle gitAbbrevHash sitedescritpion +% LocalWords: WAinstitution picv medskip newmdenv frametitle wpdelivs mdframed.sty emph +% LocalWords: surroundwithmdframed emph riskcont prob grav ldots endinput |