LaTeX-proposal/examples/eu/strep/ed.sty

156 lines
7.9 KiB
TeX

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