moving splitting stuff to euproposal, updating examples, and fixing \milestonestable bug that appeared on running it the first time (the deliverables were not there yet)

This commit is contained in:
Michael Kohlhase 2019-01-27 11:06:56 +01:00
parent bd6c7e0625
commit 187e9a4c57
13 changed files with 192 additions and 43 deletions

View File

@ -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}
%</sty>
% \end{macrocode}

Binary file not shown.

View File

@ -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}}}

Binary file not shown.

View File

@ -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.}

View File

@ -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}}
%</cls>
%<reporting>\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}

Binary file not shown.

View File

@ -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)

View File

@ -1 +0,0 @@
\input{proposal.tex}

155
examples/eu/strep/ed.sty Normal file
View File

@ -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'.

View File

@ -1,7 +0,0 @@
\newcommand{\classoptions}{,submit}
\input{proposal.tex}
%%% Local Variables:
%%% mode: LaTeX
%%% TeX-master: t
%%% End:

Binary file not shown.

View File

@ -1,5 +1,5 @@
\newcommand{\classoptions}{submit,split}
\input{proposal}
\input{propB}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t