diff --git a/base/proposal.dtx b/base/proposal.dtx index 18b37fd..c7489dd 100644 --- a/base/proposal.dtx +++ b/base/proposal.dtx @@ -941,10 +941,6 @@ % \begin{macrocode} {\end{prop@proposal} \pdata@def{prop}{page}{last}{\thepage}\ofpagefalse% -\newwrite\@@SPLIT% -\immediate\openout\@@SPLIT=SPLIT.at% -\protected@write\@@SPLIT{}{\thepage}% -\closeout\@@SPLIT% \pdata@close} % % \end{macrocode} diff --git a/base/proposal.pdf b/base/proposal.pdf index 849ce9d..be05cb5 100644 Binary files a/base/proposal.pdf and b/base/proposal.pdf differ diff --git a/base/proposal.sty b/base/proposal.sty index 9a53a78..51dfec5 100644 --- a/base/proposal.sty +++ b/base/proposal.sty @@ -111,10 +111,6 @@ \begin{prop@proposal}} {\end{prop@proposal} \pdata@def{prop}{page}{last}{\thepage}\ofpagefalse% -\newwrite\@@SPLIT% -\immediate\openout\@@SPLIT=SPLIT.at% -\protected@write\@@SPLIT{}{\thepage}% -\closeout\@@SPLIT% \pdata@close} \newcommand\site[1]{\hyperlink{site@#1@target}{\wa@ref3{institution}{#1}{acronym}}} \newcommand\sitename[1]{\hyperlink{site@#1@target}{\wa@ref3{institution}{#1}{name}}} diff --git a/dfg/dfgproposal.pdf b/dfg/dfgproposal.pdf index dff2cb4..5a07cfe 100644 Binary files a/dfg/dfgproposal.pdf and b/dfg/dfgproposal.pdf differ diff --git a/eu/euproposal.cls b/eu/euproposal.cls index 078f881..700799a 100644 --- a/eu/euproposal.cls +++ b/eu/euproposal.cls @@ -10,6 +10,8 @@ \ProvidesClass{euproposal}[2016/12/15 v1.5 EU Proposal] \newif\ifpartB\partBfalse \DeclareOption{partB}{\partBtrue} +\newif\if@split\@splitfalse +\DeclareOption{split}{\@splittrue} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{proposal}} \ProcessOptions \ifpartB\LoadClass[report]{proposal}\else\LoadClass{proposal}\fi @@ -73,7 +75,13 @@ \newpage \fi% ifgrantagreement \setcounter{tocdepth}{2}\setcounter{part}{2}} -{\newpage\printbibliography[heading=warnpubs]} +{\newpage\printbibliography[heading=warnpubs]% +\if@split +\newwrite\@@SPLIT% +\immediate\openout\@@SPLIT=SPLIT.at% +\protected@write\@@SPLIT{}{\thepage}% +\closeout\@@SPLIT% +\fi}% if@split \def\prop@gen@instrument{Proposal Instrument (e.g. IP)} \define@key{site@desc}{box}[true]{\def\site@desc@box{#1}% \pdata@def{sitedesc}{\@site}{box}{#1}} @@ -150,6 +158,7 @@ \define@key{mst}{wdeliv}{\gdef\mst@wdeliv{#1}} \define@key{mst}{wverif}{\gdef\mst@wverif{#1}} \newcommand\milestonetable[1][]{% +\IfFileExists{\jobname.delivs}{% to avoid errros \def\mst@caption{Milestones, Deliverables, and Verification}% \def\mst@wname{2.5cm}\def\mst@wdeliv{7cm}\def\mst@wverif{4cm} \setkeys{mst}{#1}% @@ -177,7 +186,7 @@ \mst@lines \end{tabular} \caption{\mst@caption\ ($^\ast$\miles@legend)}\label{tab:milestonetable} -\end{table}} +\end{table}}} \newcommand\miles@legend@name{Name} \newcommand\miles@legend@mo{Mo} \newcommand\miles@legend@verif{Means of Verif.} diff --git a/eu/euproposal.dtx b/eu/euproposal.dtx index dbc0e8d..c3f28fe 100644 --- a/eu/euproposal.dtx +++ b/eu/euproposal.dtx @@ -113,7 +113,10 @@ % and gives a comma separated list of options specified in~\cite{Kohlhase:pplp:svn}. Some % versions EU proposals want non-standard numbering schemes (e.g. starting with % \textbf{B...} since we are writing Part B.), this can be reached by giving the |propB| -% option. +% option. Finally the |split| option cases the |euproposal| to write a file |SPLIT.at| +% that can be used in the |Makefile| to split the final proposal |final.pdf| into a files +% |final123.pdf| and |final45.pdf| for submission in the EU system (often this has to be +% separated so that the submission system can count pages.) % % \subsection{Proposal Metadata and Title page}\label{sec:user:metadata} % @@ -180,7 +183,7 @@ % \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:user:papers} +% \subsection{Relevant Papers/Key Publications}\label{sec:user:papers} % % Sometimes we want to list the relevant papers in the site descriptions. We use the % |biblatex| package to automate this. We only need to use @@ -188,9 +191,8 @@ % specify what papers are selected and \meta{refs} is a comma-separated list of {bib\TeX} % keys from the bibTeX database used in the proposal. % -% The papers listed in |\keypubs| are put into a special bib\LaTeX category -% \DescribeMacro{featured}|featured|, and can thus be excluded from the general -% bibliography by adding |notcategory=featured| to the final |\printbibliography|. +% The papers listed in |\keypubs| are put into a section bibliography which is displayed +% in place. % % % \begin{newpart}{MK@MK: This is new, and only partially implemented} @@ -252,6 +254,8 @@ %<*cls> \newif\ifpartB\partBfalse \DeclareOption{partB}{\partBtrue} +\newif\if@split\@splitfalse +\DeclareOption{split}{\@splittrue} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{proposal}} % %\DeclareOption*{\PassOptionsToClass{\CurrentOption}{reporting}} @@ -390,7 +394,13 @@ \newpage \fi% ifgrantagreement \setcounter{tocdepth}{2}\setcounter{part}{2}} -{\newpage\printbibliography[heading=warnpubs]} +{\newpage\printbibliography[heading=warnpubs]% +\if@split +\newwrite\@@SPLIT% +\immediate\openout\@@SPLIT=SPLIT.at% +\protected@write\@@SPLIT{}{\thepage}% +\closeout\@@SPLIT% +\fi}% if@split % \end{macrocode} % \end{environment} % @@ -534,6 +544,7 @@ \define@key{mst}{wdeliv}{\gdef\mst@wdeliv{#1}} \define@key{mst}{wverif}{\gdef\mst@wverif{#1}} \newcommand\milestonetable[1][]{% +\IfFileExists{\jobname.delivs}{% to avoid errros \def\mst@caption{Milestones, Deliverables, and Verification}% \def\mst@wname{2.5cm}\def\mst@wdeliv{7cm}\def\mst@wverif{4cm} \setkeys{mst}{#1}% @@ -561,7 +572,7 @@ \mst@lines \end{tabular} \caption{\mst@caption\ ($^\ast$\miles@legend)}\label{tab:milestonetable} -\end{table}} +\end{table}}} % \end{macrocode} % now the multilinguality support % \begin{macrocode} diff --git a/eu/euproposal.pdf b/eu/euproposal.pdf index 5a7ebe6..9132f47 100644 Binary files a/eu/euproposal.pdf and b/eu/euproposal.pdf differ diff --git a/examples/eu/strep/Makefile b/examples/eu/strep/Makefile index 06eac2a..0fcde12 100644 --- a/examples/eu/strep/Makefile +++ b/examples/eu/strep/Makefile @@ -17,9 +17,8 @@ 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 */*.tex)) # included files +SRC = $(filter-out $(TARGET),$(shell ls *.tex)) # included files PDFLATEX = pdflatex -interaction batchmode -file-line-error -BBL = $(PROPOSAL:%.tex=%.bbl) PROPCLS.dir = $(PROP.dir)/base PROPETC.dir = $(PROP.dir)/etc EUPROPCLS.dir = $(PROP.dir)/eu @@ -35,33 +34,29 @@ PROPCLS = $(PROPCLS.clssty:%=$(PROPCLS.dir)/%) $(EUPROPCLS.clssty:%=$(EUPROPCLS. all: $(TBIB.pdf) $(TSIMP.pdf) submit: - $(MAKE) $(MAKEFLAGS) -w PROPOSAL=final.tex all + $(MAKE) -$(MAKEFLAGS) -w PROPOSAL=submit.tex SPLIT.at = $(shell cat SPLIT.at) SPLIT = $$(($(SPLIT.at) + 1)) SSPLIT = $$(($(SPLIT.at) + 2)) -final-split: final +split: submit qpdf --pages submit.pdf 1-$(SPLIT) -- submit.pdf submit-123.pdf qpdf --pages submit.pdf $(SSPLIT)-z -- submit.pdf submit-45.pdf public: $(SRC) - $(MAKE) $(MAKEFLAGS) -w PROPOSAL=public.tex all + $(MAKE) -$(MAKEFLAGS) -w PROPOSAL=public.tex all grantagreement: - $(MAKE) $(MAKEFAGS) -w PROPOSAL=grantagreement.tex -W grantagreement.tex all + $(MAKE) -$(MAKEFAGS) -w PROPOSAL=grantagreement.tex -W grantagreement.tex all pdftk grantagreement.pdf cat 1-35 61-end output grantagreement-striped.pdf mv grantagreement-striped.pdf grantagreement.pdf -install: final - cp final.pdf proposal-www.pdf +install: submit + cp submit.pdf proposal-www.pdf git commit -m "Updated pdf" proposal-www.pdf git push -bbl: $(BBL) -$(BBL): %.bbl: %.aux - biber $< - $(TSIMP.pdf): %.pdf: %.tex $(PROPCLS) $(PDATA) $(PDFLATEX) $< || $(RM) $@ @@ -92,8 +87,3 @@ distclean: clean rm -f *.aux *.ind *.gls *.ps *.dvi *.thm *.out *.run.xml *.bbl *.toc *.deliv* *.pdata *-blx.bib rm -Rf auto rm -f proposal.fls -echo: - echo $(BBL) - -echo: - @echo $(BBL) diff --git a/examples/eu/strep/draft.tex b/examples/eu/strep/draft.tex deleted file mode 100644 index 9b8be16..0000000 --- a/examples/eu/strep/draft.tex +++ /dev/null @@ -1 +0,0 @@ -\input{proposal.tex} diff --git a/examples/eu/strep/ed.sty b/examples/eu/strep/ed.sty new file mode 100644 index 0000000..06e85a3 --- /dev/null +++ b/examples/eu/strep/ed.sty @@ -0,0 +1,155 @@ +%% +%% This is file `ed.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ed.dtx (with options: `package') +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{ed}[2012/01/29 v1.8 Editorial Notes] +\newif\ifshowednotes\showednotesfalse +\newif\ifmargins\marginstrue +\newif\ifmarginnote\marginnotefalse +\newif\ifednotebookmarks\ednotebookmarksfalse +\DeclareOption{show}{\showednotestrue\message{ed.sty: showing ednotes}} +\DeclareOption{hide}{\showednotesfalse\message{ed.sty: hiding ednotes}} +\DeclareOption{draft}{\showednotestrue\message{ed.sty: showing ednotes}} +\DeclareOption{final}{\showednotesfalse\message{ed.sty: hiding ednotes}} +\DeclareOption{nomargins}{\marginsfalse} +\DeclareOption{marginnote}{\marginnotetrue} +\DeclareOption{pdfbookmarks}{\ednotebookmarkstrue} +\ProcessOptions +\ifshowednotes +\RequirePackage{xcolor} +\ifmarginnote\RequirePackage{marginnote}\fi +\else +\RequirePackage{verbatim} +\fi +\ifednotebookmarks +\RequirePackage{hyperref} +\fi +\newcommand\ednoteshape{\sffamily} +\newcounter{ednote} +\newcommand\ed@foot[3]% text, type, label +{\def\@test{#3}\footnotetext[\arabic{ednote}]% +{{\scshape{#2}\if\@test\@empty\else\label{ed:#3}[{#3}]\fi:} \ednoteshape #1}} +\def\ed@mark@style#1{#1} +\newcommand\ed@mark[1]{\ed@mark@style{\footnotemark[#1]}} +\newcommand\ed@footnote[3]{\ed@mark{\arabic{ednote}}\ed@foot{#1}{#2}{#3}} +\newcommand\ed@margin[1]{\ifmargins\ifmarginnote\marginnote{#1}\else\marginpar{#1}\fi\fi} +\newcommand\Ed@note[3]% text, type, label +{\addtocounter{ednote}{1}\message{#2!}% +\ifshowednotes\ed@footnote{#1}{#2}{#3}\ifednotebookmarks\belowpdfbookmark{#2: #1}{#2.\theednote}\fi\fi} +\newcommand\ed@note[4]% text, type, label, margin +{\Ed@note{#1}{#2}{#3}\ifshowednotes\ed@margin{#4:\arabic{ednote}}\fi} +\newcommand\ednote@label{EdNote} +\newcommand\ednote@margin{\textcolor{red}{EdN}} +\newcommand\ednotelabel[1]{\def\ednote@label{#1}} +\newcommand\ednotemargin[1]{\def\ednote@margin{#1}} +\newcommand{\Ednote}[2][]{\Ed@note{#2}\ednote@label{#1}} +\newcommand{\ednote}[2][]{\ed@note{#2}\ednote@label{#1}\ednote@margin} +\newcommand\tweaklabel[1]{\def\tweak@label{#1}} +\newcommand\tweak@label{Tweak} +\newcommand\tweakmargin[1]{\def\tweak@margin{#1}} +\newcommand\tweak@margin{Tw} +\newcommand{\tweak}[2][]{\ed@note{#2}\tweak@label{#1}\tweak@margin} +\newcommand{\Tweak}[2][]{\Ed@note{#2}\tweak@label{#1}} +\newcommand\edissue@label{Issue} +\newcommand\edissuelabel[1]{\def\edissue@label{#1}} +\newcommand\edissue@margin{Is} +\newcommand\edissuemargin[1]{\def\edissue@margin{#1}} +\providecommand{\issue}[2][]{\ed@note{#2}\edissue@label{#1}\edissue@margin} +\providecommand{\Issue}[2][]{\Ed@note{#2}\edissue@label{#1}} +\newcommand{\edissue}[2][]{\ed@note{#2}\edissue@label{#1}\edissue@margin} +\newcommand{\edIssue}[2][]{\Ed@note{#2}\edissue@label{#1}} +\newenvironment{Ed@part}[3]% text, mess, start +{\addtocounter{ednote}{1}\edef\new@number{\theednote}\message{#2!\new@number} +\ifshowednotes\ed@foot{#1}{#2}{}\fi\ignorespaces} +{} +\def\ed@part#1#2#3#4% text, mess, start, margin +{\Ed@part{#1}{#2}{#3}\ifshowednotes\ed@margin{#4:\new@number}\fi\ignorespaces} +\def\ended@part#1{\endEd@part\ifshowednotes\ed@margin{#1:\new@number}\fi} +\newcommand\b@newpart@label{\textrcolor{red}{BegNP}}\newcommand\e@newpart@label{\textcolor{red}{EndNP}} +\newcommand\b@newpart@margin{\textcolor{red}{BNP}}\newcommand\e@newpart@margin{\textcolor{red}{ENP}} +\newcommand\newpartlabels[2]{\def\b@newpart@label{#1}\def\e@newpart@label{#2}} +\newcommand\newpartmargins[2]{\def\b@newpart@margin{#1}\def\e@newpart@margin{#2}} +\newenvironment{Newpart}[1]{\Ed@part{#1}{New Part}\b@newpart@label}{\endEd@part} +\newenvironment{newpart}[1]{\ed@part{#1}{New Part}\b@newpart@label\b@newpart@margin\ignorespaces}{\ended@part\e@newpart@margin} +\newcommand\oldpartlabels[2]{\def\b@oldpart@label{#1}\def\e@oldpart@label{#2}} +\newcommand\oldpartmargins[2]{\def\b@oldpart@margin{#1}\def\e@oldpart@margin{#2}} +\newcommand\b@oldpart@label{BegOP}\newcommand\e@oldpart@label{EndOP} +\newcommand\b@oldpart@margin{\textcolor{red}{BOP}}\newcommand\e@oldpart@margin{\textcolor{red}{EOP}} +\newenvironment{Oldpart}[1]% +{\Ed@part{#1}{Old Part}\b@oldpart@label\ifshowednotes\color{gray}\fi} +{\endEd@part} +\newenvironment{oldpart}[1]% +{\ed@part{#1}{Old Part}\b@oldpart@label\b@oldpart@margin\ifshowednotes\color{gray}\fi} +{\ended@part\e@oldpart@margin} +\newcommand\todolabels[2]{\def\b@todo@label{#1}\def\e@todo@label{#2}} +\newcommand\todomargins[2]{\def\b@todo@margin{#1}\def\e@todo@margin{#2}} +\newcommand\b@todo@label{ToDo}\newcommand\e@todo@label{Done} +\newcommand\b@todo@margin{ToDo}\newcommand\e@todo@margin{Done} +\newenvironment{Todo}[1]% +{\Ed@part{#1}{To Do}\b@todo@label\ifshowednotes\bgroup\ednoteshape\else\comment\fi} +{\endEd@part\e@todo@label\ifshowednotes\egroup\else\endcomment\fi} +\newenvironment{todo}[1]% +{\ed@part{#1}{To Do}\b@todo@label\b@todo@margin\ifshowednotes\bgroup\ednoteshape\else\comment\fi} +{\ended@part\e@todo@margin\ifshowednotes\egroup\else\endcomment\fi} +\newenvironment{Todolist}[1]{% the comment +\ifshowednotes\message{todolist!}{{\ednoteshape To Do: #1}}\bgroup\ednoteshape\begin{enumerate}% +\else\comment% +\fi} +{\ifshowednotes\end{enumerate}\egroup\else\endcomment\fi} +\newenvironment{todolist}[1]{\ifshowednotes\ed@margin{{\ednoteshape ToDo}}\Todolist{#1}\fi} +{\endTodolist} +\newenvironment{musings}{\ifshowednotes\color{blue}\fi}{} +\def\ed@stubURI{} +\newcommand\edstuURI[1]{\gdef\ed@stubURI{#1}} +\newif\ifhref\hreffalse +\AtBeginDocument{\@ifpackageloaded{hyperref}{\hreftrue}{\hreffalse}} +\newenvironment{edstub}[2][] +{\def\@test{#1}\begin{center}\huge\color{red} +\ifx\@test\@empty The following blue text \else #1 \fi is only a provisional stub\\\Large +the Office document +\ifx\ed@stubURI\@empty{#2}\else\ifhref\href{\ed@stubURI}{#2}\else{#2}\fi\fi\ +contains more text\\which will be merged for the final document + \end{center}\color{blue}} +{} +\newcommand\@ednotemessage{\ifnum\value{ednote}>0\typeout{}% +\typeout{There are still \arabic{ednote} EdNotes, New/Oldparts, and Issues to resolve!}% +\typeout{}\fi} +\AtEndDocument{\@ednotemessage} +\newcommand\ednotemessage{\PackageWarning{ed}{The `\ednotemessage' macro is obsolete, the message + is generated automatically now.}} +\newcommand\edexplanation{\todolist{we will use the ednote system to communicate} +\item use the {\tt{\char92ednote\char123author: some explanatory text\char125}} + like a footnote to say what you have done or what should still be + done\ednote{MiKo: this is an example of an ednote}. Ednotes are numbered and + marked in the margin for easy recognition. +\item use the {\tt{\char92issue\char123author: explanation of the + issue\char125}} variant of ednote for issues\issue{this is an example of + an issue} that still have to be discussed. +\item finally, the {\tt{todolist}} environment is a list environment that can be + used to mark up todo lists. This explanation is an example of a todo list, it + is inserted into the text in a different font. +\item the {\tt{newpart}} environment can be used to mark up changed text blocks. + {\tt{\char92begin\char123newpart\char125}} takes an argument that is + interpreted as a comment and is treated like an {\tt{\char92ednote}} comment. +\item the {\tt{oldpart}} environment is similar to {\tt{newpart}} but is used + for old parts of text copied from another document that still need to be + changed in a document. +\item putting the macro {\tt{\char92ednotemessage}} just before the + {\tt{char92end\char123document\char125}} will generate a message with + cardinality information for the ednotes into the log file. +\item all of these text decorations and meta-annotations are only inserted into + the text, if the {\tt{show}} package option in the {\tt{\char92 usepackage}} + directive in the preamble of the document is set: {\tt{\char92 + usepackage[show]\char123ed\char125}} will show the decorations, while + {\tt{\char92 usepackage\char123ed\char125}} will not. This is useful for + preparing ``clean'' version for outside consumption without loosing the + management metadata. +\endtodolist} +\endinput +%% +%% End of file `ed.sty'. diff --git a/examples/eu/strep/final.tex b/examples/eu/strep/final.tex deleted file mode 100644 index 6c39199..0000000 --- a/examples/eu/strep/final.tex +++ /dev/null @@ -1,7 +0,0 @@ -\newcommand{\classoptions}{,submit} -\input{proposal.tex} - -%%% Local Variables: -%%% mode: LaTeX -%%% TeX-master: t -%%% End: diff --git a/examples/eu/strep/submit.pdf b/examples/eu/strep/submit.pdf index 9fee253..106594c 100644 Binary files a/examples/eu/strep/submit.pdf and b/examples/eu/strep/submit.pdf differ diff --git a/examples/eu/strep/submit.tex b/examples/eu/strep/submit.tex index 10bd7a1..02b1017 100644 --- a/examples/eu/strep/submit.tex +++ b/examples/eu/strep/submit.tex @@ -1,5 +1,5 @@ \newcommand{\classoptions}{submit,split} -\input{proposal} +\input{propB} %%% Local Variables: %%% mode: latex %%% TeX-master: t