diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..07fb8e7 --- /dev/null +++ b/Makefile @@ -0,0 +1,21 @@ +SRCDIRS = +DOCDIRS = eu/examples dfg/examples +DTXDIRS = base dfg eu +MAKEDIRS = $(DTXDIRS) +TDSCOLL ?= $(shell basename $$PWD) +DISTDIRS = $(DTXDIRS) +all clean distclean: + @for d in $(MAKEDIRS); do (cd $$d && $(MAKE) -$(MAKEFLAGS) $@) done + +package doc filedate checksum enablechecksum disablechecksum: + @for d in $(DTXDIRS); do (cd $$d && $(MAKE) -$(MAKEFLAGS) $@) done + +TDSURL = https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal +TDS.src = +TDS.doc = README +TDS.src = + +include lib/Makefile.ctan + +echo: + echo $(DISTDIRS) diff --git a/README b/README new file mode 100644 index 0000000..c027bb1 --- /dev/null +++ b/README @@ -0,0 +1,20 @@ +*proposal.cls: A set of LaTeX classes for preparing proposals for collaborative projects + +The base proposal class supports many of the general elemenst of project proposals. It is +optimized towards collaborate projects. This class is intended to be specialized to +particular funding bodies that have their own styles. + +MANIFEST: +base: the base proposal class +dfg: the instance for Deutsche Forschungsgemeinschaft +eu: the instance for EU proposals +etc: style files from the sTeX bundle added for convenience + (only in SVN, not on CTAN) +lib: Makefiles for the management of self-documenting packages + +Copyright(c) 2010 Michael Kohlhase +The package is distributed under the terms of the LaTeX Project Public License (LPPL) + +The development version of this package can be found at +https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal + diff --git a/base/Makefile b/base/Makefile new file mode 100644 index 0000000..818035d --- /dev/null +++ b/base/Makefile @@ -0,0 +1,18 @@ +PREFIX = ../lib +PACKAGE = base +TDSCOLL = proposal +DTX.cls.base = proposal +TDS.tex = reporting.cls pdata.sty +CTAN = $(TDS.tex) +REDUNDANT = dcm.sty metakeys.sty sref.sty +all: package doc + +include $(PREFIX)/Makefile.vars +TEXINPUTS = .: +include $(PREFIX)/Makefile.in + +echo: + echo $(PACKAGEDATE) + + + diff --git a/base/README b/base/README new file mode 100644 index 0000000..5077b8f --- /dev/null +++ b/base/README @@ -0,0 +1,12 @@ +proposal.cls: A class for preparing proposals for collaborative projects + +The proposal class supports many of the general elemenst of project proposals. It is +optimized towards collaborate projects. This class is intended to be specialized to +particular funding bodies that have their own styles. + +Copyright(c) 2010 Michael Kohlhase +The package is distributed under the terms of the LaTeX Project Public License (LPPL) + +The development version of this package can be found at +https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal + diff --git a/base/pdata.sty b/base/pdata.sty new file mode 100644 index 0000000..19c940e --- /dev/null +++ b/base/pdata.sty @@ -0,0 +1,110 @@ +%% +%% This is file `pdata.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% proposal.dtx (with options: `pdata') +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{pdata}[2013/02/19 v1.4 Project Data] +\RequirePackage{workaddress}[2011/05/03] +\RequirePackage{eurosym} +\newif\if@sites\@sitesfalse\let\prop@gen@sites=\relax% +\newcounter{@site}% +\define@key{prop@gen}{site}{\@sitestrue\@dmp{site=#1}% +\stepcounter{@site}\pdata@def{site}{#1}{number}{\the@site}% +\@ifundefined{prop@gen@sites}{\xdef\prop@gen@sites{#1}}{\xdef\prop@gen@sites{\prop@gen@sites,#1}}% +\define@key{prop@gen}{#1RM}{\pdata@def{site}{#1}{intendedRM}{##1}}% +\if@RAM\define@key{prop@gen}{#1RAM}{\pdata@def{site}{#1}{intendedRAM}{##1}}\fi +\define@key{workpackage}{#1RM}{\pdata@def\wp@id{#1}{RM}{##1}}% +\if@RAM\define@key{workpackage}{#1RAM}{\pdata@def\wp@id{#1}{RAM}{##1}}\fi +\define@key{prop@gen}{#1employed}{{\let\tabularnewline\relax\let\hline\relax\let\wa@ref\relax% +\@ifundefined{prop@gen@employed@lines}% +{\xdef\prop@gen@employed@lines{\wa@ref{institution}{#1}{shortname} & ##1\tabularnewline\hline}}% +{\xdef\prop@gen@employed@lines{\prop@gen@employed@lines \wa@ref{institution}{#1}{shortname} & ##1\tabularnewline\hline}}}}} +\define@key{prop@gen}{RM}{\@dmp{RM=#1}\if@sites% +\PackageWarning{Do not use the RM key in the presence of sites}\else% +\pdata@def{all}{intended}{RM}{#1}\fi} +\define@key{prop@gen}{RAM}{\@dmp{RAM=#1}\if@sites% +\PackageWarning{Do not use the RAM key in the presence of sites}\else% +\pdata@def{all}{intended}{RAM}{#1}\fi} +\define@key{prop@gen}{PI}{\@dmp{PI=#1}% +\@ifundefined{prop@gen@PIs}{\xdef\prop@gen@PIs{#1}}{\xdef\prop@gen@PIs{\prop@gen@PIs,#1}}} +\define@key{prop@gen}{pubspage}{\@ifundefined{prop@gen@pubspages}% +{\xdef\prop@gen@pubspages{#1}}{\xdef\prop@gen@pubspages{\prop@gen@pubspages,#1}}} +\define@key{prop@gen}{importfrom}{\message{importing proposal data from #1.pdata}\readpdata{#1}} +\define@key{prop@gen}{instrument}{\def\prop@gen@instrument{#1}% +\pdata@def{prop}{gen}{instrument}{#1}\@dmp{inst=#1}} +\define@key{prop@gen}{title}{\def\prop@gen@title{#1}% +\pdata@def{prop}{gen}{title}{#1}} +\define@key{prop@gen}{acronym}{\gdef\prop@gen@acronym{#1}% +\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}{discipline}{\def\prop@gen@discipline{#1}% +\pdata@def{prop}{gen}{discipline}{#1}} +\define@key{prop@gen}{areas}{\def\prop@gen@areas{#1}% +\pdata@def{prop}{gen}{areas}{#1}} +\define@key{prop@gen}{start}{\def\prop@gen@start{#1}% +\pdata@def{prop}{gen}{start}{#1}} +\define@key{prop@gen}{months}{\def\prop@gen@months{#1}% +\pdata@def{prop}{gen}{months}{#1}} +\define@key{prop@gen}{since}{\def\prop@gen@since{#1}% +\pdata@def{prop}{gen}{since}{#1}} +\define@key{prop@gen}{totalduration}{\def\prop@gen@totalduration{#1}% +\pdata@def{prop}{gen}{totalduration}{#1}} +\define@key{prop@gen}{fundsuntil}{\def\prop@gen@fundsuntil{#1}% +\pdata@def{prop}{gen}{fundsuntil}{#1}} +\newcommand\prop@gen@acro{ACRONYM} +\newcommand\prop@gen@months{???} +\newcommand\prop@gen@title{???Proposal Title???} +\newcommand\prop@gen@instrument{??? Instrument ???} +\newcommand\prop@tl[2]{\xdef\tab@line{} +\@for\tl@ext:={#1}\do{\xdef\tab@line{\tab@line}} +\tab@line} +\def\prop@gen@compactht{false} +\define@key{prop@gen}{compactht}[true]{\def\prop@gen@compactht{#1}} +\newif\ifwork@areas\work@areastrue +\DeclareOption{noworkareas}{\work@areasfalse} +\ProcessOptions +\RequirePackage{xspace} +\newwrite\pdata@out +\newcommand\pdata@open[1]{\immediate\openout\pdata@out=#1.pdata} +\newcommand\pdata@close{\closeout\pdata@out} +\newcommand\readpdata[1]{\IfFileExists{#1.pdata} +{\message{proposal: Reading Project Data}\makeatletter\input{#1.pdata}\makeatother} +{proposal: No Project Data found, (forward) references may be compromized}} +\newcommand\pdata@target[3]{\hypertarget{#1@#2@target}{#3}} +\newcommand\pdata@def[4]{%\@pdata@def{#1}{#2}{#3}{#4}% + \protected@write\pdata@out{}{\string\@pdata@def{#1}{#2}{#3}{#4}}} +\newcommand\@pdata@def[4]{\expandafter\gdef\csname #1@#2@#3\endcsname{#4}} +\newcommand\pdataref[3]{\@ifundefined{#1@#2@#3}% + {\protect\G@refundefinedtrue\@latex@warning{#3 for #1 #2 undefined}??}% + {\csname #1@#2@#3\endcsname}}% +\newcommand\pdataref@aux[3]{\@ifundefined{#1@#2@#3}{??}{\csname #1@#2@#3\endcsname}}% +\newcommand\pdataref@num[3]{\@ifundefined{#1@#2@#3}{0}{\csname #1@#2@#3\endcsname}}% +\newcommand\pdataref@safe[3]{\@ifundefined{#1@#2@#3}{}{\csname #1@#2@#3\endcsname}}% +\newcommand\pdataRef[3]{\@ifundefined{#1@#2@#3}% +{\protect\G@refundefinedtrue\@latex@warning{#3 for #1 #2 undefined}??}% +{\hyperlink{#1@#2@target}{\csname #1@#2@#3\endcsname}}} +\newcommand\prop@count[1]{\ifcase #1 zero\or one\or two\or three\or four\or five\or six\or seven \or + eight\or nine\or ten\or eleven \or twelve\else#1\fi} +\newcommand\pdatacount[2]{\prop@count{\pdataref@num{#1}{#2}{count}}} +\newcommand\pn{\pdataref{prop}{gen}{acronym}\xspace} +\newcommand\pnlong{\pdataref{prop}{gen}{acrolong}\xspace} +\newcommand\WPref[1]{\pdataRef{wp}{#1}{label}} +\newcommand\WPtref[1]{\pdataRef{wp}{#1}{label}: \pdataRef{wp}{#1}{short}} +\ifwork@areas +\newcommand\WAref[1]{\pdataRef{wa}{#1}{label}} +\newcommand\WAtref[1]{\pdataRef{wa}{#1}{label}: \pdataRef{wa}{#1}{title}} +\fi +\newcommand{\signatures}[1]{\section{#1} +\qquad\number\day. \number\month. \number\year\\[6ex] +\strut\qquad Date\hfill\@for\@p:=\prop@gen@PIs\do{% +\wa@ref{person}\@p{personaltitle}~\wa@ref{person}\@p{name}\hfill}} +\def\@dmp#1{\ifkeys\marginpar{#1}\fi} +\renewcommand\euro{\officialeuro\xspace} +\endinput +%% +%% End of file `pdata.sty'. diff --git a/base/proposal-blx.bib b/base/proposal-blx.bib new file mode 100644 index 0000000..4622978 --- /dev/null +++ b/base/proposal-blx.bib @@ -0,0 +1,11 @@ +@Comment{$ biblatex control file $} +@Comment{$ biblatex version 2.1 $} +Do not modify this file! + +This is an auxiliary file used by the 'biblatex' package. +This file may safely be deleted. It will be recreated as +required. + +@Control{biblatex-control, + options = {2.1:0:0:1:0:0:1:1:0:1:0:0:12:1:3:1:79:+}, +} diff --git a/base/proposal.cls b/base/proposal.cls new file mode 100644 index 0000000..7775f2d --- /dev/null +++ b/base/proposal.cls @@ -0,0 +1,917 @@ +%% +%% This is file `proposal.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% proposal.dtx (with options: `cls') +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesClass{proposal}[2013/02/19 v1.4 Project Proposal] +\newif\if@wpsubsection\@wpsubsectionfalse +\newif\ifsubmit\submitfalse +\newif\ifpublic\publicfalse +\newif\ifkeys\keysfalse +\newif\ifdelivs\delivsfalse +\newif\ifwork@areas\work@areastrue +\newif\if@RAM\@RAMfalse +\def\proposal@class{article} +\DeclareOption{wpsubsection}{\@wpsubsectiontrue} +\DeclareOption{submit}{\submittrue} +\DeclareOption{public}{\publictrue} +\DeclareOption{noworkareas}{\work@areasfalse\PassOptionsToClass{\CurrentOption}{pdata}} +\DeclareOption{RAM}{\@RAMtrue} +\DeclareOption{report}{\def\proposal@class{report}} +\DeclareOption{keys}{\keystrue} +\DeclareOption{deliverables}{\delivstrue} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions +\LoadClass[a4paper,twoside]{\proposal@class} +\RequirePackage{amssymb} +\RequirePackage{url} +\RequirePackage{graphicx} +\RequirePackage{colortbl} +\RequirePackage{xcolor} +\RequirePackage{rotating} +\RequirePackage{fancyhdr} +\RequirePackage{array} +\RequirePackage{xspace} +\RequirePackage{comment} +\AtBeginDocument{\ifpublic\excludecomment{private}\fi} +\RequirePackage{tikz} +\RequirePackage{paralist} +\RequirePackage{a4wide} +\RequirePackage{boxedminipage} +\renewcommand{\thempfootnote}{\roman{mpfootnote}} +\renewcommand{\familydefault}{\sfdefault} +\RequirePackage[scaled=.90]{helvet} +\RequirePackage{textcomp} +\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} +\definecolor{darkblue}{rgb}{0,0,.7} +\ifsubmit\def\prop@link@color{darkblue}\else\def\prop@link@color{blue}\fi +\RequirePackage[bookmarks=true,linkcolor=\prop@link@color, + citecolor=\prop@link@color,urlcolor=\prop@link@color,colorlinks=true, + breaklinks=true, bookmarksopen=true]{hyperref} +\ifsubmit +\RequirePackage[hide]{ed} +\RequirePackage[final,today]{svninfo} +\else +\RequirePackage[show]{ed} +\RequirePackage[eso-foot,today]{svninfo} +\fi +\renewcommand\ednoteshape{\sl\footnotesize} +\ifpublic\excludecomment{private}\else\includecomment{private}\fi +\setcounter{secnumdepth}{3} +\newif\ifofpage\ofpagefalse +\fancyhead[RE,LO]{\prop@gen@acronym} +\newcommand\prop@of@pages[2]{page~#1\ifofpage~of~#2\fi} +\fancyhead[LE,RO]{\prop@of@pages\thepage{\pdataref@num{prop}{page}{last}}} +\pagestyle{fancyplain} +\newmdenv[settings=\large]{emphbox} +\newenvironment{prop@proposal} +{\thispagestyle{empty}% +\begin{center} + {\LARGE \prop@gen@instrument}\\[.2cm] + {\LARGE\textbf{\prop@gen@title}}\\[.3cm] + {\LARGE Acronym: {\prop@gen@acronym}}\\[.2cm] + {\large\today}\\[1em] + \begin{tabular}{c*{\the@PIs}{c}} + \prop@tl\prop@gen@PIs{\wa@ref{person}\tl@ext{name}}\\ + \prop@tl\prop@gen@PIs{\wa@ref{institution}{\wa@ref{person}\tl@ext{affiliation}}{name}} + \end{tabular}\\[2cm] +\end{center} +\setcounter{tocdepth}{2}\tableofcontents\newpage\setcounter{page}{1}} +{\section{List of Attachments} +\begin{itemize} +\@for\@I:=\prop@gen@PIs\do{% +\item Curriculum Vitae and list of publications for + \wa@ref{person}\@I{personaltitle} \wa@ref{person}\@I{name} +\end{itemize}}\newpage +\printbibliography[heading=warnpubs]} +\newenvironment{proposal}[1][]{\readpdata\jobname +\ofpagetrue\setkeys{prop@gen}{#1} +\pdata@open\jobname +\if@sites\else +\define@key{workpackage}{RM}{\pdata@def{wp}\wp@id{RM}{##1}\@dmp{RM=##1}} +\if@RAM\define@key{workpackage}{RAM}{\pdata@def{wp}\wp@id{RAM}{##1}\@dmp{RAM=##1}}\fi +\fi +\newcounter{@PIs} +\@ifundefined{prop@gen@PIs}{}{\@for\@I:=\prop@gen@PIs\do{\stepcounter{@PIs}}} +\newcounter{@sites} +\@ifundefined{prop@gen@sites}{}{\@for\@I:=\prop@gen@sites\do{\stepcounter{@sites}}} +\setcounter{page}{0} +\begin{prop@proposal}} +{\end{prop@proposal} +\pdata@def{prop}{page}{last}{\thepage}\ofpagefalse +\pdata@close} +\newcommand\site[1]{\hyperlink{site@#1@target}{\wa@ref{institution}{#1}{acronym}}} +\newcommand\sitename[1]{\hyperlink{site@#1@target}{\wa@ref{institution}{#1}{name}}} +\newcommand\objective@label[1]{O#1} +\define@key{obj}{id}{\def\obj@id{#1}\@dmp{id=#1}} +\define@key{obj}{title}{\def\obj@title{#1}\@dmp{title=#1}} +\define@key{obj}{short}{\def\obj@short{#1}\@dmp{short=#1}} +\newcounter{objective} +\newenvironment{objective}[1][] +{\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}% +\pdata@def{obj}\obj@id{label}{\objective@label\theobjective}% +\@ifundefined{obj@title}{}{\pdata@def{obj}\obj@id{title}\obj@title}% +\@ifundefined{obj@short}{}{\pdata@def{obj}\obj@id{short}\obj@short}} +{} +\newcommand\OBJref[1]{\pdataRef{obj}{#1}{label}} +\newcommand\OBJtref[1]{\pdataRef{obj}{#1}{label}: \pdataRef{obj}{#1}{title}} +\ifwork@areas +\define@key{workarea}{id}{\def\wa@id{#1}\@dmp{id=#1}} +\define@key{workarea}{title}{\pdata@def{wa}\wa@id{title}{#1}} +\define@key{workarea}{short}{\pdata@def{wa}\wa@id{short}{#1}} +\define@key{workarea}{lead}{\pdata@def{wa}\wa@id{lead}{#1}} +\fi +\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}{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}} +\newcommand\wp@mk@title[1]{Work Package {#1}} +\newcommand\wp@label[1]{WP{#1}} +\ifwork@areas +\newcommand\wa@label[1]{WA{#1}} +\newcommand\wa@mk@title[1]{Work Area {#1}} +\fi +\ifwork@areas\newcounter{wa}\newcounter{wp}[wa]\else\newcounter{wp}\fi +\ifdelivs\newcounter{deliv}[wp]\fi +\newcounter{allwp} +\newcommand\update@wps[1]{\@ifundefined{@wps}{\xdef\@wps{#1}}{\xdef\@wps{\@wps,#1}}} +\newcommand\update@tasks[1]{\@ifundefined{@tasks}{\xdef\@tasks{#1}}{\xdef\@tasks{\@tasks,#1}}} +\newcommand\update@deps[1]{\@ifundefined{task@deps}{\xdef\task@deps{#1}}{\xdef\task@deps{\task@deps,#1}}} +\ifwork@areas\def\update@was#1{\@ifundefined{@was}{\xdef\@was{#1}}{\xdef\@was{\@was,#1}}}\fi +\newcommand\decode@wphase[1]{\expandafter\decode@p@start#1@% +\local@count\wphase@end\advance\local@count by -\wphase@start% +\def\wphase@len{\the\local@count}} +\def\decode@p@start#1-#2@{\def\wphase@start{#1}\decode@p@end#2!@} +\def\decode@p@end#1!#2@{\def\wphase@end{#1}\def\@test{#2}% +\ifx\@test\@empty\def\wphase@force{1}\else\decode@p@force#2\fi} +\def\decode@p@force#1!{\def\wphase@force{#1}} +\def\wphases@start#1-#2@{\def\wphase@start{#1}} +\newcommand\startend@wphases[1]{\def\@test{#1} +\ifx\@test\@empty\def\wphase@start{0}\def\wphase@end{0}\else% +\@for\@I:=#1\do{\expandafter\decode@p@start\@I @} +\expandafter\wphases@start#1@\fi} +\newcounter{wp@RM} +\if@RAM\newcounter{wp@RAM}\fi +\newenvironment{work@package}[1][]% +{\def\wp@wphases{0-0}% default values +\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% +\@ifundefined{wp@type}{}{\pdata@def{wp}\wp@id{type}\wp@type}% +\let\@tasks=\relax% +\edef\wp@num{\ifwork@areas\thewa.\fi\thewp}% +\pdata@def{wp}\wp@id{label}{\wp@label\wp@num}% +\pdata@def{wp}\wp@id{number}{\thewp}% +\pdata@def{wp}\wp@id{page}{\thepage}% +\update@wps\wp@id% +\edef\wp@num{\ifwork@areas\thewa.\fi\thewp}% +\pdata@def{wp}{\wp@id}{num}{\thewp}% +\if@sites% +\setcounter{wp@RM}{0}\if@RAM\setcounter{wp@RAM}{0}\fi% +\@for\@site:=\prop@gen@sites\do{% +\edef\@RM{\pdataref@num\wp@id\@site{RM}}\addtocounter{wp@RM}{\@RM}% +\if@RAM\edef\@RAM{\pdataref@num\wp@id\@site{RAM}}\addtocounter{wp@RAM}{\@RAM}\fi} +\pdata@def{wp}\wp@id{RM}{\thewp@RM}% +\if@RAM\pdata@def{wp}\wp@id{RAM}{\thewp@RAM}\fi% +\fi}% if@sites +{\@ifundefined{@tasks}{}{\pdata@def{\wp@id}{task}{ids}\@tasks}} +\newenvironment{workpackage}[1][]% +{\begin{work@package}[#1]% +\if@sites\goodbreak\medskip\wpheadertable% +\else\subsubsection*{{\wptitle} (\wprm)}\fi% +\addcontentsline{toc}{paragraph}{{\wp@mk@title\thewp}: \pdataref{wp}\wp@id{title}}% +\ignorespaces} +{\end{work@package}} +\newcommand\wptitle{\wp@mk@title{\wp@num}: \pdata@target{wp}{\wp@id}{\pdataref{wp}\wp@id{title}}} +\newcommand\wprm{\pdataref@safe{wp}\wp@id{RM}\if@RAM\ RM+\pdataref{wp}\wp@id{RAM} RAM\fi} +\newcount\site@contribution% +\newcommand\if@site@contributes[2]{% +\ifx\prop@gen@compactht\@true +\if@RAM\ifnum\pdataref@num\wp@id{#1}{RM} > 0 \ifnum \pdataref@num\wp@id{#1}{RAM} > 0 #2\fi\fi +\else\ifnum\pdataref@num\wp@id{#1}{RM} > 0 #2\fi\fi +\else #2\fi} +\newcounter{wp@sites@num} +\newcommand\wp@sites@efforts@lines{% +\setcounter{wp@sites@num}{0} +{\let\G@refundefinedtrue=\relax\let\@latex@warning=\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}}% +\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}}}% +\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}}}}} +\newcommand\wpheadertable{% +\wp@sites@efforts@lines% +\par\noindent\begin{tabular}{|l||l|*{\thewp@sites@num}{c|}|c|}\hline% +\textbf{\wp@mk@title{\wp@num}}&\wp@sites@line\\\hline% +\textsf{\pdata@target{wp}{\wp@id}{\pdataref{wp}\wp@id{title}}} &\wp@efforts@line\\\hline% +\end{tabular}\smallskip\par\noindent\ignorespaces} +\newcommand\wp@legend@site{Site} +\newcommand\wp@legend@effort{Effort\if@RAM{ (RM+RAM)}\fi} +\newcommand\wp@legend@all{\textbf{all}} +\newcounter{prop@RM}\if@RAM\newcounter{prop@RAM}\fi +\ifwork@areas +\newcounter{wa@RM}\if@RAM\newcounter{wa@RAM}\fi\newcounter{wa@wps} +\newenvironment{workarea}[1][] +{\setkeys{workarea}{#1} +\let\@wps=\relax +\stepcounter{wa} +\pdata@def{wa}{\wa@id}{label}{\wa@label\thewa} +\pdata@def{wa}{\wa@id}{number}{\thewa} +\pdata@def{wa}{\wa@id}{page}{\thepage} +\update@was{\wa@id} +\pdata@def{wa}{\wa@id}{num}{\thewa} +\setcounter{wa@RM}{0}\if@RAM\setcounter{wa@RAM}{0}\fi\setcounter{wa@wps}{0} +\edef\@@wps{\pdataref@aux\wa@id{wp}{ids}} +\@for\@wp:=\@@wps\do{\stepcounter{wa@wps}% +\if@sites +\@for\@site:=\prop@gen@sites\do{% + \edef\@RM{\pdataref@num\@wp\@site{RM}} + \if@RAM\edef\@RAM{\pdataref@num\@wp\@site{RAM}}\fi + \addtocounter{wa@RM}{\@RM}\addtocounter{prop@RM}{\@RM} + \if@RAM\addtocounter{wa@RAM}{\@RAM}\addtocounter{prop@RAM}{\@RAM}\fi} +\else +\edef\@RM{\pdataref@num{wp}\@wp{RM}} +\if@RAM\edef\@RAM{\pdataref@num{wp}\@wp{RAM}}\fi +\addtocounter{wa@RM}{\@RM}\addtocounter{prop@RM}{\@RM} +\if@RAM\addtocounter{wa@RAM}{\@RAM}\addtocounter{prop@RAM}{\@RAM}\fi +\fi} +\pdata@def{wa}\wa@id{RM}\thewa@RM +\pdata@def{prop}{all}{RM}\theprop@RM +\if@RAM +\pdata@def{wa}\wa@id{RAM}\thewa@RAM +\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}}% +\ignorespaces} +{\@ifundefined{@wps}{}{\pdata@def\wa@id{wp}{ids}\@wps}\pdata@def\wa@id{wp}{count}\thewa@wps}\fi +\ifdelivs\newwrite\wpg@delivs\fi +\newenvironment{workplan}% +{\ifdelivs\immediate\openout\wpg@delivs=\jobname.delivs\fi +\ifwork@areas\let\@was=\relax\else\let\@wps=\relax\fi}% +{\@ifundefined{task@deps}{}{\pdata@def{all}{task}{deps}{\task@deps}} +\pdata@def{all}{task}{count}{\thealltasks} +\ifwork@areas +\@ifundefined{@was}{}{\pdata@def{all}{wa}{ids}\@was} +\else +\@ifundefined{@wps}{}{\pdata@def{all}{wp}{ids}\@wps} +\fi +\ifdelivs\@ifundefined{mile@stones}{} +{\@for\@I:=\mile@stones\do{% +\pdata@def{mile}\@I{delivs}{\@ifundefined{\@I delivs}{}{\csname\@I delivs\endcsname}}}}\fi +\ifwork@areas\pdata@def{all}{wa}{count}{\thewa}\fi +\pdata@def{all}{wp}{count}{\theallwp} +\ifdelivs +\pdata@def{all}{deliverables}{count}{\thedeliverable} +\pdata@def{all}{milestones}{count}{\themilestone} +\fi +\ifdelivs\closeout\wpg@delivs\fi} +\newcommand\deliv@error{\PackageError{proposal} +{To use use deliverables, you have to specify the option 'deliverables'}} +\newenvironment{wpdelivs}{\begin{wp@delivs}}{\end{wp@delivs}} +\newenvironment{wp@delivs} +{\ifdelivs\textbf\deliv@legend@delivs:\\[-3ex]% +\begin{compactdesc}\else\deliv@error\fi} +{\ifdelivs\end{compactdesc}\fi} +\newcommand\deliv@legend@delivs{Deliverables} +\newenvironment{wadelivs} +{\textbf\deliv@legend@delivs:\\[-3ex]\begin{wp@delivs}} +{\end{wp@delivs}} +\newcommand\lec[1]{\strut\hfil\strut\null\nobreak\hfill\hbox{$\leadsto$#1}\par} +\newcommand\deliv@label[1]{M{#1}} +\newcommand\delivref[2]{\pdataRef{deliv}{#1#2}{label}} +\newcommand\delivtref[2]{\pdataRef{deliv}{#1#2}{label}: \pdataRef{deliv}{#1#2}{short}} +\define@key{deliv}{id}{\def\deliv@id{#1}} +\define@key{deliv}{due}{\def\deliv@due{#1}} +\define@key{deliv}{dissem}{\def\deliv@dissem{#1}} +\define@key{deliv}{nature}{\def\deliv@nature{#1}} +\define@key{deliv}{miles}{\def\deliv@miles{#1}} +\define@key{deliv}{short}{\def\deliv@short{#1}} +\newcounter{deliverable} +\newcommand{\wpg@deliv}[3]{% keys, title, type +\stepcounter{deliverable} +\let\deliv@miles=\relax% clean state +\def\@type{#3}\def\@wp{wp}% set up ifx +\def\wpg@id{\csname #3@id\endcsname} +\setkeys{deliv}{#1}\stepcounter{deliv}% set state +\ifx\@type\@wp\def\current@label{\deliv@label{\ifwork@areas\thewa.\fi\thewp.\thedeliv}} +\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} +\@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@due}{}{% +\@for\@I:=\deliv@due\do{\protected@write\wpg@delivs{}{\string\deliverable% +{\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 +{#2} +{\ifx\@type\@wp{WP\ifwork@areas\thewa.\fi\thewp}\else{WA\thewa}\fi}}}}%WP +\item[\current@label: (Month \deliv@due; nature: \deliv@nature, dissem.: \deliv@dissem)] \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 +\m@sep\pdataRef{mile}{\@I}{label}% print the milestone reference +\let\m@sep=,}}%set the separator for the next times +\def\d@sep{,} + \@for\@I:=\deliv@miles\do{% Iterate over the milestones mentioned + \expandafter\ifx\csname\@I delivs\endcsname\relax% Check that the miles@delivs is empty + {\expandafter\xdef\csname\@I delivs\endcsname{\wpg@id\deliv@id}}% if so, skip the separator + \else\expandafter\xdef\csname\@I delivs\endcsname%if not add it + {\csname\@I delivs\endcsname\d@sep\wpg@id\deliv@id}\fi}}} +\newenvironment{wadeliv}[2][]{\ifdelivs\wpg@deliv{#1}{#2}{wa}\else\deliv@error\fi}{} +\newenvironment{wpdeliv}[2][]{\ifdelivs\wpg@deliv{#1}{#2}{wp}\else\deliv@error\fi}{} +\newcommand\milestone@label[1]{M{#1}} +\newcommand\mileref[1]{\pdataRef{mile}{#1}{label}} +\newcommand\miletref[1]{\pdataRef{mile}{#1}{label}: \pdataRef{mile}{#1}{short}} +\newcounter{milestone} +\define@key{milestone}{id}{\gdef\mile@id{#1}} +\define@key{milestone}{month}{\gdef\mile@month{#1}} +\define@key{milestone}{verif}{\gdef\mile@verif{#1}} +\newcommand\milestone[3][]{% +\ifdelivs% +\setkeys{milestone}{#1}\stepcounter{milestone}% +\pdata@def{mile}\mile@id{label}{\milestone@label{\themilestone}}% +\pdata@def{mile}\mile@id{month}{\mile@month}% +\pdata@def{mile}\mile@id{verif}{\mile@verif}% +\pdata@def{mile}\mile@id{title}{#2}% +\@ifundefined{mile@stones}{\xdef\mile@stones{\mile@id}}{\xdef\mile@stones{\mile@stones,\mile@id}}% +\@milestone{#1}{#2}{#3}% presentation +\else\deliv@error\fi} +\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} +\newenvironment{milestones}{\begin{@milestones}}{\end{@milestones}} +\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} +\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.} +\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}} +\newcommand{\deliverable}[8]{\pdataRef{deliv}{#4}{label}\\\hline}%sortkey,due,label,id,title,type,level +\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} +{\ifdelivs\end{longtable}\fi} +\newcommand\delivs@legend@name{Deliverable name} +\newcommand\delivs@legend@wp{WP} +\newcommand\delivs@legend@nature{Nature} +\newcommand\delivs@legend@level{Level} +\newcommand\delivs@legend@due{Due} +\newcommand{\inputdelivs}[1]{% +\begin{deliverables}{#1}% +\IfFileExists{\jobname.deliverables}% +{\input{\jobname.deliverables}}% +{\IfFileExists{\jobname.delivs}{\input{\jobname.delivs}}{}} +\end{deliverables}} +\newenvironment{tasklist} +{\begin{compactenum}}{\end{compactenum}} +\newcommand\task@label[1]{T#1} +\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}} +\def\task@set#1{\edef\task@id{task\thetask@all} +\def\task@wphases{0-0}\def\task@partners{}\def\task@lead{} +\setkeys{task}{#1}} +\newcounter{alltasks} +\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}% +\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} +{} +\newcommand\month@label[1]{M#1} +\newcommand\show@wphase[3]{\def\@test{#3}\month@label{#1}-\month@label{#2}% +\ifx\@test\@empty\@ #3} +\newcommand\sep@wphases{; } +\newcommand\legend@partners{Partners} +\newcommand\legend@lead{lead} +\newcommand\task@label@long{Task} +\newcounter{task@all}\newcounter{task@wp}[wp] +\newcount\task@@end +\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}{number}{\thetask@wp}% +\pdata@def{task}{\taskin\task@id\wp@id}{page}{\thepage}% +\update@tasks{\taskin\task@id\wp@id}} +\newcommand\workphase[1]{\PackageError{proposal} + {The \protect\workphase macro is deprecated,\MessageBreak + use the attributes wphase on the workpackage environment instead!}} +\newcommand\localtaskref[1]{\pdataRef{task}{\wp@id @#1}{label}} +\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}% +\pdata@def{taskdep}\dep@id{from}{\taskin{#1}\wp@id}% +\pdata@def{taskdep}\dep@id{to}{#2}% +\update@deps\dep@id} +\newcommand\prop@lead[1]{\@ifundefined{wp@#1@lead}% +{\protect\G@refundefinedtrue\@latex@warning{lead for WP #1 undefined}??}% +{\csname wp@#1@lead\endcsname}} +\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} +\newcommand\sum@style[1]{\cellcolor{wagray}{\textbf{#1}}} +\newcommand\wa@style[1]{\cellcolor{wagray}{\textbf{#1}}} +\newcommand\wp@style[1]{#1} +\newcommand\lead@style[1]{\cellcolor{leadgray}{\textit{#1}}} +\newcommand\wp@lead@style@explained{light gray italicised} +\newcounter{wpfig@options} +\define@key{wpfig}{size}{\def\wpfig@size{#1}\@dmp{size=#1}} +\def\@true{true} +\def\wpfig@pages{false} +\define@key{wpfig}{pages}[true]{\def\wpfig@pages{#1}\stepcounter{wpfig@options}} +\def\wpfig@type{false} +\define@key{wpfig}{type}[true]{\def\wpfig@type{#1}\stepcounter{wpfig@options}} +\def\wpfig@start{false} +\define@key{wpfig}{start}[true]{\def\wpfig@start{#1}\stepcounter{wpfig@options}} +\def\wpfig@length{false} +\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}} +\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\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% +\ifx\wpfig@start\@true&\@sw{\wpfig@legend@start}\fi% +\ifx\wpfig@length\@true&\@sw{\wpfig@legend@length}\fi +\ifx\wpfig@end\@true&\@sw{\wpfig@legend@end}\fi}% +\if@sites% +\@for\@site:=\prop@gen@sites\do{% +\xdef\wpfig@headline{\wpfig@headline&\@sw{\wpfig@legend@siteRM{\@site}}}% +\if@RAM\xdef\wpfig@headline{\wpfig@headline&\@sw{\wpfig@legend@siteRAM{\@site}}}\fi}% +\xdef\wpfig@headline{\wpfig@headline&\@sw{\wpfig@legend@totalRM}}% +\if@RAM\xdef\wpfig@headline{\wpfig@headline&\@sw{\wpfig@legend@totalRAM}}\fi% +\else% if@sites +\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 +\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}} +\newcommand\wpfig@legend@wap{\textbf{\ifwork@areas{WA/P}\else{WP}\fi}} +\newcommand\wpfig@legend@title{\textbf{Title}} +\newcommand\wpfig@legend@type{\textbf{type}} +\newcommand\wpfig@legend@page{\textbf{page}} +\newcommand\wpfig@legend@start{\textbf{start}} +\newcommand\wpfig@legend@length{\textbf{length}} +\newcommand\wpfig@legend@end{\textbf{end}} +\newcommand\wpfig@legend@siteRM[1]{\site{#1}\if@RAM\ RM\fi} +\newcommand\wpfig@legend@siteRAM[1]{\site{#1}\ RAM} +\newcommand\wpfig@legend@totalRM{total\if@RAM\ RM\fi} +\newcommand\wpfig@legend@totalRAM{total RAM} +\newcommand\wpfig@legend@RM{RM} +\newcommand\wpfig@legend@RAM{RAM} +\newcommand\wpfig@legend@RAM@expl{\if@RAM R(A)M $\widehat=$ Researcher (Assistant) Months\else\ Efforts in PM\fi} +\newcommand\wpfig@legend@lead@expl{WP lead efforts \wp@lead@style@explained} +\newcommand\wpfig@legend@caption{{\ifwork@areas Work Areas and \fi}Work Packages} +\def\wpfig@style{} +\newcommand\wpfigstyle[1]{\def\wpfig@style{#1}} +\newcount\local@count +\newcount\@@@RM\if@RAM\newcount\@@@RAM\fi +\newcount\all@@@RM\if@RAM\newcount\all@@@RAM\fi +\newcommand{\wpfig}[1][]{\setcounter{wpfig@options}{0}\setkeys{wpfig}{#1} +{\gdef\@wp@lines{}%initialize +\let\tabularnewline\relax\let\hline\relax\let\lead@style\relax% so they +\let\wa@style\relax\let\wp@style\relax \let\@sw\relax\let\textbf\relax% do not +\let\G@refundefinedtrue=\relax\let\@latex@warning=\relax\let\hyperlink=\relax% bother +\let\pn\relax\let\xspace\relax% us +\ifwork@areas +\edef\@@was{\pdataref@safe{all}{wa}{ids}}% +\@for\@@wa:=\@@was\do{% iterate over the work areas +\xdef\@@wa@line{\wa@style{\pdataRef{wa}\@@wa{label}}% +&\wa@style{\@ifundefined{wa@\@@wa @short}{\pdataref{wa}\@@wa{title}}{\pdataref{wa}\@@wa{short}}}% +\ifx\wpfig@type\@true&\wa@style{\pdataref{wa}\@@wa{type}}\fi% +\ifx\wpfig@pages\@true&\wa@style{\pdataref{wa}\@@wa{page}}\fi% +\ifx\wpfig@start\@true&\wa@style{\pdataref{wa}\@@wa{start}}\fi% +\ifx\wpfig@length\@true&\wa@style{\pdataref{wa}\@@wa{len}}\fi% +\ifx\wpfig@end\@true&\wa@style{\pdataref{wa}\@@wa{end}}\fi} +\if@sites +\@for\@site:=\prop@gen@sites\do{% +\edef\@@wps{\pdataref@safe\@@wa{wp}{ids}}% +\local@count 0% +\@for\@@wp:=\@@wps\do{\advance\local@count by \pdataref@num\@@wp\@site{RM}}% +\pdata@def\@@wa\@site{RM}{\the\local@count}% +\xdef\@@wa@line{\@@wa@line&\wa@style{\the\local@count}}% +\if@RAM +\local@count 0% +\@for\@@wp:=\@@wps\do{\advance\local@count by \pdataref@num\@@wp\@site{RAM}} +\pdata@def\@@wa\@site{RAM}{\the\local@count}% +\xdef\@@wa@line{\@@wa@line&\wa@style{\the\local@count}}% +\fi} +\local@count0\relax% +\@for\@site:=\prop@gen@sites\do{\global\advance\local@count by \pdataref@num\@@wa\@site{RM}}% +\xdef\@@wa@line{\@@wa@line &\wa@style{\textbf{\the\local@count}}} +\if@RAM +\local@count0\relax% +\@for\@site:=\prop@gen@sites\do{\global\advance\local@count by \pdataref@num\@@wa\@site{RAM}}% +\xdef\@@wa@line{\@@wa@line &\wa@style{\textbf{\the\local@count}}} +\fi +\else% if@sites +\edef\@@wps{\pdataref@safe{all}{wp}{ids}}% +\xdef\@@wa@line{\@@wa@line&\wa@style{\pdataref{wa}\@@wa{RM}} +\if@RAM&\wa@style{\pdataref{wa}\@@wa{RAM}}\fi}% +\fi% if@sites +\xdef\@wp@lines{\@wp@lines\@@wa@line\tabularnewline\hline}% add the line for the workarea +\edef\@@wps{\pdataref@safe\@@wa{wp}{ids}}% +\@for\@@wp:=\@@wps\do{% iterate over its work packages +\xdef\@@wp@line{\pdataRef{wp}\@@wp{label}% +&\@ifundefined{wp@\@@wp @short}{\pdataref{wp}\@@wp{title}}{\pdataref{wp}\@@wp{short}}% +\ifx\wpfig@type\@true&\pdataref{wp}\@@wp{type}\fi% +\ifx\wpfig@pages\@true&\pdataref{wp}\@@wp{page}\fi% +\ifx\wpfig@start\@true&\pdataref{wp}\@@wp{start}\fi% +\ifx\wpfig@length\@true&\pdataref{wp}\@@wp{len}\fi% +\ifx\wpfig@end\@true&\pdataref{wp}\@@wp{end}\fi} +\if@sites +\@for\@site:=\prop@gen@sites\do{% +\edef\@@lead{\pdataref@safe{wp}\@@wp{lead}} +\edef\@@RM{\ifx\@@lead\@site\lead@style{\pdataref@safe\@@wp\@site{RM}}\else\wp@style{\pdataref@safe\@@wp\@site{RM}}\fi} +\xdef\@@wp@line{\@@wp@line&\@@RM} +\if@RAM +\edef\@@RAM{\ifx\@@lead\@site\lead@style{\pdataref@safe\@@wp\@site{RAM}}\else\wp@style{\pdataref@safe\@@wp\@site{RAM}}\fi} +\xdef\@@wp@line{\@@wp@line&\@@RAM} +\fi} +\local@count0\relax% +\@for\@site:=\prop@gen@sites\do{\global\advance\local@count by \pdataref@num\@@wp\@site{RM}}% +\xdef\@@wp@line{\@@wp@line &\textbf{\the\local@count}} +\if@RAM +\global\local@count0\relax% +\@for\@site:=\prop@gen@sites\do{\global\advance\local@count by \pdataref@num\@@wp\@site{RAM}}% +\xdef\@@wp@line{\@@wp@line &\textbf{\the\local@count}} +\fi% if@sites +\else% if@sites +\xdef\@@wp@line{\@@wp@line&\wp@style{\pdataref@safe{wp}\@@wp{RM}}} +\if@RAM\xdef\@@wp@line{\@@wp@line&\wp@style{\pdataref@safe{wp}\@@wp{RAM}}}\fi +\fi% if@sites +\xdef\@wp@lines{\@wp@lines\@@wp@line\tabularnewline\hline}}} +\else% ifwork@areas +\edef\@@wps{\pdataref@safe{all}{wp}{ids}}% +\@for\@@wp:=\@@wps\do{% iterate over its work packages +\xdef\@@wp@line{\pdataRef{wp}\@@wp{label}% +&\@ifundefined{wp@\@@wp @short}{\pdataref{wp}\@@wp{title}}{\pdataref{wp}\@@wp{short}} +\ifx\wpfig@type\@true&\pdataref{wp}\@@wp{type}\fi% +\ifx\wpfig@pages\@true&\pdataref{wp}\@@wp{page}\fi% +\ifx\wpfig@start\@true&\pdataref{wp}\@@wp{start}\fi% +\ifx\wpfig@length\@true&\pdataref{wp}\@@wp{len}\fi% +\ifx\wpfig@end\@true&\pdataref{wp}\@@wp{end}\fi} +\if@sites +\@for\@site:=\prop@gen@sites\do{% +\edef\@@lead{\pdataref@safe{wp}\@@wp{lead}} +\edef\@@RM{\ifx\@@lead\@site\lead@style{\pdataref@safe\@@wp\@site{RM}}\else\wp@style{\pdataref@safe\@@wp\@site{RM}}\fi} +\xdef\@@wp@line{\@@wp@line&\@@RM} +\if@RAM +\edef\@@RAM{\ifx\@@lead\@site\lead@style{\pdataref@safe\@@wp\@site{RAM}}\else\wp@style{\pdataref@safe\@@wp\@site{RAM}}\fi} +\xdef\@@wp@line{\@@wp@line&\wp@style\@@RAM} +\fi} +\global\local@count0\relax% +\@for\@site:=\prop@gen@sites\do{\global\advance\local@count by \pdataref@num\@@wp\@site{RM}}% +\xdef\@@wp@line{\@@wp@line &\textbf{\the\local@count}} +\if@RAM +\global\local@count0\relax% +\@for\@site:=\prop@gen@sites\do{\global\advance\local@count by \pdataref@num{#1}\@site{RAM}}% +\xdef\@@wp@line{\@@wp@line &\textbf{\the\local@count}} +\fi +\else% if@sites +\xdef\@@wp@line{\@@wp@line&\wp@style{\pdataref@safe{wp}\@@wp{RM}}} +\if@RAM\xdef\@@wp@line{\@@wp@line&\wp@style{\pdataref@safe{wp}\@@wp{RAM}}\fi} +\fi% if@sites +\xdef\@wp@lines{\@wp@lines\@@wp@line\tabularnewline\hline}} +\fi%ifwork@areas +\gdef\@totals{} +\ifwork@areas +\if@sites +\@for\@site:=\prop@gen@sites\do{% iterate over the sites +\@@@RM=0\if@RAM\@@@RAM=0\fi +\edef\@@was{\pdataref@safe{all}{wa}{ids}}% +\@for\@@wa:=\@@was\do{% iterate over the work areas +\edef\@@wps{\pdataref@safe\@@wa{wp}{ids}}% +\@for\@@wp:=\@@wps\do{% iterate over the work packages +\advance\@@@RM by \pdataref@num\@@wp\@site{RM}% +\if@RAM\advance\@@@RAM by \pdataref@num\@@wp\@site{RAM}\fi}} +\pdata@def{all}\@site{RM}{\the\@@@RM}\if@RAM\pdata@def{all}\@site{RAM}{\the\@@@RAM}\fi +\advance\all@@@RM by \the\@@@RM\if@RAM\advance\all@@@RAM by \the\@@@RAM\fi +\xdef\@totals{\@totals & \textbf{\the\@@@RM}\if@RAM& \textbf{\the\@@@RAM}\fi}} +\xdef\@totals{\@totals & \textbf{\the\all@@@RM}\if@RAM&\textbf{\the\all@@@RAM}\fi} +\pdata@def{all}{total}{RM}{\the\all@@@RM}\if@RAM\pdata@def{all}{total}{RAM}{\the\all@@@RAM}\fi +\else% if@sites +\@@@RM=0\if@RAM\@@@RAM=0\fi +\edef\@@was{\pdataref@safe{all}{wa}{ids}}% +\@for\@@wa:=\@@was\do{\edef\@@wps{\pdataref@safe\@@wa{wp}{ids}}% +\@for\@@wp:=\@@wps\do{% iterate over the work packages +\advance\@@@RM by \pdataref@num{wp}\@@wp{RM}% +\if@RAM\advance\@@@RAM by \pdataref@num{wp}\@@wp{RAM}\fi}} +\pdata@def{all}{total}{RM}{\the\@@@RM}\if@RAM\pdata@def{all}{total}{RAM}{\the\@@@RAM}\fi +\xdef\@totals{&\the\@@@RM\if@RAM &\the\@@@RAM\fi} +\fi% if@sites +\else%i.e. no work@areas +\if@sites +\@for\@site:=\prop@gen@sites\do{%iterate over the sites +\@@@RM=0\if@RAM\@@@RAM=0\fi% +\edef\@@wps{\pdataref@safe{all}{wp}{ids}}% +\@for\@@wp:=\@@wps\do{% iterate over the work packages +\advance\@@@RM by \pdataref@num\@@wp\@site{RM}% +\if@RAM\advance\@@@RAM by \pdataref@num\@@wp\@site{RAM}\fi} +\pdata@def{all}\@site{RM}{\the\@@@RM}\if@RAM\pdata@def{all}\@site{RAM}{\the\@@@RAM}\fi +\xdef\@totals{\@totals & \textbf{\the\@@@RM}\if@RAM& \textbf{\the\@@@RAM}\fi} +\advance\all@@@RM by \the\@@@RM\if@RAM\advance\all@@@RAM by \the\@@@RAM\fi} +\xdef\@totals{\@totals &\textbf{\the\all@@@RM}\if@RAM&\textbf{\the\all@@@RAM}\fi} +\pdata@def{all}{total}{RM}{\the\all@@@RM}\if@RAM\pdata@def{all}{total}{RAM}{\the\all@@@RAM}\fi +\else% if@sites +\@@@RM=0\if@RAM\@@@RAM=0\fi +\edef\@@wps{\pdataref@safe{all}{wp}{ids}}% +\@for\@@wp:=\@@wps\do{% iterate over the work packages +\advance\@@@RM by \pdataref@num{wp}\@@wp{RM}% +\if@RAM\advance\@@@RAM by \pdataref@num{wp}\@@wp{RAM}\fi} +\pdata@def{all}{total}{RM}{\the\@@@RM}\if@RAM\pdata@def{all}{total}{RAM}{\the\@@@RAM}\fi +\xdef\@totals{&\the\@@@RM\if@RAM &\the\@@@RAM\fi} +\fi% if@sites +\fi +\gdef\intended@totals{} +\if@sites +\@for\@site:=\prop@gen@sites\do{ +\xdef\intended@totals{\intended@totals&\textbf{\pdataref@safe{site}\@site{intendedRM}}} +\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 +\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 +\fi}% if@sites +\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 +\end{wp@figure}} +\newcommand\prop@legend@totals{\textbf{totals}} +\newcommand\prop@legend@intendedtotals{\textbf{intended totals}} +\newif\ifgantt@draft\gantt@draftfalse +\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} +\def\gantt@set#1{\gantt@draftfalse\def\gantt@xscale{1}\def\gantt@yscale{.35}\def\gantt@step{3} +\setkeys{gantt}{#1}} +\newenvironment{gantt}[2][] +{\gantt@set{#1} +\@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}} +\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 +\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) {};} +\def\@dependency#1#2{\draw[->,line width=2pt,color=red] (#1@right) -- (#2@left);} +\newcommand\gantt@compute@effort[3]{% start, len, force + \@@e=#1\advance\@@e by #2 + \ifnum\thegantt@month<#1\else + \ifnum\thegantt@month<\@@e + \gantt@plus=#3cm\advance\gantt@effort by \gantt@plus\fi\fi} +\newcommand{\ganttchart}[1][]{\begin{figure}[ht]\centering +\gantt@set{#1} +\def\gantt@wps{\pdataref@num{all}{wp}{count}} +\begin{gantt}[#1]{\gantt@wps} + \newcounter{taskwps}\newcount\@@line + \edef\@@was{\pdataref@safe{all}{wa}{ids}} + \ifwork@areas + \@for\@@wa:=\@@was\do{% iterate over work areas + \edef\@@wps{\pdataref@safe\@@wa{wp}{ids}} + \@for\@@wp:=\@@wps\do{% iterate over work packages + \stepcounter{taskwps} + \@@line=\gantt@wps\advance\@@line by -\thetaskwps + \edef\@@tasks{\pdataref@safe\@@wp{task}{ids}} + \node at (-1/\gantt@xscale,\@@line) [above=-2pt] {\pdataRef{wp}\@@wp{label}}; + \edef\@@wphases{\pdataref@safe{wp}\@@wp{wphases}} + \@for\@@ft:=\@@wphases\do{%wp-level work phases + \decode@wphase\@@ft + \@action\@@wp\@@line\wphase@start\wphase@len\wphase@force} + \@for\@@task:=\@@tasks\do{% tasks + \edef\@@wphases{\pdataref@safe{task}\@@task{wphases}} + \@for\@@ft:=\@@wphases\do{%task-level work phases + \decode@wphase\@@ft + \@action\@@task\@@line\wphase@start\wphase@len\wphase@force}}}} + \else% ifwork@ares + \edef\@@wps{\pdataref@safe{all}{wp}{ids}} + \@for\@@wp:=\@@wps\do{% iterate over work packages + \stepcounter{taskwps} + \@@line=\gantt@wps\advance\@@line by -\thetaskwps + \edef\@@tasks{\pdataref@safe\@@wp{task}{ids}} + \node at (-1/\gantt@xscale,\@@line) [above=-2pt] {\pdataRef{wp}\@@wp{label}}; + \edef\@@wphases{\pdataref@safe{wp}\@@wp{wphases}} + \@for\@@ft:=\@@wphases\do{%iterate over the wp-level work phases + \decode@wphase\@@ft + \@action\@@wp\@@line\wphase@start\wphase@len\wphase@force} + \@for\@@task:=\@@tasks\do{% task-level work phases + \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}}} + \fi% ifwork@areas + \edef\@@deps{\pdataref@safe{all}{task}{deps}} + \@for\@@dep:=\@@deps\do{% + \@dependency{\pdataref@safe{taskdep}\@@dep{from}}{\pdataref@safe{taskdep}\@@dep{to}}} + \ifgantt@draft + \newcounter{gantt@month} + \newcount\@@e\newdimen\gantt@effort\newdimen\gantt@plus + \@whilenum\thegantt@month<\prop@gen@months\do{% step over months + \gantt@effort=0cm + \ifwork@areas + \edef\@@was{\pdataref@safe{all}{wa}{ids}} + \@for\@@wa:=\@@was\do{% iterate over work areas + \edef\@@wps{\pdataref@safe\@@wa{wp}{ids}} + \@for\@@wp:=\@@wps\do{% iterate over work packages + \edef\@@wphases{\pdataref@safe{wp}\@@wp{wphases}} + \@for\@@ft:=\@@wphases\do{%iterate over the wp-level work phases + \decode@wphase\@@ft + \gantt@compute@effort\wphase@start\wphase@len\wphase@force} + \edef\@@tasks{\pdataref@safe\@@wp{task}{ids}} + \@for\@@task:=\@@tasks\do{% iterate over tasks + \edef\@@wphases{\pdataref@safe{task}\@@task{wphases}} + \@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); + \else% ifwork@areas + \edef\@@wps{\pdataref@safe{all}{wp}{ids}} + \@for\@@wp:=\@@wps\do{% iterate over work packages + \edef\@@wphases{\pdataref@safe{wp}\@@wp{wphases}} + \@for\@@ft:=\@@wphases\do{%iterate over the wp-level work phases + \decode@wphase\@@ft + \gantt@compute@effort\wphase@start\wphase@len\wphase@force} + \edef\@@tasks{\pdataref@safe\@@wp{task}{ids}} + \@for\@@task:=\@@tasks\do{% iterate over tasks + \edef\@@wphases{\pdataref@safe{task}\@@task{wphases}} + \@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); + \fi% ifwork@areas + \stepcounter{gantt@month}} + \fi% ifgantt@draft + \end{gantt} + \caption{\gantt@caption}\label{fig:gantt} +\end{figure}} +\newcommand\gantt@caption@main{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{\gantttaskchart}[1][]{\begin{figure}[ht]\centering\gantt@set{#1} +\def\gantt@tasks{\pdataref@num{all}{task}{count}} +\begin{gantt}[#1]{\gantt@tasks} + \newcounter{gantt@tasks}\newcount\@@line + \edef\@@wps{\pdataref@safe{all}{wp}{ids}} + \@for\@@wp:=\@@wps\do{% iterate over work packages + \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}; + \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} +\end{figure}} +\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\add@joint[3]{\@ifundefined{coherence@#1@#2}% +{\@namedef{coherence@#1@#2}{#3}}% +{\expandafter\g@addto@macro\csname coherence@#1@#2\endcsname{#3}}} +\newcommand\prop@joint[2]{\@for\@first:=#2\do{% +\@for\@second:=#2\do{\ifx\@first\@second\else\add@joint\@first\@second{#1}\fi}}} +\newcommand\jointproj[1]{\prop@joint\jpro{#1}} +\newcommand\jointpub[1]{\prop@joint\jpro{#1}} +\newcommand\jointorga[1]{\prop@joint\jorga{#1}} +\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}}} +\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 +joint&\multicolumn{\the@site}{l|}{\jpub $\hat=$ publication, \jpro $\hat=$ project, + \jorga $\hat=$ organization}\\\hline +\end{tabular}} +\newcommand\coherencetable{% +\begin{table}[ht] +\begin{center}\small\setlength{\tabcolsep}{.5em} +\renewcommand{\arraystretch}{.9}\coherencematrix +\end{center} +\caption{\coherence@caption}\label{tab:collaboration} +\end{table}} +\newcommand\coherence@caption{Previous Collaboration between {\pn} members} +\defbibheading{empty}{} +\newif\if@allpapers\@allpaperstrue +\newcommand\prop@ppl[3][]{\@allpapersfalse\message{ppl processing: #2}% +\printbibliography[heading=subbibliography,type=#2,title=#3#1]% +\@ifundefined{prop@rl}{\xdef\prop@rl{#2}}{\xdef\prop@rl{\prop@rl, #2}}} +\newcommand\prop@prl[1]{\message{unclassified: #1}% +\printbibliography[heading=subbibliography,title=Unclassified,#1]}% +\define@key{paperlist}{unclassified}[true]{\message{unclass: \prop@rl}\prop@prl\prop@rl} +\define@key{paperlist}{articles}[true]{\prop@ppl{article}{Articles}} +\define@key{paperlist}{chapters}[true]{\prop@ppl{inbook}{Book Chapters}} +\define@key{paperlist}{confpapers}[true]{\prop@ppl[,keyword=conference]{inproceedings}{Conference Papers}} +\define@key{paperlist}{wspapers}[true]{\prop@ppl[,notkeyword=conference]{inproceedings}{Workshop Papers}} +\define@key{paperlist}{theses}[true]{\prop@ppl{thesis}{Theses}} +\define@key{paperlist}{submitted}[true]{\prop@ppl[,keyword=submitted]{unpublished}{Submitted}} +\define@key{paperlist}{books}[true]{\prop@ppl{book}{Monographs}} +\define@key{paperlist}{techreports}[true]{\prop@ppl{techreport}{Technical Reports}} +\newcommand\prop@paperlist[2][]{% +\begin{refsection}% +\nocite{#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]\fi% +\let\bibfont\biboldfont% +\end{refsection}} +\def\prop@warnpubs@message{Many of the proposers' publications are online at one of the following URIs:} +\def\prop@warnpubs@title{References} +\defbibheading{warnpubs}{\section*{\prop@warnpubs@title}% + \@ifundefined{prop@gen@pubspages} + {\@latex@warning{No publication pages specified; + use the pubspage key in the proposal environment!}} + {\prop@warnpubs@message% + \@for\@I:=\prop@gen@pubspages\do{\par\noindent\csname\@I\endcsname}}} +\defbibheading{empty}{} +\endinput +%% +%% End of file `proposal.cls'. diff --git a/base/proposal.dtx b/base/proposal.dtx new file mode 100644 index 0000000..f12baf5 --- /dev/null +++ b/base/proposal.dtx @@ -0,0 +1,2374 @@ +% \iffalse meta-comment +% A class for preparing general proposals, to be instantiated for particular donors +% +% Copyright (c) 2011 Michael Kohlhase, all rights reserved +% +% This file 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 development version of this file can be found at +% $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/base/proposal.dtx $ +% \fi +% +% \iffalse +%\NeedsTeXFormat{LaTeX2e}[1999/12/01] +%\ProvidesClass{proposal}[2013/02/19 v1.4 Project Proposal] +%\ProvidesPackage{pdata}[2013/02/19 v1.4 Project Data] +%\ProvidesPackage{reporting}[2013/02/19 v1.4 Project Reporting] +%<*driver> +\documentclass{ltxdoc} +\DoNotIndex{\def,\long,\edef,\xdef,\gdef,\let,\global} +\DoNotIndex{\begin,\AtEndDocument,\newcommand,\newcounter,\stepcounter} +\DoNotIndex{\immediate,\openout,\closeout,\message,\typeout} +\DoNotIndex{\section,\scshape,\arabic} +\EnableCrossrefs +%\CodelineIndex +%\OnlyDescription +\RecordChanges +\usepackage{textcomp,url,paralist,a4wide,xspace} +\usepackage[show]{ed} +\usepackage[eso-foot,today,draft]{svninfo} +\usepackage[maxbibnames=6,hyperref=auto,style=alphabetic,backend=bibtex]{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} +\begin{document} +\svnInfo $Id: proposal.dtx 24314 2013-03-24 14:39:33Z kohlhase $ +\svnKeyword $URL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/base/proposal.dtx $ +\DocInput{proposal.dtx} +\end{document} +% +% \fi +% +%\iffalse\CheckSum{3723}\fi +% +% \changes{v0.4}{2009/05/12}{copied over from eustrep.dtx} +% \changes{v0.5}{2009/05/27}{added gantt charts} +% \changes{v0.6}{2009/06/27}{added task referencing system} +% \changes{v0.7}{2010/09/22}{added final report infrastructure} +% \changes{v0.7}{2010/10/29}{added noRAM option} +% \changes{v0.7}{2010/11/01}{added paper list infrastructure} +% \changes{v1.0}{2010/11/03}{this works well, releasing to CTAN} +% \changes{v1.1}{2010/12/16}{deprecating workphase in favor of attributes} +% \changes{v1.1}{2011/01/05}{separating out pdata.sty for data handling and referencing} +% \changes{v1.2}{2011/03/18}{separating out dfgproposal.dtx} +% \changes{v1.2}{2011/03/19}{adding deliverables} +% \changes{v1.3}{2011/05/03}{adding general report handling} +% \changes{v1.4}{2012/01/15}{better metadata handling for task-level work +% phases and partners, using \texttt{wphases} instead of \texttt{start} and +% lists of sites} +% \changes{v1.4}{2012/01/18}{changing the argument structure of {\textbackslash joint*} to +% \texttt{len} in work packages and tasks} +% \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} +% +% \GetFileInfo{proposal.cls} +% +% \MakeShortVerb{\|} +% \title{Preparing Proposals in {\LaTeX} with \texttt{proposal.cls}} +% \author{Michael Kohlhase\\ +% Computer Science, Jacobs University Bremen\\ +% \url{http://kwarc.info/kohlhase}} +% \maketitle +% +% \begin{abstract} +% The |proposal| class supports many of the generic elements of Grant Proposals. It is +% optimized towards collaborative projects, and should specialized to particular funding +% agencies. +% \end{abstract} +% +% \tableofcontents\newpage +% +% \section{Introduction}\label{sec:intro} +% +% 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. +% +% 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|. +% +% \section{The User Interface}\label{sec:user-interface} +% +% In this section we will describe the functionality offered by the |proposal| class +% along the lines of the macros and environments the class provides. +% +% \subsection{Package Options}\label{sec:user:options} +% +% The |proposal| package takes the options |submit|, |noworkareas|, |public|, and +% |keys|. +% +% The \DescribeMacro{submit}|submit| option will disable various proposal management decorations +% which are enabled by default for submission. +% +% The \DescribeMacro{noworkareas}|noworkareas| option specifies that we do not want to structure +% our work plan into work areas (see section~\ref{sec:user:wpwa}). +% +% The \DescribeMacro{RAM}|RAM| option specifies that we specify research assistant months +% in the effort tallies (see section~\ref{sec:user:wpwa}). +% +% The \DescribeMacro{deliverables}|deliverables| option specifies that we specify +% deliverables in the grant proposal (see section~\ref{sec:user:deliverables}). As the +% deliverables management needs extra support, we only activate them via this option. +% +% The \DescribeMacro{wpsubsection}|wpsubsection| option specifies that we want to see +% subsections headings for the WPs (and WAs, if we have them). +% +% 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 +% the document between |\begin{private}| and |\end{private}| do not produce output. This +% is useful for producing public versions of the proposal that hide confidential +% parts. Note that both |\begin{private}| and |\end{private}| {\emph{have to be on lines +% of their own may not have any leading whitespace}} otherwise an error occurs and +% {\LaTeX} gives error messages that are difficult to comprehend. An alternative way to +% distinguish private and public sections are to use the +% \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| +% environment, which also generates the title page and the first section of the proposal +% as well as the last pages of the proposal with the signatures, enclosures, and +% references. The |proposal| environment should contain all the mandatory parts of the +% proposal text. The |proposal| environment uses the following keys to specify metadata. +% \begin{compactitem} +% \item \DescribeMacro{title}|title| for the proposal title (used on the title page), +% \item \DescribeMacro{instrument}|instrument| for the instrument of funding +% that you would like to apply for, +% \item \DescribeMacro{acronym}|acronym| for the proposal acronym, possibly accompanied +% by an \DescribeMacro{acrolong}|acrolong| that explains it. The acronym will also be used in +% the page headings. +% \item \DescribeMacro{start}|start| for the start date of the proposed fragment of the +% project, and \DescribeMacro{months}|months| for the length of the proposal in +% months. Both have to be specified for the |proposal| class to work. +% \item If the proposal only concerns a part of a longer-running project, the +% \DescribeMacro{since}|since| key allows to specify the date since when the overall +% project runs. Finally, the \DescribeMacro{fundsuntil}|fundsuntil| allows to specify a +% date until which the funds last. +% \item \DescribeMacro{discipline}|discipline| for the academic discipline and |areas| for +% the research areas in that discipline. +% \item \DescribeMacro{PI}|PI| to declare the principal investigator. For collaborative +% proposals we can use the |PI| key multiple times. The |proposal| package uses the +% |workaddress| package for representation of personal metadata, +% see~\cite{Kohlhase:workaddress:ctan} or the file |proposal.tex| for details. +% \item Many collaborative proposals are shared between two institutions, which we can +% declare with the \DescribeMacro{site}|site| key. As this changes the interface this +% should not be used for single-institution proposals. We will describe the setup for a +% single-site proposal below and point out the differences. The example |proposal.tex| +% is a two-site proposal. +% \end{compactitem} +% If the |acronym| and |acrolong| are given, then they automatically define the macros +% \DescribeMacro{\pn}|\pn| and \DescribeMacro{\pnlong}|\pnlong| which allow to use the +% project acronym (\underline{p}roject \underline{n}name) and its long version in the +% text. Note that these macros use |\xspace| internallly, so they do not have to be +% enclosed in curly braces. +% +% \subsection{Proposal Appearance}\label{sec:user:appearance} +% +% The |proposal| environment takes a second set of keyval arguments that allow to +% fine-tune the appearance of the proposal document. \ednote{move the RAM, +% wpsectionheadings,... options here.} +% \begin{compactitem} +% \item If the \DescribeMacro{compactht}|compactht| key is given (it does not need a +% value), then the header tables\ednote{describe them somewhere and reference here} are +% made compact, i.e. the sites that do not have a contribution to the work package or work +% area do not get listed. This is useful for proposals with more than 8 partners. +% \end{compactitem} +% +% The |proposal| package supplies the \DescribeEnv{emphbox}|emphbox| environment to create +% boxes of emphasized material we want to call attention to. +% +% \subsection{Objectives}\label{sec:user:objectives} +% +% The work plan starts with a discussion of objectives, which may be referenced in the +% text later. The |proposal| package provides the \DescribeEnv{objective}|objective| +% environment that allows to mark up individual objectives. It takes a keyval argument +% with the keys |id| for identification, |title| for the objective title, and |short| for +% a short title that can be used for referencing when the title is too long. The +% objectives can be referenced via \DescribeMacro{\OBJref}|\OJBref{|\meta{id}|}| by their +% label and via \DescribeMacro{\OBJtref}|\OJBtref{|\meta{id}|}| by label and (short if it +% was specified) title. +% +% \subsection{Work Areas and Work Packages}\label{sec:user:wpwa} +% +% Grant proposals have another part that is often highly stylized; the work plan. This is +% usually structured into ``work packages'' --- i.e. work items that address a cohesive +% aspect of the proposed work. These work packages are usually consecutively numbered, +% have a title, and an associated effort estimation. As work packages are the ``atomic'' +% planning units, they are usually heavily cross-referenced. A well-written proposal +% usually contains a table giving an overview over the work packages and their efforts and +% a Gantt chart showing the temporal distribution of the proposed work to allow the +% reviewers to get a clear picture of the feasibility of the research and development +% proposed. But this picture is also essential during the development of a proposal (which +% the |proposal| package aims to support), when the work packages (and their estimated +% efforts) usually change considerably. Therefore the |proposal| class standardizes +% markup for work packages and automatically computes the work package table (which can be +% inserted into the table via the \DescribeMacro{\wpfig}|\wpfig| macro) and the Gantt +% 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 +% bookeeping macros. It contains texts and |workpackage| environments for the work +% packages. +% +% The purpose of the \DescribeEnv{workpackage}|workpackage| environment is to mark up a +% fragment of text as a work package description and specify the metadata so that it can +% be used in the work package table and Gantt chart generation. The metadata is specified +% by the following keys: +% \begin{compactitem} +% \item The \DescribeMacro{id}|id| key is used to specify a label for cross-referencing the +% work package or work group, it must be document-unique. +% \item The \DescribeMacro{title}|title| and \DescribeMacro{short}|short| keys are used +% for the work package/group title. The short title is used in tables and should not be +% longer than 15 characters. +% \item The \DescribeMacro{wphases}|wphases| key is used according to +% Section~\ref{sec:user:workphase} +% \item The \DescribeMacro{requires}|requires| key can be used to mark, up dependencies +% between tasks. If |requires=\taskin{|\meta{rid}|}{|\meta{wp}|}| is given in a task +% with |id=|\meta{t}, then task \meta{rid} in work package \meta{wp} must be completed +% for task \meta{t} to become possible. This key will draw an arrow into the gantt chart +% from the end of task \meta{rid} to \meta{t}. Note that dependencies should always +% point forward in time. Furthermore, note that the fact that dependencies always go +% from the end of the source to the beginning of the target work phase is intentional, +% if this does not meet your needs, then you should probably break a work phase into +% pieces that can be addressed separately. +% \item In single-site proposals, the \DescribeMacro{RM}|RM| (and \DescribeMacro{RAM}|RAM| +% if the |RAM| option was given) keys are used to specify the estimated efforts to be +% expended on research and development in this work package. Both are specified in +% person months. |RM| is used for ``researcher months'' (wissenschaftlicher Mitarbeiter) +% and |RAM| for ``research assistant months'' (wissenschaftliche Hilfskraft). +% \item In multi-site proposals, the |proposal| package generates the keys +% \DescribeMacro{*RM}\meta{site}|RM| (and \DescribeMacro{*RAM}\meta{site}|RAM|) where +% \meta{site} is any site label declared via the |site| key in the top-level |proposal| +% environment. This can be used to specify the person months that the site spends on +% this work package (the value for work groups is automatically computed (remember to +% run {\LaTeX} twice for this)). +% \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. +% \end{compactitem} +% +% It is often useful to group the work packages in a proposal further (especially for +% larger, collaborative proposals). This can be done via the +% \DescribeEnv{workarea}|workarea| environment, which groups work packages. This +% environment takes the same keys as the |workpackage| environment, except for the +% efforts, which can be computed automatically from the work packages it groups. +% +% As the author of the |proposal| class likes more structured proposals, using work +% areas is the default, but the |proposal| class can also be used with the +% |noworkareas| option for less structured (smaller) proposals. +% +% \subsection{Tasks}\label{sec:user:task} +% +% 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}). +% +% 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 +% work areas, there is a long reference variant with work package title: +% \DescribeMacro{\tasktref}|\tasktref|. Finally, +% \DescribeMacro{\localtaskref}|\localtaskref| references a task in the local work package +% by the identifier in its argument. +% +% \subsection{Work Phase Metadata}\label{sec:user:workphase} +% +% The |task| and |workpackage| allow the \DescribeMacro{wphases}|wphases| key to specify +% the a list of work phases. The value of this key is comma-separated list of work phase +% specifications of the form \meta{start}|-|\meta{end} or +% \meta{start}|-|\meta{end}|!|\meta{force}, where \meta{start} and \meta{end} delimit the +% run time of the work phase and the optional |!|\meta{force} specifies the work force, +% i.e. the intensity of work as a number between 0 and 1. If no force is given, the +% default is 1. The main reason for specifying this metadata for tasks is to generate a +% Gantt chart (see Section~\ref{sec:user:gantt}). +% +% \subsection{Gantt Charts}\label{sec:user:gantt} +% +% Gantt charts are used in proposals to show the distribution of activities in work +% packages over time. A gantt chart is represented by the \DescribeEnv{gantt}|gantt| +% environment that takes a on optional keyval argument. The keys +% \DescribeMacro{xscale}|xscale| and \DescribeMacro{yscale}|yscale| are used to specify a +% scale factors for the chart so that it fits on the page. The \DescribeMacro{step}|step| +% key allows to specify the steps (in months) of the vertical auxiliary lines. Finally, +% the \DescribeMacro{draft}|draft| key specifies that plausibility checks (that can be +% 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 +% \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. +% +% \subsection{Milestones and Deliverables}\label{sec:user:deliverables} +% +% Many proposal formats foresee that project progress will be tracked in the form of +% \emph{milestones} -- points in the project, where a predefined state of affairs is +% reached -- and \emph{deliverables} -- tangible project outcomes that have to be +% delivered. Correspondingly, milestones and deliverables have to be specified in the +% proposal and accounted for in the project reports. To facilitate this the |proposal| +% class and its instances provide a simple infrastructure for dealing with milestones and +% deliverables. +% +% Milestones are usually given in a special table\footnote{this is the default provided by +% the base |proposal| class, it can be specialized for proposal class instances by +% redefining the |@milestones| environment and correspondingly the |\@milestone| macro.}, +% which we markup up with the \DescribeMacro{milestones}|milestones| environment that +% takes care of initialization and numbering issues. This contains a list of milestone +% 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 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 deliverable descriptions. These are +% marked up via the \DescribeMacro{wpdeliv} environment which takes an optional keyval +% 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 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 +% \DescribeMacro{\deliv@label}|\deliv@label| and referenced by +% \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). +% +% 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 +% be generated with the \DescribeMacro{\inputdelivs}|\inputdelivs| macro. This works index +% generation in {\LaTeX}. The |wpdeliv| environment writes the deliverable data to a file +% \meta{main}|.delivs|, which can be processed externally (usually just sorting with +% |sort| in Unix is sufficient) into \meta{main}|.deliverables|, which is then input via +% the |\inputdelivs| macro. +% +% In some proposals, also work areas can have deliverables, then the above hold +% analogously for \DescribeMacro{wadelivs}|wpdelivs| and \DescribeMacro{wadeliv}|wadeliv| +% environments. +% +% Note that handling deliverables adds considerable overhead to proposal formatting and +% adds auxiliary files, so they are only activated if the |deliverables| option is given +% (see Section~\ref{sec:user:options}). +% +% \subsection{Referencing and Hyperlinking}\label{sec:user:hyperlinking} +% +% The |proposal| package extends the hyperlinking provided by the |hyperref| package it +% 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. +% +% 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). +% +% 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. +% +% The \DescribeMacro{\pdataRef}|\pdataRef| macro is a variant of |\pdataref| that also carries 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 +% by |\pdatacount{all}{wp}|, similarly for work areas (if they are enabled), and finally, +% |\pdatacount{|\meta{wa}|}{wp}| gives the number of work packages for a work area +% \meta{wa}. This is very useful for talking about work plans in a general way. Other +% objects that can be counted are deliverables (|\pdatacount{all}{deliverables}|) and +% milestones (|\pdatacount{all}{milestones}|). +% +% Note that since the referencable information is written into the project data file +% \meta{proposal}|.pdata| file, it is available for forward references. However, it will +% only become available when the project data file is read, so the proposal has to be +% formatted twice for references to be correct. +% +% Finally, the |proposal| package supplies specialized reference macros for work packages +% and areas. The \DescribeMacro{\WPref}|\WPref| macro takes a work package identifier as +% an argument and makes a reference: |\WPref{|\meta{id}|}| abbreviates +% |\pdataRef{wp}{|\meta{id}|}{label}|. The \DescribeMacro{\WPtref}|\WPtref| macro is +% similar, but also prints out the (short) title: |\WPref{|\meta{id}|}| abbreviates +% |\pdataRef{wp}{|\meta{id}|}{label}: \pdataRef{wp}{|\meta{id}|}{title}|. Unless the +% |noworkareas| macro is set, we also have the variants \DescribeMacro{\WAref}|\WAref| and +% \DescribeMacro{\WAtref}|\WAtref| for work areas. +% +% \subsection{Coherence}\label{sec:user:coherence} +% +% 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 +% 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|. +% +% \subsection{Localization}\label{sec:use:localization} +% +% The |proposal| class offers some basic support for localization. This is still partial +% though, and I am not sure that this is the best way of setting things up. What I do is +% to define macros for all generated texts that can be redefined in the proposal classes +% that build in |proposal|. For instance the |dfgproposal| class~\cite{Kohlhase:pdrp:ctan} +% provides an option |german| for german-language proposals and project reports that +% triggers a redefinition of all of these macros at read time. +% +% \section{Limitations and Enhancements}\label{sec:limitations} +% +% The |proposal| is relatively early in its development, and many enhancements are +% conceivable. We will list them here. +% \begin{enumerate} +% \item macros cannot be used in work package and work area titles. They really mess up our +% |\wpfig| automation. The problem is that they are evaluated too early, and our trick +% with making them undefined while collecting the parts of the table-rows only works if +% we know which macros we may expect. We might specify all ``allowable'' macros in an +% optional key |protectmacro|, which is defined via\vspace*{-.7em} +% \begin{verbatim} +% \define@key{wpfig}{protectmacro}{\epandafter\let\csname #1\endcsname=\relax} +% \end{verbatim} +% \vspace*{-2em} But I am not sure that this will work. +% \item It would be great, if in the Gantt Charts, we could include some plausibility +% checks (for draft = not |submit| mode). I can see two at the moment: +% \begin{itemize} +% \item calculating the effort (i.e. the weight of the black area) and visualizing +% it. Then we could check whether that is larger than the effort declared for the work +% package. +% \item calculating (and visualizing) the monthly effort. That should be kind of even +% (or it has to be explained in the positions requested). +% \end{itemize} +% \item we currently do not have a way to relate |PI|s to |site|s, but we do not really +% need to. +% \end{enumerate} +% If you have other enhancements to propose or feel you can alleviate some limitation, +% please feel free to contact the author. +% +% \section*{Acknowledgements} +% +% The author is indebted to Christoph Lange, Florian Rabe, and Tsanko Tsankov for +% error reports, feature suggestions, and code snippets. +% +% \StopEventually{\newpage\PrintIndex\newpage\PrintChanges\newpage\printbibliography}\newpage +% +% \section{The Implementation}\label{sec:implementation} +% +% In this section we describe the implementation of the functionality of the |proposal| package. +% +% \subsection{Package Options and Format Initialization}\label{sec:impl:options} +% +% We first set up the options for the package. +% +% \begin{macrocode} +%<*cls|reporting> +\newif\if@wpsubsection\@wpsubsectionfalse +\newif\ifsubmit\submitfalse +\newif\ifpublic\publicfalse +\newif\ifkeys\keysfalse +\newif\ifdelivs\delivsfalse +\newif\ifwork@areas\work@areastrue +\newif\if@RAM\@RAMfalse +\def\proposal@class{article} +\DeclareOption{wpsubsection}{\@wpsubsectiontrue} +\DeclareOption{submit}{\submittrue} +\DeclareOption{public}{\publictrue} +\DeclareOption{noworkareas}{\work@areasfalse\PassOptionsToClass{\CurrentOption}{pdata}} +\DeclareOption{RAM}{\@RAMtrue} +\DeclareOption{report}{\def\proposal@class{report}} +\DeclareOption{keys}{\keystrue} +\DeclareOption{deliverables}{\delivstrue} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions +% \end{macrocode} +% +% Then we load the packages we make use of +% +% \begin{macrocode} +\LoadClass[a4paper,twoside]{\proposal@class} +\RequirePackage{amssymb} +\RequirePackage{url} +\RequirePackage{graphicx} +\RequirePackage{colortbl} +\RequirePackage{xcolor} +\RequirePackage{rotating} +\RequirePackage{fancyhdr} +\RequirePackage{array} +\RequirePackage{xspace} +\RequirePackage{comment} +\AtBeginDocument{\ifpublic\excludecomment{private}\fi} +\RequirePackage{tikz} +\RequirePackage{paralist} +\RequirePackage{a4wide} +\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,backref=true,firstinits=true,maxbibnames=6]{biblatex}[2010/11-19] +\RequirePackage{csquotes} +\RequirePackage{mdframed} +\RequirePackage{pdata} +% \end{macrocode} +% in submit mode, we make the links a bit darker, so they print better. +% \begin{macrocode} +\definecolor{darkblue}{rgb}{0,0,.7} +\ifsubmit\def\prop@link@color{darkblue}\else\def\prop@link@color{blue}\fi +\RequirePackage[bookmarks=true,linkcolor=\prop@link@color, + citecolor=\prop@link@color,urlcolor=\prop@link@color,colorlinks=true, + breaklinks=true, bookmarksopen=true]{hyperref} +% \end{macrocode} +% +% 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. +% +% \begin{macrocode} +\ifsubmit +\RequirePackage[hide]{ed} +\RequirePackage[final,today]{svninfo} +\else +\RequirePackage[show]{ed} +\RequirePackage[eso-foot,today]{svninfo} +\fi +\renewcommand\ednoteshape{\sl\footnotesize} +% \end{macrocode} +% +% \begin{environment}{private} +% We configure the |comment| package, so that it provides the |private| environment +% depending on the status of the |public| option. +% \begin{macrocode} +\ifpublic\excludecomment{private}\else\includecomment{private}\fi +% \end{macrocode} +% \end{environment} +% +% And we set up the appearance of the proposal. We want numbered subsubsections. +% \begin{macrocode} +\setcounter{secnumdepth}{3} +% \end{macrocode} +% We specify the page headings. +% \begin{macrocode} +\newif\ifofpage\ofpagefalse +\fancyhead[RE,LO]{\prop@gen@acronym} +\newcommand\prop@of@pages[2]{page~#1\ifofpage~of~#2\fi} +\fancyhead[LE,RO]{\prop@of@pages\thepage{\pdataref@num{prop}{page}{last}}} +\pagestyle{fancyplain} +% +% \end{macrocode} +% +% \subsection{Proposal Metadata}\label{sec:impl:metadata} +% +% Most of the metadata functionality is encapsulated into the \DescribeMacro{pdata}|pdata| +% package, which is shared by the proposal and report classes. |pdata.sty| first loads the +% |workaddress| package from sTeX and supplies the Euro symbol. +% \begin{macrocode} +%<*pdata> +\RequirePackage{workaddress}[2011/05/03] +\RequirePackage{eurosym} +% \end{macrocode} +% We define the keys for metadata declarations in the |proposal| environment, they park +% their argument in an internal macro for use in the title page. The |site| key is the +% most complicated, so we take care of it first: We need a switch |\if@sites| that is set +% to true when the |site| key is used. Furthermore |site=|\meta{site} makes new keys +% \meta{site}|RM| and \meta{site}|RAM| (if the |RAM| option was set) for the +% |workpackage| environment and records the sites in the |\prop@gen@sites| token register. +% \begin{macrocode} +\newif\if@sites\@sitesfalse\let\prop@gen@sites=\relax% +\newcounter{@site}% +\define@key{prop@gen}{site}{\@sitestrue\@dmp{site=#1}% +\stepcounter{@site}\pdata@def{site}{#1}{number}{\the@site}% +\@ifundefined{prop@gen@sites}{\xdef\prop@gen@sites{#1}}{\xdef\prop@gen@sites{\prop@gen@sites,#1}}% +\define@key{prop@gen}{#1RM}{\pdata@def{site}{#1}{intendedRM}{##1}}% +\if@RAM\define@key{prop@gen}{#1RAM}{\pdata@def{site}{#1}{intendedRAM}{##1}}\fi +\define@key{workpackage}{#1RM}{\pdata@def\wp@id{#1}{RM}{##1}}% +\if@RAM\define@key{workpackage}{#1RAM}{\pdata@def\wp@id{#1}{RAM}{##1}}\fi +\define@key{prop@gen}{#1employed}{{\let\tabularnewline\relax\let\hline\relax\let\wa@ref\relax% +\@ifundefined{prop@gen@employed@lines}% +{\xdef\prop@gen@employed@lines{\wa@ref{institution}{#1}{shortname} & ##1\tabularnewline\hline}}% +{\xdef\prop@gen@employed@lines{\prop@gen@employed@lines \wa@ref{institution}{#1}{shortname} & ##1\tabularnewline\hline}}}}} +% \end{macrocode} +% If there are no sites, then we have to define keys |RM| and |RAM| that store the +% intended research (assistant months). Unfortunately, we cannot just include this in the +% |\if@sites| conditional here, since that is only set at runtime. +% \begin{macrocode} +\define@key{prop@gen}{RM}{\@dmp{RM=#1}\if@sites% +\PackageWarning{Do not use the RM key in the presence of sites}\else% +\pdata@def{all}{intended}{RM}{#1}\fi} +\define@key{prop@gen}{RAM}{\@dmp{RAM=#1}\if@sites% +\PackageWarning{Do not use the RAM key in the presence of sites}\else% +\pdata@def{all}{intended}{RAM}{#1}\fi} +% \end{macrocode} +% similarly, the |PI| keys are registered in |\prop@gen@PIs|. +% \begin{macrocode} +\define@key{prop@gen}{PI}{\@dmp{PI=#1}% +\@ifundefined{prop@gen@PIs}{\xdef\prop@gen@PIs{#1}}{\xdef\prop@gen@PIs{\prop@gen@PIs,#1}}} +% \end{macrocode} +% and the |pubspage| keys in |\prop@gen@pubspages|. +% \begin{macrocode} +\define@key{prop@gen}{pubspage}{\@ifundefined{prop@gen@pubspages}% +{\xdef\prop@gen@pubspages{#1}}{\xdef\prop@gen@pubspages{\prop@gen@pubspages,#1}}} +% \end{macrocode} +% the |importfrom| key reads the proposal data from its argument. +% \begin{macrocode} +\define@key{prop@gen}{importfrom}{\message{importing proposal data from #1.pdata}\readpdata{#1}} +% \end{macrocode} +% The rest of the keys just store their value. +% \begin{macrocode} +\define@key{prop@gen}{instrument}{\def\prop@gen@instrument{#1}% +\pdata@def{prop}{gen}{instrument}{#1}\@dmp{inst=#1}} +\define@key{prop@gen}{title}{\def\prop@gen@title{#1}% +\pdata@def{prop}{gen}{title}{#1}} +\define@key{prop@gen}{acronym}{\gdef\prop@gen@acronym{#1}% +\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}{discipline}{\def\prop@gen@discipline{#1}% +\pdata@def{prop}{gen}{discipline}{#1}} +\define@key{prop@gen}{areas}{\def\prop@gen@areas{#1}% +\pdata@def{prop}{gen}{areas}{#1}} +\define@key{prop@gen}{start}{\def\prop@gen@start{#1}% +\pdata@def{prop}{gen}{start}{#1}} +\define@key{prop@gen}{months}{\def\prop@gen@months{#1}% +\pdata@def{prop}{gen}{months}{#1}} +\define@key{prop@gen}{since}{\def\prop@gen@since{#1}% +\pdata@def{prop}{gen}{since}{#1}} +\define@key{prop@gen}{totalduration}{\def\prop@gen@totalduration{#1}% +\pdata@def{prop}{gen}{totalduration}{#1}} +\define@key{prop@gen}{fundsuntil}{\def\prop@gen@fundsuntil{#1}% +\pdata@def{prop}{gen}{fundsuntil}{#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 ???} +% \end{macrocode} +% +% \begin{macro}{\prop@tl} +% An auxiliary macro that is handy for making tables of WorkAddress data. +% \begin{macrocode} +\newcommand\prop@tl[2]{\xdef\tab@line{} +\@for\tl@ext:={#1}\do{\xdef\tab@line{\tab@line}} +\tab@line} +% \end{macrocode} +% \end{macro} +% +% \subsection{Proposal Appearance}\label{sec:impl:appearance} +% +% We define the keys for the proposal appearance +% \begin{macrocode} +\def\prop@gen@compactht{false} +\define@key{prop@gen}{compactht}[true]{\def\prop@gen@compactht{#1}} +% +% \end{macrocode} +% +% \begin{environment}{emphbox} +% \begin{macrocode} +%<*cls> +\newmdenv[settings=\large]{emphbox} +% \end{macrocode} +% \end{environment} +% +% \subsection{Title Page}\label{sec:impl:metadata} +% +% \begin{environment}{prop@proposal} +% This internal environment is called in the |proposal| environment from the |proposal| +% class. The implementation here is only a stub to be substituted in a specialized +% class. +% \begin{macrocode} +\newenvironment{prop@proposal} +{\thispagestyle{empty}% +\begin{center} + {\LARGE \prop@gen@instrument}\\[.2cm] + {\LARGE\textbf{\prop@gen@title}}\\[.3cm] + {\LARGE Acronym: {\prop@gen@acronym}}\\[.2cm] + {\large\today}\\[1em] + \begin{tabular}{c*{\the@PIs}{c}} + \prop@tl\prop@gen@PIs{\wa@ref{person}\tl@ext{name}}\\ + \prop@tl\prop@gen@PIs{\wa@ref{institution}{\wa@ref{person}\tl@ext{affiliation}}{name}} + \end{tabular}\\[2cm] +\end{center} +\setcounter{tocdepth}{2}\tableofcontents\newpage\setcounter{page}{1}} +% \end{macrocode} +% Now we come to the end of the environment: +% \begin{macrocode} +{\section{List of Attachments} +\begin{itemize} +\@for\@I:=\prop@gen@PIs\do{% +\item Curriculum Vitae and list of publications for + \wa@ref{person}\@I{personaltitle} \wa@ref{person}\@I{name} +\end{itemize}}\newpage +\printbibliography[heading=warnpubs]} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{proposal} +% The |proposal| environment reads the metdata 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. +% +% The environment calls an internal version of the environment |prop@proposal| that can +% be customized by the specializing classes. +% \begin{macrocode} +\newenvironment{proposal}[1][]{\readpdata\jobname +\ofpagetrue\setkeys{prop@gen}{#1} +\pdata@open\jobname +\if@sites\else +\define@key{workpackage}{RM}{\pdata@def{wp}\wp@id{RM}{##1}\@dmp{RM=##1}} +\if@RAM\define@key{workpackage}{RAM}{\pdata@def{wp}\wp@id{RAM}{##1}\@dmp{RAM=##1}}\fi +\fi +\newcounter{@PIs} +\@ifundefined{prop@gen@PIs}{}{\@for\@I:=\prop@gen@PIs\do{\stepcounter{@PIs}}} +\newcounter{@sites} +\@ifundefined{prop@gen@sites}{}{\@for\@I:=\prop@gen@sites\do{\stepcounter{@sites}}} +\setcounter{page}{0} +\begin{prop@proposal}} +% \end{macrocode} +% Now we come to the end of the environment, we take care of the last page and print the +% references. +% \begin{macrocode} +{\end{prop@proposal} +\pdata@def{prop}{page}{last}{\thepage}\ofpagefalse +\pdata@close} +% +% \end{macrocode} +% \end{environment} +% +% The |report| environment is similar, but somewhat simpler +% +% \begin{environment}{report} +% \begin{macrocode} +%<*reporting> +\newif\if@report\@reportfalse +\newenvironment{report}[1][]% +{\@reporttrue\readpdata\jobname% +\ofpagetrue\setkeys{prop@gen}{#1}% +\pdata@open\jobname% +\@ifundefined{prop@gen@PIs}{}{\newcounter{@PIs}\@for\@I:=\prop@gen@PIs\do{\stepcounter{@PIs}}}% +\@ifundefined{prop@gen@sites}{}{\newcounter{@sites}\@for\@I:=\prop@gen@sites\do{\stepcounter{@sites}}}% +\setcounter{page}{0}% +\begin{prop@report}} +{\end{prop@report}% +\pdata@def{prop}{page}{last}{\thepage}\ofpagefalse\newpage +\printbibliography[heading=warnpubs] +\pdata@close} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{prop@report} +% \begin{macrocode} +\newenvironment{prop@report} +{\begin{center} + {\LARGE Final Project Report}\\[.2cm] + {\LARGE\textbf{\prop@gen@title}}\\[.3cm] + {\LARGE Acronym: {\prop@gen@acronym}}\\[.2cm] + {\large\today}\\[1em] + \begin{tabular}{c*{\the@PIs}{c}} + \prop@tl\prop@gen@PIs{\wa@ref{person}\tl@ext{name}}\\ + \prop@tl\prop@gen@PIs{\wa@ref{institution}{\wa@ref{person}\tl@ext{affiliation}}{name}} + \end{tabular}\\[2cm] +\end{center} +\setcounter{tocdepth}{2}\tableofcontents\newpage\setcounter{page}{1}} +{} +% +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\site*} +% \begin{macrocode} +%<*cls> +\newcommand\site[1]{\hyperlink{site@#1@target}{\wa@ref{institution}{#1}{acronym}}} +\newcommand\sitename[1]{\hyperlink{site@#1@target}{\wa@ref{institution}{#1}{name}}} +% \end{macrocode} +% \end{macro} +% +% \subsection{Objectives}\label{sec:impl:objectives} +% +% We first define a presentation macro for objectives +% \begin{macro}{\objective@label} +% \begin{macrocode} +\newcommand\objective@label[1]{O#1} +% \end{macrocode} +% \end{macro} +% We define the keys for the objectives environment +% \begin{macrocode} +\define@key{obj}{id}{\def\obj@id{#1}\@dmp{id=#1}} +\define@key{obj}{title}{\def\obj@title{#1}\@dmp{title=#1}} +\define@key{obj}{short}{\def\obj@short{#1}\@dmp{short=#1}} +% \end{macrocode} +% And a counter for numbering objectives +% \begin{macrocode} +\newcounter{objective} +% \end{macrocode} +% \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}% +\goodbreak\smallskip\par\noindent% +\textbf{\objective@label{\arabic{objective}}:% +~\pdata@target{obj}{\obj@id}{\pdataref{obj}{\obj@id}{title}}\ignorespaces}% +\pdata@def{obj}\obj@id{label}{\objective@label\theobjective}% +\@ifundefined{obj@title}{}{\pdata@def{obj}\obj@id{title}\obj@title}% +\@ifundefined{obj@short}{}{\pdata@def{obj}\obj@id{short}\obj@short}} +{} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\OBJref} +% \begin{macrocode} +\newcommand\OBJref[1]{\pdataRef{obj}{#1}{label}} +\newcommand\OBJtref[1]{\pdataRef{obj}{#1}{label}: \pdataRef{obj}{#1}{title}} +% \end{macrocode} +% \end{macro} +% +% \subsection{Work Packages and Work Groups}\label{sec:impl:wpwa} +% +% We first define keys for work groups (if we are in an IP). +% \begin{macrocode} +\ifwork@areas +\define@key{workarea}{id}{\def\wa@id{#1}\@dmp{id=#1}} +\define@key{workarea}{title}{\pdata@def{wa}\wa@id{title}{#1}} +\define@key{workarea}{short}{\pdata@def{wa}\wa@id{short}{#1}} +\define@key{workarea}{lead}{\pdata@def{wa}\wa@id{lead}{#1}} +\fi +% \end{macrocode} +% work packages have similar ones. +% \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}{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}} +% \end{macrocode} +% We define the constructors for the work package and work group labels and titles. +% \begin{macrocode} +\newcommand\wp@mk@title[1]{Work Package {#1}} +\newcommand\wp@label[1]{WP{#1}} +\ifwork@areas +\newcommand\wa@label[1]{WA{#1}} +\newcommand\wa@mk@title[1]{Work Area {#1}} +\fi +% \end{macrocode} +% The |wa| and |wp| counters are for the work packages and work groups, the counter +% |deliv| for deliverables. +% \begin{macrocode} +\ifwork@areas\newcounter{wa}\newcounter{wp}[wa]\else\newcounter{wp}\fi +\ifdelivs\newcounter{deliv}[wp]\fi +\newcounter{allwp} +% \end{macrocode} +% +% \begin{macro}{\update@*} +% update the list |\@wps| of the work packages in the local group and the list |\@was| +% work groups for the staff efforts table: if |\@wps| is undefined, then initialize the +% comma-separated list, otherwise extend it.\ednote{with the current architecture, we +% cannot have work areas that do not contain work packages, this leads to the error that +% |\@wps| is undefined in |end{workplan}|} +% \begin{macrocode} +\newcommand\update@wps[1]{\@ifundefined{@wps}{\xdef\@wps{#1}}{\xdef\@wps{\@wps,#1}}} +\newcommand\update@tasks[1]{\@ifundefined{@tasks}{\xdef\@tasks{#1}}{\xdef\@tasks{\@tasks,#1}}} +\newcommand\update@deps[1]{\@ifundefined{task@deps}{\xdef\task@deps{#1}}{\xdef\task@deps{\task@deps,#1}}} +\ifwork@areas\def\update@was#1{\@ifundefined{@was}{\xdef\@was{#1}}{\xdef\@was{\@was,#1}}}\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\decode@wphase} +% |\decode@wphase| decodes a string of the form \meta{start}|-|\meta{end}|!|\meta{force} +% and defines the macros |\wphase@start|, |\wphase@end|, and |\wphase@force| with the +% three parts and also computes |\wphase@len|. The intermediate parsing macro +% |\decode@p@start| parses out the start (a number), and passes on to |\decode@p@end|, +% which parses out the end (another number) and the force string, which is either empty +% (if the |!|\meta{force} part is omitted) or of the form |!|\meta{force}. In the first +% case the default value 1 is returned for |\decode@force| in the second \meta{force}. +% \begin{macrocode} +\newcommand\decode@wphase[1]{\expandafter\decode@p@start#1@% +\local@count\wphase@end\advance\local@count by -\wphase@start% +\def\wphase@len{\the\local@count}} +\def\decode@p@start#1-#2@{\def\wphase@start{#1}\decode@p@end#2!@} +\def\decode@p@end#1!#2@{\def\wphase@end{#1}\def\@test{#2}% +\ifx\@test\@empty\def\wphase@force{1}\else\decode@p@force#2\fi} +\def\decode@p@force#1!{\def\wphase@force{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\startend@wphases} +% We first iteratively decode the work phases, so that the last definition of +% |\wphase@end| remains, then we parse out the start of the first workphase to define +% |\wphase@start| +% \begin{macrocode} +\def\wphases@start#1-#2@{\def\wphase@start{#1}} +\newcommand\startend@wphases[1]{\def\@test{#1} +\ifx\@test\@empty\def\wphase@start{0}\def\wphase@end{0}\else% +\@for\@I:=#1\do{\expandafter\decode@p@start\@I @} +\expandafter\wphases@start#1@\fi} +% \end{macrocode} +% \end{macro} +% +% with these it is now relatively simple to define the interface macros. +% +% \begin{environment}{work@package} +% The |workpackage| environment collects the keywords, steps the counters, writes the metadata +% to the aux file, updates the work packages in the local group, generates the work +% package number |\wp@num|. +% \begin{macrocode} +\newcounter{wp@RM} +\if@RAM\newcounter{wp@RAM}\fi +\newenvironment{work@package}[1][]% +{\def\wp@wphases{0-0}% default values +\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% +\@ifundefined{wp@type}{}{\pdata@def{wp}\wp@id{type}\wp@type}% +\let\@tasks=\relax% +\edef\wp@num{\ifwork@areas\thewa.\fi\thewp}% +\pdata@def{wp}\wp@id{label}{\wp@label\wp@num}% +\pdata@def{wp}\wp@id{number}{\thewp}% +\pdata@def{wp}\wp@id{page}{\thepage}% +\update@wps\wp@id% +\edef\wp@num{\ifwork@areas\thewa.\fi\thewp}% +\pdata@def{wp}{\wp@id}{num}{\thewp}% +% \end{macrocode} +% If we have sites, we have to compute the total RM and RAM for this WP. +% \begin{macrocode} +\if@sites% +\setcounter{wp@RM}{0}\if@RAM\setcounter{wp@RAM}{0}\fi% +\@for\@site:=\prop@gen@sites\do{% +\edef\@RM{\pdataref@num\wp@id\@site{RM}}\addtocounter{wp@RM}{\@RM}% +\if@RAM\edef\@RAM{\pdataref@num\wp@id\@site{RAM}}\addtocounter{wp@RAM}{\@RAM}\fi} +\pdata@def{wp}\wp@id{RM}{\thewp@RM}% +\if@RAM\pdata@def{wp}\wp@id{RAM}{\thewp@RAM}\fi% +\fi}% if@sites +{\@ifundefined{@tasks}{}{\pdata@def{\wp@id}{task}{ids}\@tasks}} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{workpackage} +% With this, it becomes simple to define a work package environment. We consider two +% cases, if we have sites, then we make a header table. If not, we can make things much +% simpler: we just generate a subsection +% \begin{macrocode} +\newenvironment{workpackage}[1][]% +{\begin{work@package}[#1]% +%\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}}% +\ignorespaces} +{\end{work@package}} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\wptitle} +% \ednote{document above} +% \begin{macrocode} +\newcommand\wptitle{\wp@mk@title{\wp@num}: \pdata@target{wp}{\wp@id}{\pdataref{wp}\wp@id{title}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\wprm} +% \ednote{document above} +% \begin{macrocode} +\newcommand\wprm{\pdataref@safe{wp}\wp@id{RM}\if@RAM\ RM+\pdataref{wp}\wp@id{RAM} RAM\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@site@contributes} +% Called as |\if@site@contributes{|\meta{site}|}{|\meta{tokens}|}| the following +% happens: If |\prop@gen@compactht| is |\@true| (set by the |compactht| attribute on the +% |proposal| environment), then \meta{tokens} is processed. Otherwise, \meta{tokens} is +% only processed if \meta{site} contributes to the current work package (i.e the |RM| +% $\ne0$ and |RAM| $\ne0$) +% \begin{macrocode} +\newcount\site@contribution% +\newcommand\if@site@contributes[2]{% +\ifx\prop@gen@compactht\@true +\if@RAM\ifnum\pdataref@num\wp@id{#1}{RM} > 0 \ifnum \pdataref@num\wp@id{#1}{RAM} > 0 #2\fi\fi +\else\ifnum\pdataref@num\wp@id{#1}{RM} > 0 #2\fi\fi +\else #2\fi} +% \end{macrocode} +% \end{macro} +% +% The following macro computes the sites line (in the token register +% \DescribeMacro{\wp@sites@line}|\wp@sites@line|), the efforts line (in +% \DescribeMacro{\wp@efforts@line}|\wp@efforts@line|), and the sites number (in the +% counter \DescribeMacro{\wp@sites@num}|\sites@num|) for later inclusion in the +% |\wpheadertable|. If |\prop@gen@compactht| is |\@true|, then no sites without +% contributions are listed in the table. +% \begin{macrocode} +\newcounter{wp@sites@num} +\newcommand\wp@sites@efforts@lines{% +\setcounter{wp@sites@num}{0} +{\let\G@refundefinedtrue=\relax\let\@latex@warning=\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}}% +\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}}}% +\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}}}}} +% \end{macrocode} +% +% \begin{macro}{\wpheadertable} +% This macro computes the default work package header table, if there are sites. +% \begin{macrocode} +\newcommand\wpheadertable{% +\wp@sites@efforts@lines% +\par\noindent\begin{tabular}{|l||l|*{\thewp@sites@num}{c|}|c|}\hline% +\textbf{\wp@mk@title{\wp@num}}&\wp@sites@line\\\hline% +\textsf{\pdata@target{wp}{\wp@id}{\pdataref{wp}\wp@id{title}}} &\wp@efforts@line\\\hline% +\end{tabular}\smallskip\par\noindent\ignorespaces} +% \end{macrocode} +% and now multilinguality support +% \begin{macrocode} +\newcommand\wp@legend@site{Site} +\newcommand\wp@legend@effort{Effort\if@RAM{ (RM+RAM)}\fi} +\newcommand\wp@legend@all{\textbf{all}} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{workarea} +% the |workarea| environment for work groups is almost the same, but we also have to +% initialize the work package counters. Also, the efforts can be computed from the work +% packages in this group via the |wa@effort| counter +% \begin{macrocode} +\newcounter{prop@RM}\if@RAM\newcounter{prop@RAM}\fi +\ifwork@areas +\newcounter{wa@RM}\if@RAM\newcounter{wa@RAM}\fi\newcounter{wa@wps} +\newenvironment{workarea}[1][] +{\setkeys{workarea}{#1} +\let\@wps=\relax +\stepcounter{wa} +\pdata@def{wa}{\wa@id}{label}{\wa@label\thewa} +\pdata@def{wa}{\wa@id}{number}{\thewa} +\pdata@def{wa}{\wa@id}{page}{\thepage} +\update@was{\wa@id} +\pdata@def{wa}{\wa@id}{num}{\thewa} +\setcounter{wa@RM}{0}\if@RAM\setcounter{wa@RAM}{0}\fi\setcounter{wa@wps}{0} +\edef\@@wps{\pdataref@aux\wa@id{wp}{ids}} +\@for\@wp:=\@@wps\do{\stepcounter{wa@wps}% +\if@sites +\@for\@site:=\prop@gen@sites\do{% + \edef\@RM{\pdataref@num\@wp\@site{RM}} + \if@RAM\edef\@RAM{\pdataref@num\@wp\@site{RAM}}\fi + \addtocounter{wa@RM}{\@RM}\addtocounter{prop@RM}{\@RM} + \if@RAM\addtocounter{wa@RAM}{\@RAM}\addtocounter{prop@RAM}{\@RAM}\fi} +\else +\edef\@RM{\pdataref@num{wp}\@wp{RM}} +\if@RAM\edef\@RAM{\pdataref@num{wp}\@wp{RAM}}\fi +\addtocounter{wa@RM}{\@RM}\addtocounter{prop@RM}{\@RM} +\if@RAM\addtocounter{wa@RAM}{\@RAM}\addtocounter{prop@RAM}{\@RAM}\fi +\fi} +\pdata@def{wa}\wa@id{RM}\thewa@RM +\pdata@def{prop}{all}{RM}\theprop@RM +\if@RAM +\pdata@def{wa}\wa@id{RAM}\thewa@RAM +\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}}% +\ignorespaces} +{\@ifundefined{@wps}{}{\pdata@def\wa@id{wp}{ids}\@wps}\pdata@def\wa@id{wp}{count}\thewa@wps}\fi +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{workplan} +% The |workplan| environment sets up the accumulator macros |\@wps|, |\@was|, for the +% collecting the identifiers of work packages and work groups. At the end of the +% workplan description it writes out their content to the aux file for reference. +% \begin{macrocode} +\ifdelivs\newwrite\wpg@delivs\fi +\newenvironment{workplan}% +{\ifdelivs\immediate\openout\wpg@delivs=\jobname.delivs\fi +\ifwork@areas\let\@was=\relax\else\let\@wps=\relax\fi}% +{\@ifundefined{task@deps}{}{\pdata@def{all}{task}{deps}{\task@deps}} +\pdata@def{all}{task}{count}{\thealltasks} +\ifwork@areas +\@ifundefined{@was}{}{\pdata@def{all}{wa}{ids}\@was} +\else +\@ifundefined{@wps}{}{\pdata@def{all}{wp}{ids}\@wps} +\fi +\ifdelivs\@ifundefined{mile@stones}{} +{\@for\@I:=\mile@stones\do{% +\pdata@def{mile}\@I{delivs}{\@ifundefined{\@I delivs}{}{\csname\@I delivs\endcsname}}}}\fi +\ifwork@areas\pdata@def{all}{wa}{count}{\thewa}\fi +\pdata@def{all}{wp}{count}{\theallwp} +\ifdelivs +\pdata@def{all}{deliverables}{count}{\thedeliverable} +\pdata@def{all}{milestones}{count}{\themilestone} +\fi +\ifdelivs\closeout\wpg@delivs\fi} +% \end{macrocode} +% \end{environment} +% +%\subsection{Milestones and Deliverables}\label{sec:impl:deliverables} +% +% \begin{macro}{deliv@error} +% this macro raises an error if deliverable commands are used without the |deliverables| +% option being set. +% \begin{macrocode} +\newcommand\deliv@error{\PackageError{proposal} +{To use use deliverables, you have to specify the option 'deliverables'}} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{wpdelivs} +% \begin{macrocode} +\newenvironment{wpdelivs}{\begin{wp@delivs}}{\end{wp@delivs}} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{wp@delivs} +% \begin{macrocode} +\newenvironment{wp@delivs} +{\ifdelivs\textbf\deliv@legend@delivs:\\[-3ex]% +\begin{compactdesc}\else\deliv@error\fi} +{\ifdelivs\end{compactdesc}\fi} +% \end{macrocode} +% and now multilinguality support +% \begin{macrocode} +\newcommand\deliv@legend@delivs{Deliverables} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\wadelivs} +% \begin{macrocode} +\newenvironment{wadelivs} +{\textbf\deliv@legend@delivs:\\[-3ex]\begin{wp@delivs}} +{\end{wp@delivs}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\lec} +% 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\lec[1]{\strut\hfil\strut\null\nobreak\hfill\hbox{$\leadsto$#1}\par} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\deliv@label} +% \begin{macrocode} +\newcommand\deliv@label[1]{M{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\delivref} +% 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}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\wpg@deliv} +% We first define the keys +% \begin{macrocode} +\define@key{deliv}{id}{\def\deliv@id{#1}} +\define@key{deliv}{due}{\def\deliv@due{#1}} +\define@key{deliv}{dissem}{\def\deliv@dissem{#1}} +\define@key{deliv}{nature}{\def\deliv@nature{#1}} +\define@key{deliv}{miles}{\def\deliv@miles{#1}} +\define@key{deliv}{short}{\def\deliv@short{#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 +% file. +% \begin{macrocode} +\newcounter{deliverable} +\newcommand{\wpg@deliv}[3]{% keys, title, type +\stepcounter{deliverable} +\let\deliv@miles=\relax% clean state +\def\@type{#3}\def\@wp{wp}% set up ifx +\def\wpg@id{\csname #3@id\endcsname} +\setkeys{deliv}{#1}\stepcounter{deliv}% set state +\ifx\@type\@wp\def\current@label{\deliv@label{\ifwork@areas\thewa.\fi\thewp.\thedeliv}} +\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} +\@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} +% \end{macrocode} +% Then we iterate over the due dates and generate an entry for teach of them. +% \begin{macrocode} +\@ifundefined{deliv@due}{}{% +\@for\@I:=\deliv@due\do{\protected@write\wpg@delivs{}{\string\deliverable% +{\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 +{#2} +{\ifx\@type\@wp{WP\ifwork@areas\thewa.\fi\thewp}\else{WA\thewa}\fi}}}}%WP +% \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}} +\@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 +\m@sep\pdataRef{mile}{\@I}{label}% print the milestone reference +\let\m@sep=,}}%set the separator for the next times +\def\d@sep{,} + \@for\@I:=\deliv@miles\do{% Iterate over the milestones mentioned + \expandafter\ifx\csname\@I delivs\endcsname\relax% Check that the miles@delivs is empty + {\expandafter\xdef\csname\@I delivs\endcsname{\wpg@id\deliv@id}}% if so, skip the separator + \else\expandafter\xdef\csname\@I delivs\endcsname%if not add it + {\csname\@I delivs\endcsname\d@sep\wpg@id\deliv@id}\fi}}} +% \end{macrocode} +% \end{macro} +% +% Now, we only need to instantiate +% +% \begin{environment}{wadeliv} +% \begin{macrocode} +\newenvironment{wadeliv}[2][]{\ifdelivs\wpg@deliv{#1}{#2}{wa}\else\deliv@error\fi}{} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{wpdeliv} +% \begin{macrocode} +\newenvironment{wpdeliv}[2][]{\ifdelivs\wpg@deliv{#1}{#2}{wp}\else\deliv@error\fi}{} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\milestone@label} +% \begin{macrocode} +\newcommand\milestone@label[1]{M{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\mileref} +% 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\mileref[1]{\pdataRef{mile}{#1}{label}} +\newcommand\miletref[1]{\pdataRef{mile}{#1}{label}: \pdataRef{mile}{#1}{short}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\milestone} +% create a new milestone, initialize its deliverables accumulator macro, set up +% hyperlinking, and extend the milestones list. +% \begin{macrocode} +\newcounter{milestone} +\define@key{milestone}{id}{\gdef\mile@id{#1}} +\define@key{milestone}{month}{\gdef\mile@month{#1}} +\define@key{milestone}{verif}{\gdef\mile@verif{#1}} +\newcommand\milestone[3][]{% +\ifdelivs% +\setkeys{milestone}{#1}\stepcounter{milestone}% +\pdata@def{mile}\mile@id{label}{\milestone@label{\themilestone}}% +\pdata@def{mile}\mile@id{month}{\mile@month}% +\pdata@def{mile}\mile@id{verif}{\mile@verif}% +\pdata@def{mile}\mile@id{title}{#2}% +\@ifundefined{mile@stones}{\xdef\mile@stones{\mile@id}}{\xdef\mile@stones{\mile@stones,\mile@id}}% +\@milestone{#1}{#2}{#3}% presentation +\else\deliv@error\fi} +% \end{macrocode} +% \end{macro} +% +% \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} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{milestones} +% \begin{macrocode} +\newenvironment{milestones}{\begin{@milestones}}{\end{@milestones}} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{@milestones} +% \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.} +% \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 +% \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} +{\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@level{Level} +\newcommand\delivs@legend@due{Due} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\inputdelivs} +% +% \begin{macrocode} +\newcommand{\inputdelivs}[1]{% +\begin{deliverables}{#1}% +\IfFileExists{\jobname.deliverables}% +{\input{\jobname.deliverables}}% +{\IfFileExists{\jobname.delivs}{\input{\jobname.delivs}}{}} +\end{deliverables}} +% \end{macrocode} +% \end{macro} +% +% \subsection{Tasks and Work Phases}\label{sec:impl:tasks} +% +% \begin{environment}{tasklist} +% \begin{macrocode} +\newenvironment{tasklist} +{\begin{compactenum}}{\end{compactenum}} +% \end{macrocode} +% \end{environment} +% The next step is to +% \begin{macrocode} +\newcommand\task@label[1]{T#1} +% \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}} +% \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{} +\setkeys{task}{#1}} +% \end{macrocode} +% +% \begin{environment}{task} +% \begin{macrocode} +\newcounter{alltasks} +\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}% +\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} +{} +% \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\sep@wphases{; } +\newcommand\legend@partners{Partners} +\newcommand\legend@lead{lead} +\newcommand\task@label@long{Task} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\@task} +% The |\@task| macro is a internal macro which takes a bunch of keyword keys and writes +% their values to the aux file. +% \begin{macrocode} +\newcounter{task@all}\newcounter{task@wp}[wp] +\newcount\task@@end +\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}{number}{\thetask@wp}% +\pdata@def{task}{\taskin\task@id\wp@id}{page}{\thepage}% +\update@tasks{\taskin\task@id\wp@id}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\workphase} +% \begin{macrocode} +\newcommand\workphase[1]{\PackageError{proposal} + {The \protect\workphase macro is deprecated,\MessageBreak + use the attributes wphase on the workpackage environment instead!}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\localtaskref} +% \begin{macrocode} +\newcommand\localtaskref[1]{\pdataRef{task}{\wp@id @#1}{label}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\taskref} +% \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}% +\pdata@def{taskdep}\dep@id{from}{\taskin{#1}\wp@id}% +\pdata@def{taskdep}\dep@id{to}{#2}% +\update@deps\dep@id} +% +% \end{macrocode} +% \end{macro} +% +% \subsection{Project Data, Referencing \& Hyperlinking}\label{sec:impl:hyperlinking} +% +% \begin{macro}{\pdata@*} +% |\pdata@out| is the file handle for the project data file, we define internal macros +% to open and close it. +% \begin{macrocode} +%<*pdata> +\newif\ifwork@areas\work@areastrue +\DeclareOption{noworkareas}{\work@areasfalse} +\ProcessOptions +\RequirePackage{xspace} +\newwrite\pdata@out +\newcommand\pdata@open[1]{\immediate\openout\pdata@out=#1.pdata} +\newcommand\pdata@close{\closeout\pdata@out} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\readpdata} +% This macro reads the project data file and its error handling +% \begin{macrocode} +\newcommand\readpdata[1]{\IfFileExists{#1.pdata} +{\message{proposal: Reading Project Data}\makeatletter\input{#1.pdata}\makeatother} +{proposal: No Project Data found, (forward) references may be compromized}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pdata@target} +% This internal macro makes a hypertarget: +% |\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} +\newcommand\pdata@target[3]{\hypertarget{#1@#2@target}{#3}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pdata@def} +% This macro writes an |\@pdata@def| command to the current aux file and also executes it. +% \begin{macrocode} +\newcommand\pdata@def[4]{%\@pdata@def{#1}{#2}{#3}{#4}% + \protected@write\pdata@out{}{\string\@pdata@def{#1}{#2}{#3}{#4}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@pdata@def} +% This macro stores the value of its last argument in a custom macro for reference. +% \begin{macrocode} +\newcommand\@pdata@def[4]{\expandafter\gdef\csname #1@#2@#3\endcsname{#4}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pdataref} +% \begin{macrocode} +\newcommand\pdataref[3]{\@ifundefined{#1@#2@#3}% + {\protect\G@refundefinedtrue\@latex@warning{#3 for #1 #2 undefined}??}% + {\csname #1@#2@#3\endcsname}}% +\newcommand\pdataref@aux[3]{\@ifundefined{#1@#2@#3}{??}{\csname #1@#2@#3\endcsname}}% +\newcommand\pdataref@num[3]{\@ifundefined{#1@#2@#3}{0}{\csname #1@#2@#3\endcsname}}% +\newcommand\pdataref@safe[3]{\@ifundefined{#1@#2@#3}{}{\csname #1@#2@#3\endcsname}}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pdataRef} +% \begin{macrocode} +\newcommand\pdataRef[3]{\@ifundefined{#1@#2@#3}% +{\protect\G@refundefinedtrue\@latex@warning{#3 for #1 #2 undefined}??}% +{\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 + eight\or nine\or ten\or eleven \or twelve\else#1\fi} +\newcommand\pdatacount[2]{\prop@count{\pdataref@num{#1}{#2}{count}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pn*} +% \begin{macrocode} +\newcommand\pn{\pdataref{prop}{gen}{acronym}\xspace} +\newcommand\pnlong{\pdataref{prop}{gen}{acrolong}\xspace} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\W*ref} +% \begin{macrocode} +\newcommand\WPref[1]{\pdataRef{wp}{#1}{label}} +\newcommand\WPtref[1]{\pdataRef{wp}{#1}{label}: \pdataRef{wp}{#1}{short}} +\ifwork@areas +\newcommand\WAref[1]{\pdataRef{wa}{#1}{label}} +\newcommand\WAtref[1]{\pdataRef{wa}{#1}{label}: \pdataRef{wa}{#1}{title}} +\fi +% +% \end{macrocode} +% \end{macro} +% +% \subsection{The Work Package Table}\label{sec:impl:wptable} +% +% \begin{macro}{\prop@lead} +% \begin{macrocode} +%<*cls> +\newcommand\prop@lead[1]{\@ifundefined{wp@#1@lead}% +{\protect\G@refundefinedtrue\@latex@warning{lead for WP #1 undefined}??}% +{\csname wp@#1@lead\endcsname}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\*@style} +% \ednote{This (and wpfig) should be documented above} +% \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} +\newcommand\sum@style[1]{\cellcolor{wagray}{\textbf{#1}}} +\newcommand\wa@style[1]{\cellcolor{wagray}{\textbf{#1}}} +\newcommand\wp@style[1]{#1} +\newcommand\lead@style[1]{\cellcolor{leadgray}{\textit{#1}}} +\newcommand\wp@lead@style@explained{light gray italicised} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{wp@figure} +% \begin{macrocode} +\newcounter{wpfig@options} +\define@key{wpfig}{size}{\def\wpfig@size{#1}\@dmp{size=#1}} +\def\@true{true} +\def\wpfig@pages{false} +\define@key{wpfig}{pages}[true]{\def\wpfig@pages{#1}\stepcounter{wpfig@options}} +\def\wpfig@type{false} +\define@key{wpfig}{type}[true]{\def\wpfig@type{#1}\stepcounter{wpfig@options}} +\def\wpfig@start{false} +\define@key{wpfig}{start}[true]{\def\wpfig@start{#1}\stepcounter{wpfig@options}} +\def\wpfig@length{false} +\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}} +\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\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% +\ifx\wpfig@start\@true&\@sw{\wpfig@legend@start}\fi% +\ifx\wpfig@length\@true&\@sw{\wpfig@legend@length}\fi +\ifx\wpfig@end\@true&\@sw{\wpfig@legend@end}\fi}% +\if@sites% +\@for\@site:=\prop@gen@sites\do{% +\xdef\wpfig@headline{\wpfig@headline&\@sw{\wpfig@legend@siteRM{\@site}}}% +\if@RAM\xdef\wpfig@headline{\wpfig@headline&\@sw{\wpfig@legend@siteRAM{\@site}}}\fi}% +\xdef\wpfig@headline{\wpfig@headline&\@sw{\wpfig@legend@totalRM}}% +\if@RAM\xdef\wpfig@headline{\wpfig@headline&\@sw{\wpfig@legend@totalRAM}}\fi% +\else% if@sites +\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 +\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}} +% \end{macrocode} +% and now multilinguality support +% \begin{macrocode} +\newcommand\wpfig@legend@wap{\textbf{\ifwork@areas{WA/P}\else{WP}\fi}} +\newcommand\wpfig@legend@title{\textbf{Title}} +\newcommand\wpfig@legend@type{\textbf{type}} +\newcommand\wpfig@legend@page{\textbf{page}} +\newcommand\wpfig@legend@start{\textbf{start}} +\newcommand\wpfig@legend@length{\textbf{length}} +\newcommand\wpfig@legend@end{\textbf{end}} +\newcommand\wpfig@legend@siteRM[1]{\site{#1}\if@RAM\ RM\fi} +\newcommand\wpfig@legend@siteRAM[1]{\site{#1}\ RAM} +\newcommand\wpfig@legend@totalRM{total\if@RAM\ RM\fi} +\newcommand\wpfig@legend@totalRAM{total RAM} +\newcommand\wpfig@legend@RM{RM} +\newcommand\wpfig@legend@RAM{RAM} +\newcommand\wpfig@legend@RAM@expl{\if@RAM R(A)M $\widehat=$ Researcher (Assistant) Months\else\ Efforts in PM\fi} +\newcommand\wpfig@legend@lead@expl{WP lead efforts \wp@lead@style@explained} +\newcommand\wpfig@legend@caption{{\ifwork@areas Work Areas and \fi}Work Packages} +% \end{macrocode} +% \end{environment} +% +% +% \begin{macro}{\wpfigstyle} +% \ednote{document above} +% \begin{macrocode} +\def\wpfig@style{} +\newcommand\wpfigstyle[1]{\def\wpfig@style{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\wpfig} +% \ednote{The computation can be distributed much more efficiently (by intermingling the +% counter advances with the row creation), but this works now} +% \begin{macrocode} +\newcount\local@count +\newcount\@@@RM\if@RAM\newcount\@@@RAM\fi +\newcount\all@@@RM\if@RAM\newcount\all@@@RAM\fi +\newcommand{\wpfig}[1][]{\setcounter{wpfig@options}{0}\setkeys{wpfig}{#1} +% \end{macrocode} +% the first thing to do is to build the body of the table programmatically by (globally) +% extending the |\@wp@lines| token register inside a bracket group which locally redefines +% all macros we are using in the extensions, so that they do not get into the way. We +% start this group now. +% \begin{macrocode} +{\gdef\@wp@lines{}%initialize +\let\tabularnewline\relax\let\hline\relax\let\lead@style\relax% so they +\let\wa@style\relax\let\wp@style\relax \let\@sw\relax\let\textbf\relax% do not +\let\G@refundefinedtrue=\relax\let\@latex@warning=\relax\let\hyperlink=\relax% bother +\let\pn\relax\let\xspace\relax% us +% \end{macrocode} +% The code that follows now, could be more elegant, if we had a better way of organizing +% the data, but this works for now, we have four cases: with/without work areas and +% with/without sites. All do something very similar. +% \begin{macrocode} +\ifwork@areas +\edef\@@was{\pdataref@safe{all}{wa}{ids}}% +\@for\@@wa:=\@@was\do{% iterate over the work areas +\xdef\@@wa@line{\wa@style{\pdataRef{wa}\@@wa{label}}% +&\wa@style{\@ifundefined{wa@\@@wa @short}{\pdataref{wa}\@@wa{title}}{\pdataref{wa}\@@wa{short}}}% +\ifx\wpfig@type\@true&\wa@style{\pdataref{wa}\@@wa{type}}\fi% +\ifx\wpfig@pages\@true&\wa@style{\pdataref{wa}\@@wa{page}}\fi% +\ifx\wpfig@start\@true&\wa@style{\pdataref{wa}\@@wa{start}}\fi% +\ifx\wpfig@length\@true&\wa@style{\pdataref{wa}\@@wa{len}}\fi% +\ifx\wpfig@end\@true&\wa@style{\pdataref{wa}\@@wa{end}}\fi} +\if@sites +\@for\@site:=\prop@gen@sites\do{% +\edef\@@wps{\pdataref@safe\@@wa{wp}{ids}}% +\local@count 0% +\@for\@@wp:=\@@wps\do{\advance\local@count by \pdataref@num\@@wp\@site{RM}}% +\pdata@def\@@wa\@site{RM}{\the\local@count}% +\xdef\@@wa@line{\@@wa@line&\wa@style{\the\local@count}}% +\if@RAM +\local@count 0% +\@for\@@wp:=\@@wps\do{\advance\local@count by \pdataref@num\@@wp\@site{RAM}} +\pdata@def\@@wa\@site{RAM}{\the\local@count}% +\xdef\@@wa@line{\@@wa@line&\wa@style{\the\local@count}}% +\fi} +\local@count0\relax% +\@for\@site:=\prop@gen@sites\do{\global\advance\local@count by \pdataref@num\@@wa\@site{RM}}% +\xdef\@@wa@line{\@@wa@line &\wa@style{\textbf{\the\local@count}}} +\if@RAM +\local@count0\relax% +\@for\@site:=\prop@gen@sites\do{\global\advance\local@count by \pdataref@num\@@wa\@site{RAM}}% +\xdef\@@wa@line{\@@wa@line &\wa@style{\textbf{\the\local@count}}} +\fi +\else% if@sites +\edef\@@wps{\pdataref@safe{all}{wp}{ids}}% +\xdef\@@wa@line{\@@wa@line&\wa@style{\pdataref{wa}\@@wa{RM}} +\if@RAM&\wa@style{\pdataref{wa}\@@wa{RAM}}\fi}% +\fi% if@sites +\xdef\@wp@lines{\@wp@lines\@@wa@line\tabularnewline\hline}% add the line for the workarea +\edef\@@wps{\pdataref@safe\@@wa{wp}{ids}}% +\@for\@@wp:=\@@wps\do{% iterate over its work packages +\xdef\@@wp@line{\pdataRef{wp}\@@wp{label}% +&\@ifundefined{wp@\@@wp @short}{\pdataref{wp}\@@wp{title}}{\pdataref{wp}\@@wp{short}}% +\ifx\wpfig@type\@true&\pdataref{wp}\@@wp{type}\fi% +\ifx\wpfig@pages\@true&\pdataref{wp}\@@wp{page}\fi% +\ifx\wpfig@start\@true&\pdataref{wp}\@@wp{start}\fi% +\ifx\wpfig@length\@true&\pdataref{wp}\@@wp{len}\fi% +\ifx\wpfig@end\@true&\pdataref{wp}\@@wp{end}\fi} +\if@sites +\@for\@site:=\prop@gen@sites\do{% +\edef\@@lead{\pdataref@safe{wp}\@@wp{lead}} +\edef\@@RM{\ifx\@@lead\@site\lead@style{\pdataref@safe\@@wp\@site{RM}}\else\wp@style{\pdataref@safe\@@wp\@site{RM}}\fi} +\xdef\@@wp@line{\@@wp@line&\@@RM} +\if@RAM +\edef\@@RAM{\ifx\@@lead\@site\lead@style{\pdataref@safe\@@wp\@site{RAM}}\else\wp@style{\pdataref@safe\@@wp\@site{RAM}}\fi} +\xdef\@@wp@line{\@@wp@line&\@@RAM} +\fi} +\local@count0\relax% +\@for\@site:=\prop@gen@sites\do{\global\advance\local@count by \pdataref@num\@@wp\@site{RM}}% +\xdef\@@wp@line{\@@wp@line &\textbf{\the\local@count}} +\if@RAM +\global\local@count0\relax% +\@for\@site:=\prop@gen@sites\do{\global\advance\local@count by \pdataref@num\@@wp\@site{RAM}}% +\xdef\@@wp@line{\@@wp@line &\textbf{\the\local@count}} +\fi% if@sites +\else% if@sites +\xdef\@@wp@line{\@@wp@line&\wp@style{\pdataref@safe{wp}\@@wp{RM}}} +\if@RAM\xdef\@@wp@line{\@@wp@line&\wp@style{\pdataref@safe{wp}\@@wp{RAM}}}\fi +\fi% if@sites +\xdef\@wp@lines{\@wp@lines\@@wp@line\tabularnewline\hline}}} +% \end{macrocode} +% Now the case where we do not have work areas. +% \begin{macrocode} +\else% ifwork@areas +\edef\@@wps{\pdataref@safe{all}{wp}{ids}}% +\@for\@@wp:=\@@wps\do{% iterate over its work packages +\xdef\@@wp@line{\pdataRef{wp}\@@wp{label}% +&\@ifundefined{wp@\@@wp @short}{\pdataref{wp}\@@wp{title}}{\pdataref{wp}\@@wp{short}} +\ifx\wpfig@type\@true&\pdataref{wp}\@@wp{type}\fi% +\ifx\wpfig@pages\@true&\pdataref{wp}\@@wp{page}\fi% +\ifx\wpfig@start\@true&\pdataref{wp}\@@wp{start}\fi% +\ifx\wpfig@length\@true&\pdataref{wp}\@@wp{len}\fi% +\ifx\wpfig@end\@true&\pdataref{wp}\@@wp{end}\fi} +\if@sites +\@for\@site:=\prop@gen@sites\do{% +\edef\@@lead{\pdataref@safe{wp}\@@wp{lead}} +\edef\@@RM{\ifx\@@lead\@site\lead@style{\pdataref@safe\@@wp\@site{RM}}\else\wp@style{\pdataref@safe\@@wp\@site{RM}}\fi} +\xdef\@@wp@line{\@@wp@line&\@@RM} +\if@RAM +\edef\@@RAM{\ifx\@@lead\@site\lead@style{\pdataref@safe\@@wp\@site{RAM}}\else\wp@style{\pdataref@safe\@@wp\@site{RAM}}\fi} +\xdef\@@wp@line{\@@wp@line&\wp@style\@@RAM} +\fi} +\global\local@count0\relax% +\@for\@site:=\prop@gen@sites\do{\global\advance\local@count by \pdataref@num\@@wp\@site{RM}}% +\xdef\@@wp@line{\@@wp@line &\textbf{\the\local@count}} +\if@RAM +\global\local@count0\relax% +\@for\@site:=\prop@gen@sites\do{\global\advance\local@count by \pdataref@num{#1}\@site{RAM}}% +\xdef\@@wp@line{\@@wp@line &\textbf{\the\local@count}} +\fi +\else% if@sites +\xdef\@@wp@line{\@@wp@line&\wp@style{\pdataref@safe{wp}\@@wp{RM}}} +\if@RAM\xdef\@@wp@line{\@@wp@line&\wp@style{\pdataref@safe{wp}\@@wp{RAM}}\fi} +\fi% if@sites +\xdef\@wp@lines{\@wp@lines\@@wp@line\tabularnewline\hline}} +\fi%ifwork@areas +% \end{macrocode} +% Now we compute the totals lines in the |\@totals| macros; again there are four cases to +% consider +% \begin{macrocode} +\gdef\@totals{} +\ifwork@areas +\if@sites +\@for\@site:=\prop@gen@sites\do{% iterate over the sites +\@@@RM=0\if@RAM\@@@RAM=0\fi +\edef\@@was{\pdataref@safe{all}{wa}{ids}}% +\@for\@@wa:=\@@was\do{% iterate over the work areas +\edef\@@wps{\pdataref@safe\@@wa{wp}{ids}}% +\@for\@@wp:=\@@wps\do{% iterate over the work packages +\advance\@@@RM by \pdataref@num\@@wp\@site{RM}% +\if@RAM\advance\@@@RAM by \pdataref@num\@@wp\@site{RAM}\fi}} +\pdata@def{all}\@site{RM}{\the\@@@RM}\if@RAM\pdata@def{all}\@site{RAM}{\the\@@@RAM}\fi +\advance\all@@@RM by \the\@@@RM\if@RAM\advance\all@@@RAM by \the\@@@RAM\fi +\xdef\@totals{\@totals & \textbf{\the\@@@RM}\if@RAM& \textbf{\the\@@@RAM}\fi}} +\xdef\@totals{\@totals & \textbf{\the\all@@@RM}\if@RAM&\textbf{\the\all@@@RAM}\fi} +\pdata@def{all}{total}{RM}{\the\all@@@RM}\if@RAM\pdata@def{all}{total}{RAM}{\the\all@@@RAM}\fi +\else% if@sites +\@@@RM=0\if@RAM\@@@RAM=0\fi +\edef\@@was{\pdataref@safe{all}{wa}{ids}}% +\@for\@@wa:=\@@was\do{\edef\@@wps{\pdataref@safe\@@wa{wp}{ids}}% +\@for\@@wp:=\@@wps\do{% iterate over the work packages +\advance\@@@RM by \pdataref@num{wp}\@@wp{RM}% +\if@RAM\advance\@@@RAM by \pdataref@num{wp}\@@wp{RAM}\fi}} +\pdata@def{all}{total}{RM}{\the\@@@RM}\if@RAM\pdata@def{all}{total}{RAM}{\the\@@@RAM}\fi +\xdef\@totals{&\the\@@@RM\if@RAM &\the\@@@RAM\fi} +\fi% if@sites +\else%i.e. no work@areas +\if@sites +\@for\@site:=\prop@gen@sites\do{%iterate over the sites +\@@@RM=0\if@RAM\@@@RAM=0\fi% +\edef\@@wps{\pdataref@safe{all}{wp}{ids}}% +\@for\@@wp:=\@@wps\do{% iterate over the work packages +\advance\@@@RM by \pdataref@num\@@wp\@site{RM}% +\if@RAM\advance\@@@RAM by \pdataref@num\@@wp\@site{RAM}\fi} +\pdata@def{all}\@site{RM}{\the\@@@RM}\if@RAM\pdata@def{all}\@site{RAM}{\the\@@@RAM}\fi +\xdef\@totals{\@totals & \textbf{\the\@@@RM}\if@RAM& \textbf{\the\@@@RAM}\fi} +\advance\all@@@RM by \the\@@@RM\if@RAM\advance\all@@@RAM by \the\@@@RAM\fi} +\xdef\@totals{\@totals &\textbf{\the\all@@@RM}\if@RAM&\textbf{\the\all@@@RAM}\fi} +\pdata@def{all}{total}{RM}{\the\all@@@RM}\if@RAM\pdata@def{all}{total}{RAM}{\the\all@@@RAM}\fi +\else% if@sites +\@@@RM=0\if@RAM\@@@RAM=0\fi +\edef\@@wps{\pdataref@safe{all}{wp}{ids}}% +\@for\@@wp:=\@@wps\do{% iterate over the work packages +\advance\@@@RM by \pdataref@num{wp}\@@wp{RM}% +\if@RAM\advance\@@@RAM by \pdataref@num{wp}\@@wp{RAM}\fi} +\pdata@def{all}{total}{RM}{\the\@@@RM}\if@RAM\pdata@def{all}{total}{RAM}{\the\@@@RAM}\fi +\xdef\@totals{&\the\@@@RM\if@RAM &\the\@@@RAM\fi} +\fi% if@sites +\fi +% \end{macrocode} +% And we finally have a line for the intended totals which we use in draft mode. +% \begin{macrocode} +\gdef\intended@totals{} +\if@sites +\@for\@site:=\prop@gen@sites\do{ +\xdef\intended@totals{\intended@totals&\textbf{\pdataref@safe{site}\@site{intendedRM}}} +\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 +\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 +\fi}% if@sites +% \end{macrocode} +% finally, we make all of this into a figure, computing the colspan of the the legend +% cells for the totals via |\local@count| from the optional columns. +% \begin{macrocode} +\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 +\end{wp@figure}} +% \end{macrocode} +% and now multilinguality support +% \begin{macrocode} +\newcommand\prop@legend@totals{\textbf{totals}} +\newcommand\prop@legend@intendedtotals{\textbf{intended totals}} +% \end{macrocode} +% \end{macro} +% +% \subsection{Gantt Charts}\label{sec:impl:gantt} +% +% Gantt Charts are done with help of the the |tikz| package. The |gantt| +% environments pick up on the declared duration of the proposal in months stored in the +% |\prop@gen@months| macro. +% +% We define the keys for Gantt tables +% \begin{macrocode} +\newif\ifgantt@draft\gantt@draftfalse +\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} +% \end{macrocode} +% Then we define an auxiliary function that provides defaults for these keys and sets the +% internal macros. +% \begin{macrocode} +\def\gantt@set#1{\gantt@draftfalse\def\gantt@xscale{1}\def\gantt@yscale{.35}\def\gantt@step{3} +\setkeys{gantt}{#1}} +% \end{macrocode} +% +% Finally, the Gantt Chart environment itself. +% +% \begin{environment}{gantt} +% The |gantt[|\meta{keyvals}|]{|\meta{height}|}| environment sets up the grid and legend +% for a gantt chart. The grid is |\prop@gen@months| wide and \meta{height} high. +% \begin{macrocode} +\newenvironment{gantt}[2][] +{\gantt@set{#1} +\@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}} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\@action} +% In this we have used the macro that does the actual painting. +% |\@action{|\meta{name}|}{|\meta{line}|}{|\meta{start}|}{|\meta{len}|}{|\meta{force}|}| +% creates a gantt node with name \meta{name} in line \meta{line} starting at month +% \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 +\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) {};} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@dependency} +% \begin{macrocode} +\def\@dependency#1#2{\draw[->,line width=2pt,color=red] (#1@right) -- (#2@left);} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\gantt@compute@effort} +% A helper function that updates the dimension |\gantt@effort| according to whether the +% counter |\gantt@month| is in the range. It is used in |\gantt@chart| +% \begin{macrocode} +\newcommand\gantt@compute@effort[3]{% start, len, force + \@@e=#1\advance\@@e by #2 + \ifnum\thegantt@month<#1\else + \ifnum\thegantt@month<\@@e + \gantt@plus=#3cm\advance\gantt@effort by \gantt@plus\fi\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ganttchart} +% This macro iterates over the work areas, their work packages, and finally their work +% phases to use the internal macro |\@action|. All of this in the gantt setting. +% \begin{macrocode} +\newcommand{\ganttchart}[1][]{\begin{figure}[ht]\centering +\gantt@set{#1} +\def\gantt@wps{\pdataref@num{all}{wp}{count}} +\begin{gantt}[#1]{\gantt@wps} + \newcounter{taskwps}\newcount\@@line + \edef\@@was{\pdataref@safe{all}{wa}{ids}} + \ifwork@areas + \@for\@@wa:=\@@was\do{% iterate over work areas + \edef\@@wps{\pdataref@safe\@@wa{wp}{ids}} + \@for\@@wp:=\@@wps\do{% iterate over work packages + \stepcounter{taskwps} + \@@line=\gantt@wps\advance\@@line by -\thetaskwps + \edef\@@tasks{\pdataref@safe\@@wp{task}{ids}} + \node at (-1/\gantt@xscale,\@@line) [above=-2pt] {\pdataRef{wp}\@@wp{label}}; + \edef\@@wphases{\pdataref@safe{wp}\@@wp{wphases}} + \@for\@@ft:=\@@wphases\do{%wp-level work phases + \decode@wphase\@@ft + \@action\@@wp\@@line\wphase@start\wphase@len\wphase@force} + \@for\@@task:=\@@tasks\do{% tasks + \edef\@@wphases{\pdataref@safe{task}\@@task{wphases}} + \@for\@@ft:=\@@wphases\do{%task-level work phases + \decode@wphase\@@ft + \@action\@@task\@@line\wphase@start\wphase@len\wphase@force}}}} + \else% ifwork@ares + \edef\@@wps{\pdataref@safe{all}{wp}{ids}} + \@for\@@wp:=\@@wps\do{% iterate over work packages + \stepcounter{taskwps} + \@@line=\gantt@wps\advance\@@line by -\thetaskwps + \edef\@@tasks{\pdataref@safe\@@wp{task}{ids}} + \node at (-1/\gantt@xscale,\@@line) [above=-2pt] {\pdataRef{wp}\@@wp{label}}; + \edef\@@wphases{\pdataref@safe{wp}\@@wp{wphases}} + \@for\@@ft:=\@@wphases\do{%iterate over the wp-level work phases + \decode@wphase\@@ft + \@action\@@wp\@@line\wphase@start\wphase@len\wphase@force} + \@for\@@task:=\@@tasks\do{% task-level work phases + \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}}} + \fi% ifwork@areas + \edef\@@deps{\pdataref@safe{all}{task}{deps}} + \@for\@@dep:=\@@deps\do{% + \@dependency{\pdataref@safe{taskdep}\@@dep{from}}{\pdataref@safe{taskdep}\@@dep{to}}} +% \end{macrocode} +% The next piece of code generates the effort sum table in draft mode +% \begin{macrocode} + \ifgantt@draft + \newcounter{gantt@month} + \newcount\@@e\newdimen\gantt@effort\newdimen\gantt@plus + \@whilenum\thegantt@month<\prop@gen@months\do{% step over months + \gantt@effort=0cm + \ifwork@areas + \edef\@@was{\pdataref@safe{all}{wa}{ids}} + \@for\@@wa:=\@@was\do{% iterate over work areas + \edef\@@wps{\pdataref@safe\@@wa{wp}{ids}} + \@for\@@wp:=\@@wps\do{% iterate over work packages + \edef\@@wphases{\pdataref@safe{wp}\@@wp{wphases}} + \@for\@@ft:=\@@wphases\do{%iterate over the wp-level work phases + \decode@wphase\@@ft + \gantt@compute@effort\wphase@start\wphase@len\wphase@force} + \edef\@@tasks{\pdataref@safe\@@wp{task}{ids}} + \@for\@@task:=\@@tasks\do{% iterate over tasks + \edef\@@wphases{\pdataref@safe{task}\@@task{wphases}} + \@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); + \else% ifwork@areas + \edef\@@wps{\pdataref@safe{all}{wp}{ids}} + \@for\@@wp:=\@@wps\do{% iterate over work packages + \edef\@@wphases{\pdataref@safe{wp}\@@wp{wphases}} + \@for\@@ft:=\@@wphases\do{%iterate over the wp-level work phases + \decode@wphase\@@ft + \gantt@compute@effort\wphase@start\wphase@len\wphase@force} + \edef\@@tasks{\pdataref@safe\@@wp{task}{ids}} + \@for\@@task:=\@@tasks\do{% iterate over tasks + \edef\@@wphases{\pdataref@safe{task}\@@task{wphases}} + \@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); + \fi% ifwork@areas + \stepcounter{gantt@month}} + \fi% ifgantt@draft + \end{gantt} + \caption{\gantt@caption}\label{fig:gantt} +\end{figure}} +% \end{macrocode} +% now the multilingual support +% \begin{macrocode} +\newcommand\gantt@caption@main{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} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\gantttaskchart} +% This macro is a variant of |\ganttchart|, but it shows the tasks consecutively, as is +% 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} + \newcounter{gantt@tasks}\newcount\@@line + \edef\@@wps{\pdataref@safe{all}{wp}{ids}} + \@for\@@wp:=\@@wps\do{% iterate over work packages + \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}; + \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} +\end{figure}} +% \end{macrocode} +% \end{macro} +% +% \subsection{Coherence}\label{sec:impl:coherence} +% +% \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$}}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\add@joint} +% |\add@joint{|\meta{first}|}{|\meta{second}|}{|\meta{sym}|}| adds \meta{sym} to the the +% |\coherence@|\meta{first}|@|\meta{second} macro for the coherence table. +% \begin{macrocode} +\newcommand\add@joint[3]{\@ifundefined{coherence@#1@#2}% +{\@namedef{coherence@#1@#2}{#3}}% +{\expandafter\g@addto@macro\csname coherence@#1@#2\endcsname{#3}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\prop@joint} +% This iterates over a comma-separated list of names and makes the necessary entries +% into the coherence table. +% \begin{macrocode} +\newcommand\prop@joint[2]{\@for\@first:=#2\do{% +\@for\@second:=#2\do{\ifx\@first\@second\else\add@joint\@first\@second{#1}\fi}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\joint*} +% Now, some instances that use these. +% \begin{macrocode} +\newcommand\jointproj[1]{\prop@joint\jpro{#1}} +\newcommand\jointpub[1]{\prop@joint\jpro{#1}} +\newcommand\jointorga[1]{\prop@joint\jorga{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\coherencematrix} +% \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}}} +\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 +joint&\multicolumn{\the@site}{l|}{\jpub $\hat=$ publication, \jpro $\hat=$ project, + \jorga $\hat=$ organization}\\\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} +\caption{\coherence@caption}\label{tab:collaboration} +\end{table}} +% \end{macrocode} +% now the multilinguality support +% \begin{macrocode} +\newcommand\coherence@caption{Previous Collaboration between {\pn} members} +% +% \end{macrocode} +% \end{macro} +% +%\subsection{Relevant Papers \& References}\label{sec:imple:papers} +% +% We first define a bibLaTeX bibliography heading that does not create headers, we need +% it somewhere. +% \begin{macrocode} +%<*cls|reporting> +\defbibheading{empty}{} +% \end{macrocode} +% We define an internal macro that prints a publication list of a given {bib\TeX} entry +% type and title for convenience. It also adds a |notype=| to the token register +% |\prop@rl| to deal with the unclassified entries from the list. +% \begin{macrocode} +\newif\if@allpapers\@allpaperstrue +\newcommand\prop@ppl[3][]{\@allpapersfalse\message{ppl processing: #2}% +\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 +% key |unclassified| to catch the unclassified ones. I guess we just have to issue a +% warning instead. +% \begin{macrocode} +\newcommand\prop@prl[1]{\message{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 +% \begin{macrocode} +\define@key{paperlist}{articles}[true]{\prop@ppl{article}{Articles}} +\define@key{paperlist}{chapters}[true]{\prop@ppl{inbook}{Book Chapters}} +\define@key{paperlist}{confpapers}[true]{\prop@ppl[,keyword=conference]{inproceedings}{Conference Papers}} +\define@key{paperlist}{wspapers}[true]{\prop@ppl[,notkeyword=conference]{inproceedings}{Workshop Papers}} +\define@key{paperlist}{theses}[true]{\prop@ppl{thesis}{Theses}} +\define@key{paperlist}{submitted}[true]{\prop@ppl[,keyword=submitted]{unpublished}{Submitted}} +\define@key{paperlist}{books}[true]{\prop@ppl{book}{Monographs}} +\define@key{paperlist}{techreports}[true]{\prop@ppl{techreport}{Technical Reports}} +% \end{macrocode} +% +% \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 +% with the empty header we created before. +% \begin{macrocode} +\newcommand\prop@paperlist[2][]{% +\begin{refsection}% +\nocite{#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]\fi% +\let\bibfont\biboldfont% +\end{refsection}} +% \end{macrocode} +% \end{macro} +% +% We only have to define the |warnpubs| and |empty| heading constructors +% +% \begin{macrocode} +\def\prop@warnpubs@message{Many of the proposers' publications are online at one of the following URIs:} +\def\prop@warnpubs@title{References} +\defbibheading{warnpubs}{\section*{\prop@warnpubs@title}% + \@ifundefined{prop@gen@pubspages} + {\@latex@warning{No publication pages specified; + use the pubspage key in the proposal environment!}} + {\prop@warnpubs@message% + \@for\@I:=\prop@gen@pubspages\do{\par\noindent\csname\@I\endcsname}}} +\defbibheading{empty}{} +% +% \end{macrocode} +% +% \subsection{Miscellaneous}\label{sec:impl:misc} +% +% \begin{macro}{\signatures} +% \begin{macrocode} +%<*pdata> +\newcommand{\signatures}[1]{\section{#1} +\qquad\number\day. \number\month. \number\year\\[6ex] +\strut\qquad Date\hfill\@for\@p:=\prop@gen@PIs\do{% +\wa@ref{person}\@p{personaltitle}~\wa@ref{person}\@p{name}\hfill}} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@dmp} +% \begin{macrocode} +\def\@dmp#1{\ifkeys\marginpar{#1}\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\euro} +% \begin{macrocode} +\renewcommand\euro{\officialeuro\xspace} +% +% \end{macrocode} +% \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: 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 theallwp req pnlong +% LocalWords: compactenum compactenum thetask newcount thegantt refsection tl +% LocalWords: nocite defbibheading ourpubs printbibliography expandafter ifnum +% LocalWords: csname endcsname count ifcase cellcolor wptable widehat qquad ct +% LocalWords: tabularnewline wplist ifgantt drafttrue RMdisclaimer draftfalse +% LocalWords: RMdisclaimerfalse RMdisclaimertrue newdimen taskwps thetaskwps +% LocalWords: whilenum hfill marginpar texteuro officialeuro texttt pnlong wpg +% LocalWords: roject xspace internallly OBJref OBJtref OJBtref ldots jointpub +% LocalWords: pdatacount pdatacount coherencematrix coherencematrix jointpub +% LocalWords: jointproj jointproj jointorga jointorga jpub jpub jproj jproj rl +% LocalWords: jorga coherencetable coherencetable vspace ifdelivs delivsfalse +% LocalWords: delivstrue boxedminipage ednotes thempfootnote mpfootnote xdef +% LocalWords: csquotes eso-foot ednoteshape footnotesize importfrom readpdata +% LocalWords: pubspage newcommand jobname.pdata jobname compromized warnpubs +% 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 +% LocalWords: delivtref dissem wpdeliv thedeliv textit wadeliv verif verif rgb +% LocalWords: milesfor longtable footnotemark footnotetext sortkey inputdelivs +% LocalWords: makeatletter makeatother italicised tikzpicture paperlist jpro +% LocalWords: textcolor namedef namedef nameuse setlength tabcolsep clange ppl +% LocalWords: arraystretch thedeliverable biboldfont bibfont sitename darkblue +% LocalWords: wpsubsection wpsubsection wpsubsectionfalse wpsubsectiontrue ppl +% LocalWords: definecolor medskip fundsuntil fundsuntil defernumbers shortname +% LocalWords: totalduration circ orga notype allpapers allpaperstrue prl sym +% LocalWords: allpapersfalse subbibliography unclass inbook confpapers wphases +% 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: mileref mileref miletref backref firstinits diff --git a/base/proposal.ins b/base/proposal.ins new file mode 100644 index 0000000..a7aaf16 --- /dev/null +++ b/base/proposal.ins @@ -0,0 +1,37 @@ +%% +%% This file generates files required to use the proposal package. +%% At your command prompt write +%% +%% latex proposal.ins +%% +%% Copyright(c) 2011 Michael Kohlhase +%% +%% This file 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. +%% +%% $Id: proposal.ins 21941 2011-06-30 07:02:41Z kohlhase $ +%% $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/base/proposal.ins $ + +\input docstrip +\preamble +\endpreamble + +%\usedir{tex/latex/listings} +\keepsilent +\askforoverwritefalse + +% generate base package +\generate{\file{proposal.cls}{\from{proposal.dtx}{cls}}} +\generate{\file{reporting.cls}{\from{proposal.dtx}{reporting}}} +\generate{\file{pdata.sty}{\from{proposal.dtx}{pdata}}} + +\Msg{*} +\Msg{* You probably need to move the file proposal.cls into a directory} +\Msg{* searched by TeX.} +\Msg{*} +\Msg{* And don't forget to refresh your filename database} +\Msg{* if your TeX distribution uses such a database.} +\Msg{*} + +\endbatchfile diff --git a/base/proposal.pdf b/base/proposal.pdf new file mode 100644 index 0000000..e2b0d53 Binary files /dev/null and b/base/proposal.pdf differ diff --git a/base/reporting.cls b/base/reporting.cls new file mode 100644 index 0000000..2df2f57 --- /dev/null +++ b/base/reporting.cls @@ -0,0 +1,137 @@ +%% +%% This is file `reporting.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% proposal.dtx (with options: `reporting') +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{reporting}[2013/02/19 v1.4 Project Reporting] +\newif\if@wpsubsection\@wpsubsectionfalse +\newif\ifsubmit\submitfalse +\newif\ifpublic\publicfalse +\newif\ifkeys\keysfalse +\newif\ifdelivs\delivsfalse +\newif\ifwork@areas\work@areastrue +\newif\if@RAM\@RAMfalse +\def\proposal@class{article} +\DeclareOption{wpsubsection}{\@wpsubsectiontrue} +\DeclareOption{submit}{\submittrue} +\DeclareOption{public}{\publictrue} +\DeclareOption{noworkareas}{\work@areasfalse\PassOptionsToClass{\CurrentOption}{pdata}} +\DeclareOption{RAM}{\@RAMtrue} +\DeclareOption{report}{\def\proposal@class{report}} +\DeclareOption{keys}{\keystrue} +\DeclareOption{deliverables}{\delivstrue} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions +\LoadClass[a4paper,twoside]{\proposal@class} +\RequirePackage{amssymb} +\RequirePackage{url} +\RequirePackage{graphicx} +\RequirePackage{colortbl} +\RequirePackage{xcolor} +\RequirePackage{rotating} +\RequirePackage{fancyhdr} +\RequirePackage{array} +\RequirePackage{xspace} +\RequirePackage{comment} +\AtBeginDocument{\ifpublic\excludecomment{private}\fi} +\RequirePackage{tikz} +\RequirePackage{paralist} +\RequirePackage{a4wide} +\RequirePackage{boxedminipage} +\renewcommand{\thempfootnote}{\roman{mpfootnote}} +\renewcommand{\familydefault}{\sfdefault} +\RequirePackage[scaled=.90]{helvet} +\RequirePackage{textcomp} +\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} +\definecolor{darkblue}{rgb}{0,0,.7} +\ifsubmit\def\prop@link@color{darkblue}\else\def\prop@link@color{blue}\fi +\RequirePackage[bookmarks=true,linkcolor=\prop@link@color, + citecolor=\prop@link@color,urlcolor=\prop@link@color,colorlinks=true, + breaklinks=true, bookmarksopen=true]{hyperref} +\ifsubmit +\RequirePackage[hide]{ed} +\RequirePackage[final,today]{svninfo} +\else +\RequirePackage[show]{ed} +\RequirePackage[eso-foot,today]{svninfo} +\fi +\renewcommand\ednoteshape{\sl\footnotesize} +\ifpublic\excludecomment{private}\else\includecomment{private}\fi +\setcounter{secnumdepth}{3} +\newif\ifofpage\ofpagefalse +\fancyhead[RE,LO]{\prop@gen@acronym} +\newcommand\prop@of@pages[2]{page~#1\ifofpage~of~#2\fi} +\fancyhead[LE,RO]{\prop@of@pages\thepage{\pdataref@num{prop}{page}{last}}} +\pagestyle{fancyplain} +\newif\if@report\@reportfalse +\newenvironment{report}[1][]% +{\@reporttrue\readpdata\jobname% +\ofpagetrue\setkeys{prop@gen}{#1}% +\pdata@open\jobname% +\@ifundefined{prop@gen@PIs}{}{\newcounter{@PIs}\@for\@I:=\prop@gen@PIs\do{\stepcounter{@PIs}}}% +\@ifundefined{prop@gen@sites}{}{\newcounter{@sites}\@for\@I:=\prop@gen@sites\do{\stepcounter{@sites}}}% +\setcounter{page}{0}% +\begin{prop@report}} +{\end{prop@report}% +\pdata@def{prop}{page}{last}{\thepage}\ofpagefalse\newpage +\printbibliography[heading=warnpubs] +\pdata@close} +\newenvironment{prop@report} +{\begin{center} + {\LARGE Final Project Report}\\[.2cm] + {\LARGE\textbf{\prop@gen@title}}\\[.3cm] + {\LARGE Acronym: {\prop@gen@acronym}}\\[.2cm] + {\large\today}\\[1em] + \begin{tabular}{c*{\the@PIs}{c}} + \prop@tl\prop@gen@PIs{\wa@ref{person}\tl@ext{name}}\\ + \prop@tl\prop@gen@PIs{\wa@ref{institution}{\wa@ref{person}\tl@ext{affiliation}}{name}} + \end{tabular}\\[2cm] +\end{center} +\setcounter{tocdepth}{2}\tableofcontents\newpage\setcounter{page}{1}} +{} +\defbibheading{empty}{} +\newif\if@allpapers\@allpaperstrue +\newcommand\prop@ppl[3][]{\@allpapersfalse\message{ppl processing: #2}% +\printbibliography[heading=subbibliography,type=#2,title=#3#1]% +\@ifundefined{prop@rl}{\xdef\prop@rl{#2}}{\xdef\prop@rl{\prop@rl, #2}}} +\newcommand\prop@prl[1]{\message{unclassified: #1}% +\printbibliography[heading=subbibliography,title=Unclassified,#1]}% +\define@key{paperlist}{unclassified}[true]{\message{unclass: \prop@rl}\prop@prl\prop@rl} +\define@key{paperlist}{articles}[true]{\prop@ppl{article}{Articles}} +\define@key{paperlist}{chapters}[true]{\prop@ppl{inbook}{Book Chapters}} +\define@key{paperlist}{confpapers}[true]{\prop@ppl[,keyword=conference]{inproceedings}{Conference Papers}} +\define@key{paperlist}{wspapers}[true]{\prop@ppl[,notkeyword=conference]{inproceedings}{Workshop Papers}} +\define@key{paperlist}{theses}[true]{\prop@ppl{thesis}{Theses}} +\define@key{paperlist}{submitted}[true]{\prop@ppl[,keyword=submitted]{unpublished}{Submitted}} +\define@key{paperlist}{books}[true]{\prop@ppl{book}{Monographs}} +\define@key{paperlist}{techreports}[true]{\prop@ppl{techreport}{Technical Reports}} +\newcommand\prop@paperlist[2][]{% +\begin{refsection}% +\nocite{#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]\fi% +\let\bibfont\biboldfont% +\end{refsection}} +\def\prop@warnpubs@message{Many of the proposers' publications are online at one of the following URIs:} +\def\prop@warnpubs@title{References} +\defbibheading{warnpubs}{\section*{\prop@warnpubs@title}% + \@ifundefined{prop@gen@pubspages} + {\@latex@warning{No publication pages specified; + use the pubspage key in the proposal environment!}} + {\prop@warnpubs@message% + \@for\@I:=\prop@gen@pubspages\do{\par\noindent\csname\@I\endcsname}}} +\defbibheading{empty}{} +\endinput +%% +%% End of file `reporting.cls'. diff --git a/dfg/Makefile b/dfg/Makefile new file mode 100644 index 0000000..97619bc --- /dev/null +++ b/dfg/Makefile @@ -0,0 +1,17 @@ +PREFIX = ../lib +PACKAGE = dfg +TDSCOLL = proposal +DTX.cls.base = dfgproposal +TDS.tex = dfgreporting.cls dfgpdata.sty +CTAN = $(TDS.tex) +EXDIRS = examples + +all: package doc + @for d in $(EXDIRS); do (cd $$d && $(MAKE) -$(MAKEFLAGS) $@); done; + +include $(PREFIX)/Makefile.vars +TEXINPUTS = .: +include $(PREFIX)/Makefile.in + + + diff --git a/dfg/README b/dfg/README new file mode 100644 index 0000000..86dafab --- /dev/null +++ b/dfg/README @@ -0,0 +1,15 @@ +dfgproposal.cls: A class for preparing DFG proposals for collaborative projects +dfgreporting.cls: A class for reporting on DFG projects. + +The dfgproposal and dfgreporting classes supports many of the specific elements of an +Einzelantrag to the DFG and the respective reporting documents. It is optimized towards +collaborative projects. The package comes with extensive examples. To start a new proposal +or report just copy the respective directory and modify. Note that the structure of EU +proposals changes from time to time, so that the examples may be out of date. + +Copyright(c) 2010 Michael Kohlhase +The package is distributed under the terms of the LaTeX Project Public License (LPPL) + +The development version of this package can be found at +https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/dfg + diff --git a/dfg/dfgpdata.sty b/dfg/dfgpdata.sty new file mode 100644 index 0000000..ff70019 --- /dev/null +++ b/dfg/dfgpdata.sty @@ -0,0 +1,83 @@ +%% +%% This is file `dfgpdata.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% dfgproposal.dtx (with options: `pdata') +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{dfgpdata}[2013/02/19 v1.4 DFG Project Data] +\newif\ifdeutsch\deutschfalse +\DeclareOption{german}{\deutschtrue\message{Deutscher Antrag}} +\ProcessOptions +\define@key{prop@gen}{thema}{\def\prop@gen@thema{#1}\pdata@def{prop}{gen}{thema}{#1}} +\renewcommand\prop@gen@instrument{Neuantrag auf Sachbeihilfe} +\newcommand\prop@gen@thema{??? Thema ???} +\newcommand\deu[1]{#1} +\newcommand\dfg@applicants@lines{% +\prop@tl\prop@gen@PIs{\wa@ref{person}\tl@ext{personaltitle} \wa@ref{person}\tl@ext{name}}\\ +\prop@tl\prop@gen@PIs{\wa@ref{person}\tl@ext{academictitle}}\\ +\prop@tl\prop@gen@PIs{\wa@ref{person}\tl@ext{birthdate}}\\} +\newcommand\dfg@applicants@institute@lines{% +\prop@tl\prop@gen@PIs{\wa@ref{institution}{\wa@ref{person}\tl@ext{affiliation}}{shortname}}\\ +\prop@tl\prop@gen@PIs{\wa@ref{person}\tl@ext{workaddress}}\\ +\prop@tl\prop@gen@PIs{Tel: \wa@ref{person}\tl@ext{worktel}}\\ +\prop@tl\prop@gen@PIs{Fax: \wa@ref{person}\tl@ext{workfax}}\\ +\prop@tl\prop@gen@PIs{\wa@ref{person}\tl@ext{email}}\\} +\newcommand\dfg@applicants@private@lines{% +\prop@tl\prop@gen@PIs{\wa@ref{person}\tl@ext{privaddress}}\\ +\prop@tl\prop@gen@PIs{Tel: \wa@ref{person}\tl@ext{privtel}}\\} +\newcommand\dfg@applicants{% +\subsection{\if@sites\ifnum\the@sites>1 Joint Proposal; \fi\fi% +Applicant\if@sites\ifnum\the@PIs>1{s}\fi\fi\ \deu{(Antragsteller)}}% +\dfg@applicants@table} +\newcommand\dfg@topic{\subsection{\ifdeutsch Thema\else Topic \deu{(Thema)}\fi}\prop@gen@thema} +\newcommand\dfg@area@field{% +\ifdeutsch\subsection{Fachgebiet und Arbeitsrichtung}\else +\subsection{Research area and field of work \deu{(Fachgebiet und Arbeitsrichtung)}}\fi +\ifdeutsch Disziplin\else Scientific discipline\fi: \prop@gen@discipline\\ +\ifdeutsch Arbeitsgebiet\else Fields of work\fi: \prop@gen@areas} +\newcommand\dfgprojpapers[2][]{\prop@paperlist[#1]{#2}} +\ifdeutsch +\renewcommand\prop@of@pages[2]{Seite~#1\ifofpage~von~#2\fi} +\renewcommand\wp@mk@title[1]{Arbeitspaket {#1}} +\renewcommand\wp@label[1]{AP{#1}} +\ifwork@areas +\renewcommand\wa@label[1]{AB{#1}} +\renewcommand\wa@mk@title[1]{Arbeitsbereich {#1}} +\fi +\renewcommand\prop@legend@totals{\textbf{Summen}} +\renewcommand\prop@legend@intendedtotals{\textbf{intendierte Summen}} +\renewcommand\wpfig@legend@wap{\textbf{\ifwork@areas{Arbeitsbereiche}\else{AP}\fi}} +\renewcommand\wpfig@legend@title{\textbf{Titel}} +\renewcommand\wpfig@legend@type{\textbf{Typ}} +\renewcommand\wpfig@legend@page{\textbf{Seite}} +\renewcommand\wpfig@legend@start{\textbf{Start}} +\renewcommand\wpfig@legend@length{\textbf{Dauer}} +\renewcommand\wpfig@legend@end{\textbf{Ende}} +\renewcommand\wpfig@legend@siteRM[1]{\site{#1}\if@RAM\ PM\fi} +\renewcommand\wpfig@legend@siteRAM[1]{\site{#1}\ HM} +\renewcommand\wpfig@legend@totalRM{Summe\if@RAM\ PM\fi} +\renewcommand\wpfig@legend@totalRAM{Summe HM} +\renewcommand\wpfig@legend@RM{PM} +\renewcommand\wpfig@legend@RAM{HM} +\renewcommand\wpfig@legend@RAM@expl{\if@RAM P/HM $\widehat=$ Personen/Hilfskraft Monate;\else\ Aufw\"ande in Personenmonaten\\\fi} +\renewcommand\wpfig@legend@lead@expl{(Arbeitspaketleiter sind \wp@lead@style@explained} +\renewcommand\wp@lead@style@explained{grau und kursiv markiert)} +\renewcommand\wpfig@legend@caption{{\ifwork@areas Arbeitsbereiche und \fi}Arbeitspakete} +\renewcommand\wp@legend@site{Partner} +\renewcommand\wp@legend@effort{Aufwand\if@RAM{ (PM+HM)}\fi} +\renewcommand\wp@legend@all{\textbf{Summe}} +\renewcommand\gantt@caption@main{Zeitliche Verteilung der Arbeitspakete} +\renewcommand\gantt@caption@lower{draft: unten die Lastverteilung} +\renewcommand\coherence@caption{Bisherige Kollaboration der {\pn} Partner} +\renewcommand\objective@label[1]{Z#1} +\renewcommand\task@label[1]{S#1} +\renewcommand\legend@partners{Partner} +\renewcommand\legend@lead{Leiter} +\renewcommand\task@label@long{Schritt} +\fi +\endinput +%% +%% End of file `dfgpdata.sty'. diff --git a/dfg/dfgproposal.cls b/dfg/dfgproposal.cls new file mode 100644 index 0000000..b28bb16 --- /dev/null +++ b/dfg/dfgproposal.cls @@ -0,0 +1,110 @@ +%% +%% This is file `dfgproposal.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% dfgproposal.dtx (with options: `cls') +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesClass{dfgproposal}[2013/02/19 v1.4 DFG Proposal] +\newif\ifgeneral\generalfalse +\DeclareOption{general}{\generaltrue} +\DeclareOption{german}{\PassOptionsToPackage{\CurrentOption}{dfgpdata}} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{proposal}} +\ProcessOptions +\LoadClass{proposal} +\RequirePackage{eurosym} +\RequirePackage{dfgpdata} +\ifdeutsch\RequirePackage[ngerman]{babel} +\else\RequirePackage[ngerman,USenglish]{babel}\fi +\newenvironment{sitedescription}[2][]% +{\def\@test{#1}\def\@@title{\ifx\@test\@empty\wa@ref{institution}{#2}{acronym}\else #1\fi: +\textsc{\wa@ref{institution}{#2}{name}}} +\@for\@I:=#2\do{\pdata@target{site}\@I{}}\subsubsection\@@title} +{} +\newlength\applicants@table@columnwidth +\newcommand\dfg@applicants@table% +{\setlength\applicants@table@columnwidth\textwidth +\advance\applicants@table@columnwidth by -6em +\divide\applicants@table@columnwidth by \the@PIs +\ifnum\the@PIs>2\begin{tabular}{|l|*{\the@PIs}{p{\applicants@table@columnwidth}|}} +\else\begin{tabular}{|l|*{\the@PIs}{l|}}\fi +\hline +\dfg@applicants@lines\hline +&\multicolumn{\the@PIs}{|l|}{\textbf{Work Address\deu{ (Dienstanschrift)}:}}\\\hline +\dfg@applicants@institute@lines\hline +&\multicolumn{\the@PIs}{|l|}{\textbf{Private Address\deu{ (Privatanschrift)}:}}\\\hline +\dfg@applicants@private@lines\hline +\end{tabular}} +\renewenvironment{prop@proposal} +{\thispagestyle{empty}% +\begin{center} +{\LARGE \prop@gen@instrument}\\[.2cm] +{\LARGE\textbf{\prop@gen@title}}\\[.3cm] +%{\LARGE Acronym: {\prop@gen@acronym}}\\[.2cm] +%{\large\today}\\[1em] +\WAauthorblock[aff]\prop@gen@PIs\\[2cm] +\end{center} +\ifgeneral +\edef\keep@tocdepth{\value{tocdepth}} +\setcounter{tocdepth}{2}\tableofcontents +\setcounter{tocdepth}{\keep@tocdepth} +\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 +\dfg@topic +\dfg@area@field +\ifdeutsch\subsection{Voraussichtliche Gesamtdauer}\else +\subsection{Anticipated total duration \deu{(Voraussichtliche Gesamtdauer)}} +\fi +\@ifundefined{prop@gen@totalduration}{????}{\prop@gen@totalduration}; +\ifdeutsch +\@ifundefined{prop@gen@since}{Erstantrag}{Fortsetungsantrag, das Project l\"auft seit + \prop@gen@since.} +\else +\@ifundefined{prop@gen@since}{initial proposal}{continuation proposal, the project started + \prop@gen@since.} +\fi +\ifdeutsch\subsection{Antragszeitraum}\else +\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\else\selectlanguage{USenglish}\fi +\newpage\fi%ifgeneral +\setcounter{page}{0}} +{} +\ifdeutsch +\def\prop@warnpubs@message{Viele der Publikationen der Antragsteller sind verf\"ugbar unter folgenden URLs:} +\def\prop@warnpubs@title{Literatur} +\fi +\newcommand\attachments{\ifdeutsch\section{Verzeichnis der Anlagen}\else +\section{List of Attachments \deu{(Verzeichnis der Anlagen)}}\fi +\begin{itemize} +\@for\@I:=\prop@gen@PIs\do{% + \item\ifdeutsch Lebenslauf und Publikatinsverzeichnis\else + Curriculum Vitae and list of publications for \fi + \@nameuse{wa@person@\@I @personaltitle} + \@nameuse{wa@person@\@I @name} + (CD + \ifdeutsch Ausdruck\else printed version\fi)} +\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 + (nur CD)\fi +\end{itemize}} +\ifgeneral +\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} +\excludecomment{Zusammenfassung} +\fi +\endinput +%% +%% End of file `dfgproposal.cls'. diff --git a/dfg/dfgproposal.dtx b/dfg/dfgproposal.dtx new file mode 100644 index 0000000..6664fa9 --- /dev/null +++ b/dfg/dfgproposal.dtx @@ -0,0 +1,607 @@ +% \iffalse meta-comment +% A class for preparing DFG proposals +% +% Copyright (c) 2011 Michael Kohlhase, all rights reserved +% +% This file 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 development version of this file can be found at +% $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/dfg/dfgproposal.dtx $ +% \fi +% +% \iffalse +%\NeedsTeXFormat{LaTeX2e}[1999/12/01] +%\ProvidesClass{dfgproposal}[2013/02/19 v1.4 DFG Proposal] +%\ProvidesPackage{dfgpdata}[2013/02/19 v1.4 DFG Project Data] +%\ProvidesPackage{dfgreporting}[2013/02/19 v1.4 DFG Project Reporting] +%<*driver> +\documentclass[twoside]{ltxdoc} +\DoNotIndex{\def,\long,\edef,\xdef,\gdef,\let,\global} +\DoNotIndex{\begin,\AtEndDocument,\newcommand,\newcounter,\stepcounter} +\DoNotIndex{\immediate,\openout,\closeout,\message,\typeout} +\DoNotIndex{\section,\scshape,\arabic} +\EnableCrossrefs +%\CodelineIndex +%\OnlyDescription +\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} +\bibliography{kwarc} +\usepackage[bookmarks=true,linkcolor=blue, + citecolor=blue,urlcolor=blue,colorlinks=true, + breaklinks=true, bookmarksopen=true]{hyperref} +\makeindex +\newcommand\subversion{\textsc{Subversion}\xspace} +\begin{document} +\svnInfo $Id: dfgproposal.dtx 24385 2013-05-12 09:53:03Z kohlhase $ +\svnKeyword $URL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/dfg/dfgproposal.dtx $ +\DocInput{dfgproposal.dtx} +\end{document} +% +% \fi +% +%\iffalse\CheckSum{627}\fi +% +% \changes{v1.1}{2011/03/18}{separating out from new proposal class} +% \changes{v1.1}{2011/12/09}{various tweaks and corrections} +% +% \GetFileInfo{dfgproposal.cls} +% +% \MakeShortVerb{\|} +% +% \title{Preparing DFG Proposals and Reports in {\LaTeX} with \texttt{dfgproposal.cls}} +% \author{Michael Kohlhase\\ +% Computer Science, Jacobs University Bremen\\ +% \url{http://kwarc.info/kohlhase}} +% \maketitle +% +% \begin{abstract} +% The |dfgproposal| class supports many of the specific elements of a DFG Proposal. It +% is optimized towards collaborative projects. The package comes with an extensive +% example (a fake DFG proposal) that shows all elements in action. +% \end{abstract} +% +% \tableofcontents\newpage +% +% \section{Introduction}\label{sec:intro} +% +% 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. +% +% The |dfgproposal| class extends the |proposal| class~\cite{Kohlhase:pplp:svn} and +% supports many of the specific elements of a DFG Proposal. The package documentation +% is still preliminary, fragmented and incomplete and only dwells on the particulars of +% DFG proposals, so we treat~\cite{Kohlhase:pplp:svn} as a prerequisite. Please consult +% the example proposal |dfg/proposal.tex|, which comes with the package and shows the usage of +% the class in action. It is intended as a template for your proposal, but please bear in +% mind that the DFG guidelines may change, if in doubt, please consult the DFG guide for +% proposers~\cite{DFG:102e}. +% +% The |dfgreporting| class supports most of the specific elements of the final project +% reports to the DFG. The example report |dfg/finalreport.tex| is intended as a template +% for your final report, the DFG guide~\cite[pp. 9f]{DFG:2012e} gives details (the German +% Version~\cite[pp. 23ff]{DFG:201} has more). +% +% The |dfgproposal| and |dfgreporting| classes and the |dfgpdata| package are 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 +% |dfgproposal|. +% +% \section{The User Interface}\label{sec:user-interface} +% +% In this section we will describe the functionality offered by the |dfgproposal| class +% along the lines of the macros and environments the class provides. Much of the +% functionality can better be understood by studying the functional example |proposal.tex| +% (and its dependents) that comes with the |dfgproposal| package in conjunction with the +% proposer's leaflet of the DFG~\cite{DFG:102e} (we have included it as |1_02e.pdf| for +% convenience into the package distribution).\ednote{talk about reporting as well.} +% +% \subsection{Package Options}\label{sec:user:options} +% +% As usual in {\LaTeX}, the package is loaded by +% |\documentclass[|\meta{options}|]{dfgproposal}|, where |[|\meta{options}|]| is optional +% and gives a comma separated list of options specified in~\cite{Kohlhase:pplp:svn}. The +% |dfgproposal| class adds the two options +% \begin{compactenum} +% \item \DescribeMacro{general}|general|, which allows generates a first section with +% general proposal metadata (as the old form proposals required). This is useful to +% check all the data (and have a place to copy/paste from). +% \item \DescribeMacro{german}|german|, which makes all the generated parts in German. +% \end{compactenum} +% +% \subsection{Proposal Metadata and Title page}\label{sec:user:metadata} +% +% The metadata of the proposal is specified in the \DescribeEnv{proposal}|proposal| +% environment, which also generates the title page and the first section of the proposal +% as well as the last pages of the proposal with the signatures, enclosures, and +% references. The |proposal| environment should contain all the mandatory parts of the +% proposal text. The |proposal| environment uses the following DFG-specific keys to +% specify metadata. +% \begin{compactitem} +% \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. +% \end{compactitem} +% +% \subsection{Project-Related Papers}\label{sec:user:papers} +% +% Since August 2010, DFG requests list of ``project-related papers'' as section 2.2. We +% use the |biblatex| package to automate this. We only need to use +% \DescribeMacro{\dfgprojpapers}|\dfgprojpapers{|\meta{keys}|}|, where \meta{keys} is a +% comma-separated list of keys from the bibTeX database used in the proposal. Note that +% 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|. +% +% \subsection{Final Report Infrastructure}\label{sec:user:report} +% +% The |dfgreporting| class gives an infrastructure for writing final reports of completed +% projects (see the file |finalreport.tex| in the package distribution). The +% \DescribeEnv{finalreport}|finalreport| environment has functionality analogous to the +% |proposal| environment. It takes the same metadata keys --- making it easy to generate +% by copy/paste from the proposal --- but adds the keys +% \DescribeMacro{reportperiod}|reportperiod| for specifying the funded period, +% \DescribeMacro{applareas}|applareas| for the application areas, and +% \DescribeMacro{*employed}\meta{site}|employed| for all sites \meta{site}. The latter +% allow to specify the employee and their employment times. Furthermore, the key +% \DescribeMacro{key}|key| can be used to specify the reference key (something like +% \texttt{KO 2428 47-11}) given to the project by DFG. Note that in the case of multiple +% proposers, you can use multiple instances of |key| to specify more than one reference +% key. +% +% \section{Limitations and Enhancements}\label{sec:limitations} +% +% The |dfgproposal| is relatively early in its development, and many enhancements are +% conceivable. We will list them here. +% \begin{enumerate} +% \item Some people still want to write their proposal and reports in German, for that it +% would be nice to have a localized version. +% \item it would be nice if we could count the characters in the places where lengths are +% restricted (|Abriss|, and |thema|). Then we could warn the authors. +% \end{enumerate} +% If you have other enhancements to propose or feel you can alleviate some limitation, +% please feel free to contact the author. +% +%\section*{Acknowledgements} +% +% The following persons have contributed suggestions and fixes to the |dfgproposal| class: +% Florian Rabe, Christoph Lange, Andrea Kohlhase, Jens Lehmann. +% +% \StopEventually{\newpage\PrintIndex\newpage\PrintChanges\newpage\printbibliography}\newpage +% +% \section{The Implementation}\label{sec:implementation} +% +% In this section we describe the implementation of the functionality of the |dfgproposal| +% and |dfgreporting| classes and the |dfgpdata| package. +% +% \subsection{Package Options and Format Initialization}\label{sec:impl:options} +% +% We first set up the options for the package. +% +% \begin{macrocode} +%\newif\ifgeneral\generalfalse +%\DeclareOption{general}{\generaltrue} +%\DeclareOption{german}{\PassOptionsToPackage{\CurrentOption}{dfgpdata}} +%\DeclareOption*{\PassOptionsToClass{\CurrentOption}{proposal}} +%\DeclareOption*{\PassOptionsToClass{\CurrentOption}{reporting}} +%\newif\ifdeutsch\deutschfalse +%\DeclareOption{german}{\deutschtrue\message{Deutscher Antrag}} +%\ProcessOptions +% \end{macrocode} +% +% Then we load the packages we make use of +% +% \begin{macrocode} +%\LoadClass{proposal} +%\LoadClass{reporting} +%<*cls|reporting> +\RequirePackage{eurosym} +\RequirePackage{dfgpdata} +\ifdeutsch\RequirePackage[ngerman]{babel} +\else\RequirePackage[ngerman,USenglish]{babel}\fi +% +% \end{macrocode} +% +% \subsection{Proposal Metadata}\label{sec:impl:metadata} +% +% We extend the metadata keys from the |proposal| class. +% \begin{macrocode} +%<*pdata> +\define@key{prop@gen}{thema}{\def\prop@gen@thema{#1}\pdata@def{prop}{gen}{thema}{#1}} +% +% \end{macrocode} +% and now the ones for the final report +% \begin{macrocode} +%<*reporting> +\define@key{prop@gen}{reportperiod}{\def\prop@gen@reportperiod{#1}} +\define@key{prop@gen}{applareas}{\def\prop@gen@applareas{#1}} +\define@key{prop@gen}{key}{\@dmp{key=#1}% +\@ifundefined{prop@gen@keys}{\xdef\prop@gen@keys{#1}}{\xdef\prop@gen@keys{\prop@gen@keys,#1}}} +\define@key{prop@gen}{coop}{\@dmp{coop=#1}% +\@ifundefined{prop@gen@coops}{\xdef\prop@gen@coops{{#1}}}{\xdef\prop@gen@coops{\prop@gen@coops,{#1}}}} +\define@key{prop@gen}{projpapers}{\def\prop@gen@projpapers{#1}} +% +% \end{macrocode} +% +% and the default values, these will be used, if the author does not specify something +% better. +% +% \begin{macrocode} +%<*pdata> +\renewcommand\prop@gen@instrument{Neuantrag auf Sachbeihilfe} +\newcommand\prop@gen@thema{??? Thema ???} +\newcommand\deu[1]{#1} +% \end{macrocode} +% +% Now, we can build the title page and general information, we first start with the +% applicants table. The following macros build up the lines to be used in the table +% eventually. +% \begin{macro}{\dfg@applicants@*} +% the macros use the |\prop@tl| macro from the base |proposal| package which iterates +% over the first argument (the PIs here) building up lines with the material from the +% second argument (where |\tl@ext| is the current PI). +% \begin{macrocode} +\newcommand\dfg@applicants@lines{% +\prop@tl\prop@gen@PIs{\wa@ref{person}\tl@ext{personaltitle} \wa@ref{person}\tl@ext{name}}\\ +\prop@tl\prop@gen@PIs{\wa@ref{person}\tl@ext{academictitle}}\\ +\prop@tl\prop@gen@PIs{\wa@ref{person}\tl@ext{birthdate}}\\} +\newcommand\dfg@applicants@institute@lines{% +\prop@tl\prop@gen@PIs{\wa@ref{institution}{\wa@ref{person}\tl@ext{affiliation}}{shortname}}\\ +\prop@tl\prop@gen@PIs{\wa@ref{person}\tl@ext{workaddress}}\\ +\prop@tl\prop@gen@PIs{Tel: \wa@ref{person}\tl@ext{worktel}}\\ +\prop@tl\prop@gen@PIs{Fax: \wa@ref{person}\tl@ext{workfax}}\\ +\prop@tl\prop@gen@PIs{\wa@ref{person}\tl@ext{email}}\\} +\newcommand\dfg@applicants@private@lines{% +\prop@tl\prop@gen@PIs{\wa@ref{person}\tl@ext{privaddress}}\\ +\prop@tl\prop@gen@PIs{Tel: \wa@ref{person}\tl@ext{privtel}}\\} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\dfg@applicants} +% We automatically make it plurals if there is more than one PI and we indicate a joint +% proposal if there is more than one site. +% \begin{macrocode} +\newcommand\dfg@applicants{% +\subsection{\if@sites\ifnum\the@sites>1 Joint Proposal; \fi\fi% +Applicant\if@sites\ifnum\the@PIs>1{s}\fi\fi\ \deu{(Antragsteller)}}% +\dfg@applicants@table} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\newcommand\dfg@topic{\subsection{\ifdeutsch Thema\else Topic \deu{(Thema)}\fi}\prop@gen@thema} +% \end{macrocode} +% +% \begin{macrocode} +\newcommand\dfg@area@field{% +\ifdeutsch\subsection{Fachgebiet und Arbeitsrichtung}\else +\subsection{Research area and field of work \deu{(Fachgebiet und Arbeitsrichtung)}}\fi +\ifdeutsch Disziplin\else Scientific discipline\fi: \prop@gen@discipline\\ +\ifdeutsch Arbeitsgebiet\else Fields of work\fi: \prop@gen@areas} +% +% \end{macrocode} +% +% \begin{environment}{sitedescription} +% \ednote{this code should probably be refactored into proposal.dtx} +% \begin{macrocode} +%<*cls> +\newenvironment{sitedescription}[2][]% +{\def\@test{#1}\def\@@title{\ifx\@test\@empty\wa@ref{institution}{#2}{acronym}\else #1\fi: +\textsc{\wa@ref{institution}{#2}{name}}} +\@for\@I:=#2\do{\pdata@target{site}\@I{}}\subsubsection\@@title} +{} +% \end{macrocode} +% \end{environment} +% +% \subsection{Proposal Title Page}\label{sec:impl:proptitlepage} +% +% \begin{macro}{\dfg@applicants@table} +% Now, we can build the title page and general information, we first start with the +% applicants table: We first compute the width of the columns for the case where we have +% more than two PIs. Then we add the lines we compute with the auxiliary macros +% |\dfg@applicants@lines|, |\dfg@applicants@institute@lines| and +% |\dfg@applicants@private@lines| +% \begin{macrocode} +\newlength\applicants@table@columnwidth +\newcommand\dfg@applicants@table% +{\setlength\applicants@table@columnwidth\textwidth +\advance\applicants@table@columnwidth by -6em +\divide\applicants@table@columnwidth by \the@PIs +\ifnum\the@PIs>2\begin{tabular}{|l|*{\the@PIs}{p{\applicants@table@columnwidth}|}} +\else\begin{tabular}{|l|*{\the@PIs}{l|}}\fi +\hline +\dfg@applicants@lines\hline +&\multicolumn{\the@PIs}{|l|}{\textbf{Work Address\deu{ (Dienstanschrift)}:}}\\\hline +\dfg@applicants@institute@lines\hline +&\multicolumn{\the@PIs}{|l|}{\textbf{Private Address\deu{ (Privatanschrift)}:}}\\\hline +\dfg@applicants@private@lines\hline +\end{tabular}} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{prop@proposal} +% This internal environment is called in the |proposal| environment from the |proposal| +% class. +% \begin{macrocode} +\renewenvironment{prop@proposal} +{\thispagestyle{empty}% +\begin{center} +{\LARGE \prop@gen@instrument}\\[.2cm] +{\LARGE\textbf{\prop@gen@title}}\\[.3cm] +{\LARGE Acronym: {\prop@gen@acronym}}\\[.2cm] +{\large\today}\\[1em] +\WAauthorblock[aff]\prop@gen@PIs\\[2cm] +\end{center} +\edef\keep@tocdepth{\value{tocdepth}} +\setcounter{tocdepth}{2}\tableofcontents +\setcounter{tocdepth}{\keep@tocdepth} +\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 +\dfg@topic +\dfg@area@field +\ifdeutsch\subsection{Voraussichtliche Gesamtdauer}\else +\subsection{Anticipated total duration \deu{(Voraussichtliche Gesamtdauer)}} +\fi +\@ifundefined{prop@gen@totalduration}{????}{\prop@gen@totalduration}; +\ifdeutsch +\@ifundefined{prop@gen@since}{Erstantrag}{Fortsetungsantrag, das Project l\"auft seit + \prop@gen@since.} +\else +\@ifundefined{prop@gen@since}{initial proposal}{continuation proposal, the project started + \prop@gen@since.} +\fi +\ifdeutsch\subsection{Antragszeitraum}\else +\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\else\selectlanguage{USenglish}\fi +\newpage\fi%ifgeneral +\setcounter{page}{0}} +{} +% \end{macrocode} +% \end{environment} +% We also need to translage some of the generated parts +% \begin{macrocode} +\ifdeutsch +\def\prop@warnpubs@message{Viele der Publikationen der Antragsteller sind verf\"ugbar unter folgenden URLs:} +\def\prop@warnpubs@title{Literatur} +\fi +% \end{macrocode} +% +% \begin{macro}{\attachments} +% \ednote{MK: this is deprecated (no longer useful with the ELAN system), delete at some time} +% \begin{macrocode} +\newcommand\attachments{\ifdeutsch\section{Verzeichnis der Anlagen}\else +\section{List of Attachments \deu{(Verzeichnis der Anlagen)}}\fi +\begin{itemize} +\@for\@I:=\prop@gen@PIs\do{% + \item\ifdeutsch Lebenslauf und Publikatinsverzeichnis\else + Curriculum Vitae and list of publications for \fi + \@nameuse{wa@person@\@I @personaltitle} + \@nameuse{wa@person@\@I @name} + (CD + \ifdeutsch Ausdruck\else printed version\fi)} +\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 + (nur CD)\fi +\end{itemize}} +% +% \end{macrocode} +% \end{macro} +% +% \subsection{Reporting Title Page} +% +% The |prop@report| environment is similar, but somewhat simpler. +% +% \begin{macro}{\dfg@applicants@table} +% Now, we can build the title page and general information, we first start with the +% applicants table: +% \begin{macrocode} +%<*reporting> +\newcommand\dfg@applicants@table% +{\begin{tabular}{|l|*{\the@PIs}{l|}}\hline +\dfg@applicants@lines\hline +&\multicolumn{\the@PIs}{|l|}{\textbf{Private Address\deu{ (Privatanschrift)}:}}\\\hline +\dfg@applicants@private@lines\hline +\end{tabular}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\dfg@institute@table} +% Now, we can build the title page and general information, we first start with the +% applicants table: +% \begin{macrocode} +\newcommand\dfg@institute@table% +{\begin{tabular}{|l|*{\the@PIs}{l|}}\hline +\dfg@applicants@institute@lines\hline +\end{tabular}} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{prop@report} +% \begin{macrocode} +\newcommand\prop@assoc[2]{\let\@tmpop=\relax\@for\@I:=#2\do{\@tmpop\@I\let\@tmpop=#1}} +\newcommand\show@prop@gen@keys{\def\@cb{, }\@ifundefined{prop@gen@keys}{??:???? ?/?}{\prop@assoc\@cb\prop@gen@keys}} +\renewenvironment{prop@report} +{\selectlanguage{USenglish} +\thispagestyle{empty}% +\begin{center} + {\LARGE Final Project Report}\\[.2cm] + {\LARGE\textbf{\prop@gen@title}}\\[.3cm] + {\LARGE Acronym: {\prop@gen@acronym}}\\[.2cm] + {\large Reference number(s): \show@prop@gen@keys}\\[.2cm] + {\large\today}\\[1em] + \begin{tabular}{c*{\the@PIs}{c}} + \prop@tl\prop@gen@PIs{\wa@ref{person}\tl@ext{name}}\\ + \prop@tl\prop@gen@PIs{\wa@ref{institution}{\wa@ref{person}\tl@ext{affiliation}}{name}} + \end{tabular}\\[2cm] +\end{center} +\setcounter{tocdepth}{1}\tableofcontents\newpage\setcounter{page}{1} +\section{General Information \deu{(Allgemeine Angaben)}} +\subsection{Reference Numbers \deu{(DFG Gesch\"aftszeichen)}} +\show@prop@gen@keys +\dfg@applicants +\subsection{Institute/Chair \deu{(Institut/Lehrstuhl)}}\dfg@institute@table +\dfg@topic +% no longer necessary +% \subsection{DFG-Funded Researchers \deu{(Aus DFG-Mitteln bezahlte Wissenschaftler)}} +% \begin{tabular}{|l|l|}\hline +% Partner & Employee/Period\\\hline\hline +% \prop@gen@employed@lines +% \end{tabular} +\subsection{Report and Funding Period \deu{(Berichts- und F\"orderzeitraum)}} +\prop@gen@reportperiod +\dfg@area@field +\subsection{Application Areas \deu{(Verwertungsfelder)}}\prop@gen@applareas +% no longer necessary +% \subsection{Cooperation Partners \deu{(Kooperationspartner)}} +% \begin{compactitem} +% \@for\@I:=\prop@gen@coops\do{\item \@I} +% \end{compactitem} +\dfgprojpapers\prop@gen@projpapers} +{\signatures{Signatures \deu{(Unterschriften)}}} +% +% \end{macrocode} +% \end{environment} +% +% \begin{macrocode} +%<*cls> +\ifgeneral +\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} +\excludecomment{Zusammenfassung} +\fi +% +% \end{macrocode} +% +% \subsection{Project-Related Papers}\label{sec:impl:papers} +% +% \begin{macro}{\dfgprojpapers} +% \begin{macrocode} +%<*pdata> +\newcommand\dfgprojpapers[2][]{\prop@paperlist[#1]{#2}} +% +% \end{macrocode} +% \end{macro} +% +% \subsection{German Reports}\label{sec:impl:german} +% +% We have to redefine some macros for German reports. +% \begin{macrocode} +%<*pdata> +\ifdeutsch +\renewcommand\prop@of@pages[2]{Seite~#1\ifofpage~von~#2\fi} +\renewcommand\wp@mk@title[1]{Arbeitspaket {#1}} +\renewcommand\wp@label[1]{AP{#1}} +\ifwork@areas +\renewcommand\wa@label[1]{AB{#1}} +\renewcommand\wa@mk@title[1]{Arbeitsbereich {#1}} +\fi +\renewcommand\prop@legend@totals{\textbf{Summen}} +\renewcommand\prop@legend@intendedtotals{\textbf{intendierte Summen}} +\renewcommand\wpfig@legend@wap{\textbf{\ifwork@areas{Arbeitsbereiche}\else{AP}\fi}} +\renewcommand\wpfig@legend@title{\textbf{Titel}} +\renewcommand\wpfig@legend@type{\textbf{Typ}} +\renewcommand\wpfig@legend@page{\textbf{Seite}} +\renewcommand\wpfig@legend@start{\textbf{Start}} +\renewcommand\wpfig@legend@length{\textbf{Dauer}} +\renewcommand\wpfig@legend@end{\textbf{Ende}} +\renewcommand\wpfig@legend@siteRM[1]{\site{#1}\if@RAM\ PM\fi} +\renewcommand\wpfig@legend@siteRAM[1]{\site{#1}\ HM} +\renewcommand\wpfig@legend@totalRM{Summe\if@RAM\ PM\fi} +\renewcommand\wpfig@legend@totalRAM{Summe HM} +\renewcommand\wpfig@legend@RM{PM} +\renewcommand\wpfig@legend@RAM{HM} +\renewcommand\wpfig@legend@RAM@expl{\if@RAM P/HM $\widehat=$ Personen/Hilfskraft Monate;\else\ Aufw\"ande in Personenmonaten\\\fi} +\renewcommand\wpfig@legend@lead@expl{(Arbeitspaketleiter sind \wp@lead@style@explained} +\renewcommand\wp@lead@style@explained{grau und kursiv markiert)} +\renewcommand\wpfig@legend@caption{{\ifwork@areas Arbeitsbereiche und \fi}Arbeitspakete} +\renewcommand\wp@legend@site{Partner} +\renewcommand\wp@legend@effort{Aufwand\if@RAM{ (PM+HM)}\fi} +\renewcommand\wp@legend@all{\textbf{Summe}} +\renewcommand\gantt@caption@main{Zeitliche Verteilung der Arbeitspakete} +\renewcommand\gantt@caption@lower{draft: unten die Lastverteilung} +\renewcommand\coherence@caption{Bisherige Kollaboration der {\pn} Partner} +\renewcommand\objective@label[1]{Z#1} +\renewcommand\task@label[1]{S#1} +% \renewcommand\month@label[1]{M#1} +\renewcommand\legend@partners{Partner} +\renewcommand\legend@lead{Leiter} +\renewcommand\task@label@long{Schritt} +\fi +% +% \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: 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 diff --git a/dfg/dfgproposal.ins b/dfg/dfgproposal.ins new file mode 100644 index 0000000..941d63d --- /dev/null +++ b/dfg/dfgproposal.ins @@ -0,0 +1,37 @@ +%% +%% This file generates files required to use the dfgproposal package. +%% At your command prompt write +%% +%% latex dfgproposal.ins +%% +%% Copyright(c) 2010 Michael Kohlhase +%% +%% This file 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. +%% +%% $Id: dfgproposal.ins 23009 2012-01-18 10:12:28Z kohlhase $ +%% $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/dfg/dfgproposal.ins $ + +\input docstrip +\preamble +\endpreamble + +%\Usedir{tex/latex/listings} +\keepsilent +\askforoverwritefalse + +% generate base package +\generate{\file{dfgpdata.sty}{\from{dfgproposal.dtx}{pdata}}} +\generate{\file{dfgproposal.cls}{\from{dfgproposal.dtx}{cls}}} +\generate{\file{dfgreporting.cls}{\from{dfgproposal.dtx}{reporting}}} + +\Msg{*} +\Msg{* You probably need to move the file dfgproposal.cls, dfgreporting.cls, and dfgpdata.sty} +\Msg{* into a directory searched by TeX.} +\Msg{*} +\Msg{* And don't forget to refresh your filename database} +\Msg{* if your TeX distribution uses such a database.} +\Msg{*} + +\endbatchfile diff --git a/dfg/dfgproposal.pdf b/dfg/dfgproposal.pdf new file mode 100644 index 0000000..ba6cc57 Binary files /dev/null and b/dfg/dfgproposal.pdf differ diff --git a/dfg/dfgreporting.cls b/dfg/dfgreporting.cls new file mode 100644 index 0000000..fc9ca50 --- /dev/null +++ b/dfg/dfgreporting.cls @@ -0,0 +1,67 @@ +%% +%% This is file `dfgreporting.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% dfgproposal.dtx (with options: `reporting') +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{dfgreporting}[2013/02/19 v1.4 DFG Project Reporting] +\DeclareOption{german}{\PassOptionsToPackage{\CurrentOption}{dfgpdata}} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{reporting}} +\ProcessOptions +\LoadClass{reporting} +\RequirePackage{eurosym} +\RequirePackage{dfgpdata} +\ifdeutsch\RequirePackage[ngerman]{babel} +\else\RequirePackage[ngerman,USenglish]{babel}\fi +\define@key{prop@gen}{reportperiod}{\def\prop@gen@reportperiod{#1}} +\define@key{prop@gen}{applareas}{\def\prop@gen@applareas{#1}} +\define@key{prop@gen}{key}{\@dmp{key=#1}% +\@ifundefined{prop@gen@keys}{\xdef\prop@gen@keys{#1}}{\xdef\prop@gen@keys{\prop@gen@keys,#1}}} +\define@key{prop@gen}{coop}{\@dmp{coop=#1}% +\@ifundefined{prop@gen@coops}{\xdef\prop@gen@coops{{#1}}}{\xdef\prop@gen@coops{\prop@gen@coops,{#1}}}} +\define@key{prop@gen}{projpapers}{\def\prop@gen@projpapers{#1}} +\newcommand\dfg@applicants@table% +{\begin{tabular}{|l|*{\the@PIs}{l|}}\hline +\dfg@applicants@lines\hline +&\multicolumn{\the@PIs}{|l|}{\textbf{Private Address\deu{ (Privatanschrift)}:}}\\\hline +\dfg@applicants@private@lines\hline +\end{tabular}} +\newcommand\dfg@institute@table% +{\begin{tabular}{|l|*{\the@PIs}{l|}}\hline +\dfg@applicants@institute@lines\hline +\end{tabular}} +\newcommand\prop@assoc[2]{\let\@tmpop=\relax\@for\@I:=#2\do{\@tmpop\@I\let\@tmpop=#1}} +\newcommand\show@prop@gen@keys{\def\@cb{, }\@ifundefined{prop@gen@keys}{??:???? ?/?}{\prop@assoc\@cb\prop@gen@keys}} +\renewenvironment{prop@report} +{\selectlanguage{USenglish} +\thispagestyle{empty}% +\begin{center} + {\LARGE Final Project Report}\\[.2cm] + {\LARGE\textbf{\prop@gen@title}}\\[.3cm] + {\LARGE Acronym: {\prop@gen@acronym}}\\[.2cm] + {\large Reference number(s): \show@prop@gen@keys}\\[.2cm] + {\large\today}\\[1em] + \begin{tabular}{c*{\the@PIs}{c}} + \prop@tl\prop@gen@PIs{\wa@ref{person}\tl@ext{name}}\\ + \prop@tl\prop@gen@PIs{\wa@ref{institution}{\wa@ref{person}\tl@ext{affiliation}}{name}} + \end{tabular}\\[2cm] +\end{center} +\setcounter{tocdepth}{1}\tableofcontents\newpage\setcounter{page}{1} +\section{General Information \deu{(Allgemeine Angaben)}} +\subsection{Reference Numbers \deu{(DFG Gesch\"aftszeichen)}} +\show@prop@gen@keys +\dfg@applicants +\subsection{Institute/Chair \deu{(Institut/Lehrstuhl)}}\dfg@institute@table +\dfg@topic +\subsection{Report and Funding Period \deu{(Berichts- und F\"orderzeitraum)}} +\prop@gen@reportperiod +\dfg@area@field +\subsection{Application Areas \deu{(Verwertungsfelder)}}\prop@gen@applareas +\dfgprojpapers\prop@gen@projpapers} +{\signatures{Signatures \deu{(Unterschriften)}}} +\endinput +%% +%% End of file `dfgreporting.cls'. diff --git a/dfg/examples/Makefile b/dfg/examples/Makefile new file mode 100644 index 0000000..3674fb3 --- /dev/null +++ b/dfg/examples/Makefile @@ -0,0 +1,3 @@ +DIRS = proposal report simple-proposal +all: + @for d in $(DIRS); do (cd $$d && $(MAKE) -$(MAKEFLAGS) $@); done; diff --git a/dfg/examples/README b/dfg/examples/README new file mode 100644 index 0000000..15664e1 --- /dev/null +++ b/dfg/examples/README @@ -0,0 +1,9 @@ +This directory contains examples for DFG proposals and reports marked up with the +proposal/dfgproposal class. + +proposal: a DFG proposal 'Einzelverfahren' in the new template (valid + from Oct 2011. (provided by Jens Lehmann; thanks) +report: a corresponding report +simple-proposal: a simple DFG proposal (no work areas, no sites), re-uses files from above +lib: shared files (affiliation database, bibTeX, logos) +dfg: DFG documents explaining the proposal/reporting process diff --git a/dfg/examples/dfgdocs/2_01.pdf b/dfg/examples/dfgdocs/2_01.pdf new file mode 100644 index 0000000..7de5394 Binary files /dev/null and b/dfg/examples/dfgdocs/2_01.pdf differ diff --git a/dfg/examples/dfgdocs/2_010.pdf b/dfg/examples/dfgdocs/2_010.pdf new file mode 100644 index 0000000..c1657e0 Binary files /dev/null and b/dfg/examples/dfgdocs/2_010.pdf differ diff --git a/dfg/examples/dfgdocs/2_012e.pdf b/dfg/examples/dfgdocs/2_012e.pdf new file mode 100644 index 0000000..e777ff1 Binary files /dev/null and b/dfg/examples/dfgdocs/2_012e.pdf differ diff --git a/dfg/examples/dfgdocs/54_01_de.pdf b/dfg/examples/dfgdocs/54_01_de.pdf new file mode 100644 index 0000000..3dc8ab5 Binary files /dev/null and b/dfg/examples/dfgdocs/54_01_de.pdf differ diff --git a/dfg/examples/dfgdocs/54_01_en.pdf b/dfg/examples/dfgdocs/54_01_en.pdf new file mode 100644 index 0000000..e40b079 Binary files /dev/null and b/dfg/examples/dfgdocs/54_01_en.pdf differ diff --git a/dfg/examples/lib/WApersons.tex b/dfg/examples/lib/WApersons.tex new file mode 100644 index 0000000..98952f7 --- /dev/null +++ b/dfg/examples/lib/WApersons.tex @@ -0,0 +1,63 @@ +\WAperson[id=miko, + personaltitle=Prof. Dr., + birthdate=13. September 1964, + academictitle=Professor of Computer Science, + affiliation=jacu, + department=case, + privaddress=None of your business, + privtel=that neither, + email=m.kohlhase@jacobs-university.de, + workaddress={Campus Ring 1, 28757 Bremen}, + worktel=+49 421 200 3140, + worktelfax=+49 421 200 3140/493140, + workfax=+49 421 200 493140] + {Michael Kohlhase} + +\WAperson[id=gc, + personaltitle=Dr., + academictitle=Senior Researcher, + birthdate=14. April 1972, + affiliation=pcg, + department=pcsa, + privaddress=None of your business, + privtel=that neither, + workaddress={PCG Way 7, Hooville}, + worktel=+49 421 0815 4711, + workfax=+49 421 0815 4712, + email=gc@pcg.phony] + {Great Communicator} + +\WAinstitution[id=case,acronym=CASE,shortname=CASE, + url=http://jacobs-university.de/ses/case, + partof=jacu] + {Center for Advanced Systems Engineering} + +\WAinstitution[id=jacu,acronym=JacU, + url=http://jacobs-university.de, + streetaddress={Campus Ring 1}, + townzip={28759 Bremen}, + countryshort=D, + country=Germany, + type=University, + logo=jacobs-logo.png, + shortname=Jacobs University] + {Jacobs University Bremen} + +\WAinstitution[id=pcsa, + url=http://pcg.phony/sa, + partof=pcg,shortname=Science Affairs] + {Science Affairs} +\WAinstitution[id=pcg,acronym=PCG, + url=http://pcg.phony, + countryshort=D, + streetaddress={Seefahrtstrasse 5}, + townzip={23555 Hamburg}, + shortname=Power Consulting] + {Power Consulting GmbH} + +%%% Local Variables: +%%% mode: latex +%%% End: + +% LocalWords: WAperson miko personaltitle academictitle privaddress privtel +% LocalWords: workaddress worktel workfax gc worktelfax pcg diff --git a/dfg/examples/lib/dummy.bib b/dfg/examples/lib/dummy.bib new file mode 100644 index 0000000..245b32c --- /dev/null +++ b/dfg/examples/lib/dummy.bib @@ -0,0 +1,23 @@ +@PREAMLE{\usepackage{url}} +@misc{Kohlhase:pdpl10, + author = {Michael Kohlhase}, + title = {Preparing {DFG} Proposals in {\LaTeX} with \texttt{dfgproposal.cls}}, + institution = {KWARC Group, Jacobs University Bremen}, + howpublished = {Self-documenting {\LaTeX} package, \url{https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/dfgproposal.pdf}; ask the author for access}, + year = 2010} +@misc{providemore,title={\ldots}} +@BOOK{Lamport:ladps94, + title = {LaTeX: A Document Preparation System, 2/e}, + publisher = {Addison Wesley}, + year = {1994}, + author = {Leslie Lamport}} +@BOOK{Knuth:ttb84, + title = {The {\TeX}book}, + publisher = {Addison Wesley}, + year = {1984}, + author = {Donald E. Knuth}} +@BOOK{DK:LP, + title = {{Literate Programming}}, + publisher = {The University of Chicago Press}, + year = 1992, + author = {Donald E. Knuth}} diff --git a/dfg/examples/lib/jacobs-logo.png b/dfg/examples/lib/jacobs-logo.png new file mode 100644 index 0000000..0bbe28c Binary files /dev/null and b/dfg/examples/lib/jacobs-logo.png differ diff --git a/dfg/examples/proposal/Makefile b/dfg/examples/proposal/Makefile new file mode 100644 index 0000000..1965593 --- /dev/null +++ b/dfg/examples/proposal/Makefile @@ -0,0 +1,62 @@ +# possibly customize the following variables to your setting +PROPOSAL = proposal.tex # the proposal +BIB = ../lib/dummy.bib # bibTeX databases +PROP.dir = ../../.. +########################################################################### +# the following are computed +TARGET = $(PROPOSAL) # all pdflatex targets +TARGET.pdf = $(TARGET:%.tex=%.pdf) # PDFs to be produced +TARGET.aux = $(TARGET:%.tex=%.aux) # their aux files. +PDATA = $(PROPOSAL:%.tex=%.pdata) # the proposal project data +SRC = $(filter-out $(TARGET),$(shell ls *.tex)) # included files +PDFLATEX = pdflatex -interaction batchmode -file-line-error +BBL.base = 1 +BBL = proposal.bbl $(BBL.base:%=proposal%-blx.bbl) +PROPCLS.dir = $(PROP.dir)/base +PROPETC.dir = $(PROP.dir)/etc +DFGPROPCLS.dir = $(PROP.dir)/dfg +TEXINPUTS := .//:$(PROPCLS.dir)//:$(DFGPROPCLS.dir)//:$(PROPETC.dir)//: +BIBINPUTS := ../lib:$(BIBINPUTS) +PROPCLS.clssty = proposal.cls pdata.sty +PROPETC.sty = workaddress.sty metakeys.sty sref.sty +DFGPROPCLS.clssty = dfgproposal.cls dfgpdata.sty +PROPCLS = $(PROPCLS.clssty:%=$(PROPCLS.dir)/%) $(DFGPROPCLS.clssty:%=$(DFGPROPCLS.dir)/%) $(PROPETC.sty:%=$(PROPETC.dir)/%) + +all: $(TARGET.pdf) + +cd: # make cd will prepare CD for burning + mkdir CD;make $(TARGET.pdf); cp $(TARGET.pdf) CD + +bbl: $(BBL) +$(BBL): %.bbl: %.aux + bibtex -min-crossrefs=100 -terse $< + +$(PDATA): %.pdata: %.tex + $(PDFLATEX) $< + +$(TARGET.aux): %.aux: %.tex + $(PDFLATEX) $< + +$(TARGET.pdf): %.pdf: %.tex $(SRC) $(BIB) $(PROPCLS) + $(PDFLATEX) $< || $(RM) $@ +# sort $(PROPOSAL:%.tex=%.delivs) > $(PROPOSAL:%.tex=%.deliverables) + @if (test -e $(patsubst %.tex, %.idx, $<));\ + then makeindex $(patsubst %.tex, %.idx, $<); fi + $(MAKE) -$(MAKEFLAGS) $(BBL) + @if (grep "(re)run BibTeX" $(patsubst %.tex, %.log, $<)> /dev/null);\ + then $(MAKE) -B $(BBL); fi + $(PDFLATEX) $< || $(RM) $@ + @if (grep Rerun $(patsubst %.tex, %.log, $<) > /dev/null);\ + then $(PDFLATEX) $< || $(RM) $@; fi + @if (grep Rerun $(patsubst %.tex, %.log, $<) > /dev/null);\ + then $(PDFLATEX) $< || $(RM) $@; fi + +clean: + rm -f *.log *.blg *~ *.synctex.gz *.cut + +distclean: clean + rm -f *.aux *.out *.run.xml *.bbl *.toc *.deliv* *.pdata + rm -Rf auto + +echo: + echo $(BIBINPUTS) diff --git a/dfg/examples/proposal/funds.tex b/dfg/examples/proposal/funds.tex new file mode 100644 index 0000000..03c0682 --- /dev/null +++ b/dfg/examples/proposal/funds.tex @@ -0,0 +1,82 @@ +\svnInfo $Id: funds.tex 22679 2011-12-01 07:08:45Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/dfg/examples/proposal/funds.tex $ +\section{Requested Modules/Funds \deu{(Beantragte Module/Mittel)}} + +For each applicant, we apply for funding within the Basic Module. + +\subsection{Funding for Staff \deu{(Personalbedarf)}}\label{sec:positions} +\subsubsection{Research Staff} + +We apply for the following positions. All run over the entire duration of the proposed project. + +\paragraph*{Non-doctoral staff}\ednote{compute amount in elan and copy here} + +One doctoral researcher for 2 years at $100 \%$ for Michael Kohlhase. + +One doctoral researcher for 2 years at $100 \%$ for Florian Rabe. + +%\paragraph*{Postdoctoral staff} +%\ednote{postdoctoral researcher and comparable} + +\paragraph*{Other research assistants}\ednote{students with BSc.} + +One student with BSc. for 2 years at $100 \%$ for Michael Kohlhase. + +One student with BSc. for 2 years at $100 \%$ for Florian Rabe. + +\subsubsection{Non-academic Staff} None. + +\subsubsection{Student assistants} None. + +\subsection{Funding for direct project costs} + +\subsubsection{Equipment up to 10,000 \texteuro, software and consumables} + +None. PC will cover the workspace, computing needs, and consumables for its staff as part +of the basic support. + +\subsubsection{Travel Expenses\deu{(Reisen)}}\label{sec:travel} + +\begin{oldpart}{rework} + The travel budget shall cover: + \begin{itemize} + \item visits to external collaborators. We expect two international visits. We estimate + that each visit will be most effective, if the junior researchers can spend about 3 + weeks with the partners. Thus we estimate 2500 {\texteuro} per visit. + \item visits to national conferences to disseminate the results of {\pn}. We expect + one visit for each year for each of the three researchers. (3 x 3 x 1000 {\texteuro}) + \item visits to international conferences to disseminate the results of {\pn}. These + are in particular the International Joint Conference on Document Engineering (DocEng) + and the Tech User Group Meeting (TUG). We expect one visit for each proposed + researcher and for each year. (3 x 3 x 1500 {\texteuro}) + \end{itemize} + + This sums up to a total amount of 32.500 {\texteuro} for travel expenses for the whole + funding period of three years which is split into 16.250 {\texteuro} for each institute + (PC and Jacobs University). +\end{oldpart} + +\subsubsection{Visiting Researchers} + +Total expenses \textbf{10.200 \texteuro} +\medskip + +As explained in Section~\ref{sec:travel}, we expect 5 incoming research visits. Assuming +an average duration of 3 weeks, we estimate the cost of one visit at 600 {\texteuro} for +traveling and 70 {\texteuro} per night for accommodation, amounting to 2040 \texteuro per +visit. + +\subsubsection{Expenses for laboratory animals} None. + +\subsubsection{Other costs \deu{(Sonstige Kosten)}} None. + +\subsubsection{Project-related publication expenses} None. + +\subsection{Funding for Instrumentation} None. + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "proposal" +%%% End: + +% LocalWords: ipower texteuro diff --git a/dfg/examples/proposal/preconditions.tex b/dfg/examples/proposal/preconditions.tex new file mode 100644 index 0000000..d108c57 --- /dev/null +++ b/dfg/examples/proposal/preconditions.tex @@ -0,0 +1,115 @@ +\svnInfo $Id: preconditions.tex 22679 2011-12-01 07:08:45Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/dfg/examples/proposal/preconditions.tex $ +\section{Project Requirements \deu{(Voraussetzungen f\"ur die Durchf\"uhrung des Vorhabens)}} + +\subsection{Employment status information \deu{(Angaben zur Dienststellung)}} + +\begin{todo}{from the proposal template} + For each applicant, state the last name, first name, and employment status (including + duration of contract and funding body, if on a fixed-term contract). +\end{todo} + +\subsection{First-time proposal data \deu{(Angaben zur Erstantragstellung)}} + +\begin{todo}{from the proposal template} + Only if applicable: Last name, first name of first-time applicant. + + If this is your first proposal, reviewers will consider this fact when assessing your + pro- posal. Previous proposals for research fellowships, publication funding, travel + allow- ances, or funding for scientific networks are not considered first proposals. If + you are submitting a “first-time proposal” and it is part of a joint proposal, please + note that your independent project must be distinct from the other projects. + + If you have already submitted a proposal as an applicant for a research grant and have + received a letter informing you of the funding decision, or if you have led an independ- + ent junior research group or project in a Collaborative Research Centre or Research + Unit, you are no longer eligible to submit a “first proposal”. If you have submitted a + “first-time proposal” and it was rejected, you may resubmit the application, in revised + form, as a first-time proposal for the same project. +\end{todo} + +\subsection{Composition of the project group \deu{(Zusammensetzung der Projektarbeitsgruppe)}} + +\begin{todo}{from the proposal template} + List only those individuals who will work on the project but will not be paid out of the + project funds. State each person’s name, academic title, employment status, and type of + funding. + + Please list separately the individuals paid by your institution and those paid using + other third-party funding (including fellowships). +\end{todo} + +\begin{sitedescription}{jacu} + The KWARC (Knowledge Adaptation and Reasoning for Content) research group headed by + Michael Kohlhase for has the following members + \begin{compactdesc} + \item[Dr. N.N.] is the \ldots She has a background in\ldots. + \end{compactdesc} + Additionally, the group has attracted about 10 undergraduate and master's students that + actively take part in the project work and various aspects of research. +\end{sitedescription} + +\begin{sitedescription}{pcg} + Power Consulting GmbH is the leading provider of semantic document solutions. Dr. Senior + Researcher leads an applied research group consisting of + \begin{compactdesc} + \item[Dr. N.N.] is the \ldots She has a background in\ldots. + \end{compactdesc} + The group has access to seven programming slaves specializing in web development and + document transformation techniques +\end{sitedescription} + + +\subsection{Cooperation with other researchers \deu{(Zusammenarbeit mit anderen + Wissenschaftlerinnen und Wissenschaftlern)}} + +\subsubsection{Researchers with whom you have agreed to cooperate on this project + \deu{(Wissenschaftlerinnen und Wissenschaftler, mit denen für dieses Vorhaben eine + konkrete Vereinbarung zur Zusammenarbeit besteht)}} + +\begin{compactdesc} +\item[Prof. Dr. Super Akquisiteur (Uni Paderborn)] knows exactly what to do to get funding + with DFG, we will interview him closely and integrate all his intuitions into the {\pn} + templates. +\item[Prof. Dr. Habe Nichts (Uni Hinterpfuiteufel)] has never gotten a grant proposal + through with DFG, we will try to avoid his mistakes. +\item[Dr. Sach Bearbeiter (DFG)] will consult with the DFG requirements to be met in the + proposals. +\item[Dr. Donald Knuth (Stanford University)] is so surprised that we want to do grant + proposals in {\TeX/\LaTeX} that he will help us with any problems we have in coding in + this wonderful programming language. +\end{compactdesc} + +\subsubsection{Researchers with whom you have collaborated scientifically within the past + three years \deu{(Wissenschaftlerinnen und Wissenschaftler, mit denen in den letzten + drei Jahren wissenschaftlich zusammengearbeitet wurde)}} + +\ednote{Anmerkung Jens: Etwas unklar, was die DFG hier möchte. Die Liste der Personen kann + sehr lang sein, also ist es wahrscheinlich besser nur die wichtigsten Projekte und + Kontakte zu listen.} + +\begin{todo}{from the proposal template} + This information will assist the DFG’s Head Office in avoiding potential conflicts of + in- terest during the review process. +\end{todo} + + +\subsection{Scientific equipment \deu{(Apparative Ausstattung)}} + +Jacobs University provides laptops or desktop workstations for all academic +employees. Great Consulting GmbH. is rolling in money anyways and has all of the latest +gadgets. + + +\subsection{Project-relevant interests in commercial enterprises \deu{(Projektrelevante + Beteiligungen an erwerbswirtschaftlichen Unternehmen)}} + +Not applicable. + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "proposal" +%%% End: + +% LocalWords: Durchf uhrung subsubsection ipower Hinterpfuiteufel Sach Aktivit +% LocalWords: Erkl arungen diff --git a/dfg/examples/proposal/proposal.pdf b/dfg/examples/proposal/proposal.pdf new file mode 100644 index 0000000..e007aab Binary files /dev/null and b/dfg/examples/proposal/proposal.pdf differ diff --git a/dfg/examples/proposal/proposal.tex b/dfg/examples/proposal/proposal.tex new file mode 100644 index 0000000..a3dec9a --- /dev/null +++ b/dfg/examples/proposal/proposal.tex @@ -0,0 +1,104 @@ +% the document class specification for the proposal writing process, add the 'submit' option +% for submitting (switches off various draft features); add the 'public' option to exclude +% any private parts. +\documentclass[RAM]{dfgproposal} +%\documentclass[submit]{dfgproposal} +%\documentclass[submit,public]{dfgproposal} +\addbibresource{../lib/dummy} +\usepackage[utf8]{inputenc} + +% the following lines get updated by subversion keyword replacement. They are used by the +% \svninfo package in draft mode to generate metadata. +\svnInfo $Id: proposal.tex 22963 2012-01-13 08:47:33Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/dfg/examples/proposal/proposal.tex $ +% +\input{../lib/WApersons} + + +\begin{document} + +\begin{center}\color{red}\huge + This mock proposal is just an example for \texttt{dfgproposal.cls} it reflects the + current DFG template valid from October 2011. +\end{center} + +\urldef{\gcpubs}\url{http://www.pcg.phony/~gc/pubs.html} +\urldef{\mikopubs}\url{http://kwarc.info/kohlhase/publications.html} +\begin{proposal}[PI=miko,PI=gc,site=jacu,site=pcg, + thema=Intelligentes Schreiben von Antr\"agen, + acronym={iPoWr}, + acrolong={\underline{I}ntelligent} {\underline{P}r\underline{o}posal} {\underline{Wr}iting}, + title=\pn: \protect\pnlong, + totalduration=3 years, + since=1. Feb 2009, + start=1. Feb. 2010, + months=24, + pcgRM=36, pcgRAM=36, jacuRM=36, jacuRAM=36, + discipline=Computer Science, + areas=Knowledge Management] + +\begin{Zusammenfassung} + \begin{todo}{in das Elan System kopieren} + Fassen Sie die relevanten Projektziele allgemeinverst''andlich in maximal 3000 Zeichen + (keine Sonderzeichen) zusammen + \end{todo} + Das Schreiben von Antr"agen ist ein kollaborativer Prozess in dem Betr"age von mehreren + Personen integriert werden mu"ussen. Ein ASCII-basiertes Format wie {\LaTeX} erlaubt die + Koordination dieses Prozesses mittels Versionsverwaltungssystemen wie + Subversion. Dadurch k''onnen sich die Antragsteller auf Inhalte konzentrieren anstatt + auf die Mechanik der Dokumentenverwaltung. +\end{Zusammenfassung} + +\begin{Summary} + \begin{todo}{copy into the Elan system} + Summarize the relevant goals of the proposed project in generally intelligible + terms. Do not use more than 3000 characters, no special characters allowed. + \end{todo} + 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. +\end{Summary} + +% It is often good to separate the top-level sections into separate files. +% Especially in collaborative proposals. We do this here. +\input{state} +\input{workplan} + +\section{Bibliography concerning the state of the art, the research objectives, and the + work programme} + +\begin{todo}{from the proposal template} +In this bibliography, list only the works you cite in your presentation of the state of the +art, the research objectives, and the work programme. This bibliography is not the list +of publications. Non-published works must be included with the proposal. +\end{todo} +\printbibliography[heading=empty] +% the following will not become part of the public proposal after all most of this is +% technical or confidential. +%\begin{private} +\input{funds} +\input{preconditions} + +\section{Additional information \deu{(Ergänzende Erklärungen)}} + +Funding proposal XYZ-83282 has been submitted prior to this proposal on related topic XYZ. +\end{proposal} + +\end{document} + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-PDF-mode:t +%%% TeX-master: t +%%% End: + +% LocalWords: empty bibflorian systems rabe institutions modal historical pub +% LocalWords: kwarc till formalsafe miko gc ipower ipowerlong Antr agen Beitr + +% LocalWords: acrolong intellegible kollaboratives koh arenten ussen Proze pcg +% LocalWords: Versionsmanagementsystem textsc unterst utzt konzentieren stex +% LocalWords: mechanik workplan thispagestyle newpage Principcal cvpubsmiko pn +% LocalWords: ourpubs zusammenfassung printbibliography pubspage ntelligent +% LocalWords: iting pnlong diff --git a/dfg/examples/proposal/state.tex b/dfg/examples/proposal/state.tex new file mode 100644 index 0000000..c01eb23 --- /dev/null +++ b/dfg/examples/proposal/state.tex @@ -0,0 +1,44 @@ +\svnInfo $Id: state.tex 22814 2011-12-20 15:00:19Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/dfg/examples/proposal/state.tex $ + +\section{State of the Art and Preliminary Work \deu{(Stand der Forschung und eigene Vorarbeiten)}}\label{stand} + +\subsection{List of Project-Related Publications \deu{(Projektbezogenes Publikationsverzeichnis)}} + +\begin{todo}{from the proposal template} + Please include a list of own publications that are related to the proposed project. It + serves as an important basis for assessing your proposal. The number of publications to + cite here is determined as follows: + \begin{compactdesc} + \item[Single applicant] two publications per year of the funding duration + \item[Multiple applicants] three publications per year of the funding duration + \end{compactdesc} + These rules refer to the proposed funding duration for new proposals and the completed + duration for renewal proposals. + + If you are submitting a proposal to the DFG for the first time and have therefore not + published in the proposed research area, please list the up to five most important + publications so far. +\end{todo} + +\subsubsection{Peer-Reviewed Articles \deu{(Artikel mit wissenschaftlicher Qualitätssicherung)}} + +\dfgprojpapers{Kohlhase:pdpl10,providemore} + +\ednote{Anmerkung Jens: Ein nützliches Feature wäre hier, wenn das Paket eine (eventuell + über Optionen der Dokumentklasse unterdrückbare) Warnung ausgeben würde, wenn zu viele + Publikationen entsprechend DFG-Richtlinien angegeben werden. Die Anzahl ist sehr eng + begrenzt.} + +\subsubsection{Other Articles \deu{(Andere Artikel)}} None. + +\subsubsection{Patents \deu{(Patente)}} None. + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "proposal" +%%% End: + +% LocalWords: subsubsections dfgprojpapers pdpl10 providemore compactdesc +% LocalWords: ourpubs nociteprolist KohKoh ccbssmt09 KohRabZho tmlmrsca10 +% LocalWords: Hutter09 sifemp09 diff --git a/dfg/examples/proposal/workplan.tex b/dfg/examples/proposal/workplan.tex new file mode 100644 index 0000000..7938a46 --- /dev/null +++ b/dfg/examples/proposal/workplan.tex @@ -0,0 +1,221 @@ +\svnInfo $Id: workplan.tex 23021 2012-01-19 13:30:19Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/dfg/examples/proposal/workplan.tex $ +\section{Objectives and Work Programme \deu{(Ziele und Arbeitsprogramm)}} + +\subsection{Anticipated total duration of the project \deu{(Voraussichtliche Gesamtdauer des Projekts)}} + +\begin{todo}{from the proposal template} +Please state +\begin{itemize} + \item the project's intended duration 1 and how long DFG funds will be necessary, + \item for ongoing projects: since when the project has been active. +\end{itemize} +\end{todo} + +\subsection{Objectives \deu{(Ziele)}} + +\begin{objective}[id=firstobj,title=Supporting Authors] + This is the first objective, after all we have to write proposals all the time, and we + would rather spend time on research. +\end{objective} + +\begin{objective}[id=secondobj,title=Supporting Reviewers] + They are only human too, so let's have a heart for them as well. +\end{objective} + + +\subsection{Work programme including proposed research methods \deu{(Arbeitsprogramm inkl. vorgesehener Untersuchungsmethoden)}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\subsection{Description (Beschreibung)}%\label{sec:state} +\LaTeX is the best document markup language, it can even be used for literate +programming~\cite{DK:LP,Lamport:ladps94,Knuth:ttb84} +\begin{todo}{from the proposal template} + review the state of the art in the and your own contribution to it; probably you want to + divide this into subsubsections. +\end{todo} + +% \dfgprojpapers{Kohlhase:pdpl10,providemore} +\begin{todo}{from the proposal template} +For each applicant + +Please give a detailed account of the steps planned during the proposed funding pe- +riod. (For experimental projects, a schedule detailing all planned experiments should +be provided.) + +The quality of the work programme is critical to the success of a funding proposal. The +work programme should clearly state how much funding will be requested, why the +funds are needed, and how they will be used, providing details on individual items +where applicable. + +Please provide a detailed description of the methods that you plan to use in the project: +What methods are already available? What methods need to be developed? What as- +sistance is needed from outside your own group/institute? +Please list all cited publications pertaining to the description of your work programme +in your bibliography under section 3. +\end{todo} + +The project is organized around \pdatacount{all}{wa} large-scale work areas which correspond +to the objectives formulated above. These are subdivided into \pdatacount{all}{wp} work +packages, which we summarize in Figure~\ref{fig:wplist}. Work area +\WAref{mansubsus} will run over the whole project\ednote{come up with a better + example, this is still oriented towards an EU project} duration of {\pn}. All +{\pdatacount{systems}{wp}} work packages in {\WAref{systems}} will and have to be +covered simultaneously in order to benefit from design-implementation-application feedback +loops. + +\wpfig + +\begin{workplan} +\begin{workarea}[id=mansubsus,title={Management, Support \& Sustainability}, short=Management] + This work-group corresponds to Objective \OBJref{firstobj} and has two work packages: + one for management proper ({\WPref{management}}), and one each for + dissemination ({\WPref{dissem}}) + + This work group ensures the dissemination and creation of the periodic integrative + reports containing the periodic Project Management Report, the Project Management + Handbook, an Knowledge Dissemination Plan ({\WPref{management}}), the Proceedings of the + Annual {\pn} Summer School as well as non-public Dissemination and Exploitation plans + ({\WPref{dissem}}), as well as a report of the {\pn} project milestones. + +\begin{workpackage}[id=management,lead=jacu, + title=Project Management, + jacuRM=2,jacuRAM=8,pcgRM=2] + Based on the ``Bewilligungsbescheid'' of the DFG, and based on the financial and + administrative data agreed, the project manager will carry out the overall project + management, including administrative management. A project quality handbook will be + defined, and a {\pn} help-desk for answering questions about the format (first + project-internal, and after month 12 public) will be established. The project management + will consist of the following tasks +\begin{tasklist} +\begin{task}[id=foo,wphases=0-3,requires=\taskin{t1}{dissem}] + To perform the administrative, scientific/technical, and financial management of the + project +\end{task} +\begin{task}[wphases=13-17!.5] + To co-ordinate the contacts with the DFG and other funding bodies, building on the + results in \taskref{management}{foo} +\end{task} +\begin{task} + To control quality and timing of project results and to resolve conflicts +\end{task} +\begin{task} + To set up inter-project communication rules and mechanisms +\end{task} +\end{tasklist} + +\end{workpackage} + +\begin{workpackage}[id=dissem,lead=pcg, + title=Dissemination and Exploitation, +pcgRM=8,jacuRAM=2] +Much of the activity of a project involves small groups of nodes in joint work. This work + package is set up to ensure their best wide-scale integration, communication, and + synergetic presentation of the results. Clearly identified means of dissemination of + work-in-progress as well as final results will serve the effectiveness of work within the + project and steadily improve the visibility and usage of the emerging semantic services. + + + The work package members set up events for dissemination of the research and + work-in-progress results for researchers (workshops and summer schools), and for industry + (trade fairs). An in-depth evaluation will be undertaken of the response of test-users. + + \begin{tasklist} + \begin{task}[id=t1,wphases=6-7] + sdfkj + \end{task} + \begin{task}[wphases=12-13] + sdflkjsdf + \end{task} + \begin{task}[wphases=18-19] + sdflkjsdf + \end{task} + \begin{task}[wphases=22-24] + \end{task} +\end{tasklist} + +Within two months of the start of the project, a project website will go live. This +website will have two areas: a members' area and a public area.\ldots +\end{workpackage} +\end{workarea} + + +\begin{workarea}[id=systems,title={System Development}] + This workarea does not correspond to \OBJtref{secondobj}, but it has two work packages: + one for the development of the {\LaTeX} class ({\WPref{class}}), and for the + proposal template ({\WPref{temple}}) + + This work group coordinates the system development. + +\begin{workpackage}[id=class,lead=jacu, + title=A LaTeX class for EU Proposals,short=Class, + jacuRM=12,jacuRAM=8,pcgRM=12,pcgRAM=2] +We plan to develop a {\LaTeX} class for marking up EU Proposals + +We will follow strict software design principles, first comes a +requirements analys, then \ldots +\begin{tasklist} + \begin{task}[wphases=0-2] + sdfsdf + \end{task} + \begin{task}[wphases=4-8] + sdfsdf + \end{task} + \begin{task}[id=t3,wphases=10-14] + sdfsdf + \end{task} + \begin{task}[wphases=20-24] + sdfsdfd + \end{task} +\end{tasklist} +\end{workpackage} + +\begin{workpackage}[id=temple,lead=pcg, + title= Proposal Template,short=Template,jacuRM=12] + +We plan to develop a template file for {\pn} proposals + +We abstract an example from existing proposals +\begin{tasklist} + \begin{task}[wphases=6-12] + sdfdsf + \end{task} + \begin{task}[id=temple2,wphases=18-24,requires=\taskin{t3}{class}] + sdfsdf + \end{task} +\end{tasklist} +\end{workpackage} + +\begin{workpackage}[id=workphase,title=A work package without tasks, + wphases=0-4!.5] + + And finally, a work package without tasks, so we can see the effect on the gantt chart + in fig~\ref{fig:gantt}. +\end{workpackage} +\end{workarea} +\end{workplan} + +\ganttchart[draft,xscale=.45] + +\subsection{Data Handling \deu{(Umgang mit den im Projekt erzielten Forschungsdaten)}} + +The \pn project will not systematically produce researchdata. All project results will be +published for at least $x$ years at our archive at \url{http://example.org}. + +\subsection{Other Information \deu{(Weitere Angaben)}} Not applicable. + +\subsection{Explanations on the proposed investigations \deu{(Erläuterungen zu den vorgesehenen Untersuchungen)}} Not applicable. + +\subsection{Information on scientific and financial involvement of international cooperation partners \deu{(Erläuterungen zur inhaltlichen und finanziellen Projektbeteiligung von Kooperationspartnerinnen und Kooperationspartnern im Ausland)}} Not applicable. + + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "proposal" +%%% End: + +% LocalWords: workplan.tex wplist dfgcount wa mansubsus duratio ipower wpfig +% LocalWords: ganttchart xscale workplan workarea pdataref dissem workpackage foo +% LocalWords: tasklist taskin taskref sdfkj sdflkjsdf sdfsdf sdfsdfd sdfdsf pn +% LocalWords: firstobj secondobj pdatacount WAref ednote OBJref pcgRM pcg +% LocalWords: ldots OBJtref workphase diff --git a/dfg/examples/proposal/zusammenfassung.tex b/dfg/examples/proposal/zusammenfassung.tex new file mode 100644 index 0000000..08ee856 --- /dev/null +++ b/dfg/examples/proposal/zusammenfassung.tex @@ -0,0 +1,22 @@ +\svnInfo $Id: zusammenfassung.tex 22679 2011-12-01 07:08:45Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/dfg/examples/proposal/zusammenfassung.tex $ +\begin{Abriss} +\begin{todo}{from the proposal template} + Fassen Sie hier bitte die wesentlichen Ziele Ihres Vorhabens allgemeinverständlich und + in nicht mehr als 15 Zeilen (max. 1600 Zeichen) zusammen. +\end{todo} +Das Schreiben von Antr"agen ist oft ein kollaboratives Unterfangen in dem Beitr"age von +mehren Partnern in einen koh"arenten Text integriert werde m"ussen. Durch die Verwendung +eines ASCII-basierten Formates wie {\LaTeX} kann dieser Proze"s in einem +Versionsmanagementsystem wie {\textsc{Subversion}} unterst"utzt werden, wodurch sie das +Projektteam auf das Schreiben konzentrieren kann statt auf die Mechanik der Integration. +\end{Abriss} +%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "proposal" +%%% End: + +% LocalWords: ngerman zusammenfassung popul Komplexit eingef uhrt aquate utzen +% LocalWords: unterst pn inparaenum Anderungsmanagement zug onnen zugh erm koh +% LocalWords: oglichen Antr agen kollaboratives Beitr arenten ussen Proze utzt +% LocalWords: Versionsmanagementsystem diff --git a/dfg/examples/report/Makefile b/dfg/examples/report/Makefile new file mode 100644 index 0000000..3408045 --- /dev/null +++ b/dfg/examples/report/Makefile @@ -0,0 +1,67 @@ +# possibly customize the following variables to your setting +REPORT = finalreport.tex # the report +BIB = ../lib/dummy.bib # bibTeX databases +PROP.dir = ../../.. +########################################################################### +# the following are computed +#CVP = $(shell ls CV_PubList*.tex) # CVs of the proposers +#TSIMP = letter_submission.tex # pdflatex Targets without bibTeX +#TSIMP.pdf = $(TSIMP:%.tex=%.pdf) # PDFs to be produced +TBIB = $(REPORT) #$(CVP) # pdflatex Targets with bibTeX +TARGET = $(TSIMP) $(TBIB) # all pdflatex targets +TBIB.pdf = $(TBIB:%.tex=%.pdf) # PDFs to be produced +TBIB.aux = $(TBIB:%.tex=%.aux) # their aux files. +PDATA = $(REPORT:%.tex=%.pdata) # the proposal project data +SRC = $(filter-out $(TARGET),$(shell ls *.tex)) # included files +PDFLATEX = pdflatex -interaction batchmode -file-line-error +BBL = $(REPORT:%.tex=%.bbl) $(REPORT:%.tex=%1-blx.bbl) $(REPORT:%.tex=%2-blx.bbl) #$(CVP:%.tex=%.bbl) +PROPCLS.dir = $(PROP.dir)/base +PROPETC.dir = $(PROP.dir)/etc +DFGPROPCLS.dir = $(PROP.dir)/dfg +TEXINPUTS := .//:$(PROPCLS.dir)//:$(DFGPROPCLS.dir)//:$(PROPETC.dir)//: +BIBINPUTS := ../lib:$(BIBINPUTS) +PROPCLS.clssty = reporting.cls pdata.sty +PROPETC.sty = workaddress.sty metakeys.sty sref.sty +DFGPROPCLS.clssty = dfgreporting.cls dfgpdata.sty +PROPCLS = $(PROPCLS.clssty:%=$(PROPCLS.dir)/%) $(DFGPROPCLS.clssty:%=$(DFGPROPCLS.dir)/%) $(PROPETC.sty:%=$(PROPETC.dir)/%) + +all: $(TBIB.pdf) $(TSIMP.pdf) + +cd: # make cd will prepare CD for burning + mkdir CD;make $(TARGET.pdf); cp $(TARGET.pdf) CD + +$(BBL): %.bbl: %.aux + bibtex -min-crossrefs=100 -terse $< + +$(TSIMP.pdf): %.pdf: %.tex $(PROPCLS) $(PDATA) + $(PDFLATEX) $< || $(RM) $@ + +$(PDATA): %.pdata: %.tex + $(PDFLATEX) $< + +$(TBIB.aux): %.aux: %.tex + $(PDFLATEX) $< + +$(TBIB.pdf): %.pdf: %.tex $(SRC) $(BIB) $(PROPCLS) + $(PDFLATEX) $< || $(RM) $@ +# sort $(REPORT:%.tex=%.delivs) > $(REPORT:%.tex=%.deliverables) + @if (test -e $(patsubst %.tex, %.idx, $<));\ + then makeindex $(patsubst %.tex, %.idx, $<); fi + $(MAKE) -$(MAKEFLAGS) $(BBL) + @if (grep "(re)run BibTeX" $(patsubst %.tex, %.log, $<)> /dev/null);\ + then $(MAKE) -B $(BBL); fi + $(PDFLATEX) $< || $(RM) $@ + @if (grep Rerun $(patsubst %.tex, %.log, $<) > /dev/null);\ + then $(PDFLATEX) $< || $(RM) $@; fi + @if (grep Rerun $(patsubst %.tex, %.log, $<) > /dev/null);\ + then $(PDFLATEX) $< || $(RM) $@; fi + +clean: + rm -f *.log *.blg *~ *.synctex.gz *.cut + +distclean: clean + rm -f *.aux *.out *.run.xml *.bbl *.toc *.deliv* *.pdata + rm -Rf auto + +echo: + echo $(BIBINPUTS) diff --git a/dfg/examples/report/README b/dfg/examples/report/README new file mode 100644 index 0000000..dabc084 --- /dev/null +++ b/dfg/examples/report/README @@ -0,0 +1,22 @@ +An Exapmle for dfgproposal.cls + +proposal.tex is a fake DFG proposal that shows all elements of + dfgproposal.cls in action. +finalreport.tex does the same for dfgreporting.cls +CV_PubList_Kohlhase.tex is an example of the CV and publication lists required + by the DFG +letter_submission.tex is an example submission letter. +*.tex the rest are intemediate files +doc contains the DFG documentation how to write proposals and + final reports: These documents are not subject to the + package's license but (c) DFG. They are bundled for your + convenience; up-to-date versions may be found at http://www.dfg.de. +Makefile allows the automation via a unix Makefile on the author's + machine, adapt it to your needs + +Copyright(c) 2010 Michael Kohlhase +The package is distributed under the terms of the LaTeX Project Public License (LPPL) + +The development version of this package can be found at +https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/dfgproposal/ex + diff --git a/dfg/examples/report/finalreport.pdf b/dfg/examples/report/finalreport.pdf new file mode 100644 index 0000000..6a044ea Binary files /dev/null and b/dfg/examples/report/finalreport.pdf differ diff --git a/dfg/examples/report/finalreport.tex b/dfg/examples/report/finalreport.tex new file mode 100644 index 0000000..39ffb80 --- /dev/null +++ b/dfg/examples/report/finalreport.tex @@ -0,0 +1,56 @@ +% the document class specification for the proposal writing process, add the 'submit' option +% for submitting (switches off various draft features); add the 'public' option to exclude +% any private parts. +\documentclass{dfgreporting} +%\documentclass[submit]{dfgproposal} +%\documentclass[submit,public]{dfgproposal} +\addbibresource{dummy} +% the following lines get updated by subversion keyword replacement. They are used by the +% \svninfo package in draft mode to generate metadata. +\svnInfo $Id: finalreport.tex 24314 2013-03-24 14:39:33Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/dfg/examples/report/finalreport.tex $ +% +% define the proposal acronym; +% use \texorpdfstring so that it can be used in section headings as well +% tell the class that this is the proposal acronym +\input{WApersons} +\begin{document} + +\begin{center}\color{red}\huge + This mock proposal is just an example for \texttt{dfgreporting.cls} it reflects the + template valid until January 2012 (have to update soon) +\end{center} + +\begin{report}[importfrom=proposal, + PI=miko,PI=gc,site=jacu,site=pcg, + key = KO 2428 99-9, + key = GS 4711 99-9, + thema=Intelligentes Schreiben von Antr\"agen, + reportperiod=1. Feb. 2010 - 31. Jan. 2012, + % jacuemployed=Junior Researcher: 1. Feb 2010 - 31. Jan 2012, + % pcgemployed=Slave Worker: 1. Feb 2010 - 31. Dec 2010, + % pcgemployed=Lazy Bones: 1.Jan 2011 - 31. Jan 2012, + applareas={Knowledge Management, Document Management, Workflow Systems}, + % coop={Acquisition Guru, Berlin, Germany}, + % coop={Deutsche Forschnungsgemeinschaft, Bonn, Germany}, + projpapers={Kohlhase:pdpl10,providemore}] + +\include{progressreport} +\include{progresssummary} +\dfgprojpapers[articles,confpapers,wspapers]{Kohlhase:pdpl10,providemore,KohDavGin:psewads11,Lange:OpenMathCDLinkedData10} +\end{report} +\end{document} + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: t +%%% End: + +% LocalWords: empty bibflorian systems rabe institutions modal historical pub +% LocalWords: kwarc till formalsafe miko gc ipower ipowerlong Antr agen Beitr + +% LocalWords: acrolong intellegible kollaboratives koh arenten ussen Proze +% LocalWords: Versionsmanagementsystem textsc unterst utzt konzentieren stex +% LocalWords: mechanik workplan thispagestyle newpage Principcal cvpubsmiko +% LocalWords: finalreport fundedperiod reportperiod progressreport +% LocalWords: progresssummary diff --git a/dfg/examples/report/letter_submission.pdf b/dfg/examples/report/letter_submission.pdf new file mode 100644 index 0000000..d56697a Binary files /dev/null and b/dfg/examples/report/letter_submission.pdf differ diff --git a/dfg/examples/report/letter_submission.tex b/dfg/examples/report/letter_submission.tex new file mode 100644 index 0000000..3660eb0 --- /dev/null +++ b/dfg/examples/report/letter_submission.tex @@ -0,0 +1,33 @@ +\documentclass{dinbrief} +\usepackage{ngerman} +\signature{Dr. Michael Kohlhase\hspace*{5cm} Dr. Great Communicator} +\usepackage{pdata}\readpdata{proposal} +\begin{document} + +\begin{letter}{Frau ?????\\ +Deutsche Forschungsgemeinschaft\\ +52170 Bonn} + +\subject{Antrag auf Sachbeihilfe} +\opening{Sehr geehrte Frau ?????} + +anbei senden wir Ihnen unseren Antrag auf Sachbeihilfe f"ur das Projekt "`\pn"' +(\pnlong) zu. Die elektronische Version des Antrags inklusive der Anlagen sowie Kopien +der eigenen Publikationen haben wir diesem Schreiben als CD beigef"ugt. Diese beinhaltet +die folgenden Dateien: +\begin{center} + \begin{tabular}{lp{8cm}} + \texttt{Antrag.pdf} & der Antrag\\ + \texttt{CV\_Publist\_Kohlhase.pdf} & Lebenslauf Michael Kohlhase\\ + \texttt{CV\_Publist\_Communicator.pdf} & Lebenslauf Great Communicator\\ + Publikationen & Ordner mit den im Antrag bzw. in den Lebensl"aufen angegebenen +eigenen Veröffentlichungen Das projektbezogene Publikationsverzeichnis befindet sich im +Antrag unter Abschnitt 2.2. +\end{tabular} +\end{center} + +\closing{Mit freundlichen Gr"u"sen,} +\end{letter} +\end{document} + +% LocalWords: texttt Publist Schr diff --git a/dfg/examples/report/progressreport.tex b/dfg/examples/report/progressreport.tex new file mode 100644 index 0000000..c720d89 --- /dev/null +++ b/dfg/examples/report/progressreport.tex @@ -0,0 +1,30 @@ +\svnInfo $Id: progressreport.tex 22679 2011-12-01 07:08:45Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/dfg/examples/report/progressreport.tex $ +\section{Final Progress Report\deu{Arbeits- \& Ergebnisbericht}} +\begin{todo}{from the report template} +This is what the reviewers read (maximum 10 pages of A4) + \begin{itemize} + \item Project’s initial questions and objectives. + \item Project developments --- including deviations from the original plan, failures, + and problems encountered with project organisation or technical execution. + \item Presentation of results and discussion of the relevant research situation in this + context, potential perspectives for application, and conceivable follow-up research. + \item Statement on whether the results of the project are economically valuable and whether exploitation is already taking place or may be anticipated; if applicable, details regarding patents, industrial joint ventures, etc. + \item Who has contributed to the results achieved by the project (national/international partners, project staff, etc.)? + \item Qualification of young researchers in the context of your project (for example, first degree, doctorate, post-doctorate, etc.). + \end{itemize} + The report must be understandable without the need to consult additional literature. To + illustrate and enhance your presentation you may refer to your own and others’ + publications. Make it clear whenever you are referring to other researchers’ work and + explain your own papers. Please list all cited publications at the end of the + section. This reference list is not considered your list of publications. Any + unpublished work must be included with the final report. However, note that reviewers + are not required to read any of the works you cite. Reviews will be based only on the + text of the actual report. +\end{todo} +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "finalreport" +%%% End: + +% LocalWords: finalreport progressreport.tex diff --git a/dfg/examples/report/progresssummary.tex b/dfg/examples/report/progresssummary.tex new file mode 100644 index 0000000..ecfc808 --- /dev/null +++ b/dfg/examples/report/progresssummary.tex @@ -0,0 +1,20 @@ +\svnInfo $Id: progresssummary.tex 22679 2011-12-01 07:08:45Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/dfg/examples/report/progresssummary.tex $ +\section{Final Progress Report\deu{Arbeits- \& Ergebnisbericht}} +\begin{todo}{from the report template} + This is for the DFG web site and report, made available to the general public (maximum 1 page of A4) + \begin{itemize} + \item Presentation, in clearly understandable, everyday language of the key scientific + findings and any potential applications. + \item Any surprises encountered in the course of the project and in the results + obtained. + \item Reference to any articles published in the media reporting the success of the + project.Project’s initial questions and objectives. + \end{itemize} +\end{todo} +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "finalreport" +%%% End: + +% LocalWords: finalreport diff --git a/dfg/examples/simple-proposal/Makefile b/dfg/examples/simple-proposal/Makefile new file mode 100644 index 0000000..1965593 --- /dev/null +++ b/dfg/examples/simple-proposal/Makefile @@ -0,0 +1,62 @@ +# possibly customize the following variables to your setting +PROPOSAL = proposal.tex # the proposal +BIB = ../lib/dummy.bib # bibTeX databases +PROP.dir = ../../.. +########################################################################### +# the following are computed +TARGET = $(PROPOSAL) # all pdflatex targets +TARGET.pdf = $(TARGET:%.tex=%.pdf) # PDFs to be produced +TARGET.aux = $(TARGET:%.tex=%.aux) # their aux files. +PDATA = $(PROPOSAL:%.tex=%.pdata) # the proposal project data +SRC = $(filter-out $(TARGET),$(shell ls *.tex)) # included files +PDFLATEX = pdflatex -interaction batchmode -file-line-error +BBL.base = 1 +BBL = proposal.bbl $(BBL.base:%=proposal%-blx.bbl) +PROPCLS.dir = $(PROP.dir)/base +PROPETC.dir = $(PROP.dir)/etc +DFGPROPCLS.dir = $(PROP.dir)/dfg +TEXINPUTS := .//:$(PROPCLS.dir)//:$(DFGPROPCLS.dir)//:$(PROPETC.dir)//: +BIBINPUTS := ../lib:$(BIBINPUTS) +PROPCLS.clssty = proposal.cls pdata.sty +PROPETC.sty = workaddress.sty metakeys.sty sref.sty +DFGPROPCLS.clssty = dfgproposal.cls dfgpdata.sty +PROPCLS = $(PROPCLS.clssty:%=$(PROPCLS.dir)/%) $(DFGPROPCLS.clssty:%=$(DFGPROPCLS.dir)/%) $(PROPETC.sty:%=$(PROPETC.dir)/%) + +all: $(TARGET.pdf) + +cd: # make cd will prepare CD for burning + mkdir CD;make $(TARGET.pdf); cp $(TARGET.pdf) CD + +bbl: $(BBL) +$(BBL): %.bbl: %.aux + bibtex -min-crossrefs=100 -terse $< + +$(PDATA): %.pdata: %.tex + $(PDFLATEX) $< + +$(TARGET.aux): %.aux: %.tex + $(PDFLATEX) $< + +$(TARGET.pdf): %.pdf: %.tex $(SRC) $(BIB) $(PROPCLS) + $(PDFLATEX) $< || $(RM) $@ +# sort $(PROPOSAL:%.tex=%.delivs) > $(PROPOSAL:%.tex=%.deliverables) + @if (test -e $(patsubst %.tex, %.idx, $<));\ + then makeindex $(patsubst %.tex, %.idx, $<); fi + $(MAKE) -$(MAKEFLAGS) $(BBL) + @if (grep "(re)run BibTeX" $(patsubst %.tex, %.log, $<)> /dev/null);\ + then $(MAKE) -B $(BBL); fi + $(PDFLATEX) $< || $(RM) $@ + @if (grep Rerun $(patsubst %.tex, %.log, $<) > /dev/null);\ + then $(PDFLATEX) $< || $(RM) $@; fi + @if (grep Rerun $(patsubst %.tex, %.log, $<) > /dev/null);\ + then $(PDFLATEX) $< || $(RM) $@; fi + +clean: + rm -f *.log *.blg *~ *.synctex.gz *.cut + +distclean: clean + rm -f *.aux *.out *.run.xml *.bbl *.toc *.deliv* *.pdata + rm -Rf auto + +echo: + echo $(BIBINPUTS) diff --git a/dfg/examples/simple-proposal/README b/dfg/examples/simple-proposal/README new file mode 100644 index 0000000..dabc084 --- /dev/null +++ b/dfg/examples/simple-proposal/README @@ -0,0 +1,22 @@ +An Exapmle for dfgproposal.cls + +proposal.tex is a fake DFG proposal that shows all elements of + dfgproposal.cls in action. +finalreport.tex does the same for dfgreporting.cls +CV_PubList_Kohlhase.tex is an example of the CV and publication lists required + by the DFG +letter_submission.tex is an example submission letter. +*.tex the rest are intemediate files +doc contains the DFG documentation how to write proposals and + final reports: These documents are not subject to the + package's license but (c) DFG. They are bundled for your + convenience; up-to-date versions may be found at http://www.dfg.de. +Makefile allows the automation via a unix Makefile on the author's + machine, adapt it to your needs + +Copyright(c) 2010 Michael Kohlhase +The package is distributed under the terms of the LaTeX Project Public License (LPPL) + +The development version of this package can be found at +https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/dfgproposal/ex + diff --git a/dfg/examples/simple-proposal/jacobs-logo.png b/dfg/examples/simple-proposal/jacobs-logo.png new file mode 100644 index 0000000..0bbe28c Binary files /dev/null and b/dfg/examples/simple-proposal/jacobs-logo.png differ diff --git a/dfg/examples/simple-proposal/letter_submission.pdf b/dfg/examples/simple-proposal/letter_submission.pdf new file mode 100644 index 0000000..9b9e03e Binary files /dev/null and b/dfg/examples/simple-proposal/letter_submission.pdf differ diff --git a/dfg/examples/simple-proposal/letter_submission.tex b/dfg/examples/simple-proposal/letter_submission.tex new file mode 100644 index 0000000..3660eb0 --- /dev/null +++ b/dfg/examples/simple-proposal/letter_submission.tex @@ -0,0 +1,33 @@ +\documentclass{dinbrief} +\usepackage{ngerman} +\signature{Dr. Michael Kohlhase\hspace*{5cm} Dr. Great Communicator} +\usepackage{pdata}\readpdata{proposal} +\begin{document} + +\begin{letter}{Frau ?????\\ +Deutsche Forschungsgemeinschaft\\ +52170 Bonn} + +\subject{Antrag auf Sachbeihilfe} +\opening{Sehr geehrte Frau ?????} + +anbei senden wir Ihnen unseren Antrag auf Sachbeihilfe f"ur das Projekt "`\pn"' +(\pnlong) zu. Die elektronische Version des Antrags inklusive der Anlagen sowie Kopien +der eigenen Publikationen haben wir diesem Schreiben als CD beigef"ugt. Diese beinhaltet +die folgenden Dateien: +\begin{center} + \begin{tabular}{lp{8cm}} + \texttt{Antrag.pdf} & der Antrag\\ + \texttt{CV\_Publist\_Kohlhase.pdf} & Lebenslauf Michael Kohlhase\\ + \texttt{CV\_Publist\_Communicator.pdf} & Lebenslauf Great Communicator\\ + Publikationen & Ordner mit den im Antrag bzw. in den Lebensl"aufen angegebenen +eigenen Veröffentlichungen Das projektbezogene Publikationsverzeichnis befindet sich im +Antrag unter Abschnitt 2.2. +\end{tabular} +\end{center} + +\closing{Mit freundlichen Gr"u"sen,} +\end{letter} +\end{document} + +% LocalWords: texttt Publist Schr diff --git a/dfg/examples/simple-proposal/preconditions.tex b/dfg/examples/simple-proposal/preconditions.tex new file mode 100644 index 0000000..971acaa --- /dev/null +++ b/dfg/examples/simple-proposal/preconditions.tex @@ -0,0 +1,98 @@ +\svnInfo $Id: preconditions.tex 22679 2011-12-01 07:08:45Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/dfg/examples/proposal/preconditions.tex $ +\section{Project Requirements \deu{(Voraussetzungen f\"ur die Durchf\"uhrung des Vorhabens)}} + +\subsection{Employment status information \deu{(Angaben zur Dienststellung)}} + +\begin{todo}{from the proposal template} +For each applicant, state the last name, first name, and employment status (including +duration of contract and funding body, if on a fixed-term contract). +\end{todo} + +\subsection{First-time proposal data \deu{(Angaben zur Erstantragstellung)}} + +\begin{todo}{from the proposal template} +Only if applicable: Last name, first name of first-time applicant. + +If this is your first proposal, reviewers will consider this fact when assessing your pro- +posal. Previous proposals for research fellowships, publication funding, travel allow- +ances, or funding for scientific networks are not considered first proposals. If you are +submitting a “first-time proposal” and it is part of a joint proposal, please note that your +independent project must be distinct from the other projects. + +If you have already submitted a proposal as an applicant for a research grant and have +received a letter informing you of the funding decision, or if you have led an independ- +ent junior research group or project in a Collaborative Research Centre or Research +Unit, you are no longer eligible to submit a “first proposal”. If you have submitted a +“first-time proposal” and it was rejected, you may resubmit the application, in revised +form, as a first-time proposal for the same project. +\end{todo} + +\subsection{Composition of the project group \deu{(Zusammensetzung der Projektarbeitsgruppe)}} + +\begin{todo}{from the proposal template} +List only those individuals who will work on the project but will not be paid out of the +project funds. State each person’s name, academic title, employment status, and type +of funding. + +Please list separately the individuals paid by your institution and those paid using other +third-party funding (including fellowships). +\end{todo} +\begin{sitedescription}{jacu} +The KWARC (Knowledge Adaptation and Reasoning for Content) research group headed by +Michael Kohlhase for has the following members +\begin{compactdesc} +\item[Dr. N.N.] is the \ldots She has a background in\ldots. +\end{compactdesc} +Additionally, the group has attracted about 10 undergraduate and master's students that +actively take part in the project work and various aspects of research. +\end{sitedescription} + + +\subsection{Cooperation with other researchers \deu{(Zusammenarbeit mit anderen Wissenschaftlerinnen und Wissenschaftlern)}} + +\subsubsection{Researchers with whom you have agreed to cooperate on this project \deu{(Wissenschaftlerinnen und Wissenschaftler, mit denen für dieses Vorhaben eine konkrete Vereinbarung zur Zusammenarbeit besteht)}} + +\begin{compactdesc} +\item[Prof. Dr. Super Akquisiteur (Uni Paderborn)] knows exactly what to do to get funding + with DFG, we will interview him closely and integrate all his intuitions into the + {\pn} templates. +\item[Prof. Dr. Habe Nichts (Uni Hinterpfuiteufel)] has never gotten a grant proposal + through with DFG, we will try to avoid his mistakes. +\item[Dr. Sach Bearbeiter (DFG)] will consult with the DFG requirements to be met in the + proposals. +\item[Dr. Donald Knuth (Stanford University)] is so surprised that we want to do grant + proposals in {\TeX/\LaTeX} that he will help us with any problems we have in coding in + this wonderful programming language. +\end{compactdesc} + +\subsubsection{Researchers with whom you have collaborated scientifically within the past three years \deu{(Wissenschaftlerinnen und Wissenschaftler, mit denen in den letzten drei Jahren wissenschaftlich zusammengearbeitet wurde)}} + +\ednote{Anmerkung Jens: Etwas unklar, was die DFG hier möchte. Die Liste der Personen kann + sehr lang sein, also ist es wahrscheinlich besser nur die wichtigsten Projekte und + Kontakte zu listen.} + +\begin{todo}{from the proposal template} +This information will assist the DFG’s Head Office in avoiding potential conflicts of in- +terest during the review process. +\end{todo} + + +\subsection{Scientific equipment \deu{(Apparative Ausstattung)}} + +Jacobs University provides laptops or desktop workstations for all academic +employees. Great Consulting GmbH. is rolling in money anyways and has all of the latest +gadgets. + + +\subsection{Project-relevant interests in commercial enterprises \deu{(Projektrelevante Beteiligungen an erwerbswirtschaftlichen Unternehmen)}} + +Not applicable. + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "proposal" +%%% End: + +% LocalWords: Durchf uhrung subsubsection ipower Hinterpfuiteufel Sach Aktivit +% LocalWords: Erkl arungen diff --git a/dfg/examples/simple-proposal/proposal-blx.bib b/dfg/examples/simple-proposal/proposal-blx.bib new file mode 100644 index 0000000..86bcc8c --- /dev/null +++ b/dfg/examples/simple-proposal/proposal-blx.bib @@ -0,0 +1,11 @@ +@Comment{$ biblatex control file $} +@Comment{$ biblatex version 2.1 $} +Do not modify this file! + +This is an auxiliary file used by the 'biblatex' package. +This file may safely be deleted. It will be recreated as +required. + +@Control{biblatex-control, + options = {2.1:0:0:1:0:0:1:1:0:0:0:0:1:1:3:1:79:+}, +} diff --git a/dfg/examples/simple-proposal/proposal.pdf b/dfg/examples/simple-proposal/proposal.pdf new file mode 100644 index 0000000..314e4ad Binary files /dev/null and b/dfg/examples/simple-proposal/proposal.pdf differ diff --git a/dfg/examples/simple-proposal/proposal.tex b/dfg/examples/simple-proposal/proposal.tex new file mode 100644 index 0000000..a1b92f0 --- /dev/null +++ b/dfg/examples/simple-proposal/proposal.tex @@ -0,0 +1,112 @@ +% the document class specification for the proposal writing process, add the 'submit' option +% for submitting (switches off various draft features); add the 'public' option to exclude +% any private parts. +\documentclass[RAM,noworkareas,nosites]{dfgproposal} +%\documentclass[submit]{dfgproposal} +%\documentclass[submit,public]{dfgproposal} +\addbibresource{../lib/dummy} + +% the following lines get updated by subversion keyword replacement. They are used by the +% \svninfo package in draft mode to generate metadata. +\svnInfo $Id: proposal.tex 24441 2013-06-04 07:00:05Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/dfg/examples/simple-proposal/proposal.tex $ +% +\input{../lib/WApersons} + + +\begin{document} + +\begin{center}\color{red}\huge + This mock proposal is just an example for \texttt{dfgproposal.cls} it reflects the + current DFG template valid from October 2011. +\end{center} + +\urldef{\gcpubs}\url{http://www.pcg.phony/~gc/pubs.html} +\urldef{\mikopubs}\url{http://kwarc.info/kohlhase/publications.html} +\begin{proposal}[PI=miko, + pubspage=mikopubs, + thema=Intelligentes Schreiben von Antr\"agen, + acronym={iPoWr}, + acrolong={\underline{I}ntelligent} {\underline{P}r\underline{o}posal} {\underline{Wr}iting}, + title=\pn: \protect\pnlong, + totalduration=3 years, + since=1. Feb 2009, + start=1. Feb. 2010, + months=24, + RM=36,RAM=36, + discipline=Computer Science, + areas=Knowledge Management] + + +\begin{Summary} + \begin{todo}{copy into the Elan system} + Summarize the relevant goals of the proposed project in generally intelligible + terms. Do not use more than 3000 characters, no special characters allowed. + \end{todo} +\end{Summary} + +\begin{Zusammenfassung} + \begin{todo}{in das Elan System kopieren} + Fassen Sie die relevanten Projektziele allgemeinverst''andlich in maximal 3000 Zeichen + (keine Sonderzeichen) zusammen + \end{todo} + Das Schreiben von Antr"agen ist ein kollaborativer Prozess in dem Betr"age von mehreren + Personen integriert werden mu"ussen. Ein ASCII-basiertes Format wie {\LaTeX} erlaubt die + Koordination dieses Prozesses mittels Versionsverwaltungssystemen wie + Subversion. Dadurch k''onnen sich die Antragsteller auf Inhalte konzentrieren anstatt + auf die Mechanik der Dokumentenverwaltung. +\end{Zusammenfassung} + +\begin{Summary} + \begin{todo}{copy into the Elan system} + Summarize the relevant goals of the proposed project in generally intelligible + terms. Do not use more than 3000 characters, no special characters allowed. + \end{todo} + 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. +\end{Summary} + +% It is often good to separate the top-level sections into separate files. +% Especially in collaborative proposals. We do this here. +\input{state} +\input{workplan} + +\section{Bibliography concerning the state of the art, the research objectives, and the + work programme \deu{(Literaturverzeichnis zum Stand der Forschung, zu den Zielen und dem + Arbeitsprogramm)}} + +\begin{todo}{from the proposal template} + In this bibliography, list only the works you cite in your presentation of the state of + the art, the research objectives, and the work programme. This bibliography is not the + list of publications. Non-published works must be included with the proposal. +\end{todo} +\printbibliography[heading=empty] +% the following will not become part of the public proposal after all most of this is +% technical or confidential. +%\begin{private} +\input{../proposal/funds} +\input{../proposal/preconditions} +\section{Additional information \deu{(Ergänzende Erklärungen)}} + +Funding proposal XYZ-83282 has been submitted prior to this proposal on related topic XYZ. +\end{proposal} + +\end{document} + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-PDF-mode:t +%%% TeX-master: t +%%% End: + +% LocalWords: empty bibflorian systems rabe institutions modal historical pub +% LocalWords: kwarc till formalsafe miko gc ipower ipowerlong Antr agen Beitr + +% LocalWords: acrolong intellegible kollaboratives koh arenten ussen Proze pcg +% LocalWords: Versionsmanagementsystem textsc unterst utzt konzentieren stex +% LocalWords: mechanik workplan thispagestyle newpage Principcal cvpubsmiko pn +% LocalWords: ourpubs zusammenfassung printbibliography pubspage ntelligent +% LocalWords: iting pnlong diff --git a/dfg/examples/simple-proposal/workplan.tex b/dfg/examples/simple-proposal/workplan.tex new file mode 100644 index 0000000..cd0a71a --- /dev/null +++ b/dfg/examples/simple-proposal/workplan.tex @@ -0,0 +1,149 @@ +\svnInfo $Id: workplan.tex 23021 2012-01-19 13:30:19Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/dfg/examples/simple-proposal/workplan.tex $ +\section{Objectives and Work Schedule \deu{(Ziele und Arbeitsprogramm)}} + +\subsection{Objectives} + +\begin{objective}[id=firstobj,title=Supporting Authors] + This is the first objective, after all we have to write proposals all the time, and we + would rather spend time on research. +\end{objective} + +\begin{objective}[id=secondobj,title=Supporting Reviewers] + They are only human too, so let's have a heart for them as well. +\end{objective} + +\subsection{Work Schedule} +\begin{todo}{from the proposal template} + Give a short high-level introduction to how the work in the project should proceed, + explain Tables~\ref{fig:wplist} and~\ref{fig:gantt}. +\end{todo} +The project is organized around \pdatacount{all}{wp} work packages, which we summarize in +Figure~\ref{fig:wplist}. + +\wpfig + +We ensures the dissemination and creation of the periodic integrative reports containing +the periodic Project Management Report, the Project Management Handbook, an Knowledge +Dissemination Plan ({\WPref{management}}), the Proceedings of the Annual {\pn} Summer +School as well as non-public Dissemination and Exploitation plans ({\WPref{dissem}}), as +well as a report of the {\pn} project milestones. + +\begin{workplan} +\begin{workpackage}[id=management,title=Project Management,wphases=1-24!.3, + RM=2,RAM=8] + Based on the ``Bewilligungsbescheid'' of the DFG, and based on the financial and + administrative data agreed, the project manager will carry out the overall project + management, including administrative management. A project quality handbook will be + defined, and a {\pn} help-desk for answering questions about the format (first + project-internal, and after month 12 public) will be established. The project management + will consist of the following tasks +\begin{tasklist} +\begin{task}[id=foo,wphases=0-3]%,requires=\taskin{t1}{dissem}] + To perform the administrative, scientific/technical, and financial management of the + project +\end{task} +\begin{task}[id=bar,wphases=13-17!.5] + To co-ordinate the contacts with the DFG and other funding bodies, building on the + results in \taskref{management}{foo} +\end{task} +\begin{task} + To control quality and timing of project results and to resolve conflicts +\end{task} +\begin{task} + To set up inter-project communication rules and mechanisms +\end{task} +\end{tasklist} + +\end{workpackage} + +\begin{workpackage}[id=dissem,title=Dissemination and Exploitation, +RM=8] +Much of the activity of a project involves small groups of nodes in joint work. This work + package is set up to ensure their best wide-scale integration, communication, and + synergetic presentation of the results. Clearly identified means of dissemination of + work-in-progress as well as final results will serve the effectiveness of work within the + project and steadily improve the visibility and usage of the emerging semantic services. + + + The work package members set up events for dissemination of the research and + work-in-progress results for researchers (workshops and summer schools), and for industry + (trade fairs). An in-depth evaluation will be undertaken of the response of test-users. + + \begin{tasklist} + \begin{task}[id=t1,wphases=6-7] + sdfkj + \end{task} + \begin{task}[id=t2,wphases=12-13] + sdflkjsdf + \end{task} + \begin{task}[id=t3,wphases=18-19] + sdflkjsdf + \end{task} + \begin{task}[id=t4,wphases=22-24] + \end{task} +\end{tasklist} + +Within two months of the start of the project, a project website will go live. This +website will have two areas: a members' area and a public area.\ldots +\end{workpackage} + + +\begin{workpackage}[id=class, + title=A LaTeX class for EU Proposals,short=Class, + RM=12,RAM=8] +We plan to develop a {\LaTeX} class for marking up EU Proposals + +We will follow strict software design principles, first comes a +requirements analys, then \ldots +\begin{tasklist} + \begin{task}[id=c1,wphases=0-2] + sdfsdf + \end{task} + \begin{task}[id=c2,wphases=4-8] + sdfsdf + \end{task} + \begin{task}[id=c3,wphases=10-14] + sdfsdf + \end{task} + \begin{task}[id=c4,wphases=20-24] + sdfsdfd + \end{task} +\end{tasklist} +\end{workpackage} + +\begin{workpackage}[id=temple,title= Proposal Template, + short=Template,RM=12] + +We plan to develop a template file for {\pn} proposals + +We abstract an example from existing proposals +\begin{tasklist} + \begin{task}[id=temple1,wphases=6-12] + sdfdsf + \end{task} + \begin{task}[id=temple2,wphases=18-24]%,requires=\taskin{c3}{class}] + sdfsdf + \end{task} +\end{tasklist} +\end{workpackage} + +\begin{workpackage}[id=workphase,title=A work package without tasks, + wphases=0-4!.5] + And finally, a work package without tasks, so we can see the effect on the gantt chart + in fig~\ref{fig:gantt}. +\end{workpackage} +\end{workplan} + +\ganttchart[draft,xscale=.45] + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "proposal" +%%% End: + +% LocalWords: workplan.tex wplist dfgcount wa mansubsus duratio ipower wpfig +% LocalWords: ganttchart xscale workplan workarea pdataref dissem workpackage foo +% LocalWords: tasklist taskin taskref sdfkj sdflkjsdf sdfsdf sdfsdfd sdfdsf pn +% LocalWords: firstobj secondobj pdatacount WAref ednote OBJref wphases +% LocalWords: ldots OBJtref workphase gantttaskchart diff --git a/etc/metakeys.sty b/etc/metakeys.sty new file mode 100644 index 0000000..ddcaec0 --- /dev/null +++ b/etc/metakeys.sty @@ -0,0 +1,63 @@ +%% +%% This is file `metakeys.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% metakeys.dtx (with options: `package') +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{metakeys}[2011/07/03 v0.9 Framework for Metadata Keys] +\newif\ifmetakeys@showmeta\metakeys@showmetafalse +\DeclareOption{showmeta}{\metakeys@showmetatrue} +\ProcessOptions +\RequirePackage{keyval}[1997/11/10] +\newcommand\addmetakey{\@ifstar\addmetakey@star\addmetakey@nostar} +\newcommand\addmetakey@star[3][]% +{\@ifnextchar[{\addmetakey@star@aux[#1]{#2}{#3}}{\addmetakey@star@aux[#1]{#2}{#3}[]}} +\def\addmetakey@star@aux[#1]#2#3[#4]{\metakeys@ext@clear@keys{#2}{#3}{#1}% +\metakeys@initialize@showkeys{#2}% +\define@key{#2}{#3}[#4]{\expandafter\gdef\csname #2@#3\endcsname{##1}}} +\newcommand\addmetakey@nostar[3][]% +{\metakeys@ext@showkeys{#2}{#3}\addmetakey@star[#1]{#2}{#3}} +\newcommand\metasetkeys[2]{\@nameuse{clear@#1@keys}\setkeys{#1}{#2}% +\ifmetakeys@showmeta% +\edef\@@keys{\@nameuse{#1@showkeys}}% +\metakeys@show@keys{#1}{\@for\@I:=\@@keys\do{\metakeys@show@keyval{#1}{\@I}}}% +\fi} +\newcommand\metakeys@ext@clear@keys[3]{\@metakeys@ext@clear@keys{#1}{#1@#2}{#3}} +\newcommand\@metakeys@ext@clear@keys[3]{\@ifundefined{clear@#1@keys}% +{\expandafter\gdef\csname clear@#1@keys\endcsname% +{\expandafter\gdef\csname #2\endcsname{#3}}}% +{\expandafter\g@addto@macro\csname clear@#1@keys\endcsname% +{\expandafter\gdef\csname #2\endcsname{#3}}}} +\newcommand\addmetalistkey{\@ifstar\addmetalistkey@star\addmetalistkey@nostar} +\newcommand\addmetalistkey@star[3][]{\metakeys@ext@clear@keys{#2}{#3}{#1}% +\metakeys@initialize@showkeys{#2}% +\expandafter\gdef\csname #2@#3s\endcsname{} +\define@key{#2}{#3}[#1]{% +\expandafter\ifx\csname #2@#3s\endcsname\@empty\expandafter\gdef\csname #2@#3s\endcsname{##1}% +\else\expandafter\xdef\csname #2@#3s\endcsname{\csname #2@#3s\endcsname,##1}% +\fi}} +\newcommand\addmetalistkey@nostar[3][]% +{\metakeys@ext@showkeys{#2}{#3}\addmetalistkey@star[#1]{#2}{#3}} +\newcommand\metakeys@initialize@showkeys[1]% +{\@ifundefined{#1@showkeys}{\expandafter\def\csname #1@showkeys\endcsname{}}{}}% +\newcommand\metakeys@ext@showkeys[2]{\@ifundefined{#1@showkeys}% +{\expandafter\def\csname #1@showkeys\endcsname{#2}}% +{\expandafter\edef\csname #1@showkeys\endcsname{\csname #1@showkeys\endcsname,#2}}} +\newcommand\@metakeys@show@key[2]{\metakeys@show@key{#2}{#1}} +\newcommand\metakeys@show@key[2]{\edef\@test{#2}\ifx\@test\@empty\else #1:#2\quad\fi} +\newcommand\metakeys@show@keys[2]{\marginpar{{\scriptsize #2}}} +\newcommand\metakeys@show@keyval[2]% +{\expandafter\@metakeys@show@key\csname #1@#2\endcsname{#2}} +\newcommand\showmetakeys{\metakeys@showmetatrue} +\newcommand\hidemetakeys{\metakeys@showmetafalse} +\newcommand\addmetakeynew[3][]{\metakeys@ext@clear@keys{#2}{#3}{#1}% +\define@key{#2}{#3}{\expandafter\gdef\csname #2@#3\endcsname{##1}}} +\newcommand\metakeys@unspecified{an metakeys-defined key left unspecified} +\newcommand\metakeysifus[4]{\message{testing #1@#2=\csname#1@#2\endcsname}% +\expandafter\ifx\csname #1@#2\endcsname\metakeys@unspecified{#3}\else{#4}\fi} +\endinput +%% +%% End of file `metakeys.sty'. diff --git a/etc/sref.sty b/etc/sref.sty new file mode 100644 index 0000000..5f06820 --- /dev/null +++ b/etc/sref.sty @@ -0,0 +1,105 @@ +%% +%% This is file `sref.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% sref.dtx (with options: `package') +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{sref}[2011/12/20 v1.0 Semantic Cross-References] +\DeclareOption{showmeta}{\PassOptionsToPackage{\CurrentOption}{metakeys}} +\newif\ifextrefs\extrefsfalse +\DeclareOption{extrefs}{\extrefstrue} +\ProcessOptions +\RequirePackage{metakeys} +\newcommand{\sref}[2][]{% +\@ifundefined{sref@part}{\sref@hlink[#1]{#2}}{\sref@hlink[#1]{\sref@part @#2}}} +\newcommand{\srefs}[3][]{% +\def\@test{#1}\ifx\@test\@empty\sref{#2} and \sref{#3}\else #1\fi} +\newcommand{\srefl}[3][]{% +\def\@test{#1}\ifx\@test\@empty\sref{#2} to \sref{#3}\else #1\fi} +\newcommand{\spageref}[1]{% +\@ifundefined{sref@part}{\sref@pageref{#1}}{\sref@pageref{\sref@part @#1}}} +\newif\ifhref\hreffalse +\AtBeginDocument{\@ifpackageloaded{hyperref}{\hreftrue}{\hreffalse}} +\newcommand\sref@href@ifh[2]{\ifhref\href{#1}{#2}\else#2\fi} +\newcommand\sref@hlink@ifh[2]{\ifhref\hyperlink{#1}{#2}\else#2\fi} +\newcommand\sref@target@ifh[2]{\ifhref\hypertarget{#1}{#2}\else#2\fi} +\def\sref@target% +{\ifx\sref@id\@empty\else% +\edef\@target{sref@\@ifundefined{sref@part}{}{\sref@part @}\sref@id @target} +\sref@target@ifh\@target{}\fi} +\newcommand\@sref@def[3]{\expandafter\gdef\csname sref@#1@#2\endcsname{#3}} +\ifextrefs\newwrite\refs@file\else\def\refs@file{\@auxout}\fi +\newcommand\sref@def[3]{%\@sref@def{#1}{#2}{#3}% +\protected@write\refs@file{}{\string\@sref@def{#1}{#2}{#3}}} +\addmetakey{srefaddidkey}{prefix} +\newcommand\srefaddidkey[2][]{\metasetkeys{srefaddidkey}{#1}% +\@metakeys@ext@clear@keys{#2}{sref@id}{}% id cannot have a default +\metakeys@ext@clear@keys{#2}{id}{}% +\metakeys@ext@showkeys{#2}{id}% +\define@key{#2}{id}{\edef\sref@id{\srefaddidkey@prefix ##1}% +\expandafter\edef\csname #2@id\endcsname{\srefaddidkey@prefix ##1}}} +\newcommand\makeextrefs[1]{\gdef\sref@part{#1}% +\makeatletter +\IfFileExists{\jobname.refs}{\input{\jobname.refs}}{}% +\immediate\openout\refs@file=\jobname.refs +\makeatother} +\newcommand\sref@label[2]{% +\sref@def{\@ifundefined{sref@part}{}{\sref@part @}#2}{page}{\thepage}% +\sref@def{\@ifundefined{sref@part}{}{\sref@part @}#2}{label}{#1}} +\newcommand\sreflabel[2]{\message{sreflabel: #1, #2}\sref@label{#1 \@currentlabel}{#2}} +\newcommand\sref@label@id[1]{\ifx\sref@id\@empty\else\sref@label{#1}{\sref@id}\fi} +\newcommand{\sref@hlink}[2][]{\def\@test{#1}% +\@ifundefined{sref@#2@label}% +{\protect\G@refundefinedtrue\@latex@warning{reference #2 undefined}??}% +{\sref@hlink@ifh{sref@#2@target}{\ifx\@test\@empty\@nameuse{sref@#2@label}\else #1\fi}}} +\newcommand{\sref@page@label}[1]{p.~{#1}} +\newcommand{\sref@pageref}[1]{\@ifundefined{sref@#1@page}% +{\protect\G@refundefinedtrue\@latex@warning{reference #1 undefined}\sref@page@label{??}}% +{\sref@hlink@ifh{sref@#1@target}{\sref@page@label{\@nameuse{sref@#1@page}}}}} +\newcommand{\sref@href}[3][]{\def\@test{#1}% +\@ifundefined{sref@#2@label}% +{\protect\G@refundefinedtrue\@latex@warning{reference #2 undefined}??}% +{\@ifundefined{sref@#3@URI}% +{\protect\G@refundefinedtrue\@latex@warning{external refs of type #3 undefined}??}% +{\edef\@uri{\@nameuse{sref@#3@URI}.pdf\#sref@#2@target} +\edef\@label{\ifx\@test\@empty\@nameuse{sref@#2@label}\else #1\fi} +\sref@href@ifh\@uri\@label}}} +\ifextrefs +\newcommand{\extref}[3][]{\def\theextref{\sref@href[#1]{#2@#3}{#2}}% +\csname doextref@#2\endcsname} +\else +\newcommand{\extref}[3][]{\sref[#1]{#3}} +\fi +\ifextrefs +\newcommand{\extpageref}[3][]{\def\thepageextref{\sref@pageref[#1]{#2@#3}{#2}}% +\csname doextpageref@#2\endcsname} +\else +\newcommand{\extpageref}[3][]{\spageref[#1]{#3}} +\fi +\newcommand\extrefstyle[2]{\expandafter\gdef\csname doextref@#1\endcsname{#2}} +\newcommand\extpagerefstyle[2]{\expandafter\gdef\csname doextpageref@#1\endcsname{#2}} +\newcommand{\inputrefs}[2]{% +\@namedef{sref@#1@URI}{#2} +\makeatletter% +\IfFileExists{#2.refs}{\input{#2.refs}} + {\PackageError{sref}{Reference file #1.refs does not exist} + {Maybe you have to run LaTeX on #2.tex first}} +\makeatother} +\srefaddidkey{sequation} +\def\sref@sequation@heading{equation} +\newenvironment{sequation}[1][]{\metasetkeys{sequation}{#1}% +\ifx\sref@id\@empty\begin{displaymath}\else% no id, using equation* +\begin{equation}\sref@target\sref@label@id{\sref@sequation@heading~(\theequation)}\fi} +{\ifx\sref@id\@empty\end{displaymath}\else\end{equation}\fi} +\newenvironment{seqnarray}[1][]% +{\metasetkeys{sequation}{#1}\begin{eqnarray*}\sref@target% +\sref@label@id{\sref@sequation@heading~(\theequation)}} +{\end{eqnarray*}} +\newcommand\withcite[2]{#2~\cite{#1}} +\newenvironment{withcitation}[1]{\def\citeit{\cite{#1}}}{} +\endinput +%% +%% End of file `sref.sty'. diff --git a/etc/workaddress.sty b/etc/workaddress.sty new file mode 100644 index 0000000..8a6525d --- /dev/null +++ b/etc/workaddress.sty @@ -0,0 +1,136 @@ +%% +%% This is file `workaddress.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% workaddress.dtx (with options: `package') +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{workaddress}[2012/01/18 v0.4 WorkAddress] +\DeclareOption{showmeta}{\PassOptionsToPackage{\CurrentOption}{metakeys}} +\ProcessOptions +\RequirePackage{sref} +\RequirePackage{pgf} +\addmetakey{wa@person}{id} +\addmetakey{wa@person}{birthdate} +\addmetakey{wa@person}{email} +\addmetakey{wa@person}{url} +\addmetakey{wa@person}{affiliation} +\addmetakey{wa@person}{personaltitle} +\addmetakey{wa@person}{academictitle} +\addmetakey{wa@person}{department} +\addmetakey{wa@person}{workaddress} +\addmetakey{wa@person}{privaddress} +\addmetakey{wa@person}{worktel} +\addmetakey{wa@person}{privtel} +\addmetakey{wa@person}{workfax} +\addmetakey{wa@person}{privfax} +\addmetakey{wa@person}{worktelfax} +\addmetakey{wa@person}{privtelfax} +\def\wa@def#1#2#3#4{\expandafter\xdef\csname wa@#1@#2@#3\endcsname{#4}} +\def\wa@ref@test#1#2#3{% +\@ifundefined{wa@#1@#2@#3}% +{\PackageError{workaddress}{reference to undefined #3 of #1 #2}% +{you must define a #1 with #2=#3\MessageBreak% +via the macro \protect\WA#1, before you can use it!}} +{}} +\def\wa@ref#1#2#3{\wa@ref@test{#1}{#2}{#3}\csname wa@#1@#2@#3\endcsname} +\let\wa@persons=\relax +\newcommand{\WAperson}[2][]{\metasetkeys{wa@person}{#1} +\ifx\wa@person@id\@empty\@latex@warning{key 'id' undefined in WAperson}\else +\wa@def{person}\wa@person@id{id}{\wa@person@id}% redundant, but useful for checking +\wa@def{person}\wa@person@id{name}{#2} +\wa@def{person}\wa@person@id{email}{\wa@person@email} +\wa@def{person}\wa@person@id{birthdate}{\wa@person@birthdate} +\wa@def{person}\wa@person@id{url}{\wa@person@url} +\wa@def{person}\wa@person@id{affiliation}{\wa@person@affiliation} +\wa@def{person}\wa@person@id{workaddress}{\wa@person@workaddress} +\wa@def{person}\wa@person@id{privaddress}{\wa@person@privaddress} +\wa@def{person}\wa@person@id{personaltitle}{\wa@person@personaltitle} +\wa@def{person}\wa@person@id{academictitle}{\wa@person@academictitle} +\wa@def{person}\wa@person@id{department}{\wa@person@department} +\wa@def{person}\wa@person@id{workaddress}{\wa@person@workaddress} +\wa@def{person}\wa@person@id{privaddress}{\wa@person@privaddress} +\wa@def{person}\wa@person@id{worktel}{\wa@person@worktel} +\wa@def{person}\wa@person@id{privtel}{\wa@person@privtel} +\wa@def{person}\wa@person@id{workfax}{\wa@person@workfax} +\wa@def{person}\wa@person@id{privfax}{\wa@person@privfax} +\wa@def{person}\wa@person@id{worktelfax}{\wa@person@worktelfax} +\wa@def{person}\wa@person@id{privtelfax}{\wa@person@privtelfax} +\@ifundefined{wa@persons} +{\xdef\wa@persons{\wa@person@id}} +{\xdef\wa@persons{\wa@persons,\wa@person@id}} +\fi} +\newcommand\DCMperson[2][]{\WAperson[#1]{#2}% +\PackageWarning{workaddress}{\protect\DCMperson\space is deprecated, use \protect\WAperson\space instead}} +\addmetakey{wa@institution}{id} +\addmetakey{wa@institution}{shortname} +\addmetakey{wa@institution}{acronym} +\addmetakey{wa@institution}{url} +\addmetakey{wa@institution}{partof} +\addmetakey{wa@institution}{countryshort} +\addmetakey{wa@institution}{logo} +\addmetakey{wa@institution}{streetaddress} +\addmetakey{wa@institution}{townzip} +\addmetakey{wa@institution}{type} +\addmetakey{wa@institution}{country} +\let\wa@institutions=\relax +\newcommand{\WAinstitution}[2][]{\metasetkeys{wa@institution}{#1} +\ifx\wa@institution@id\@empty\@latex@warning{key 'id' undefined in WAinstitution}\else +\wa@def{institution}\wa@institution@id{id}{\wa@institution@id}% redundant, but useful for checking +\wa@def{institution}\wa@institution@id{name}{#2} +\wa@def{institution}\wa@institution@id{shortname}{\wa@institution@shortname} +\wa@def{institution}\wa@institution@id{acronym}{\wa@institution@acronym} +\wa@def{institution}\wa@institution@id{url}{\wa@institution@url} +\wa@def{institution}\wa@institution@id{partof}{\wa@institution@partof} +\wa@def{institution}\wa@institution@id{countryshort}{\wa@institution@countryshort} +\wa@def{institution}\wa@institution@id{logo}{\wa@institution@logo} +\wa@def{institution}\wa@institution@id{townzip}{\wa@institution@townzip} +\wa@def{institution}\wa@institution@id{streetaddress}{\wa@institution@streetaddress} +\wa@def{institution}\wa@institution@id{country}{\wa@institution@country} +\wa@def{institution}\wa@institution@id{type}{\wa@institution@type} +\@ifundefined{wa@institutions} +{\xdef\wa@institutions{\wa@institution@id}} +{\xdef\wa@institutions{\wa@institutions,\wa@institution@id}} +\fi} +\newcommand\DCMinstitution[2][]{\WAinstitution[#1]{#2}% +\PackageWarning{workaddress}{\protect\DCMinstitution\space is deprecated, use \protect\WAinstitution\space instead}} +\addmetakey[false]{WAauthorblock}{dept}[true] +\addmetakey[false]{WAauthorblock}{aff}[true] +\addmetakey[false]{WAauthorblock}{url}[true] +\def\@true{true} +\newcounter{authors} +\newcommand\WAauthorblock[2][]{% +\metasetkeys{WAauthorblock}{#1} +{\let\tabularnewline\relax + \@for\@I:=#2\do{\stepcounter{authors}} + \def\@authors{}\def\@affs{}\def\@depts{}\def\@urls{} + \@for\@I:=#2\do + {\xdef\@authors{\@authors&\wa@ref{person}\@I{name}} + \xdef\@@dept{\wa@ref{person}\@I{department}} + \xdef\@shortname{\csname wa@institution@\@@dept @shortname\endcsname} + \xdef\@dept{\ifx\@shortname\@empty\wa@ref{institution}\@@dept{name}\else\@shortname\fi} + \xdef\@depts{\@depts&\@dept} + \xdef\@@aff{\wa@ref{person}\@I{affiliation}} + \xdef\@shortname{\csname wa@institution@\@@aff @shortname\endcsname} + \xdef\@aff{\ifx\@shortname\@empty\wa@ref{institution}\@@aff{name}\else\@shortname\fi} + \xdef\@affs{\@affs&\@aff} + \xdef\@urls{\@urls&\wa@ref{person}\@I{url}}} + \message{\theauthors authors: \@authors}} + \begin{tabular}[t]{l*{\theauthors}{c}} + \@authors\\ + \ifx\WAauthorblock@dept\@true\@depts\\\fi + \ifx\WAauthorblock@aff\@true\@affs\\\fi + \ifx\WAauthorblock@url\@true\@urls\\\fi +\end{tabular}} +\newcommand\wapname[1]{\wa@ref{person}{#1}{name}} +\newcommand\waptname[1]{\wa@ref{person}{#1}{personaltitle} \wa@ref{person}{#1}{name}} +\newcommand\wa@institution@logo[2][]{% +\pgfdeclareimage[#1]{logo}{\wa@ref{institution}{#2}{logo}} +\IfFileExists{\wa@ref{institution}{#2}{logo}}% +{\pgfuseimage{logo}} +{\fbox{#2 logo}\message{still need logo for #2}}} +\endinput +%% +%% End of file `workaddress.sty'. diff --git a/eu/FP7-logo.jpg b/eu/FP7-logo.jpg new file mode 100644 index 0000000..7f49d2d Binary files /dev/null and b/eu/FP7-logo.jpg differ diff --git a/eu/Makefile b/eu/Makefile new file mode 100644 index 0000000..620d816 --- /dev/null +++ b/eu/Makefile @@ -0,0 +1,14 @@ +PREFIX = ../lib +PACKAGE = eu +TDSCOLL = proposal +DTX.cls.base = euproposal +TDS.tex = eureporting.cls eupdata.sty +EXDIRS = examples + +all: package doc + @for d in $(EXDIRS); do (cd $$d && $(MAKE) -$(MAKEFLAGS) $@); done; + +include $(PREFIX)/Makefile.vars +TEXINPUTS = .: +include $(PREFIX)/Makefile.in + diff --git a/eu/README b/eu/README new file mode 100644 index 0000000..5f05510 --- /dev/null +++ b/eu/README @@ -0,0 +1,14 @@ +euproposal.cls: A class for preparing FP7 proposals for collaborative projects + +The euproposal class supports many of the specific elements of a Framework 7 Proposal. It +is optimized towards collaborative projects. The package comes with extensive examples. To +start a new proposal just copy a suitable one and modify it to your needs. Note that the +structure of EU proposals changes from time to time, so that the examples may be out of +date. + +Copyright(c) 2007 Michael Kohlhase +The package is distributed under the terms of the LaTeX Project Public License (LPPL) + +The development version of this package can be found at +https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu + diff --git a/eu/eupdata.sty b/eu/eupdata.sty new file mode 100644 index 0000000..4ba33a1 --- /dev/null +++ b/eu/eupdata.sty @@ -0,0 +1,27 @@ +%% +%% This is file `eupdata.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% euproposal.dtx (with options: `pdata') +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{eudata}[2013/01/13 v1.4 EU Project Data] +\define@key{prop@gen}{coordinator}{\def\prop@gen@coordinator{#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}} +\def\prop@gen@objective{??}\def\prop@gen@objectiveid{??} +\define@key{prop@gen}{objective}{\def\prop@gen@objective{#1}\pdata@def{prop}{gen}{objective}{#1}} +\define@key{prop@gen}{objectiveid}{\def\prop@gen@objectiveid{#1}\pdata@def{prop}{gen}{objectiveid}{#1}} +\def\prop@gen@outcome{??}\def\prop@gen@outcomeid{??} +\define@key{prop@gen}{outcome}{\def\prop@gen@outcome{#1}\pdata@def{prop}{gen}{outcome}{#1}} +\define@key{prop@gen}{outcomeid}{\def\prop@gen@outcomeid{#1}\pdata@def{prop}{gen}{outcomeid}{#1}} +\define@key{prop@gen}{callname}{\def\prop@gen@call{#1}\pdata@def{prop}{gen}{callname}{#1}} +\define@key{prop@gen}{callid}{\def\prop@gen@call{#1}\pdata@def{prop}{gen}{callid}{#1}} +\define@key{prop@gen}{iconrowheight}{\def\prop@gen@iconrowheight{#1}} +\define@key{prop@gen}{topicsaddressed}{\def\prop@gen@topicsaddressed{#1}} +\endinput +%% +%% End of file `eupdata.sty'. diff --git a/eu/euproposal.cls b/eu/euproposal.cls new file mode 100644 index 0000000..f7b592f --- /dev/null +++ b/eu/euproposal.cls @@ -0,0 +1,116 @@ +%% +%% This is file `euproposal.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% euproposal.dtx (with options: `cls') +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesClass{euproposal}[2013/01/13 v1.4 EU Proposal] +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{proposal}} +\ProcessOptions +\LoadClass[report,noRAM]{proposal} +\RequirePackage{longtable} +\RequirePackage{eurosym} +\RequirePackage{wrapfig} +\RequirePackage{eupdata} +\def\thepart{\Alph{part}} +\setcounter{part}{2} +\def\thechapter{\thepart.\arabic{chapter}} +\def\numberline#1{\hb@xt@\@tempdima{#1\hfil} } +\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 @acronym}} +\xdef\@@table{\@@table&\@nameuse{wa@institution@\@I @countryshort}\tabularnewline\hline}}} +\begin{tabular}{|l|p{8cm}|l|l|}\hline +\# & Participant organisation name & Short name & Country\\\hline\hline +\@@table +\end{tabular}} +\renewenvironment{prop@proposal} +{\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] +\end{center} +{\large\prop@gen@instrument}\\ +{\large\textbf{Date of Preparation: \today}} +\ifsubmit\else\\{\large\textbf{Revision}: {\svnInfoRevision} of \svnInfoDate}\fi\\[1em] +{\large} +\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[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} + \end{description} +\end{large} +\vspace*{1em} +\begin{center} +\prop@sites@table\vfill +\@ifundefined{prop@gen@iconrowheight}{} +{\@for\@site:=\prop@gen@sites\do{\wa@institution@logo[height=\prop@gen@iconrowheight]\@site\qquad}} +\end{center} +\newpage +\setcounter{tocdepth}{2}\setcounter{part}{2}} +{\newpage\printbibliography[heading=warnpubs,maxnames=999]} +\def\prop@gen@instrument{Proposal Instrument (e.g. IP)} +\newenvironment{sitedescription}[2][]{\def\@test{#1}% +\begin{wrapfigure}{r}{5.4cm}\vspace{-2.5ex}% +\begin{tabular}{|p{5cm}|}\hline\vspace{1mm}% +\ifx\@test\@empty% +\wa@institution@logo[height=1.3cm]{#2}\else% +\wa@institution@logo[#1]{#2}\fi\\[1ex]% +\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}% +\pdata@target{site}{#2}% +{\subsection{\wa@ref{institution}{#2}{acronym}:% +{\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}}} +{} +\newmdenv[frametitle=Objectives]{wpobjectives} +\newmdenv[frametitle=Description]{wpdescription} +\renewenvironment{workpackage}[1][] +{\begin{work@package}[#1]\subsubsection*{\wptitle} +\addcontentsline{toc}{subsubsection}{\wp@label\wp@num: \pdataref{wp}\wp@id{title}}} +{\end{work@package}} +\newcounter{@sitespo}\newcounter{@sitespt} +\renewcommand\wpheadertable{% +\wp@sites@efforts@lines% +\setcounter{@sitespo}{\thewp@sites@num}\addtocounter{@sitespo}{1}% +\setcounter{@sitespt}{\thewp@sites@num}\addtocounter{@sitespt}{2}% +\par\noindent\begin{tabular}{|l|*{\thewp@sites@num}{c|}c|}\hline% +\multicolumn{\the@sitespt}{|l|}{\textbf{\wp@mk@title{\wp@num}: }% +\textsf{\pdata@target{wp}{\wp@id}{\pdataref{wp}\wp@id{title}}}}\\\hline% +\textbf{Start: }\pdataref{wp}\wp@id{start}&% +\multicolumn{\the@sitespo}{l|}{\textbf{Activity Type: }\pdataref{wp}\wp@id{type}}\\\hline% +\wp@sites@line\\\hline% +\wp@efforts@line\\\hline% +\end{tabular}\smallskip\par\noindent\ignorespaces} +\newenvironment{risk}[3] +{\paragraph{Risk: #1}\hfill\emph{probability}: #2, \emph{gravity}: #3\par\noindent\ignorespaces} +{} +\newenvironment{riskcont}[3] +{\begin{risk}{#1}{#2}{#3}\textbf{Contingency:} } +{\end{risk}} +\newcommand\keypubs[1]{% +\paragraph{Key publications relevant to the project}% +{\renewcommand{\baselinestretch}{.9}\prop@paperlist{#1}}} +\endinput +%% +%% End of file `euproposal.cls'. diff --git a/eu/euproposal.dtx b/eu/euproposal.dtx new file mode 100644 index 0000000..3a119af --- /dev/null +++ b/eu/euproposal.dtx @@ -0,0 +1,448 @@ +% \iffalse meta-comment +% A class for preparing FP7 proposals for collaborative projects +% +% Copyright (c) 2011 Michael Kohlhase, all rights reserved +% +% This file 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 development version of this file can be found at +% $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/euproposal.dtx $ +% \fi +% +% \iffalse +%\NeedsTeXFormat{LaTeX2e}[1999/12/01] +%\ProvidesClass{euproposal}[2013/01/13 v1.4 EU Proposal] +%\ProvidesPackage{eudata}[2013/01/13 v1.4 EU Project Data] +%\ProvidesPackage{eureporting}[2013/01/13 v1.4 EU Project Reporting] +%<*driver> +\documentclass[twoside]{ltxdoc} +\DoNotIndex{\def,\long,\edef,\xdef,\gdef,\let,\global} +\DoNotIndex{\begin,\AtEndDocument,\newcommand,\newcounter,\stepcounter} +\DoNotIndex{\immediate,\openout,\closeout,\message,\typeout} +\DoNotIndex{\section,\scshape,\arabic} +\EnableCrossrefs +%\CodelineIndex +%\OnlyDescription +\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} +\bibliography{kwarc} +\usepackage[bookmarks=true,linkcolor=blue, + citecolor=blue,urlcolor=blue,colorlinks=true, + breaklinks=true, bookmarksopen=true]{hyperref} +\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} +% +% \fi +% +%\iffalse\CheckSum{365}\fi +% +% \changes{v0.1}{2007/05/07}{used in the SciML proposal} +% \changes{v0.2}{2007/05/09}{First Version with Documentation} +% \changes{v0.3}{2007/06/04}{staff effort table finally works, released} +% \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} +% +% \GetFileInfo{euproposal.cls} +% +% \MakeShortVerb{\|} +% \title{Preparing FP7 EU Proposals and Reports in {\LaTeX} with \texttt{euproposal.cls}} +% \author{Michael Kohlhase\\ +% Computer Science, Jacobs University Bremen\\ +% \url{http://kwarc.info/kohlhase}} +% \maketitle +% +% \begin{abstract} +% The |euproposal| class supports many of the specific elements of a Framework 7 +% Proposal. It is optimized towards collaborative projects. The package comes with an +% extensive example (a fake EU proposal) that shows all elements in action. +% \end{abstract} +% +% \tableofcontents\newpage +% +% \section{Introduction}\label{sec:intro} +% +% 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. +% +% The |euproposal| class extends the |proposal| class~\cite{Kohlhase:pplp:svn} and +% supports many of the specific elements of Part B of a Framework 7 Proposal. The +% package documentation is still preliminary, fragmented and incomplete and only dwells +% on the particulars of DFG proposals, so we treat~\cite{Kohlhase:pplp:svn} as a +% prerequisite. Please consult the example proposal |propB.tex|, which comes with the +% package and shows the usage of the class in action. It is intended as a template for +% your proposal, but please bear in mind that the EU guidelines may change from call to +% call, if in doubt, please consult the FP7 guide for proposers.\ednote{say something +% about the proposers guide.} +% +% The |eureporting| class supports most of the specific elements of the project reports +% to the EC. The example report |dfg/report.tex| is intended as a template for your +% final report\ednote{say something about reporting}. +% +% The |euproposal| and |eureporting| classes and the |eupdata| package are 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/euproposal}} For bug reports +% please use the sTeX trac at {\url{https://trac.kwarc.info/sTeX/}} with component +% |euproposal|. +% +% \section{The User Interface}\label{sec:user-interface} +% +% In this section we will describe the functionality offered by the |euproposal| class +% along the lines of the macros and environments the class provides. Much of the +% functionality can better be understood by studying the functional example |proposal.tex| +% (and its dependents) that comes with the |euproposal| package in conjunction with the +% proposer's EU proposer's guidelines (we have included it as |***| for convenience into +% the package distribution).\ednote{MK@MK do that and talk about reporting as well.} +% +% \subsection{Package Options}\label{sec:user:options} +% +% 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}. +% +% \subsection{Proposal Metadata and Title page}\label{sec:user:metadata} +% +% The metadata of the proposal is specified in the \DescribeEnv{proposal}|proposal| +% environment, which also generates the title page and the first section of the proposal +% as well as the last pages of the proposal with the signatures, enclosures, and +% references. The |proposal| environment should contain all the mandatory parts of the +% proposal text. The |proposal| environment uses the following EU-specific keys to +% specify metadata. +% \begin{compactitem} +% \item \DescribeMacro{callname}|callname| specifies the call the proposal addresses. It is +% usually a string of the form |ICT Call 1|, \DescribeMacro{callid}|callid| is the +% corresponding identifier, usually a string of the form |FP7-???-200?-?|. An overview +% over open calls can be found at \url{http://cordis.europa.eu/fp7/dc/index.cfm} +% \item The \DescribeMacro{challenge}|challenge|, \DescribeMacro{objective}|objective|, +% and \DescribeMacro{outcome}|outcome| keys specifies the specific parts in the call +% this proposal addresses. These are specified in the ``call fiche'' that can be +% obtained from the URL above. All of these have an identifier, which can be specified +% via the \DescribeMacro{challengeid}|challengeid|, +% \DescribeMacro{objectiveid}|objectiveid|, and \DescribeMacro{outcomeid}|outcomeid| +% keys.\ednote{MK@MK: the outcomeid should key should be a list key, I am not +% implementing this right now, since it comes more natural when we change the class to +% metakeys support.} +% \item \DescribeMacro{topicsaddressed}|topicsaddressed| allows to enter free-form text +% instead of specifying the |challenge*|, |objective*|, and |outcome*| keys. +% \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 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. +% \end{compactitem} +% +% \subsection{Work Packages and Work Areas}\label{sec:wpwa} +% +% \DescribeMacro{type} The |type| key specifies the activity type of the work package: +% |RTD| = Research and technological development (including any activities to prepare for +% the dissemination and/or exploitation of project results, and coordination activities); +% |DEM| = Demonstration; |MGT| = Management of the consortium; |OTHER| = Other specific +% activities, if applicable in this call. +% +% \begin{newpart}{MK@MK: This is new, and only partially implemented} +% \subsection{Reporting Infrastructure}\label{sec:user:report} +% +% The |eureporting| class gives an infrastructure for writing final reports of completed +% projects (see the file |finalreport.tex| in the package distribution). The +% \DescribeEnv{report}|report| environment has functionality analogous to the |proposal| +% environment. It takes the same metadata keys --- making it easy to generate by +% copy/paste from the proposal --- but adds the keys \DescribeMacro{key}|key| can be used +% to specify the reference key (something like \texttt{KO 2428 47-11}) given to the +% project by EU. Note that in the case of multiple proposers, you can use multiple +% instances of |key| to specify more than one reference key. +% \end{newpart} +% +% \section{Limitations and Enhancements}\label{sec:limitations} +% +% The |euproposal| is relatively early in its development, and many enhancements are +% conceivable. We will list them here. +% \begin{enumerate} +% \item none reported yet. +% \end{enumerate} +% If you have other enhancements to propose or feel you can alleviate some limitation, +% please feel free to contact the author. +% +% \StopEventually{\newpage\PrintIndex\newpage\PrintChanges\newpage\printbibliography}\newpage +% +% \section{The Implementation}\label{sec:implementation} +% +% In this section we describe the implementation of the functionality of the |euproposal| +% and |eureporting| classes and the |eupdata| package. +% +% \subsection{Package Options and Format Initialization}\label{sec:impl:options} +% +% We first set up the options for the package. +% +% \begin{macrocode} +%\DeclareOption*{\PassOptionsToClass{\CurrentOption}{proposal}} +%\DeclareOption*{\PassOptionsToClass{\CurrentOption}{reporting}} +%\ProcessOptions +% \end{macrocode} +% +% Then we load the packages we make use of +% +% \begin{macrocode} +%\LoadClass[report,noRAM]{proposal} +%\LoadClass[report,noRAM]{reporting} +%<*cls|reporting> +\RequirePackage{longtable} +\RequirePackage{eurosym} +\RequirePackage{wrapfig} +\RequirePackage{eupdata} +% +% \end{macrocode} +% +% \subsection{Proposal Metadata and Title Page}\label{sec:impl:metadata} +% +% We extend the metadata keys from the |proposal| class. +% \begin{macrocode} +%<*pdata> +\define@key{prop@gen}{coordinator}{\def\prop@gen@coordinator{#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}} +\def\prop@gen@objective{??}\def\prop@gen@objectiveid{??} +\define@key{prop@gen}{objective}{\def\prop@gen@objective{#1}\pdata@def{prop}{gen}{objective}{#1}} +\define@key{prop@gen}{objectiveid}{\def\prop@gen@objectiveid{#1}\pdata@def{prop}{gen}{objectiveid}{#1}} +\def\prop@gen@outcome{??}\def\prop@gen@outcomeid{??} +\define@key{prop@gen}{outcome}{\def\prop@gen@outcome{#1}\pdata@def{prop}{gen}{outcome}{#1}} +\define@key{prop@gen}{outcomeid}{\def\prop@gen@outcomeid{#1}\pdata@def{prop}{gen}{outcomeid}{#1}} +\define@key{prop@gen}{callname}{\def\prop@gen@call{#1}\pdata@def{prop}{gen}{callname}{#1}} +\define@key{prop@gen}{callid}{\def\prop@gen@call{#1}\pdata@def{prop}{gen}{callid}{#1}} +\define@key{prop@gen}{iconrowheight}{\def\prop@gen@iconrowheight{#1}} +\define@key{prop@gen}{topicsaddressed}{\def\prop@gen@topicsaddressed{#1}} +% +% \end{macrocode} +% +% and now the ones for the final report +% \begin{macrocode} +%<*reporting> +\define@key{prop@gen}{reportperiod}{\def\prop@gen@reportperiod{#1}} +\define@key{prop@gen}{key}{\@dmp{key=#1}% +\@ifundefined{prop@gen@keys}{\xdef\prop@gen@keys{#1}}{\xdef\prop@gen@keys{\prop@gen@keys,#1}}} +\define@key{prop@gen}{projpapers}{\def\prop@gen@projpapers{#1}} +% +% \end{macrocode} +% +% 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. +% +% \begin{macrocode} +%<*cls> +\def\thepart{\Alph{part}} +\setcounter{part}{2} +\def\thechapter{\thepart.\arabic{chapter}} +\def\numberline#1{\hb@xt@\@tempdima{#1\hfil} } +% \end{macrocode} +% +% \begin{macro}{\prop@sites@table} +% \begin{macrocode} +\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 @acronym}} +\xdef\@@table{\@@table&\@nameuse{wa@institution@\@I @countryshort}\tabularnewline\hline}}} +\begin{tabular}{|l|p{8cm}|l|l|}\hline +\# & Participant organisation name & Short name & Country\\\hline\hline +\@@table +\end{tabular}} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{prop@proposal} +% \begin{macrocode} +\renewenvironment{prop@proposal} +{\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] +\end{center} +{\large\prop@gen@instrument}\\ +{\large\textbf{Date of Preparation: \today}} +\ifsubmit\else\\{\large\textbf{Revision}: {\svnInfoRevision} of \svnInfoDate}\fi\\[1em] +{\large} +\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[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} + \end{description} +\end{large} +\vspace*{1em} +\begin{center} +\prop@sites@table\vfill +\@ifundefined{prop@gen@iconrowheight}{} +{\@for\@site:=\prop@gen@sites\do{\wa@institution@logo[height=\prop@gen@iconrowheight]\@site\qquad}} +\end{center} +\newpage +\setcounter{tocdepth}{2}\setcounter{part}{2}} +{\newpage\printbibliography[heading=warnpubs,maxnames=999]} +% \end{macrocode} +% \end{environment} +% +% \begin{macrocode} +\def\prop@gen@instrument{Proposal Instrument (e.g. IP)} +% \end{macrocode} +% +% \begin{environment}{sitedescription} +% \ednote{this code should probably be refactored into proposal.dtx} +% \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]% +\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}% +\pdata@target{site}{#2}% +{\subsection{\wa@ref{institution}{#2}{acronym}:% +{\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}}} +{} +% \end{macrocode} +% \end{environment} +% +% \subsection{Work Packages, Work Areas, and Deliverables}\label{sec:wpwa} +% +% \begin{environment}{wp*} +% \begin{macrocode} +\newmdenv[frametitle=Objectives]{wpobjectives} +\newmdenv[frametitle=Description]{wpdescription} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{workpackage} +% +% \begin{macrocode} +\renewenvironment{workpackage}[1][] +{\begin{work@package}[#1]\subsubsection*{\wptitle} +\addcontentsline{toc}{subsubsection}{\wp@label\wp@num: \pdataref{wp}\wp@id{title}}} +{\end{work@package}} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\wpheadertable} +% We redefine the macro that computes the default work package header table, since there +% are more sites in a EU proposal +% \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% +\wp@sites@line\\\hline% +\wp@efforts@line\\\hline% +\end{tabular}\smallskip\par\noindent\ignorespaces} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{wpdelivs} +% \ednote{MK: boxing compactdesc does not seem to work any more} +% \begin{macrocode} +%\surroundwithmdframed{wpdelivs} +% \end{macrocode} +% \end{environment} +% +% \subsection{Risks}\label{sec:impl:risks} +% +% \begin{environment}{risk} +% \begin{macrocode} +\newenvironment{risk}[3] +{\paragraph{Risk: #1}\hfill\emph{probability}: #2, \emph{gravity}: #3\par\noindent\ignorespaces} +{} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{riskcont} +% \begin{macrocode} +\newenvironment{riskcont}[3] +{\begin{risk}{#1}{#2}{#3}\textbf{Contingency:} } +{\end{risk}} +% \end{macrocode} +% \end{environment} +% +% \subsection{Risks}\label{sec:impl:risks} +% +% In some EU proposals (e.g. FET), we need to identify risks and contingency and specify +% 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 +% \DescribeMacro{riskcont}|riskcont| is a variant, where \meta{title} names a risk and the +% body is a description of the contingency plan. +% +% \subsection{Relevant Papers}\label{sec:impl:papers} +% +% \begin{macro}{\keypubs} +% \ednote{MK: the baselinestretch manipulation does not work here, since +% \texttt{prop@paperslist} makes its own provisions. We should provide a way of +% manipulating sizes here.} +% \begin{macrocode} +\newcommand\keypubs[1]{% +\paragraph{Key publications relevant to the project}% +{\renewcommand{\baselinestretch}{.9}\prop@paperlist{#1}}} +% +% \end{macrocode} +% \end{macro} +% +% \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 diff --git a/eu/euproposal.ins b/eu/euproposal.ins new file mode 100644 index 0000000..eba8cbf --- /dev/null +++ b/eu/euproposal.ins @@ -0,0 +1,37 @@ +%% +%% This file generates files required to use the dfgproposal package. +%% At your command prompt write +%% +%% latex dfgproposal.ins +%% +%% Copyright(c) 2010 Michael Kohlhase +%% +%% This file 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. +%% +%% $Id: euproposal.ins 23009 2012-01-18 10:12:28Z kohlhase $ +%% $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/euproposal.ins $ + +\input docstrip +\preamble +\endpreamble + +%\usedir{tex/latex/listings} +\keepsilent +\askforoverwritefalse + +% generate base package +\generate{\file{eupdata.sty}{\from{euproposal.dtx}{pdata}}} +\generate{\file{euproposal.cls}{\from{euproposal.dtx}{cls}}} +\generate{\file{eureporting.cls}{\from{euproposal.dtx}{reporting}}} + +\Msg{*} +\Msg{* You probably need to move the file euproposal.cls, eureporting.cls, and eupdata.sty} +\Msg{* into a directory searched by TeX.} +\Msg{*} +\Msg{* And don't forget to refresh your filename database} +\Msg{* if your TeX distribution uses such a database.} +\Msg{*} + +\endbatchfile diff --git a/eu/euproposal.pdf b/eu/euproposal.pdf new file mode 100644 index 0000000..c1e3ef9 Binary files /dev/null and b/eu/euproposal.pdf differ diff --git a/eu/eureporting.cls b/eu/eureporting.cls new file mode 100644 index 0000000..dd37cc4 --- /dev/null +++ b/eu/eureporting.cls @@ -0,0 +1,24 @@ +%% +%% This is file `eureporting.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% euproposal.dtx (with options: `reporting') +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{eureporting}[2013/01/13 v1.4 EU Project Reporting] +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{reporting}} +\ProcessOptions +\LoadClass[report,noRAM]{reporting} +\RequirePackage{longtable} +\RequirePackage{eurosym} +\RequirePackage{wrapfig} +\RequirePackage{eupdata} +\define@key{prop@gen}{reportperiod}{\def\prop@gen@reportperiod{#1}} +\define@key{prop@gen}{key}{\@dmp{key=#1}% +\@ifundefined{prop@gen@keys}{\xdef\prop@gen@keys{#1}}{\xdef\prop@gen@keys{\prop@gen@keys,#1}}} +\define@key{prop@gen}{projpapers}{\def\prop@gen@projpapers{#1}} +\endinput +%% +%% End of file `eureporting.cls'. diff --git a/eu/examples/Makefile b/eu/examples/Makefile new file mode 100644 index 0000000..d956d99 --- /dev/null +++ b/eu/examples/Makefile @@ -0,0 +1,3 @@ +DIRS = strep fetopenstrep +all: + @for d in $(DIRS); do (cd $$d && $(MAKE) -$(MAKEFLAGS) $@); done; diff --git a/eu/examples/README b/eu/examples/README new file mode 100644 index 0000000..b87645e --- /dev/null +++ b/eu/examples/README @@ -0,0 +1,6 @@ +This directory contains examples for EU proposals and reports marked up with the +proposal/euproposal class. + +strep: a STREP +fetopenstrep: the variant for FET Open +lib: shared files (affiliation database, bibTeX, logos) diff --git a/eu/examples/fetopenstrep/Makefile b/eu/examples/fetopenstrep/Makefile new file mode 100644 index 0000000..7cd9e01 --- /dev/null +++ b/eu/examples/fetopenstrep/Makefile @@ -0,0 +1,68 @@ +# possibly customize the following variables to your setting +PROPOSAL = propB.tex # the proposal +BIB = ../lib/dummy.bib # bibTeX databases +PROP.dir = ../../.. +########################################################################### +# the following are computed +TSIMP = # pdflatex Targets without bibTeX +TSIMP.pdf = $(TSIMP:%.tex=%.pdf) # PDFs to be produced +TBIB = $(PROPOSAL) # pdflatex Targets with bibTeX +TARGET = $(TSIMP) $(TBIB) # all pdflatex targets +TBIB.pdf = $(TBIB:%.tex=%.pdf) # PDFs to be produced +TBIB.aux = $(TBIB:%.tex=%.aux) # their aux files. +PDATA = $(PROPOSAL:%.tex=%.pdata) # the proposal project data +SRC = $(filter-out $(TARGET),$(shell ls *.tex)) # included files +PDFLATEX = pdflatex -interaction batchmode -file-line-error +BBL.base = 1 2 3 4 +BBL = propB.bbl $(BBL.base:%=propB%-blx.bbl) +PROPCLS.dir = $(PROP.dir)/base +PROPETC.dir = $(PROP.dir)/etc +EUPROPCLS.dir = $(PROP.dir)/eu +TEXINPUTS := .//:$(PROPCLS.dir)//:$(EUPROPCLS.dir)//:$(PROPETC.dir)//: +BIBINPUTS := ../lib:$(BIBINPUTS) +PROPCLS.clssty = proposal.cls pdata.sty +PROPETC.sty = workaddress.sty metakeys.sty sref.sty +EUPROPCLS.clssty = euproposal.cls +PROPCLS = $(PROPCLS.clssty:%=$(PROPCLS.dir)/%) $(EUPROPCLS.clssty:%=$(EUPROPCLS.dir)/%) $(PROPETC.sty:%=$(PROPETC.dir)/%) + +all: $(TBIB.pdf) $(TSIMP.pdf) + +cd: # make cd will prepare CD for burning + mkdir CD;make $(TARGET.pdf); cp $(TARGET.pdf) CD + +bbl: $(BBL) +$(BBL): %.bbl: %.aux + bibtex -min-crossrefs=100 -terse $< + +$(TSIMP.pdf): %.pdf: %.tex $(PROPCLS) $(PDATA) + $(PDFLATEX) $< || $(RM) $@ + +$(PDATA): %.pdata: %.tex + $(PDFLATEX) $< + +$(TBIB.aux): %.aux: %.tex + $(PDFLATEX) $< + +$(TBIB.pdf): %.pdf: %.tex $(SRC) $(BIB) $(PROPCLS) + $(PDFLATEX) $< || $(RM) $@ + sort $(PROPOSAL:%.tex=%.delivs) > $(PROPOSAL:%.tex=%.deliverables) + @if (test -e $(patsubst %.tex, %.idx, $<));\ + then makeindex $(patsubst %.tex, %.idx, $<); fi + $(MAKE) -$(MAKEFLAGS) $(BBL) + @if (grep "(re)run BibTeX" $(patsubst %.tex, %.log, $<)> /dev/null);\ + then $(MAKE) -B $(BBL); fi + $(PDFLATEX) $< || $(RM) $@ + @if (grep Rerun $(patsubst %.tex, %.log, $<) > /dev/null);\ + then $(PDFLATEX) $< || $(RM) $@; fi + @if (grep Rerun $(patsubst %.tex, %.log, $<) > /dev/null);\ + then $(PDFLATEX) $< || $(RM) $@; fi + +clean: + rm -f *.log *.blg *~ *.synctex.gz *.cut + +distclean: clean + rm -f *.aux *.out *.run.xml *.bbl *.toc *.deliv* *.pdata + rm -Rf auto + +echo: + echo $(BBL) diff --git a/eu/examples/fetopenstrep/README b/eu/examples/fetopenstrep/README new file mode 100644 index 0000000..72aee78 --- /dev/null +++ b/eu/examples/fetopenstrep/README @@ -0,0 +1,14 @@ +An Exapmle for euproposal.cls + +proposal.tex is a fake EU proposal that shows all elements of euproposal.cls + in action. +*.tex the rest are intemediate files +Makefile allows the automation via a unix Makefile on the author's + machine, adapt it to your needs + +Copyright(c) 2010 Michael Kohlhase +The package is distributed under the terms of the LaTeX Project Public License (LPPL) + +The development version of this package can be found at +https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/euproposal + diff --git a/eu/examples/fetopenstrep/breakthrough.tex b/eu/examples/fetopenstrep/breakthrough.tex new file mode 100644 index 0000000..05570e3 --- /dev/null +++ b/eu/examples/fetopenstrep/breakthrough.tex @@ -0,0 +1,19 @@ +\svnInfo $Id: breakthrough.tex 21554 2011-04-30 05:53:27Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/fetopenstrep/breakthrough.tex $ +\section{Targeted breakthrough and long-term vision}\label{sec:objectives} +\begin{todo}{from the proposal template} + Describe the breakthrough(s) that you are targeting to achieve. What is the long-term + vision (scientific, technological, societal, other) that motivates this breakthrough? + Explain how this breakthrough is an essential step towards the achievement of your + long-term vision, in particular in terms of new forms and uses of information and + information technologies. Describe the concrete objectives that you consider to + constitute the proof-of-concept of such a breakthrough. The objectives should be those + that you consider achievable within the project, in spite of the inherent risks. They + should be stated in a verifiable form, including through the milestones that will be + indicated under Section 1.3 below. +\end{todo} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "propB" +%%% End: diff --git a/eu/examples/fetopenstrep/impact.tex b/eu/examples/fetopenstrep/impact.tex new file mode 100644 index 0000000..473abc1 --- /dev/null +++ b/eu/examples/fetopenstrep/impact.tex @@ -0,0 +1,38 @@ +\svnInfo $Id: impact.tex 22929 2012-01-08 09:25:45Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/fetopenstrep/impact.tex $ +\chapter{Impact}\label{chap:impact} +\ednote{Maximum length for the whole of Section 3 –-- ten pages} +\begin{todo}{from the proposal template} +``Contribution to the scientific foundations of future information and communication technologies that +may be radically different from present day ICT. It may, for example, open new avenues for science and +technology, or lead to a paradigm shift in the way technologies are conceived or applied. FET-Open research is not required to have direct short-term technological or societal impact but it will take concrete +steps towards achieving its long-term vision, supported by a critical exploration of the potential implications for the environment and for society.'' + +``All FET-Open activities should contribute to securing and strengthening the future potential for high-risk / high-impact visionary research. To achieve this, FET-Open is expected to generate new collaborations involving a broad range of disciplines, the established scientists as well as the talented young ones, and a diversity of actors in research, including small and independent research organisations and high-tech SMEs, whenever relevant in terms of the activities proposed. International collaboration should exploit synergies in the global science and technology scene, to increase impact and to raise the level of excellence world-wide.'' +\end{todo} +\section{Transformational impact on science, technology and/or society}\label{sec:transformational-impact} +\begin{todo}{from the proposal template} + If successful, what would be the transformative impact of your project? What difference will it make, especially in terms of long-lasting changes on science, technology, society or theories? Mention the steps that will be needed after the project to bring about these impacts. Explain why this contribution requires a European (rather than a national or local) approach. Indicate how account is taken of other national or international research activities. Mention any assumptions and external factors that may determine whether the impacts will be achieved. +\end{todo} +\section{Contribution at the European level towards the expected impacts listed in the work programme}\label{sec:european-contribution} +\begin{todo}{from the proposal template} + Explain how your project contributes to securing and strengthening the future potential for high-risk / high-impact visionary research, through its results or through the organisation of the work and collaborations within your consortium . Will you generate new diverse collaborations, or impact on current practice in this kind of research? Where relevant, highlight how international collaboration exploits synergies in the global science and technology scene, increases impact and raises the level of excellence world-wide. +\end{todo} + +\section{Dissemination and/or Use of Project Results}\label{sec:outreach} + +\begin{todo}{from the proposal template} + Describe the measures you propose for the dissemination and/or exploitation of project results, and how these will increase the impact of the project. In designing these measures, you should take into account a variety of communication means and target groups as appropriate (e.g. policy-makers, interest groups, media and the public at large). + +For more information on communication guidance, see the URL \url{http://ec.europa.eu/research/science-society/science-communication/index_en.htm} + + Describe also your plans for the management of knowledge (intellectual property) acquired in the course of the project. +\end{todo} + + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "propB" +%%% End: + +% LocalWords: ednote diff --git a/eu/examples/fetopenstrep/implementation.tex b/eu/examples/fetopenstrep/implementation.tex new file mode 100644 index 0000000..979a38f --- /dev/null +++ b/eu/examples/fetopenstrep/implementation.tex @@ -0,0 +1,101 @@ +\svnInfo $Id: implementation.tex 22870 2012-01-02 11:01:58Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/fetopenstrep/implementation.tex $ +\chapter{Implementation}\label{chap:implementation} + +\section{Management Structure and Procedures}\label{chap:management} +\begin{todo}{from the proposal template} + Describe the organizational structure and decision-making mechanisms + of the project. Show how they are matched to the nature, complexity + and scale of the project. Maximum length of this section: five pages. +\end{todo} + +The Project Management of {\pn} is based on its Consortium Agreement, which will be +signed before the Contract is signed by the Commission. The Consortium Agreement will +enter into force as from the date the contract with the European Commission is signed. +\subsection{Organizational structure}\label{sec:management-structure} +\subsection{Risk Assessment and Management} +\subsection{Information Flow and Outreach}\label{sec:spread-excellence} +\subsection{Quality Procedures}\label{sec:quality-management} +\subsection{Internal Evaluation Procedures} +\newpage +\section{Individual Participants}\label{sec:partners} +\begin{todo}{from the proposal template} +For each participant in the proposed project, provide a brief description of the legal entity, the main +tasks they have been attributed, and the previous experience relevant to those tasks. Provide also a +short profile of the individuals who will be undertaking the work.\\ +Maximum length for Section 2.2: one page per participant. However, where two or more departments within +an organisation have quite distinct roles within the proposal, one page per department is acceptable.\\ +The maximum length applying to a legal entity composed of several members, each of which is a separate +legal entity (for example an EEIG1), is one page per member, provided that the members have quite distinct +roles within the proposal. +\end{todo} +\newpage +\input{../strep/site-jacu}\newpage +\input{../strep/site-efo}\newpage +\input{../strep/site-bar}\newpage +\input{../strep/site-baz}\newpage + +\section{The {\protect\pn} consortium as a whole} +\begin{todo}{from the proposal template} + Describe how the participants collectively constitute a consortium capable of achieving + the project objectives, and how they are suited and are committed to the tasks assigned + to them. Show the complementarity between participants. Explain how the composition of + the consortium is well-balanced in relation to the objectives of the project. + + If appropriate describe the industrial/commercial involvement to ensure exploitation of + the results. Show how the opportunity of involving SMEs has been addressed +\end{todo} + +The project partners of the \pn project have a long history of successful collaboration; +Figure~\ref{fig:collaboration} gives an overview over joint projects (including proposals) and +joint publications (only international, peer reviewed ones). + +\jointpub{jacu}{efo} +\jointpub{efo}{baz} +\jointproj{efo}{baz} +\coherencetable + +\subsection{Subcontracting}\label{sec:subcontracting} +\begin{todo}{from the proposal template} + If any part of the work is to be sub-contracted by the participant responsible for it, + describe the work involved and explain why a sub-contract approach has been chosen for + it. +\end{todo} +\subsection{Other Countries}\label{sec:other-countries} +\begin{todo}{from the proposal template} + If a one or more of the participants requesting EU funding is based outside of the EU + Member states, Associated countries and the list of International Cooperation Partner + Countries\footnote{See CORDIS web-site, and annex 1 of the work programme.}, explain in + terms of the project’s objectives why such funding would be essential. +\end{todo} + +\subsection{Additional Partners}\label{sec:assoc-partner} +\begin{todo}{from the proposal template} + If there are as-yet-unidentified participants in the project, the expected competences, + the role of the potential participants and their integration into the running project + should be described +\end{todo} +\section{Resources to be Committed}\label{sec:resources} +\begin{todo}{from the proposal template} +Maximum length: two pages + +Describe how the totality of the necessary resources will be mobilized, including any resources that +will complement the EC contribution. Show how the resources will be integrated in a coherent way, +and show how the overall financial plan for the project is adequate. + +In addition to the costs indicated on form A3 of the proposal, and the effort shown in Section 1.3 +above, please identify any other major costs (e.g. equipment). Ensure that the figures stated in Part B +are consistent with these. +\end{todo} + +\subsection{Travel Costs and Consumables}\label{sec:travel-costs} +\subsection{Subcontracting Costs} +\subsection{Other Costs} + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "propB" +%%% End: + +% LocalWords: pn newpage site-jacu site-efo site-baz jointpub efo baz +% LocalWords: jointproj coherencetable assoc-partner diff --git a/eu/examples/fetopenstrep/methodology.tex b/eu/examples/fetopenstrep/methodology.tex new file mode 100644 index 0000000..4614aee --- /dev/null +++ b/eu/examples/fetopenstrep/methodology.tex @@ -0,0 +1,59 @@ +\svnInfo $Id: methodology.tex 22870 2012-01-02 11:01:58Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/fetopenstrep/methodology.tex $ +\section[S/T Methodology]{S/T Methodology\footnote{Note that, whereas the scientific and technological methodology is evaluated +under the criteria ‘S/T quality’, the quality of the +actual workplan is evaluated under FET-Open under the criteria ‘Implementation’.}}\label{sec:methodology} +\begin{todo}{from the proposal template} +Provide a detailed description of the scientific and technological approach or methodology +by which you will attempt to reach your objectives. Demonstrate that you are aware of the +level and nature of the risks of failure, and that you have a good idea on how to address +these risks. Describe a progression of crucial milestones and decision points for your +project, and their expected timing. What would constitute success? What would you learn +from an eventual failure? Where relevant, show how your approach takes into account the +difficulties inherent to the multi-disciplinary nature of the idea or approach that you +are proposing. + A detailed work plan should be presented, broken down into work +packages\footnote{A work package is a major sub-division of the proposed project with a + verifiable end-point – normally a deliverable or an important milestone in the overall + project.} (WPs) which should follow the logical phases of the implementation of the +project, and include consortium management and assessment of progress and results. (Note +that your overall approach to management will be described later, in Section 2). + +Notes: The number of work packages used must be appropriate to the complexity of the work +and the overall value of the proposed project. The planning should be sufficiently +detailed to justify the proposed effort and allow progress monitoring by the Commission. + +\end{todo} +\newpage\input{workplan} + +\newpage +\subsection{Work Package List}\label{sec:wplist} + +\begin{todo}{from the proposal template} +Please indicate one activity per work package: +RTD = Research and technological development; DEM = Demonstration; MGT = Management of the consortium +\end{todo} + +%\makeatletter\wp@total@RM{management}\makeatother +\wpfig[pages,type] + +\newpage\input{../strep/deliverables} +\newpage\input{../strep/milestones} + +\subsection{Work Package Descriptions}\label{sec:workpackages} +\begin{workplan} +\input{../strep/wp-management}\newpage +\input{../strep/wp-dissem}\newpage +\input{../strep/wp-class}\newpage +\input{../strep/wp-temple}\newpage +\end{workplan} +\newpage\input{../strep/risks} + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "propB" +%%% End: + +% LocalWords: workplan newpage wplist makeatletter makeatother wpfig +% LocalWords: workpackages wp-dissem wp-class wp-temple diff --git a/eu/examples/fetopenstrep/novelty.tex b/eu/examples/fetopenstrep/novelty.tex new file mode 100644 index 0000000..d64c541 --- /dev/null +++ b/eu/examples/fetopenstrep/novelty.tex @@ -0,0 +1,17 @@ +\svnInfo $Id: novelty.tex 21553 2011-04-30 05:50:58Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/fetopenstrep/novelty.tex $ +\section{Novelty and foundational character}\label{sec:progress} +\begin{todo}{from the proposal template} + Describe the state-of-the-art in the area(s) concerned, and the advance that the + proposed project would bring about. Clearly describe the novelty of your proposal. In + what way do you challenge current thinking or assumptions? Novelty should come from new + ideas, not from the incremental refinement of existing approaches. It can also come from + new and unexpected combinations of insights from various disciplines. What is the + scientific foundation that you aim to develop and what are the specific contributions to + science and technology that your project will make (including in case of failure)? +\end{todo} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "propB" +%%% End: diff --git a/eu/examples/fetopenstrep/propB.pdf b/eu/examples/fetopenstrep/propB.pdf new file mode 100644 index 0000000..d720245 Binary files /dev/null and b/eu/examples/fetopenstrep/propB.pdf differ diff --git a/eu/examples/fetopenstrep/propB.tex b/eu/examples/fetopenstrep/propB.tex new file mode 100644 index 0000000..f891a22 --- /dev/null +++ b/eu/examples/fetopenstrep/propB.tex @@ -0,0 +1,72 @@ +% the document class specification for the proposal writing process, add the 'submit' option +% for submitting (switches off various draft features); add the 'public' option to exclude +% any private parts. +\documentclass[noworkareas,deliverables]{euproposal} +%\documentclass[submit,noworkareas,deliverables]{euproposal} +%\documentclass[submit,public,noworkareas,deliverables]{euproposal} +%% TODO these don't work with WA (https://trac.kwarc.info/sTeX/ticket/1697) +%\usepackage[T1]{fontenc} +%\usepackage[utf8]{inputenc} +\addbibresource{../lib/dummy} + +% the following lines get updated by subversion keyword replacement. They are used by the +% \svninfo package in draft mode to generate metadata. +\svnInfo $Id: propB.tex 24314 2013-03-24 14:39:33Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/fetopenstrep/propB.tex $ +% +\input{../lib/WApersons}% Some sections of the included files depend on this. + + +\begin{document} +\begin{center}\color{red}\huge +This mock proposal is just an example for \texttt{euproposal.cls} it reflects the ICT +template of May 2011 +\end{center} +\begin{proposal}[site=jacu,jacuRM=36, + site=efo,efoRM=36, + site=bar,barRM=36, + site=baz,bazRM=36, + coordinator=miko, + acronym={iPoWr}, + acrolong={\underline{I}ntelligent} {\underline{P}r\underline{o}sal} {\underline{Wr}iting}, + title=\pn: \protect\pnlong, + callname = ICT Call 1, + callid = FP7-???-200?-?, + instrument= Small or Medium-Scale Focused Research Project (STREP), + challengeid = 4, + challenge = ICT for EU Proposals, + objectiveid={ICT-2012.4.4}, + objective = Technology-enhanced Documents, + outcomeid = b1, + outcome = {More time for Research, not Proposal writing}, + coordinator=miko, + months=24, + compactht] +\begin{abstract} + 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 + {\textsc{Subversion}}, allowing the proposal writing team to concentrate on the contents + rather than the mechanics of wrangling with text fragments and revisions. +\end{abstract} + +\tableofcontents + +\begin{todo}{from the proposal template} + Recommended length for the whole part B: 50--60 pages (including tables, references, + etc.) +\end{todo} +\include{quality}\newpage +\include{implementation}\newpage +\include{impact}\newpage +\include{issues} +\end{proposal} +\end{document} + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: t +%%% End: + +% LocalWords: efo efoRM baz bazRM miko acrolong ntelligent iting pn pnlong +% LocalWords: textsc newpage compactht diff --git a/eu/examples/fetopenstrep/quality.tex b/eu/examples/fetopenstrep/quality.tex new file mode 100644 index 0000000..a08e7a4 --- /dev/null +++ b/eu/examples/fetopenstrep/quality.tex @@ -0,0 +1,16 @@ +\svnInfo $Id: quality.tex 22870 2012-01-02 11:01:58Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/fetopenstrep/quality.tex $ +\chapter{Scientific and Technical Quality}\label{chap:quality} +\begin{todo}{from the proposal template} + Maximum length for the whole of Section 1 –-- twenty pages, not including the tables in + Section 1.3 +\end{todo} + +\input{breakthrough} +\input{novelty} +\input{methodology} +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "propB" +%%% End: + diff --git a/eu/examples/fetopenstrep/workplan.tex b/eu/examples/fetopenstrep/workplan.tex new file mode 100644 index 0000000..1c74b65 --- /dev/null +++ b/eu/examples/fetopenstrep/workplan.tex @@ -0,0 +1,22 @@ +\svnInfo $Id: workplan.tex 22929 2012-01-08 09:25:45Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/fetopenstrep/workplan.tex $ + +\begin{todo}{from the proposal template} +\begin{enumerate} +\item Describe the overall strategy of the work plan\ednote{Maximum length – one page} +\item Show the timing of the different WPs and their components (Gantt chart or similar). +\end{enumerate} +\end{todo} +\begin{figure} + \caption{Work package dependencies} + \label{fig:wp-deps} +\end{figure} + +\ganttchart[draft,xscale=.45] + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "propB" +%%% End: + +% LocalWords: workplan.tex ednote wp-deps ganttchart xscale diff --git a/eu/examples/lib/WApersons.tex b/eu/examples/lib/WApersons.tex new file mode 100644 index 0000000..d2c58eb --- /dev/null +++ b/eu/examples/lib/WApersons.tex @@ -0,0 +1,98 @@ +\WAperson[id=miko, + personaltitle=Prof. Dr., + birthdate=13. September 1964, + academictitle=Professor of Computer Science, + affiliation=jacu, + department=case, + privaddress=None of your business, + privtel=that neither, + email=m.kohlhase@jacobs-university.de, + workaddress={Campus Ring 1, 28757 Bremen}, + worktel=+49 421 200 3140, + worktelfax=+49 421 200 3140/493140, + workfax=+49 421 200 493140] + {Michael Kohlhase} +\WAperson[id=gc, + personaltitle=Dr., + academictitle=Senior Researcher, + birthdate=14. April 1972, + affiliation=pcg, + department=pcsa, + privaddress=None of your business, + privtel=that neither, + workaddress= , + worktel=+49 421 0815 4711, + workfax=+49 421 0815 4712, + email=gc@pcg.phony] + {Great Communicator} + +\WAinstitution[id=case,acronym=CASE,shortname=CASE, + url=http://jacobs-university.de/ses/case, + partof=jacu] + {Center for Advanced Systems Engineering} +\WAinstitution[id=jacu, + url=http://jacobs-university.de, + streetaddress={Campus Ring 1}, + townzip={28759 Bremen}, + countryshort=D, + country=Germany, + type=University, + logo=jacobs-logo.png, + acronym=JACU, + shortname=Jacobs University] + {Jacobs University Bremen} + +\WAinstitution[id=pcsa, + url=http://pcg.phony/sa, + partof=pcg] + {Science Affairs} +\WAinstitution[id=pcg, + url=http://pcg.phony, + acronym=PCG, + shortname=Power Consulting, + countryshort=D, + streetaddress={Seefahrtstrasse 5}, + townzip={23555 Hamburg}] + {Power Consulting GmbH} + +\WAinstitution[id=efo, + url=http://efo.eu, + countryshort=NL, + townzip={Utrecht, 3kd89}, + streetaddress={Kruislann 777}, + country={The Netherlands}, + type=NGO, + acronym=EFO, + shortname=European Future Office] + {European Future Office} + +\WAinstitution[id=bar, + url=http://bar.fr, + countryshort=F, + country={France}, + streetaddress={Rue de Montparnasse} + townzip={Paris}, + type=University, + acronym=BAR, + shortname=Universit\'e de BAR] + {Universit\'e de BAR} + +\WAinstitution[id=baz, + url=http://baz.co.uk, + countryshort=UK, + streetaddress={4711 Silicon Glen Drive}, + townzip={Westerfield U3F2B}, + type=SME, + shortname=BAZ International, + acronym=BAZ] + {BAZ International Ltd} + +%%% Local Variables: +%%% mode: latex +%%% End: + +% LocalWords: WAperson miko personaltitle academictitle privaddress privtel +% LocalWords: workaddress worktel workfax gc worktelfax pcg pcsa WAinstitution +% LocalWords: shortname partof streetaddress townzip countryshort efo 3kd89 +% LocalWords: jacobs-logo.png Seefahrtstrasse Kruislann Montparnasse Universit +% LocalWords: baz Westerfield diff --git a/eu/examples/lib/dummy.bib b/eu/examples/lib/dummy.bib new file mode 100644 index 0000000..e3146ba --- /dev/null +++ b/eu/examples/lib/dummy.bib @@ -0,0 +1,76 @@ +@TECHREPORT{CarlisleEd:MathML10, + author = {Ron Ausbrooks and Stephen Buswell and David Carlisle and + Giorgi Chavchanidze and St{\'e}phane Dalmas and Stan Devitt and Angel Diaz + and Sam Dooley and Roger Hunter and Patrick Ion and Michael + Kohlhase and Azzeddine Lazrek and Paul Libbrecht and Bruce Miller and + Robert Miner and Murray Sargent and Bruce Smith and Neil Soiffer and + Robert Sutor and Stephen Watt}, + title = {{Mathematical} {Markup} {Language} ({MathML}) Version 3.0}, + institution = {World Wide Web Consortium (W3C)}, + year = {2010}, + type = {{W3C Recommendation}}, + editor = {David Carlisle and Patrick Ion and Robert Miner}, + key = {MathML3}, + keywords = {standard}, + pubtype = {standard}, + url = {http://www.w3.org/TR/MathML3}, + pubs = {mkohlhase}} + +@inproceedings{KohDavGin:psewads11, + author = {Michael Kohlhase and Joe Corneli and Catalin David and Deyan Ginev and Constantin Jucovschi and Andrea Kohlhase and Christoph Lange and Bogdan Matican and Stefan Mirea and Vyacheslav Zholudev}, + title = {The Planetary System: Web 3.0 \& Active Documents for STEM}, + note = {accepted for publication at ICCS 2011 (Finalist at the Executable Papers Challenge)}, + year = 2011, + url = {https://svn.mathweb.org/repos/planetary/doc/epc11/paper.pdf}, + keywords = {conference}, + pubs = {mkohlhase,cdavid,dginev,akohlhase,clange,bmatican,smirea,vzholudev}} + +@techreport{Kohlhase:pdpl10, + author = {Michael Kohlhase}, + title = {Preparing {DFG} Proposals in {\LaTeX} with \texttt{dfgproposal.cls}}, + institution = {KWARC Group, Jacobs University Bremen}, + type = {Self-documenting {\LaTeX} package}, + url = {https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/dfgproposal.pdf}, + year = 2010} +@BOOK{Kohlhase:omdoc1.2, + title = {{\sc OMDoc} -- An open markup format for mathematical documents [Version 1.2]}, + booktitle = {{\sc OMDoc} -- An open markup format for mathematical documents [Version + 1.2]}, + publisher = {Springer Verlag}, + year = {2006}, + month = aug, + author = {Michael Kohlhase}, + number = {4180}, + series = {LNAI}, + url = {http://omdoc.org/pubs/omdoc1.2.pdf}, +pubs = {mkohlhase,projects/omdocbiblio}} +@Article{StaKoh:tlcspx10, + author = {Heinrich Stamerjohanns and Michael Kohlhase and Deyan Ginev and Catalin David and Bruce Miller}, + title = {Transforming large collections of scientific publications to {XML}}, + journal = {Mathematics in Computer Science}, + issuetitle = {Special Issue on Authoring, Digitalization and Management of Mathematical Knowledge}, + editor = {Serge Autexier and Petr Sojka and Masakazu Suzuki}, + publisher = {Birkh{\"a}user}, + volume = 3, + number = 3, + pages = {299--307}, + url = {http://kwarc.info/kohlhase/papers/mcs10.pdf}, + year = 2010, + pubs = {mkohlhase,stamer,dginev,cdavid,projects/arXMLiv}} + +@misc{providemore,title={\ldots}} +@BOOK{Lamport:ladps94, + title = {LaTeX: A Document Preparation System, 2/e}, + publisher = {Addison Wesley}, + year = {1994}, + author = {Leslie Lamport}} +@BOOK{Knuth:ttb84, + title = {The {\TeX}book}, + publisher = {Addison Wesley}, + year = {1984}, + author = {Donald E. Knuth}} +@BOOK{DK:LP, + title = {{Literate Programming}}, + publisher = {The University of Chicago Press}, + year = 1992, + author = {Donald E. Knuth}} diff --git a/eu/examples/strep/Makefile b/eu/examples/strep/Makefile new file mode 100644 index 0000000..7cd9e01 --- /dev/null +++ b/eu/examples/strep/Makefile @@ -0,0 +1,68 @@ +# possibly customize the following variables to your setting +PROPOSAL = propB.tex # the proposal +BIB = ../lib/dummy.bib # bibTeX databases +PROP.dir = ../../.. +########################################################################### +# the following are computed +TSIMP = # pdflatex Targets without bibTeX +TSIMP.pdf = $(TSIMP:%.tex=%.pdf) # PDFs to be produced +TBIB = $(PROPOSAL) # pdflatex Targets with bibTeX +TARGET = $(TSIMP) $(TBIB) # all pdflatex targets +TBIB.pdf = $(TBIB:%.tex=%.pdf) # PDFs to be produced +TBIB.aux = $(TBIB:%.tex=%.aux) # their aux files. +PDATA = $(PROPOSAL:%.tex=%.pdata) # the proposal project data +SRC = $(filter-out $(TARGET),$(shell ls *.tex)) # included files +PDFLATEX = pdflatex -interaction batchmode -file-line-error +BBL.base = 1 2 3 4 +BBL = propB.bbl $(BBL.base:%=propB%-blx.bbl) +PROPCLS.dir = $(PROP.dir)/base +PROPETC.dir = $(PROP.dir)/etc +EUPROPCLS.dir = $(PROP.dir)/eu +TEXINPUTS := .//:$(PROPCLS.dir)//:$(EUPROPCLS.dir)//:$(PROPETC.dir)//: +BIBINPUTS := ../lib:$(BIBINPUTS) +PROPCLS.clssty = proposal.cls pdata.sty +PROPETC.sty = workaddress.sty metakeys.sty sref.sty +EUPROPCLS.clssty = euproposal.cls +PROPCLS = $(PROPCLS.clssty:%=$(PROPCLS.dir)/%) $(EUPROPCLS.clssty:%=$(EUPROPCLS.dir)/%) $(PROPETC.sty:%=$(PROPETC.dir)/%) + +all: $(TBIB.pdf) $(TSIMP.pdf) + +cd: # make cd will prepare CD for burning + mkdir CD;make $(TARGET.pdf); cp $(TARGET.pdf) CD + +bbl: $(BBL) +$(BBL): %.bbl: %.aux + bibtex -min-crossrefs=100 -terse $< + +$(TSIMP.pdf): %.pdf: %.tex $(PROPCLS) $(PDATA) + $(PDFLATEX) $< || $(RM) $@ + +$(PDATA): %.pdata: %.tex + $(PDFLATEX) $< + +$(TBIB.aux): %.aux: %.tex + $(PDFLATEX) $< + +$(TBIB.pdf): %.pdf: %.tex $(SRC) $(BIB) $(PROPCLS) + $(PDFLATEX) $< || $(RM) $@ + sort $(PROPOSAL:%.tex=%.delivs) > $(PROPOSAL:%.tex=%.deliverables) + @if (test -e $(patsubst %.tex, %.idx, $<));\ + then makeindex $(patsubst %.tex, %.idx, $<); fi + $(MAKE) -$(MAKEFLAGS) $(BBL) + @if (grep "(re)run BibTeX" $(patsubst %.tex, %.log, $<)> /dev/null);\ + then $(MAKE) -B $(BBL); fi + $(PDFLATEX) $< || $(RM) $@ + @if (grep Rerun $(patsubst %.tex, %.log, $<) > /dev/null);\ + then $(PDFLATEX) $< || $(RM) $@; fi + @if (grep Rerun $(patsubst %.tex, %.log, $<) > /dev/null);\ + then $(PDFLATEX) $< || $(RM) $@; fi + +clean: + rm -f *.log *.blg *~ *.synctex.gz *.cut + +distclean: clean + rm -f *.aux *.out *.run.xml *.bbl *.toc *.deliv* *.pdata + rm -Rf auto + +echo: + echo $(BBL) diff --git a/eu/examples/strep/README b/eu/examples/strep/README new file mode 100644 index 0000000..72aee78 --- /dev/null +++ b/eu/examples/strep/README @@ -0,0 +1,14 @@ +An Exapmle for euproposal.cls + +proposal.tex is a fake EU proposal that shows all elements of euproposal.cls + in action. +*.tex the rest are intemediate files +Makefile allows the automation via a unix Makefile on the author's + machine, adapt it to your needs + +Copyright(c) 2010 Michael Kohlhase +The package is distributed under the terms of the LaTeX Project Public License (LPPL) + +The development version of this package can be found at +https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/euproposal + diff --git a/eu/examples/strep/deliverables.tex b/eu/examples/strep/deliverables.tex new file mode 100644 index 0000000..3ea8b1d --- /dev/null +++ b/eu/examples/strep/deliverables.tex @@ -0,0 +1,36 @@ +\svnInfo $Id: deliverables.tex 24014 2013-01-01 15:12:26Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/deliverables.tex $ +\subsection{List of Deliverables}\label{sec:deliverables} + +\begin{todo}{from the proposal template} +\begin{compactenum} +\item Deliverable numbers in order of delivery dates. Please use the numbering convention .. For example, deliverable 4.2 would be the second deliverable from work package 4. +\item Please indicate the nature of the deliverable using one of the following codes: +R = Report, P = Prototype, D = Demonstrator, O = Other +\item Please indicate the dissemination level using one of the following codes: +PU = Public +PP = Restricted to other programme participants (including the Commission Services). +RE = Restricted to a group specified by the consortium (including the Commission Services). +CO = Confidential, only for members of the consortium (including the Commission Services). +\end{compactenum} +\end{todo} +We will now give an overview over the deliverables and milestones of the work +packages. Note that the times of deliverables after month 24 are estimates and may change +as the work packages progress. + +In the table below, {\emph{integrating work deliverables}} (see top of +section~\ref{sec:wplist}) are printed in boldface to mark them. They integrate +contributions from multiple work packages. \ednote{CL: the rest of this paragraph does not + comply with the EU guide for applicants, needs to be rewritten}These can have the +dissemination level ``partial'', which indicates that it contains parts of level +``project'' that are to be disseminated to the project and evaluators only. In such +reports, two versions are prepared, and disseminated accordingly. + +{\footnotesize\inputdelivs{8cm}} + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "propB" +%%% End: diff --git a/eu/examples/strep/impact.tex b/eu/examples/strep/impact.tex new file mode 100644 index 0000000..bf58123 --- /dev/null +++ b/eu/examples/strep/impact.tex @@ -0,0 +1,42 @@ +\svnInfo $Id: impact.tex 22965 2012-01-13 14:29:23Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/impact.tex $ +\chapter{Impact}\label{chap:impact} +\ednote{Maximum length for the whole of Section 3 –-- ten pages} + +\section{Expected Impacts listed in the Work Programe }\label{sec:expected-impact} +\begin{todo}{from the proposal template} + Describe how your project will contribute towards the expected impacts listed in the + work programme in relation to the topic or topics in question. Mention the steps that + will be needed to bring about these impacts. Explain why this contribution requires a + European (rather than a national or local) approach. Indicate how account is taken of + other national or international research activities. Mention any assumptions and + external factors that may determine whether the impacts will be achieved. +\end{todo} +\subsection{Medium Term Expected Outcome} + +\subsection{Long Term Expected Outcomes} +\subsection{Use Cases} + +\section{Dissemination and/or Use of Project Results, and Management of Intellectual Property}\label{sec:dissemination} + +\begin{todo}{from the proposal template} + Describe the measures you propose for the dissemination and/or exploitation of project + results, and how these will increase the impact of the project. In designing these + measures, you should take into account a variety of communication means and target + groups as appropriate (e.g. policy-makers, interest groups, media and the public at + large). + + For more information on communication guidance, see the URL + \url{http://ec.europa.eu/research/science-society/science-communication/index_en.htm} + + Describe also your plans for the management of knowledge (intellectual property) + acquired in the course of the project. +\end{todo} + + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "propB" +%%% End: + +% LocalWords: ednote diff --git a/eu/examples/strep/implementation.tex b/eu/examples/strep/implementation.tex new file mode 100644 index 0000000..4dd1525 --- /dev/null +++ b/eu/examples/strep/implementation.tex @@ -0,0 +1,101 @@ +\svnInfo $Id: implementation.tex 24014 2013-01-01 15:12:26Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/implementation.tex $ +\chapter{Implementation}\label{chap:implementation} + +\section{Management Structure and Procedures}\label{chap:management} +\begin{todo}{from the proposal template} + Describe the organizational structure and decision-making mechanisms + of the project. Show how they are matched to the nature, complexity + and scale of the project. Maximum length of this section: five pages. +\end{todo} + +The Project Management of {\pn} is based on its Consortium Agreement, which will be +signed before the Contract is signed by the Commission. The Consortium Agreement will +enter into force as from the date the contract with the European Commission is signed. +\subsection{Organizational structure}\label{sec:management-structure} +\subsection{Risk Assessment and Management} +\subsection{Information Flow and Outreach}\label{sec:spread-excellence} +\subsection{Quality Procedures}\label{sec:quality-management} +\subsection{Internal Evaluation Procedures} +\newpage +\section{Individual Participants}\label{sec:partners} +\begin{todo}{from the proposal template} +For each participant in the proposed project, provide a brief description of the legal entity, the main +tasks they have been attributed, and the previous experience relevant to those tasks. Provide also a +short profile of the individuals who will be undertaking the work.\\ +Maximum length for Section 2.2: one page per participant. However, where two or more departments within +an organisation have quite distinct roles within the proposal, one page per department is acceptable.\\ +The maximum length applying to a legal entity composed of several members, each of which is a separate +legal entity (for example an EEIG1), is one page per member, provided that the members have quite distinct +roles within the proposal. +\end{todo} +\newpage +\input{site-jacu}\newpage +\input{site-efo}\newpage +\input{site-bar}\newpage +\input{site-baz}\newpage + +\section{The {\protect\pn} consortium as a whole} +\begin{todo}{from the proposal template} + Describe how the participants collectively constitute a consortium capable of achieving + the project objectives, and how they are suited and are committed to the tasks assigned + to them. Show the complementarity between participants. Explain how the composition of + the consortium is well-balanced in relation to the objectives of the project. + + If appropriate describe the industrial/commercial involvement to ensure exploitation of + the results. Show how the opportunity of involving SMEs has been addressed +\end{todo} + +The project partners of the \pn project have a long history of successful collaboration; +Figure~\ref{tab:collaboration} gives an overview over joint projects (including proposals) and +joint publications (only international, peer reviewed ones). + +\jointorga{jacu,efo,baz} +\jointpub{efo,baz,jacu} +\jointproj{efo,bar} +\coherencetable + +\subsection{Subcontracting}\label{sec:subcontracting} +\begin{todo}{from the proposal template} + If any part of the work is to be sub-contracted by the participant responsible for it, + describe the work involved and explain why a sub-contract approach has been chosen for + it. +\end{todo} +\subsection{Other Countries}\label{sec:other-countries} +\begin{todo}{from the proposal template} + If a one or more of the participants requesting EU funding is based outside of the EU + Member states, Associated countries and the list of International Cooperation Partner + Countries\footnote{See CORDIS web-site, and annex 1 of the work programme.}, explain in + terms of the project’s objectives why such funding would be essential. +\end{todo} + +\subsection{Additional Partners}\label{sec:assoc-partner} +\begin{todo}{from the proposal template} + If there are as-yet-unidentified participants in the project, the expected competences, + the role of the potential participants and their integration into the running project + should be described +\end{todo} +\section{Resources to be Committed}\label{sec:resources} +\begin{todo}{from the proposal template} +Maximum length: two pages + +Describe how the totality of the necessary resources will be mobilized, including any resources that +will complement the EC contribution. Show how the resources will be integrated in a coherent way, +and show how the overall financial plan for the project is adequate. + +In addition to the costs indicated on form A3 of the proposal, and the effort shown in Section 1.3 +above, please identify any other major costs (e.g. equipment). Ensure that the figures stated in Part B +are consistent with these. +\end{todo} + +\subsection{Travel Costs and Consumables}\label{sec:travel-costs} +\subsection{Subcontracting Costs} +\subsection{Other Costs} + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "propB" +%%% End: + +% LocalWords: pn newpage site-jacu site-efo site-baz jointpub efo baz +% LocalWords: jointproj coherencetable assoc-partner diff --git a/eu/examples/strep/issues.tex b/eu/examples/strep/issues.tex new file mode 100644 index 0000000..831f802 --- /dev/null +++ b/eu/examples/strep/issues.tex @@ -0,0 +1,61 @@ +\svnInfo $Id: issues.tex 21553 2011-04-30 05:50:58Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/issues.tex $ +\chapter{Ethical Issues}\label{chap:ethical} +\begin{todo}{from the proposal template} + Describe any ethical issues that may arise in the project. In particular, you should + explain the benefit and burden of the experiments and the effects it may have on the + research subject. Identify the countries where research will be undertaken and which + ethical committees and regulatory organisations will need to be approached during the + life of the project. + + Include the Ethical issues table below. If you indicate YES to any issue, please + identify the pages in the proposal where this ethical issue is described. Answering + 'YES' to some of these boxes does not automatically lead to an ethical review1. It + enables the independent experts to decide if an ethical review is required. If you are + sure that none of the issues apply to your proposal, simply tick the YES box in the last + row. +\end{todo} + +\begin{small} +\begin{tabular}{|p{1em}p{11cm}|l|l|}\hline + \multicolumn{2}{|l|}{\cellcolor{lightgray}{\strut}} & + \cellcolor{lightgray}{YES} & + \cellcolor{lightgray}{PAGE}\\\hline + \multicolumn{2}{|l|}{\bf{Informed Consent}} & & \\\hline + & Does the proposal involve children? & & \\\hline + & Does the proposal involve patients or persons not able to give consent? & & \\\hline + & Does the proposal involve adult healthy volunteers? & & \\\hline + & Does the proposal involve Human Genetic Material? & & \\\hline + & Does the proposal involve Human biological samples? & & \\\hline + & Does the proposal involve Human data collection? & & \\\hline + \multicolumn{2}{|l|}{\bf{Research on Human embryo/foetus}} & & \\\hline + & Does the proposal involve Human Embryos? & & \\\hline + & Does the proposal involve Human Foetal Tissue / Cells? & & \\\hline + & Does the proposal involve Human Embryonic Stem Cells? & & \\\hline + \multicolumn{2}{|l|}{\bf{Privacy}} & & \\\hline + & Does the proposal involve processing of genetic information + or personal data (eg. health, sexual lifestyle, ethnicity, + political opinion, religious or philosophical conviction) & & \\\hline + & Does the proposal involve tracking the location or observation + of people? & & \\\hline + \multicolumn{2}{|l|}{\bf{Research on Animals}} & & \\\hline + & Does the proposal involve research on animals? & & \\\hline + & Are those animals transgenic small laboratory animals? & & \\\hline + & Are those animals transgenic farm animals? & & \\\hline + & Are those animals cloned farm animals? & & \\\hline + & Are those animals non-human primates? & & \\\hline + \multicolumn{2}{|l|}{\bf{Research Involving Developing Countries}} & & \\\hline + & Use of local resources (genetic, animal, plant etc) & & \\\hline + & Benefit to local community (capacity building + i.e. access to healthcare, education etc) & & \\\hline + \multicolumn{2}{|l|}{\bf{Dual Use}} & & \\\hline + & Research having direct military application & & \\\hline + & Research having the potential for terrorist abuse & & \\\hline + \multicolumn{2}{|l|}{\bf{ICT Implants}} & & \\\hline + & Does the proposal involve clinical trials of ICT implants? & & \\\hline + \multicolumn{2}{|l|}{\bf\footnotesize{I CONFIRM THAT NONE OF THE ABOVE ISSUES APPLY TO MY PROPOSAL}} + & &\cellcolor{lightgray}{} \\\hline +\end{tabular} +\end{small} + +\section{Personal Data} diff --git a/eu/examples/strep/methodology.tex b/eu/examples/strep/methodology.tex new file mode 100644 index 0000000..2c9c6e0 --- /dev/null +++ b/eu/examples/strep/methodology.tex @@ -0,0 +1,51 @@ +\svnInfo $Id: methodology.tex 22975 2012-01-14 19:43:38Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/methodology.tex $ +\section{Scientific/Technical Methodology and Work Plan}\label{sec:methodology} +\begin{todo}{from the proposal template} + A detailed work plan should be presented, broken down into work packages\footnote{A work + package is a major sub-division of the proposed project with a verifiable end-point – + normally a deliverable or an important milestone in the overall project.} (WPs) which + should follow the logical phases of the implementation of the project, and include + consortium management and assessment of progress and results. (Note that your overall + approach to management will be described later, in Section 2). + +Notes: The number of work packages used must be appropriate to the complexity of the work +and the overall value of the proposed project. The planning should be sufficiently +detailed to justify the proposed effort and allow progress monitoring by the Commission. + +Any significant risks should be identified, and contingency plans described +\end{todo} +\newpage\input{workplan} + +\newpage +\subsection{Work Package List}\label{sec:wplist} + +\begin{todo}{from the proposal template} +Please indicate one activity per work package: +RTD = Research and technological development; DEM = Demonstration; MGT = Management of the consortium +\end{todo} + +%\makeatletter\wp@total@RM{management}\makeatother +\wpfigstyle{\footnotesize} +\wpfig[pages,type,start,end] + +\newpage\input{deliverables} +\newpage\input{milestones} + +\subsection{Work Package Descriptions}\label{sec:workpackages} +\begin{workplan} +\input{wp-management}\newpage +\input{wp-dissem}\newpage +\input{wp-class}\newpage +\input{wp-temple}\newpage +\end{workplan} +\newpage\input{risks} + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "propB" +%%% End: + +% LocalWords: workplan newpage wplist makeatletter makeatother wpfig +% LocalWords: workpackages wp-dissem wp-class wp-temple diff --git a/eu/examples/strep/milestones.tex b/eu/examples/strep/milestones.tex new file mode 100644 index 0000000..4bb29d8 --- /dev/null +++ b/eu/examples/strep/milestones.tex @@ -0,0 +1,42 @@ +\svnInfo $Id: milestones.tex 24014 2013-01-01 15:12:26Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/milestones.tex $ +\subsection{List of Milestones}\label{sec:milestones} + +\begin{todo}{from the proposal template} + Milestones are control points where decisions are needed with regard to the next stage + of the project. For example, a milestone may occur when a major result has been + achieved, if its successful attainment is a requirement for the next phase of + work. Another example would be a point when the consortium must decide which of several + technologies to adopt for further development. + + Means of verification: Show how you will confirm that the milestone has been + attained. Refer to indicators if appropriate. For examples: a laboratory prototype + completed and running flawlessly, software released and validated by a user group, field + survey complete and data quality validated. +\end{todo} + + +The work in the {\pn} project is structured by seven milestones, which coincide with the +project meetings in summer and fall. Since the meetings are the main face-to-face +interaction points in the project, it is suitable to schedule the milestones for these +events, where they can be discussed in detail. We envision that this setup will give the +project the vital coherence in spite of the broad mix of disciplinary backgrounds of the +participants.\ednote{maybe automate the milestones} + +\begin{milestones} + \milestone[id=kickoff,verif=Inspection,month=1] + {Initial Infrastructure} + {Set up the organizational infrastructure, in particular: Web Presence, project TRAC,\ldots} + \milestone[id=consensus,verif=Inspection,month=24]{Consensus} {Reach Consensus on the + way the project goes} + \milestone[id=exploitation,verif=Inspection,month=36]{Exploitation}{The exploitation + plan should be clear so that we can start on this in the last year.} + \milestone[id=final,verif=Inspection,month=48]{Final Results}{all is done} +\end{milestones} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "propB" +%%% End: + +% LocalWords: pn ednote verif ldots diff --git a/eu/examples/strep/objectives.tex b/eu/examples/strep/objectives.tex new file mode 100644 index 0000000..8e18ffe --- /dev/null +++ b/eu/examples/strep/objectives.tex @@ -0,0 +1,15 @@ +\svnInfo $Id: objectives.tex 21553 2011-04-30 05:50:58Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/objectives.tex $ +\section{Concept and Objectives}\label{sec:objectives} +\begin{todo}{from the proposal template} + Explain the concept of your project. What are the main ideas that led you to propose + this work? Describe in detail the S\&T objectives. Show how they relate to the topics + addressed by the call. The objectives should be those achievable within the project, not + through subsequent development. They should be stated in a measurable and verifiable + form, including through the milestones that will be indicated under Section 1.3 below. +\end{todo} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "propB" +%%% End: diff --git a/eu/examples/strep/progress.tex b/eu/examples/strep/progress.tex new file mode 100644 index 0000000..7b780fc --- /dev/null +++ b/eu/examples/strep/progress.tex @@ -0,0 +1,13 @@ +\svnInfo $Id: progress.tex 21553 2011-04-30 05:50:58Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/progress.tex $ +\section{Progress beyond the State-of-the-Art}\label{sec:progress} +\begin{todo}{from the proposal template} + Describe the state-of-the-art in the area concerned, and the advance that the proposed + project would bring about. If applicable, refer to the results of any patent search you + might have carried out. +\end{todo} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "propB" +%%% End: diff --git a/eu/examples/strep/propB.pdf b/eu/examples/strep/propB.pdf new file mode 100644 index 0000000..f42c5d3 Binary files /dev/null and b/eu/examples/strep/propB.pdf differ diff --git a/eu/examples/strep/propB.tex b/eu/examples/strep/propB.tex new file mode 100644 index 0000000..f9ceb6b --- /dev/null +++ b/eu/examples/strep/propB.tex @@ -0,0 +1,73 @@ +% the document class specification for the proposal writing process, add the 'submit' option +% for submitting (switches off various draft features); add the 'public' option to exclude +% any private parts. +\documentclass[noworkareas,deliverables]{euproposal} +%\documentclass[submit,noworkareas,deliverables]{euproposal} +%\documentclass[submit,public,noworkareas,deliverables]{euproposal} +%% TODO these don't work with WA (https://trac.kwarc.info/sTeX/ticket/1697) +%\usepackage[T1]{fontenc} +%\usepackage[utf8]{inputenc} +\addbibresource{../lib/dummy} + +% the following lines get updated by subversion keyword replacement. They are used by the +% \svninfo package in draft mode to generate metadata. +\svnInfo $Id: propB.tex 24314 2013-03-24 14:39:33Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/propB.tex $ +% +\input{../lib/WApersons}% Some sections of the included files depend on this. + + +\begin{document} +\begin{center}\color{red}\huge + This mock proposal is just an example for \texttt{euproposal.cls} it reflects the ICT + template of January 2012 +\end{center} +\begin{proposal}[site=jacu,jacuRM=36, + site=efo,efoRM=36, + site=bar,barRM=36, + site=baz,bazRM=36, + coordinator=miko, + acronym={iPoWr}, + acrolong={\underline{I}ntelligent} {\underline{P}r\underline{o}sal} {\underline{Wr}iting}, + title=\pn: \protect\pnlong, + callname = ICT Call 1, + callid = FP7-???-200?-?, + instrument= Small or Medium-Scale Focused Research Project (STREP), + challengeid = 4, + challenge = ICT for EU Proposals, + objectiveid={ICT-2012.4.4}, + objective = Technology-enhanced Documents, + outcomeid = b1, + outcome = {More time for Research, not Proposal writing}, + coordinator=miko, + months=24, + compactht] +\begin{abstract} + 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 + {\textsc{Subversion}}, allowing the proposal writing team to concentrate on the contents + rather than the mechanics of wrangling with text fragments and revisions. +\end{abstract} + +\tableofcontents + +\begin{todo}{from the proposal template} + Recommended length for the whole part B: 50--60 pages (including tables, references, + etc.) +\end{todo} +\include{quality}\newpage +\include{implementation}\newpage +\include{impact}\newpage +\include{issues} +\end{proposal} +\end{document} + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: t +%%% End: + +% LocalWords: efo efoRM baz bazRM miko acrolong ntelligent iting pn pnlong +% LocalWords: textsc newpage compactht texttt euproposal.cls callname callid +% LocalWords: challengeid objectiveid outcomeid tableofcontents diff --git a/eu/examples/strep/quality.tex b/eu/examples/strep/quality.tex new file mode 100644 index 0000000..425d920 --- /dev/null +++ b/eu/examples/strep/quality.tex @@ -0,0 +1,16 @@ +\svnInfo $Id: quality.tex 22870 2012-01-02 11:01:58Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/quality.tex $ +\chapter{Scientific and Technical Quality}\label{chap:quality} +\begin{todo}{from the proposal template} + Maximum length for the whole of Section 1 –-- twenty pages, not including the tables in + Section 1.3 +\end{todo} + +\input{objectives} +\input{progress} +\input{methodology} +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "propB" +%%% End: + diff --git a/eu/examples/strep/risks.tex b/eu/examples/strep/risks.tex new file mode 100644 index 0000000..44c2f01 --- /dev/null +++ b/eu/examples/strep/risks.tex @@ -0,0 +1,19 @@ +\svnInfo $Id: risks.tex 21553 2011-04-30 05:50:58Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/risks.tex $ +\subsection{Significant Risks and Associated Contingency Plans}\label{sec:risks} +\begin{todo}{from the proposal template} + Describe any significant risks, and associated contingency plans +\end{todo} +\begin{oldpart}{need to integrate this somewhere. CL: I will check other proposals to see how they did it; the Guide does not really prescribe anything.} +\paragraph{Global Risk Management} +The crucial problem of \pn (and similar endeavors that offer a new basis for communication +and interaction) is that of community uptake: Unless we can convince scientists and +knowledge workers industry to use the new tools and interactions, we will +never be able to assemble the large repositories of flexiformal mathematical knowledge we +envision. We will consider uptake to be the main ongoing evaluation criterion for the network. +\end{oldpart} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "propB" +%%% End: diff --git a/eu/examples/strep/site-bar.tex b/eu/examples/strep/site-bar.tex new file mode 100644 index 0000000..1f0d027 --- /dev/null +++ b/eu/examples/strep/site-bar.tex @@ -0,0 +1,21 @@ +\svnInfo $Id: site-bar.tex 21648 2011-05-09 06:47:12Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/site-bar.tex $ +\begin{sitedescription}{bar} + +\paragraph{Organization} + Universit\'e de BAR specializes on drinking lots of red wine. It is a partner in the + consortium, because it has a very nice chateau on the Cote d'Azure, where it can host + gorgeous project meetings. + +\paragraph{Main tasks} +\paragraph{Relevant previous experience} +\paragraph{Specific expertise} +\paragraph{Staff members undertaking the work} +\keypubs{providemore} + +\end{sitedescription} + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "propB" +%%% End: diff --git a/eu/examples/strep/site-baz.tex b/eu/examples/strep/site-baz.tex new file mode 100644 index 0000000..c97fa10 --- /dev/null +++ b/eu/examples/strep/site-baz.tex @@ -0,0 +1,15 @@ +\svnInfo $Id: site-baz.tex 21648 2011-05-09 06:47:12Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/site-baz.tex $ +\begin{sitedescription}{baz} +\paragraph{Organization} +\paragraph{Main tasks} +\paragraph{Relevant previous experience} +\paragraph{Specific expertise} +\paragraph{Staff members undertaking the work} +\keypubs{providemore} +\end{sitedescription} + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "propB" +%%% End: diff --git a/eu/examples/strep/site-efo.tex b/eu/examples/strep/site-efo.tex new file mode 100644 index 0000000..7268754 --- /dev/null +++ b/eu/examples/strep/site-efo.tex @@ -0,0 +1,16 @@ +\svnInfo $Id: site-efo.tex 21648 2011-05-09 06:47:12Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/site-efo.tex $ +\begin{sitedescription}{efo} +\paragraph{Organization} + The EFO is the world leader in futurology, \ldots +\paragraph{Main tasks} +\paragraph{Relevant previous experience} +\paragraph{Specific expertise} +\paragraph{Staff members undertaking the work} +\keypubs{providemore} +\end{sitedescription} + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "propB" +%%% End: diff --git a/eu/examples/strep/site-jacu.tex b/eu/examples/strep/site-jacu.tex new file mode 100644 index 0000000..a7f82f6 --- /dev/null +++ b/eu/examples/strep/site-jacu.tex @@ -0,0 +1,55 @@ +\svnInfo $Id: site-jacu.tex 22989 2012-01-15 18:40:10Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/site-jacu.tex $ +\begin{sitedescription}{jacu} + +\paragraph{Organization} Jacobs University Bremen is a private research university patterned +after the Anglo-Saxon university system. The university opened in +2001 and has an international student body ($1,245$ students from 102 +nations as of 2011, admitted in a highly selective process). + +The KWARC (KnoWledge Adaptation and Reasoning for +Content\footnote{\url{http://kwarc.info}}) Group headed by +{\emph{Prof.\ Dr.\ Michael Kohlhase}} specializes in building +knowledge management systems for e-science applications, in particular +for the natural and mathematical sciences. Formal logic, natural +language semantics, and semantic web technology provide the +foundations for the research of the group. + + Since doing research and developing systems is much more fun than writing proposals, + they try go do that as efficiently as possible, hence this meta-proposal. + +\paragraph{Main tasks} + +\begin{itemize} +\item creating {\LaTeX} class files +\end{itemize} + +\paragraph{Relevant previous experience} + +The KWARC group is the main center and lead implementor of the OMDoc +(Open Mathematical Document) format for representing mathematical +knowledge. The group has developed added-value services powered by such semantically rich representations, different paths to obtaining them, as well as platforms that integrate both aspects. Services include the adaptive context-sensitive presentation framework JOMDoc and the semantic search engine MathWebSearch. For obtaining rich mathematical content, the group has been pursuing the two alternatives of assisting manual editing (with the sTeXIDE editing environment) and automatic annotation using natural language processing techniques. The latter is work in progress but builds on the arXMLiv system, which is currently capable of converting 70\% out of the 600,000 scientific publications in the arXiv from {\LaTeX} to XHTML+MathML without errors. Finally, the KWARC group has been developing the Planetary integrated environment. + +\paragraph{Specific expertise} + +\begin{itemize} +\item writing intelligent proposals +\end{itemize} + +\paragraph{Staff members involved} + +\textbf{Prof.\ Dr.\ Michael Kohlhase} is head of the KWARC research +group. He is the head developer of the OMDoc mathematical markup +language. He was a member of the Math Working Group at W3C, which finished its work with the publication of the MathML 3 recommendation. He is president of the OpenMath society and trustee of the MKM +interest group. + +\keypubs{KohDavGin:psewads11,Kohlhase:pdpl10,Kohlhase:omdoc1.2,CarlisleEd:MathML10,StaKoh:tlcspx10} +\end{sitedescription} + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "propB" +%%% End: + +% LocalWords: site-jacu.tex sitedescription emph textbf keypubs KohDavGin +% LocalWords: psewads11 pdpl10 StaKoh tlcspx10 diff --git a/eu/examples/strep/site-templatex.tex b/eu/examples/strep/site-templatex.tex new file mode 100644 index 0000000..9e05493 --- /dev/null +++ b/eu/examples/strep/site-templatex.tex @@ -0,0 +1,42 @@ +\svnInfo $Id: site-jacu.tex 6306 2011-11-04 05:13:42Z kohlhase $ +\svnKeyword $HeadURL: https://svn.mathweb.org/repos/mathweb.org/projects/simsalabim/site-jacu.tex $ +\begin{sitedescription}{???} + +\paragraph{Organization:} +\ednote{Give a one-paragraph run-down of the site and the team there. } + +\paragraph{Main tasks:} + +\begin{compactitem} +\item\ednote{specify the main tasks and reference the respective work packages} +\end{compactitem} + + +\paragraph{Relevant previous experience:} + +\ednote{give an overview over previous work and projects that add to the \pn project} + +\paragraph{Specific expertise:} + +\begin{compactitem} +\item \ednote{give three to five specific areas of expertise that pertain to the \pn project} +\end{compactitem} + +\paragraph{Staff members undertaking the work:} + +\textbf{Dr.\ Great Leader}\ednote{describe the site leader and his expertise} +\textbf{Joe Implementor}\ednote{and more of them. } +\ednote{provide the key publications below} +\keypubs{providemore} +\end{sitedescription} +\end{oldpart} +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "propB" +%%% End: + +% LocalWords: site-jacu.tex clange sitedescription emph compactitem pn semmath +% LocalWords: prosuming-flexiformal KohSuc asemf06 GinJucAnc alsaacl09 StaKoh +% LocalWords: tlcspx10 KohDavGin psewads11 ednote Radboud Bia ystok CALCULEMUS +% LocalWords: textbf keypubs OntoLangMathSemWeb uwb Deyan Ginev Stamerjohanns +% LocalWords: searchability diff --git a/eu/examples/strep/workplan.tex b/eu/examples/strep/workplan.tex new file mode 100644 index 0000000..003e89c --- /dev/null +++ b/eu/examples/strep/workplan.tex @@ -0,0 +1,22 @@ +\svnInfo $Id: workplan.tex 22989 2012-01-15 18:40:10Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/workplan.tex $ + +\begin{todo}{from the proposal template} +\begin{enumerate} +\item Describe the overall strategy of the work plan\ednote{Maximum length – one page} +\item Show the timing of the different WPs and their components (Gantt chart or similar). +\end{enumerate} +\end{todo} +\begin{figure} + \caption{Work package dependencies} + \label{fig:wp-deps} +\end{figure} + +\ganttchart[draft,xscale=.45] + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "propB" +%%% End: + +% LocalWords: workplan.tex ednote wp-deps ganttchart xscale diff --git a/eu/examples/strep/wp-class.tex b/eu/examples/strep/wp-class.tex new file mode 100644 index 0000000..b16a6be --- /dev/null +++ b/eu/examples/strep/wp-class.tex @@ -0,0 +1,46 @@ +\svnInfo $Id: wp-class.tex 24014 2013-01-01 15:12:26Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/wp-class.tex $ +\begin{workpackage}[id=class,type=RTD,lead=jacu, + wphases=3-9!1, + title=A {\LaTeX} class for EU Proposals,short=Class, + jacuRM=12,barRM=12] +We can state the state of the art and similar things before the summary in the boxes +here. +\wpheadertable +\begin{wpobjectives} +\LaTeX is the best document markup language, it can even be used for literate +programming~\cite{DK:LP,Lamport:ladps94,Knuth:ttb84} + + To develop a {\LaTeX} class for marking up EU Proposals +\end{wpobjectives} + +\begin{wpdescription} + We will follow strict software design principles, first comes a requirements analys, + then \ldots +\end{wpdescription} + +\begin{wpdelivs} + \begin{wpdeliv}[due=6,id=req,nature=R,dissem=PP,miles=kickoff] + {Requirements analysis} + \end{wpdeliv} + \begin{wpdeliv}[due=12,id=spec,nature=R,dissem=PU,miles=consensus] + {{\pn} Specification } + \end{wpdeliv} + \begin{wpdeliv}[due=18,id=demonstrator,nature=P,dissem=PU,miles={consensus,final}] + {First demonstrator ({\tt{article.cls}} really)} + \end{wpdeliv} + \begin{wpdeliv}[due=24,id=proto,nature=P,dissem=PU,miles=final] + {First prototype} + \end{wpdeliv} + \begin{wpdeliv}[due=36,id=release,nature=P,dissem=PU,miles=final] + {Final {\LaTeX} class, ready for release} + \end{wpdeliv} + \end{wpdelivs} +Furthermore, this work package contributes to {\pdataRef{deliv}{managementreport2}{label}} and +{\pdataRef{deliv}{managementreport7}{label}}. +\end{workpackage} + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "propB" +%%% End: diff --git a/eu/examples/strep/wp-dissem.tex b/eu/examples/strep/wp-dissem.tex new file mode 100644 index 0000000..cc5fe68 --- /dev/null +++ b/eu/examples/strep/wp-dissem.tex @@ -0,0 +1,64 @@ +\svnInfo $Id: wp-dissem.tex 24014 2013-01-01 15:12:26Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/wp-dissem.tex $ +\begin{workpackage}% +[id=dissem,type=RTD,lead=efo, + wphases=10-24!1, + title=Dissemination and Exploitation,short=Dissemination, + efoRM=8,jacuRM=2,barRM=2,bazRM=2] +We can state the state of the art and similar things before the summary in the boxes +here. +\wpheadertable + +\begin{wpobjectives} + Much of the activity of a project involves small groups of nodes in joint work. This + work package is set up to ensure their best wide-scale integration, communication, and + synergetic presentation of the results. Clearly identified means of dissemination of + work-in-progress as well as final results will serve the effectiveness of work within + the project and steadily improve the visibility and usage of the emerging semantic + services. +\end{wpobjectives} + +\begin{wpdescription} + The work package members set up events for dissemination of the research and + work-in-progress results for researchers (workshops and summer schools), and for + industry (trade fairs). An in-depth evaluation will be undertaken of the response of + test-users. + + Within two months of the start of the project, a project website will go live. This + website will have two areas: a members' area and a public area.\ldots +\end{wpdescription} + +\begin{wpdelivs} + \begin{wpdeliv}[due=2,id=website,nature=O,dissem=PU,miles=kickoff] + {Set-up of the Project web server} + \end{wpdeliv} + \begin{wpdeliv}[due=8,id=ws1proc,nature=R,dissem=PU,miles={kickoff}] + {Proceedings of the first {\pn} Summer School.} + \end{wpdeliv} + \begin{wpdeliv}[due=9,id=dissem,nature=R,dissem=PP] + {Dissemination Plan} + \end{wpdeliv} + \begin{wpdeliv}[due=9,id=exploitplan,nature=R,dissem=PP,miles=exploitation] + {Scientific and Commercial Exploitation Plan} + \end{wpdeliv} + \begin{wpdeliv}[due=20,id=ws2proc,nature=R,dissem=PU,miles={exploitation}] + {Proceedings of the second {\pn} Summer School.} + \end{wpdeliv} + \begin{wpdeliv}[due=32,id=ss1proc,nature=R,dissem=PU,miles={exploitation}] + {Proceedings of the third {\pn} Summer School.} + \end{wpdeliv} + \begin{wpdeliv}[due=44,id=ws3proc,nature=R,dissem=PU,miles=exploitation] + {Proceedings of the fourth {\pn} Summer School.} + \end{wpdeliv} + \end{wpdelivs} +\end{workpackage} + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "propB" +%%% End: + +% LocalWords: wp-dissem.tex workpackage dissem efo fromto bazRM wpheadertable +% LocalWords: wpobjectives wpdescription ldots wpdelivs wpdeliv ws1proc pn +% LocalWords: exploitplan ws2proc ss1proc ws3proc pdataRef deliv +% LocalWords: mansubsusintReport diff --git a/eu/examples/strep/wp-management.tex b/eu/examples/strep/wp-management.tex new file mode 100644 index 0000000..fb8522e --- /dev/null +++ b/eu/examples/strep/wp-management.tex @@ -0,0 +1,63 @@ +\svnInfo $Id: wp-management.tex 24014 2013-01-01 15:12:26Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/wp-management.tex $ +\begin{workpackage}[id=management,type=MGT,wphases=0-24!.2, + title=Project Management,short=Management, + jacuRM=2,barRM=2,efoRM=2,bazRM=2] +We can state the state of the art and similar things before the summary in the boxes +here. +\wpheadertable +\begin{wpobjectives} + \begin{itemize} + \item To perform the administrative, scientific/technical, and financial + management of the project + \item To co-ordinate the contacts with the EU + \item To control quality and timing of project results and to resolve conflicts + \item To set up inter-project communication rules and mechanisms + \end{itemize} +\end{wpobjectives} + +\begin{wpdescription} + Based on the Consortium Agreement, i.e. the contract with the European Commission, and + based on the financial and administrative data agreed, the project manager will carry + out the overall project management, including administrative management. A project + quality handbook will be defined, and a {\pn} help-desk for answering questions about + the format (first project-internal, and after month 12 public) will be established. The + project management will\ldots we can even reference deliverables: + \delivref{management}{report2} and even the variant with a title: + \delivtref{management}{report2} +\end{wpdescription} + +\begin{wpdelivs} + \begin{wpdeliv}[due=1,id=mailing,nature=O,dissem=PP,miles=kickoff] + {Project-internal mailing lists} + \end{wpdeliv} + \begin{wpdeliv}[due=3,id=handbook,nature=R,dissem=PU,miles=consensus] + {Project management handbook} + \end{wpdeliv} +\begin{wpdeliv}[due={6,12,18,24,30,36,42,48},id=report2,nature=R,dissem=public,miles={consensus,final}] + {Periodic activity report} + Partly compiled from activity reports of the work package + coordinators; to be approved by the work package coordinators before delivery to the + Commission. Financial reporting is mainly done in months 18 and 36.\Ednote{how about + these numbers?} + \end{wpdeliv} + \begin{wpdeliv}[due=6,id=helpdesk,dissem=PU,nature=O,miles=kickoff] + {{\pn} Helpdesk} + \end{wpdeliv} + \begin{wpdeliv}[due=36,id=report6,nature=R,dissem=PU,miles=final] + {Final plan for using and disseminating the knowledge} + \end{wpdeliv} + \begin{wpdeliv}[due=48,id=report7,nature=R,dissem=PU,miles=final] + {Final management report} + \end{wpdeliv} +\end{wpdelivs} +\end{workpackage} + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "propB" +%%% End: + +% LocalWords: wp-management.tex workpackage efoRM bazRM wpheadertable pn ldots +% LocalWords: wpobjectives wpdescription delivref delivtref wpdelivs wpdeliv +% LocalWords: dissem Ednote pdataRef deliv mansubsusintReport wphases diff --git a/eu/examples/strep/wp-temple.tex b/eu/examples/strep/wp-temple.tex new file mode 100644 index 0000000..e4f5306 --- /dev/null +++ b/eu/examples/strep/wp-temple.tex @@ -0,0 +1,46 @@ +\svnInfo $Id: wp-temple.tex 24014 2013-01-01 15:12:26Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/proposal/eu/examples/strep/wp-temple.tex $ +\begin{workpackage}[id=temple,type=DEM,lead=bar, + wphases=6-12!1, + title={\pn} Proposal Template,short=Template,barRM=6,bazRM=6] +We can state the state of the art and similar things before the summary in the boxes +here. +\wpheadertable + +\begin{wpobjectives} + To develop a template file for {\pn} proposals +\end{wpobjectives} + +\begin{wpdescription} + We abstract an example from existing proposals +\end{wpdescription} + +\begin{wpdelivs} + \begin{wpdeliv}[due=6,id=req,nature=R,dissem=PP,miles=kickoff] + {Requirements analysis} + \end{wpdeliv} + \begin{wpdeliv}[due=12,id=spec,nature=R,dissem=PU,miles=consensus] + {{\pn} Specification } + \end{wpdeliv} + \begin{wpdeliv}[due=18,id=demonstrator,nature=D,dissem=PU,miles={consensus,final}] + {First demonstrator ({\tt{article.cls}} really)} + \end{wpdeliv} + \begin{wpdeliv}[due=24,id=proto,nature=P,dissem=PU,miles=final] + {First prototype} + \end{wpdeliv} + \begin{wpdeliv}[due=36,id=release,nature=P,dissem=PU,miles=final] + {Final Template, ready for release} + \end{wpdeliv} +\end{wpdelivs} +Furthermore, this work package contributes to {\pdataRef{deliv}{managementreport2}{label}} and +{\pdataRef{deliv}{managementreport7}{label}}. +\end{workpackage} + +%%% Local Variables: +%%% mode: LaTeX +%%% TeX-master: "propB" +%%% End: + +% LocalWords: wp-temple.tex workpackage fromto pn bazRM wpheadertable wpdelivs +% LocalWords: wpobjectives wpdescription wpdeliv req dissem tt article.cls +% LocalWords: pdataRef deliv systemsintReport diff --git a/lib/Makefile.ctan b/lib/Makefile.ctan new file mode 100644 index 0000000..4047e91 --- /dev/null +++ b/lib/Makefile.ctan @@ -0,0 +1,67 @@ +# make a zip for CTAN submission including the TeX directory structure +SVNEXP = svn export --quiet +TDSCOLL ?= $(shell basename $$PWD) +EXPORTED = /tmp/$(TDSCOLL) +TDSDIR = /tmp/$(TDSCOLL).tds +TDSZIP = /tmp/$(TDSCOLL).tds.zip +CTANDIR = /tmp/$(TDSCOLL).ctan +CTANZIP = /tmp/$(TDSCOLL).ctan.zip + +# this target makes the file CTANZIP by creating and populating the directory +# CTANDIR and zipping it. To be current, we first make all, and update +# the filedates and the checksums. To get rid of all the junk we commit and +# export a clean copy EXPORTED, on which we run the target ctanexp below, +# which generates a directory CTANDIR, which we zip and move into place. +ctan: all filedate checksum + svn ci -m'draining just to be sure for CTAN distribution' + rm -Rf $(EXPORTED) + @echo "exporting a clean copy to $(EXPORTED)" + $(SVNEXP) $(TDSURL) $(EXPORTED) + find $(EXPORTED) -name ".svn" -type d -exec rm -Rf {} \; + cd $(EXPORTED); $(MAKE) -$(MAKEFLAGS) ctanext + @echo "zipping the result to $(TDSCOLL).ctan.zip" + cd $(CTANDIR); zip -r -q $(CTANZIP) .; cd -; cp $(CTANZIP) . + rm -Rf $(EXPORTED) $(CTANDIR) $(CTANZIP) + +# this target is run on EXPORTED. It first makes the target tdsext below, +# and then copies all necessary stuff into CTANDIR. +ctanext: tdsext + rm -Rf $(CTANDIR) $(CTANZIP) + @echo " preparing a copy $(CTANDIR) from $(EXPORTED)" + mkdir -p $(CTANDIR) + cp $(TDSZIP) $(CTANDIR) + @for d in $(DTXDIRS); do (cd $$d && $(MAKE) -$(MAKEFLAGS) lctan) done + @for d in $(SRCDIRS) $(DOCDIRS); do (cp -R $$d $(CTANDIR)) done; + cp $(TDSZIP) README Makefile $(CTANDIR) + rm -Rf $(TDSZIP) + +# this target makes the file TDSZIP by creating and populating the directory +# TDSDIR and zipping it. +tdsext: + @echo "making a TDS compliant archive" + rm -Rf $(TDSDIR) $(TDSZIP) + @echo " enabling checksums" + $(MAKE) -$(MAKEFLAGS) enablechecksum + @echo " copying over stuff to $(TDSDIR)" + @for d in $(DTXDIRS); do (cd $$d && $(MAKE) -$(MAKEFLAGS) ltds) done + @for d in $(SRCDIRS); do (cp -R $$d $(TDSDIR)/source/latex/$(TDSCOLL)) done; + @for d in $(DOCDIRS); do (cp -R $$d $(TDSDIR)/doc/latex/$(TDSCOLL)) done; + cp $(TDS.doc) $(TDSDIR)/doc/latex/$(TDSCOLL) + @echo "zipping the result to $(TDSCOLL).tds.zip" + cd $(TDSDIR); zip -r -q $(TDSZIP) .; cd - + rm -Rf $(TDSDIR) + +# copy stuff around for the TDS in the DTX dirs +ltds: + @echo "copying stuff for the subdirs" + @for d in $(DISTDIRS); do (cd $$d; $(MAKE) -$(MAKEFLAGS) $@) done + cp $(TDS.tex) $(TDSDIR)/tex/latex/$(TDSCOLL) + cp $(TDS.doc) $(TDSDIR)/doc/latex/$(TDSCOLL) + +# copy stuff around for a CTAN submission in the DTX dirs +CTANDIR = /tmp/$(TDSCOLL).ctan +lctan: + mkdir -p $(CTANDIR)/sty; + @for d in $(DISTDIRS); do (cp -R $$d $(CTANDIR)/sty) done + cp $(TDS.tex) $(TDS.doc) Makefile $(CTANDIR)/sty + diff --git a/lib/Makefile.in b/lib/Makefile.in new file mode 100644 index 0000000..bf78ffc --- /dev/null +++ b/lib/Makefile.in @@ -0,0 +1,97 @@ +all: package doc + +package: $(DTX.sty) $(DTX.cls) + +doc: $(DTX.pdf) $(EXAMPLE.pdf) + +$(EXAMPLE.pdf): %.pdf: %.tex $(DTX.sty) $(DTX.cls) $(IMG) $(EXAMPLE.deps) + $(PDFLATEX) $(firstword $<) + @if (grep Citation $(patsubst %.dtx, %.log, $(firstword $<)) > /dev/null);\ + then bibtex $(patsubst %.dtx, %, $(firstword $<));fi + @if (grep "Writing index file" $(patsubst %.dtx, %.log, $(firstword $<)) > /dev/null);\ + then makeindex\ + -o $(patsubst %.dtx, %.ind, $(firstword $<))\ + $(patsubst %.dtx, %.idx, $(firstword $<)); fi + @if (grep Rerun $(patsubst %.dtx, %.log, $(firstword $<)) > /dev/null);\ + then $(PDFLATEX) $(firstword $<); fi + @if (grep Rerun $(patsubst %.dtx, %.log, $(firstword $<)) > /dev/null);\ + then $(PDFLATEX) $(firstword $<); fi + +sty: $(DTX.sty) +ltxml: $(DTX.ltxml) + +%.ind: + touch $@ + +$(DTX.pdf): %.pdf: %.dtx $(IMG) + $(PDFLATEX) $(patsubst %.pdf,%.ins,$@) + $(PDFLATEX) $(firstword $<) + @if (grep Citation $(patsubst %.dtx, %.log, $(firstword $<)) > /dev/null);\ + then bibtex $(patsubst %.dtx, %, $(firstword $<));fi + @if (grep "Writing glossary file" $(patsubst %.dtx, %.log, $(firstword $<)) > /dev/null);\ + then makeindex\ + -o $(patsubst %.dtx, %.gls, $(firstword $<))\ + $(patsubst %.dtx, %.glo, $(firstword $<)); fi + @if (grep "Writing index file" $(patsubst %.dtx, %.log, $(firstword $<)) > /dev/null);\ + then makeindex\ + -o $(patsubst %.dtx, %.ind, $(firstword $<))\ + $(patsubst %.dtx, %.idx, $(firstword $<)); fi + @if (grep Rerun $(patsubst %.dtx, %.log, $(firstword $<)) > /dev/null);\ + then $(PDFLATEX) $(firstword $<); fi + @if (grep Rerun $(patsubst %.dtx, %.log, $(firstword $<)) > /dev/null);\ + then $(PDFLATEX) $(firstword $<); fi + +$(DTX.sty): %.sty: %.ins %.dtx + $(PDFLATEX) $< + +$(DTX.sty.ltxml): %.sty.ltxml: %.ins %.dtx + $(PDFLATEX) $< + +$(DTX.cls.ltxml): %.cls.ltxml: %.ins %.dtx + $(PDFLATEX) $< + +$(DTX.cls): %.cls: %.ins %.dtx + $(PDFLATEX) $< + +clean: + rm -f *~ *.log *.ilg *.out *.glo *.idx *.ilg *.blg + +distclean: clean + rm -f *.aux *.ind *.gls *.ps *.dvi *.toc *.xml *.omdoc *.thm + rm -Rf auto + +filedate: + @for d in $(DTX); do \ + $(FILEDATEPROG) $$d ; \ + done + +checksum: + @for d in $(DTX); do \ + $(CHECKSUMPROG) $$d --update ; \ + done + +enablechecksum: + @for d in $(DTX); do \ + $(CHECKSUMPROG) $$d --enable ; \ + done + +disablechecksum: + @for d in $(DTX); do \ + $(CHECKSUMPROG) $$d --disable ; \ + done + +# copy stuff around for making the TeX Directory Structure +ltds: + rm -Rf $(TDSDIR.doc);mkdir -p $(TDSDIR.doc) + rm -Rf $(TDSDIR.tex);mkdir -p $(TDSDIR.tex) + rm -Rf $(TDSDIR.src);mkdir -p $(TDSDIR.src) + cp $(DTX) $(TDS.src) $(TDSDIR.src) + cp $(DTX.sty) $(DTX.cls) $(TDS.tex) $(TDSDIR.tex) + cp $(DTX.sty.ltxml) $(DTX.cls.ltxml) $(TDSDIR.tex) || echo "omitting ltxml files" + cp README $(DTX.pdf) $(EXAMPLE.tex) $(EXAMPLE.pdf) $(TDS.doc) $(TDSDIR.doc) + +lctan: + mkdir -p $(CTANDIR) + cp $(DTX) $(TDS.src) $(DTX.sty) $(DTX.cls) $(TDS.tex) $(CTANDIR) + cp $(DTX.sty.ltxml) $(DTX.cls.ltxml) $(CTANDIR) || echo "omitting ltxml files" + cp README $(DTX.pdf) $(EXAMPLE.tex) $(EXAMPLE.pdf) $(TDS.doc) $(CTANDIR) diff --git a/lib/Makefile.vars b/lib/Makefile.vars new file mode 100644 index 0000000..5af9874 --- /dev/null +++ b/lib/Makefile.vars @@ -0,0 +1,37 @@ +# DTX.sty.base and DTX.cls.base are set in the including Makefiles +DTX.base = $(DTX.sty.base) $(DTX.cls.base) +DTX = $(DTX.base:%=%.dtx) $(DTX.base:%=%.ins) + +DTX.sty.ltxml = $(DTX.sty.base:%=%.sty.ltxml) +DTX.cls.ltxml = $(DTX.cls.base:%=%.cls.ltxml) +DTX.sty = $(DTX.sty.base:%=%.sty) +DTX.cls = $(DTX.cls.base:%=%.cls) +DTX.pdf = $(sort $(DTX.base:%=%.pdf)) # sort to remove duplicates +# The examples +EXAMPLE.pdf = $(EXAMPLE.base:%=%.pdf) +EXAMPLE.tex = $(EXAMPLE.base:%=%.tex) +EXAMPLE.deps = $(filter-out $(EXAMPLE.base:%=%.tex), $(shell ls *.tex)) + +# The TeX Directory Structure (see http://www.tug.org/tds/tds.html) +TDSDIR = /tmp/$(TDSCOLL).tds +TDSDIR.tex = $(TDSDIR)/tex/latex/$(TDSCOLL)/$(PACKAGE) +TDSDIR.doc = $(TDSDIR)/doc/latex/$(TDSCOLL)/$(PACKAGE) +TDSDIR.src = $(TDSDIR)/source/latex/$(TDSCOLL)/$(PACKAGE) + +# make a zip for CTAN submission +CTANDIR = /tmp/$(TDSCOLL).ctan/$(CTANPREFIX)$(PACKAGE) + +# the dependencies +SOURCES = $(DTX.sty) $(BIB) +TEXINPUTS := .:$(PREFIX)//: +BSTINPUTS := .:$(PREFIX)//: + +# we want to quiet down pdflatex +PDFLATEX = pdflatex -interaction batchmode -file-line-error + +# we set the package date for 'make filedate' to today +BINDIR = $(PREFIX)/../bin +PACKAGEDATE ?= $(shell date "+%Y/%m/%d") +FILEDATEPROG = PERL5LIB=$(BINDIR) $(BINDIR)/filedate +CHECKSUMPROG = PERL5LIB=$(BINDIR) $(BINDIR)/checksum +