summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ltxtools/ltxtools-review.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/ltxtools/ltxtools-review.sty')
-rw-r--r--macros/latex/contrib/ltxtools/ltxtools-review.sty1043
1 files changed, 1043 insertions, 0 deletions
diff --git a/macros/latex/contrib/ltxtools/ltxtools-review.sty b/macros/latex/contrib/ltxtools/ltxtools-review.sty
new file mode 100644
index 0000000000..9f944ef33d
--- /dev/null
+++ b/macros/latex/contrib/ltxtools/ltxtools-review.sty
@@ -0,0 +1,1043 @@
+%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%
+% %
+% This is file 'reviewtools.sty', version 0.0.1, December 2011 %
+% %
+% This package and accompanying files may be distributed and/or %
+% modified under the conditions of the LaTeX Project Public License, %
+% either version 1.3 of this license or any later version. The latest %
+% version of this license is in http://www.latex-project.org/lppl.txt %
+% and version 1.3 or later is part of all distributions of LaTeX %
+% version 2005/12/01 or later. %
+% %
+% The LPPL maintenance status of this software is 'author-maintained'. %
+% %
+% This software is provided 'as it is', without warranty of any kind, %
+% either expressed or implied, including, but not limited to, the %
+% implied warranties of merchantability and fitness for a particular %
+% purpose. %
+% %
+% Copyright (c) 2011 Ahmed Musa (a.musa@rocketmail.com). %
+% %
+%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%
+
+\@ifpackageloaded{catoptions}{%
+ \@ifpackagelater{catoptions}{2011/12/12}{}{%
+ \@latex@error{Loaded version of catoptions package is
+ not current}\@ehc
+ }%
+}{%
+ \RequirePackage{catoptions}[2011/12/12]%
+}
+\UseNormalCatcodes
+\StyleFilePurpose{Multipurpose document review tools (AM)}
+\StyleFileRCSInfo
+$Id: reviewtools.sty,v 0.0.1 2011/12/12 09:00:00 Ahmed Musa Exp $
+\ProvidesClass{reviewtools}[\StyleFileInfo]
+\NeedsTeXFormat{LaTeX2e}[2011/06/27]
+\SetStyleFileMessages[rvt@]{info}{warn}{err}
+\cptloadpackages{%
+ ltxkeys||2011/09/10;
+ graphicx||1999/02/16;
+ bigfoot||2006/07/15;
+ xcolor|table,dvipsnames,hyperref|2007/01/21;
+ marginfix||2010/08/18;
+ amsmath;
+ amssymb||2002/01/22;
+ ltxtools-environ||2010/05/20;
+}
+\DeclareNewFootnote[plain]{default}
+\DeclareNewFootnote[plain]{B}[alph]
+% Footnote type 1:
+\MakeSortedPerPage[1]{footnoteB}
+\setlength{\skip\footinsB}{2\p@ minus 1\p@}
+\newcounter{rvt@altfoota}
+\renewcommand*\thervt@altfoota{\Alph{rvt@altfoota}}
+\MakeSortedPerPage[1]{rvt@altfoota}
+% Footnote type 2:
+\WithSuffix\def\footnotedefault'{%
+ \refstepcounter{rvt@altfoota}%
+ \Footnotedefault{\thervt@altfoota}%
+}
+\newcounter{rvt@altfootb}
+\renewcommand*\thervt@altfootb{\roman{rvt@altfootb}}
+% Footnote type 3:
+\MakeSortedPerPage[1]{rvt@altfootb}
+\WithSuffix\def\footnotedefault*{%
+ \refstepcounter{rvt@altfootb}%
+ \Footnotedefault{\thervt@altfootb}%
+}
+\newletcs\footnotewithsymbol\Footnote
+\everyeoenv{\ignorespacesafterend}
+\new@def*\PrintNotes{\global\rvt@printnotestrue}
+\new@def*\NoPrintNotes{\global\rvt@printnotesfalse}
+\newletcs\rvt@nil\relax
+\new@def*\rvt@nnil{\rvt@nil}
+\newcommand\rvt@startfile[2][\jobname]{%
+ \begingroup
+ \makeatletter
+ \if@filesw
+ \expandafter\newwrite\csname rvtf@#2\endcsname
+ \immediate\openout\csname rvtf@#2\endcsname=#1.#2\relax
+ \else
+ \rvt@warn{\string\nofiles: can't start file #1.#2}%
+ \fi
+ \@nobreakfalse
+ \endgroup
+ \AtEndDocument{%
+ \if@filesw\closeout\csname rvtf@#2\endcsname\fi
+ }%
+}
+\newcommand\rvt@writefile[3][\jobname]{%
+ \if@filesw
+ \ifcsndefTF{rvtf@#2}{%
+ \rvt@writetofile{\usename{rvtf@#2}}{}{#3}%
+ }{%
+ \rvt@err{File #1.#2 not open}\@ehc
+ }%
+ \else
+ \rvt@warn{\string\nofiles: can't write to file #1.#2}%
+ \fi
+}
+\new@def*\rvt@verbfileheader#1{%
+ \edef\reserved@c{\noexpandcsn{rvtf@#1}}%
+ \immediate\write\reserved@c{%
+ \@percentchar\@percentchar\space
+ Notes file `\jobname.\rvt@verbfile'^^J%
+ \@percentchar\@percentchar\space generated by the
+ `rvtwriteverb' environment^^J%
+ \@percentchar\@percentchar\space from source `\jobname' on
+ \number\year/\two@digits\month/\two@digits\day.^^J%
+ \@percentchar\@percentchar
+ }%
+}
+\edef\@percentchar{\expandafter\@gobble\string\%}
+% Package options:
+\ltxkeys@definekeys*[RVT]{revtools}[rvt@]{%
+ showreviewer/true;
+ shownotetype/true;
+ printnotes/true;
+ final/true;
+ draft/true/\ifboolTF{rvt@draft}{\setaliaskey{final}[false]}{};
+ writenotes/true;
+ notecolor/ForestGreen;
+ deletecolor/BurntOrange;
+ deletedcolor/pink;
+ addcolor/red;
+ wipcolor/purple;
+ \needvalue{reviewer}/Rev?;
+ verbfileext/vbm/
+ \cptstripallouterbraces{#1}\rvt@verbfileext
+ \edef\rvt@verbfileext{\s@expandarg\cpttrimspaces\rvt@verbfileext};
+ openverbfile/true/
+ \ifrvt@openverbfile
+ \rvt@startfile\rvt@verbfileext
+ \rvt@verbfileheader\rvt@verbfileext
+ \fi;
+}
+\ltxkeys@optionkeys[RVT]{revtools}{openverbfile,verbfileext}
+\ltxkeys@declareoption*{\rvt@warn{Unknown option '\CurrentOption' ignored}}
+\ltxkeys@executeoptions[RVT]<revtools>{shownotetype,printnotes,final}
+\ltxkeys@processoptions*[RVT]<revtools>\relax
+\robust@def*\rvtoptions#1{\ltxkeys@setkeys[RVT]{revtools}{#1}}
+\ltxkeys@reservekeyprefix*{RVT}
+\ltxkeys@reservemacroprefix*{rvt@}
+\ltxkeys@reservekeyfamily*{revtools}
+
+\new@def*\rvt@optprinthook{}
+\robust@def*\rvtoptprint#1{%
+ \ltsfiltermergecsv\rvt@optprinthook{#1}\nofilter
+}
+
+% Optional print 'opt2' and 'opt3' only:
+% \rvtoptprint{opt2,opt3}
+
+% 'opt1' will be ignored, while 'opt2' and 'opt3' will
+% be printed even as they appear inside ignored command
+% or environment ('opt1'):
+
+% Nested optional print command:
+% \rvtoptcmd{opt1}{...\rvtoptcmd{opt2}{...\rvtoptcmd{opt3}{...}}}
+
+% Nested optional print environment:
+% \rvtbegin{rvtopt}{opt1}
+% ...
+% \rvtbegin{rvtopt}{opt2}%
+% ...
+% \rvtbegin{rvtopt}{opt3}%
+% ...
+% \rvtend{rvtopt}{opt3}%
+% ...
+% \rvtend{rvtopt}{opt2}%
+% ...
+% \rvtend{rvtopt}{opt1}
+
+\newcommand\rvtoptcmd[2]{%
+ \oifinset@sp@TF,{#1}\rvt@optprinthook{%
+ #2\relax
+ }{%
+ \long\def\reserved@a##1\rvtoptcmd##2##3##4\rvt@nil{%
+ \edef\reserved@a{\unexpanded{##3}}%
+ \ifcseqTF\reserved@a\rvt@nnil{}{%
+ \rvtoptcmd{##2}{##3}%
+ }%
+ }%
+ \reserved@a#2\rvtoptcmd{\rvt@nil}{\rvt@nil}\rvt@nil
+ }%
+}
+\def\rvtnewenvironment{\cpt@starorlong\rvt@newenvironment}
+\def\rvt@newenvironment#1{\cpt@testopt{\rvt@newenva#1}0}
+\def\rvt@newenva#1[#2]{%
+ \cpt@ifbrack{\rvt@newenvb{#1}{#2}}{\rvt@newenv{#1}{[#2]}}%
+}
+\def\rvt@newenvb#1#2[#3]{\rvt@newenv{#1}{[#2][{#3}]}}
+\def\rvtrenewenvironment{\@star@or@long\rvt@renewenvironment}
+\def\rvt@renewenvironment#1{%
+ \@ifundefined{#1}{%
+ \@latex@error{Environment #1 undefined}\@ehc
+ }{}%
+ \expandafter\let\csname#1\endcsname\relax
+ \expandafter\let\csname rvtend#1\endcsname\relax
+ \rvt@newenvironment{#1}%
+}
+\long\def\rvt@newenv#1#2#3#4{%
+ \@ifundefined{#1}{\letcsntocsn{#1}{rvtend#1}}{}%
+ \aftercsname\new@command{#1}#2{#3}%
+ \l@ngrel@x\csn@def{rvtend#1}{#4}%
+}
+\newletcs\rvtbegin\begin
+\new@def*\rvtend#1{%
+ \csname rvtend#1\endcsname\@checkend{#1}%
+ \expandafter\endgroup\if@endpe\@doendpe\fi
+ \rvt@gobbletoend
+}
+\new@def\rvt@gobbletoend#1#{\@gobble}
+\rvtnewenvironment{rvtopt}[1]{%
+ \oifinset@sp@TF,{#1}\rvt@optprinthook{}{%
+ \begingroup
+ \toks@{}%
+ \long\def\rvt@processbody##1\rvtend##2##3{%
+ \def\reserved@a{##2}%
+ \ifcseqTF\reserved@a\@currenvir{%
+ \ifstrcmpTF{##3}{#1}{%
+ \edef\rvt@tempa{\the\toks@}%
+ \postgroupdef\rvt@tempa\endgroup
+ \ifcseqTF\rvt@tempa\@empty{%
+ \expandafter\endgroup\if@endpe\@doendpe\fi
+ }{%
+ \long\def\reserved@a####1\rvtbegin{\rvtbegin}%
+ \expandafter\reserved@a\rvt@tempa
+ \expandafter\endgroup\if@endpe\@doendpe\fi
+ }%
+ }{%
+ \toks@\expandafter{\the\toks@##1\rvtend{##2}{##3}}%
+ \rvt@processbody
+ }%
+ }{%
+ \toks@\expandafter{\the\toks@##1\rvtend{##2}{##3}}%
+ \rvt@processbody
+ }%
+ }%
+ \rvt@processbody
+ }%
+}{}
+
+\robust@def*\rvtdefinecolor{%
+ \let\reserved@e\definecolor
+ \cpt@testopt\rvt@definecolor{}%
+}
+\robust@def*\rvtcolorlet{%
+ \let\reserved@e\colorlet
+ \cpt@testopt\rvt@definecolor{}%
+}
+\robust@def*\rvt@definecolor[#1]#2{%
+ \@ifundefinedcolor{#2}{%
+ \reserved@e[#1]{#2}%
+ }{%
+ \rvt@err{Color name '#2' already defined}\@ehc
+ }%
+}
+% Eg,
+% \rvtdefinecolorset[x](0){green,0,0.50,0;blue,0,0.50,0.25}
+% To use colors defined via \rvtdefinecolorset:
+% eg, \color{<head>green<tail>}, where, eg, <head> is 'x' and <tail> '0'.
+% When xwatermark package is loaded, this becomes redundant, but why
+% load xwatermark just for this?
+\robust@def*\rvtdefinecolorset{\cpt@testopt\rvt@definecolorset{x}}
+\robust@def*\rvt@definecolorset[#1]{%
+ \cpt@testpnopt{\rvt@d@finecolorset{#1}}{1}%
+}
+\robust@def*\rvt@d@finecolorset#1(#2)#3{%
+ \ifcsndefTF{ver@xcolor.sty}{%
+ \begingroup
+ \cptemptifycsset{\rvt@tempb,\rvt@tempc,\rvt@tempd,\rvt@tempe}%
+ \def\rvt@tempa##1,##2,##3,##4,##5\@nil{%
+ \ifx\noboundary##4\noboundary
+ \rvt@err{Incomplete color format in
+ \string\rvtdefinecolorset}\@ehc
+ \else
+ \def\reserved@a{##1}%
+ \fi
+ }%
+ \def\csv@do##1{%
+ \rvt@tempa##1,,,,\@nil
+ \xifinsetTF{,\reserved@a,}{,\rvt@tempd,}{%
+ \edef\rvt@tempe{\csliststack,\rvt@tempe\reserved@a}%
+ }{%
+ \edef\rvt@tempd{\csliststack,\rvt@tempd\reserved@a}%
+ \@ifundefinedcolor{#1\reserved@a#2}{%
+ \edef\rvt@tempb{\csliststack;\rvt@tempb##1}%
+ }{%
+ \edef\rvt@tempc{\csliststack;\rvt@tempc#1\reserved@a#2}%
+ }%
+ }%
+ }%
+ \csv@@parse[;]{#3}%
+ \ifcsemptyTF\rvt@tempe{}{%
+ \rvt@err{Color names '\expandcsonce\rvt@tempe' multiply
+ \MsgBrk submitted to \string\rvtdefinecolorset}\@ehc
+ }%
+ \ifcsemptyTF\rvt@tempc{}{%
+ \rvt@err{Color names '\rvt@tempc' already in use}\@ehc
+ }%
+ \ifcsemptyTF\rvt@tempb{}{%
+ \cptexpandarg{\xglobal\definecolorset{rgb}{#1}{#2}}
+ {\expandcsonce\rvt@tempb}%
+ }%
+ \endgroup
+ }{%
+ \rvt@err{'xcolor' package not loaded}\@ehc
+ }%
+}
+\rvtdefinecolorset[rvt](0){%
+ green1,0,0.50,0;green2,0,0.50,0.25;green3,0.65,1,0.65;
+ blue1,0,0,1;blue2,0,0,0.63;blue3,0,0.50,1;blue4,0,0.50,0.75;
+ orange1,1,0.50,0;orange2,1,0.50,0.25;orange3,1,0.55,0.33
+}
+
+% Write verbatim to file '\jobname.verbfileext':
+% \begin{rvtverbfilewrite} ... \end{rvtverbfilewrite}
+\begingroup
+\endlinechar-1
+\begingroup
+\catcode`\^^M=13
+\catcode`\^^L=13\let^^L\relax
+\catcode`\^^I=13
+\new@gdef*\rvtverbfilewrite{
+ \ifrvt@openverbfile\else
+ \rvt@err{Writing to nonexistent/unopened file?}
+ {Can't write to unopened verbatim file.}%
+ \fi
+ \edef\reserved@c{\noexpandcsn{rvtf@\rvt@verbfileext}}
+ \let\do\@makeother\dospecials
+ \edef\E{\@backslashchar end\string{\@currenvir\string}}
+ \edef\reserved@b{
+ \def\noexpand\reserved@b####1\E####2\E####3\relax
+ }
+ \reserved@b{
+ \ifx\relax##3\relax
+ \immediate\write\reserved@c{##1}
+ \else
+ \edef^^M{\noexpand\end{\@currenvir}}
+ \ifx\relax##1\relax
+ \else
+ \immediate\write\reserved@c{##1}
+ \fi
+ \ifx\relax##2\relax
+ \else
+ \@latex@warning{Ignoring text `##2' %
+ after \string\end{\@currenvir}}
+ \fi
+ \fi
+ ^^M
+ }
+ \catcode`\^^L=13
+ \let\L\rvt@undefined
+ \def^^L{\@ifundefined L^^J^^J^^J}
+ \catcode`\^^I=13
+ \let\I\rvt@undefined
+ \def^^I{\@ifundefined I\@space\@space}
+ \catcode`\^^M=13
+ \edef^^M##1^^M{\noexpand\reserved@b##1\E\E\relax}
+}
+\endgroup
+\begingroup
+\new@gdef*\endrvtwriteverb{
+ \def\T##1##2##3{
+ \ifx##1\rvt@undefined\else
+ \rvt@warn{##2 has been converted to blank ##3}
+ \fi
+ }
+ \T\L{Form Feed}{line}
+ \T\I{Tab}{space}
+ \immediate\write\@unused{}
+}
+\endgroup
+\endgroup
+
+\newcommand\rvt@writetofile[3]{%
+ \begingroup
+ \let\thepage\relax
+ \let\label\@gobble
+ #2%
+ \let\protect\@unexpandable@protect
+ \protected@edef\rvt@tempa{\immediate\write#1{#3}}%
+ \rvt@tempa
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi
+}
+\newcommand\rvtfootnote[2][black]{\unskip
+ \long\def\@makefntext##1{\rule\z@\footnotesep\parindent1em\noindent
+ \hb@xt@2em{\hss\@textsuperscript
+ {\normalfont\textcolor{#1}{\@thefnmark}}}%
+ \hspace{2\p@}\ignorespaces\textcolor{#1}{##1}%
+ }%
+ \def\@makefnmark{%
+ \hbox{\@textsuperscript{\normalfont\textcolor{#1}{\@thefnmark}}}%
+ }%
+ \footnote{#2}%
+}
+\AtBeginDocument{%
+ \ifrvt@writenotes
+ \rvt@startfile{rvt}%
+ \rvt@writefile{rvt}{%
+ \string\begin{center}^^J\string\bfseries\space
+ Review notes in file\space\jobname.tex
+ ^^J\string\end{center}^^J\string\par\string\medskip^^J%
+ }%
+ \fi
+}
+\newcommand\rvt@notefile[3]{%
+ \ifboolTF{rvt@writenotes}{%
+ \rvt@writefile{rvt}{%
+ \string\noindent
+ {\string\bfseries\@space#1\string~\the\c@section.\arabic{#3}}%
+ \string\enskip\unexpanded{#2} (page\string~\the\c@page).
+ \string\par\string\medskip^^J%
+ }%
+ }{}%
+}
+\new@def*\rvt@r@viewer{%
+ \ifboolTF{rvt@showreviewer}{\textit{\rvt@reviewer}}{}%
+}
+\newcommand*\rvt@notefootnote[1][\rvt@notecolor]{%
+ \long\def\@makefntext##1{%
+ \rule\z@\footnotesep\parindent1em\noindent
+ \hb@xt@0em{\hss\@textsuperscript{\normalfont\color{#1}\@thefnmark}}%
+ \hspace{2\p@}\color{#1}\ignorespaces##1%
+ }%
+ \def\@makefnmark{\hbox{\@textsuperscript
+ {\normalfont\color{#1}\@thefnmark}}}%
+}
+\robust@def*\rvt@refstepcounter#1#2#3{%
+ \stepcounter{#1}%
+ \protected@edef\@currentlabel{\thesection.\usename{the#1}}%
+ \def\@currentlabelname{#2}%
+ \def\@currentHref{#3.\@currentlabel}%
+}
+\newcounter{rvt@notecnt}[section]
+\robust@def*\rvtshortnote{\cpt@ifstar\rvt@shortnote\rvt@sh@rtnote}
+\newcommand*\rvt@shortnote[2][]{%
+ \let\next\relax
+ \ifrvt@printnotes
+ \ifrvt@final
+ \def\next
+ {\rvt@err{Can't write 'shortnote*' if 'final'}\@ehc}%
+ \else
+ \def\next{\rvt@shortnotebody{#1}{#2}}%
+ \fi
+ \fi
+ \next
+}
+\newcommand*\rvt@sh@rtnote[2][]{%
+ \ifboolFT{rvt@printnotes}{}{\rvt@shortnotebody{#1}{#2}}%
+}
+\newcommand*\rvt@shortnotebody[2]{%
+ \begingroup
+ \rvt@refstepcounter{rvt@notecnt}{note}{note}%
+ \rvt@notefootnote[\rvt@notecolor]%
+ \color{\rvt@notecolor}%
+ \noindent
+ \finalhyphendemerits\z@pt
+ \rvt@notebmark
+ \textbf{Note~\thesection.\thervt@notecnt}\enskip
+ \ignorespaces#2~\rvt@r@viewer\relax
+ \rvt@noteemark
+ \ifblankTF{#1}{}{\footnote'{#1}}%
+ \rvt@notefile{Note}{\string\ignorespaces#2}{rvt@notecnt}%
+ \endgroup
+}
+\robust@def*\rvt@notebmark{%
+ \marginpar{%
+ \edef\rvt@tempa{\ifrvt@shownotetype Notes\fi}%
+ \begin{picture}(0,0)%
+ \sffamily\color{\rvt@notecolor}%
+ \put(0,0){\rotatebox{-90}{\small$\blacktriangleright$\rvt@tempa}}%
+ \end{picture}%
+ }%
+}
+\robust@def*\rvt@noteemark{%
+ \marginpar{%
+ \begin{picture}(0,0)%
+ \sffamily\color{\rvt@notecolor}%
+ \put(12,0){\rotatebox{90}{\small$\blacktriangleright$}}%
+ \end{picture}%
+ }%
+}
+
+\newenviron{rvtlongnote}[1][]{%
+ \ifboolFT{rvt@printnotes}{}{\rvt@longnotebody{#1}}%
+}{}
+\newenviron{rvtlongnote*}[1][]{%
+ \let\next\relax
+ \ifrvt@printnotes
+ \ifrvt@final
+ \def\next{\rvt@err{Can't print longnote* if 'final'}\@ehc}%
+ \else
+ \def\next{\rvt@longnotebody{#1}}%
+ \fi
+ \fi
+ \next
+}{}
+\newcommand*\rvt@longnotebody[1]{%
+ \begingroup
+ \rvt@refstepcounter{rvt@notecnt}{note}{note}%
+ \rvt@notefootnote[\rvt@notecolor]%
+ \color{\rvt@notecolor}%
+ \medskip\noindent
+ \rvt@longnotebmark
+ \textbf{Note~\thesection.\thervt@notecnt}%
+ \endgraf\noindent\finalhyphendemerits\z@pt
+ \ignorespaces\envbody~\rvt@r@viewer\relax
+ \rvt@longnoteemark
+ \ifblankTF{#1}{}{\footnote'{#1}}%
+ \rvt@notefile{Note}{\string\ignorespaces\envbody}{rvt@notecnt}%
+ \endgroup
+}
+\robust@def*\rvt@longnotebmark{%
+ \marginpar{%
+ \sffamily\color{\rvt@notecolor}%
+ \edef\rvt@tempa{\ifrvt@shownotetype Notes start\fi}%
+ \begin{picture}(0,0)%
+ \put(0,0){\rotatebox{-90}{\small$\blacktriangleright$\rvt@tempa}}%
+ \end{picture}%
+ }%
+}
+\robust@def*\rvt@longnoteemark{%
+ \marginpar{%
+ \sffamily\color{\rvt@notecolor}%
+ \edef\rvt@tempa{\ifrvt@shownotetype Notes end\fi}%
+ \begin{picture}(0,0)%
+ \put(10,0){\rotatebox{90}{\small$\blacktriangleright$\rvt@tempa}}%
+ \end{picture}%
+ }%
+}
+
+\newcounter{rvt@marginnotecnt}
+\MakeSortedPerPage{rvt@marginnotecnt}
+\robust@def*\rvtshortmarginnote{%
+ \cpt@ifstar\rvt@shortmarginnote\rvt@sh@rtmarginnote
+}
+\robust@def*\rvt@shortmarginnote#1{%
+ \let\next\relax
+ \ifrvt@printnotes
+ \ifrvt@final
+ \def\next{\rvt@err{Can't print shortmarginnote* if 'final'}\@ehc}%
+ \else
+ \def\next{\rvt@marginnotebody{#1}}%
+ \fi
+ \fi
+ \next
+ \rvt@notefile{Note}{#1}{rvt@marginnotecnt}%
+}
+\robust@def*\rvt@sh@rtmarginnote#1{%
+ \ifrvt@printnotes\rvt@marginnotebody{#1}\fi
+ \rvt@notefile{Note}{#1}{rvt@marginnotecnt}%
+}
+\newenviron{rvtmarginnote*}{%
+ \let\next\relax
+ \ifrvt@printnotes
+ \ifrvt@final
+ \def\next{\rvt@err{Can't print marginnote* if 'final'}\@ehc}%
+ \else
+ \def\next{\rvt@marginnotebody{\envbody}}%
+ \fi
+ \fi
+ \next
+ \rvt@notefile{Note}{\envbody}{rvt@marginnotecnt}%
+}{}
+\newenviron{rvtmarginnote}{%
+ \ifrvt@printnotes
+ \def\next{\rvt@marginnotebody{\envbody}}%
+ \else
+ \let\next\relax
+ \fi
+ \next
+ \rvt@notefile{Note}{\envbody}{rvt@marginnotecnt}%
+}{}
+\newenviron{rvtMarginNote}{%
+ \ifrvt@printnotes
+ \rvt@marginnotebody\envbody
+ \fi
+ \rvt@notefile{Note}{\envbody}{rvt@marginnotecnt}%
+}{}
+\robust@def*\rvt@marginnotebody#1{%
+ \begingroup
+ \rvt@refstepcounter{rvt@marginnotecnt}{margin note}{margin note}%
+ \fboxsep=1\p@\fboxrule=0.4\p@\relax
+ \marginpar[\sffamily\color{\rvt@notecolor}\small\raggedleft
+ \fbox{\thervt@marginnotecnt}~#1]{\sffamily\color{\rvt@notecolor}%
+ \small\raggedright\fbox{\thervt@marginnotecnt}~#1}%
+ \endgroup
+}
+\newcounter{rvt@deletecnt}[section]
+\robust@def*\rvtshortdelete{%
+ \cpt@ifstar\rvt@shortdelete\rvt@sh@rtdelete
+}
+\newcommand\rvt@shortdelete[2][]{%
+ \let\next\relax
+ \ifrvt@printnotes
+ \ifrvt@final
+ \def\next{\rvt@err{Can't write shortdelete* if 'final'}\@ehc}%
+ \else
+ \def\next{\rvt@deletebody{#1}{#2}}%
+ \fi
+ \else
+ \def\next{}%
+ \fi
+ \next
+}
+\newcommand\rvt@sh@rtdelete[2][]{%
+ \ifrvt@printnotes
+ \rvt@deletebody{#1}{#2}%
+ \fi
+}
+\newenviron{rvtdelete*}[1][]{%
+ \let\next\relax
+ \ifrvt@printnotes
+ \ifrvt@final
+ \def\next{\rvt@err{Can't print delete* if 'final'}\@ehc}%
+ \else
+ \def\next{\rvt@deletebody{#1}{\envbody}}%
+ \fi
+ \fi
+ \next
+ \rvt@notefile{Delete}{\envbody}{rvt@deletecnt}%
+}{}
+\newenviron{rvtdelete}[1][]{%
+ \ifrvt@printnotes
+ \rvt@deletebody{#1}{\envbody}%
+ \fi
+ \rvt@notefile{Delete}{\envbody}{rvt@deletecnt}%
+}{}
+\robust@def*\rvt@deletebody#1#2{%
+ \begingroup
+ \rvt@refstepcounter{rvt@deletecnt}{delete}{delete}%
+ \rvt@notefootnote[\rvt@deletecolor]%
+ \rvt@deletebmark
+ \sffamily\rvt@deletecolor\ignorespaces
+ #2\xifblankTF{#1}{}{\footnote'{#1}}%
+ \rvt@deleteemark
+ \endgroup
+}
+\robust@def*\rvt@deletebmark{%
+ \marginpar{%
+ \sffamily\rvt@deletecolor
+ \ifrvt@shownotetype\def\rvt@note{Delete}\else\def\rvt@note{}\fi
+ \begin{picture}(0,0)%
+ \put(0,0){\rotatebox{-90}{\small$\blacktriangleright$\rvt@note}}%
+ \end{picture}%
+ }%
+}
+\robust@def*\rvt@deleteemark{\marginpar{\sffamily\rvt@deletecolor
+ \begin{picture}(0,0)%
+ \put(4,0){\rotatebox{90}{\small$\blacktriangleright$\rvt@r@viewer}}%
+ \end{picture}}%
+}
+\newcounter{rvt@deletedcnt}[section]
+\robust@def*\rvtshortdeleted{%
+ \cpt@ifstar\rvt@shortdeleted\rvt@sh@rtdeleted
+}
+\newcommand\rvt@shortdeleted[2][]{%
+ \let\next\relax
+ \ifrvt@printnotes
+ \ifrvt@final
+ \def\next{\rvt@err{Can't write shortdeleted* if 'final'}\@ehc}%
+ \else
+ \def\next{\rvt@deletedbody{#1}{#2}}%
+ \fi
+ \fi
+ \next
+}
+\newcommand\rvt@sh@rtdeleted[2][]{%
+ \ifrvt@printnotes
+ \rvt@deletedbody{#1}{#2}%
+ \fi
+}
+\newenviron{rvtdeleted*}[1][]{%
+ \let\next\relax
+ \ifrvt@printnotes
+ \ifrvt@final
+ \def\next{\rvt@err{Can't print deleted* if 'final'}\@ehc}%
+ \else
+ \def\next{\rvt@deletedbody{#1}{\envbody}}%
+ \fi
+ \fi
+ \next
+ \rvt@notefile{Deleted}{\envbody}{rvt@deletedcnt}%
+}{}
+\newenviron{rvtdeleted}[1][]{%
+ \ifrvt@printnotes
+ \rvt@deletedbody{#1}{\envbody}%
+ \fi
+ \rvt@notefile{Deleted}{\envbody}{rvt@deletedcnt}%
+}{}
+\robust@def*\rvt@deletedbody#1#2{%
+ \begingroup
+ \rvt@refstepcounter{rvt@deletedcnt}{deleted}{deleted}%
+ \rvt@notefootnote[\rvt@deletedcolor]%
+ \rvt@deletedbmark
+ \sffamily\rvt@deletedcolor\ignorespaces
+ #2\xifblankTF{#1}{}{\footnote'{#1}}%
+ \rvt@deletedemark
+ \endgroup
+}
+\robust@def*\rvt@deletedbmark{%
+ \marginpar{%
+ \sffamily\rvt@deletedcolor
+ \ifrvt@shownotetype\def\rvt@note{Deleted}\else\def\rvt@note{}\fi
+ \begin{picture}(0,0)%
+ \put(0,0){\rotatebox{-90}{\small$\blacktriangleright$\rvt@note}}%
+ \end{picture}%
+ }%
+}
+\robust@def*\rvt@deletedemark{%
+ \marginpar{%
+ \sffamily\rvt@deletedcolor
+ \begin{picture}(0,0)%
+ \put(4,0){\rotatebox{90}{\small$\blacktriangleright$%
+ \rvt@r@viewer}}%
+ \end{picture}%
+ }%
+}
+\newcounter{rvt@addcnt}[section]
+\robust@def*\rvtshortadd{%
+ \cpt@ifstar\rvt@shortadd\rvt@sh@rtadd
+}
+\newcommand\rvt@shortadd[2][]{%
+ \let\next\relax
+ \ifrvt@printnotes
+ \ifrvt@final
+ \def\next{\rvt@err{Can't print shortadd* if 'final'}\@ehc}%
+ \else
+ \def\next{\rvt@addbody{#1}{#2}}%
+ \fi
+ \else
+ \def\next{}%
+ \fi
+ \next
+ \rvt@notefile{Add}{#2}{rvt@addcnt}%
+}
+\newcommand\rvt@sh@rtadd[2][]{%
+ \ifrvt@printnotes
+ \rvt@addbody{#1}{#2}%
+ \fi
+ \rvt@notefile{Add}{#2}{rvt@addcnt}%
+}
+\newenviron{rvtadd*}[1][]{%
+ \let\next\relax
+ \ifrvt@printnotes
+ \ifrvt@final
+ \def\next{\rvt@err{Can't print add* if 'final'}\@ehc}%
+ \else
+ \def\next{\rvt@addbody{#1}{\envbody}}%
+ \fi
+ \else
+ \def\next{}%
+ \fi
+ \next
+ \rvt@notefile{Add}{\envbody}{rvt@addcnt}%
+}{}
+\newenviron{rvtadd}[1][]{%
+ \ifrvt@printnotes\rvt@addbody{#1}{\envbody}\fi
+ \rvt@notefile{Add}{\envbody}{rvt@addcnt}%
+}{}
+\robust@def*\rvt@addbody#1#2{%
+ \begingroup
+ \rvt@refstepcounter{rvt@addcnt}{add}{add}%
+ \rvt@notefootnote[\rvt@addcolor]%
+ \rvt@addbmark
+ \sffamily\rvt@addcolor\ignorespaces
+ #2\xifblankTF{#1}{}{\footnote'{#1}}%
+ \rvt@addemark
+ \endgroup
+}
+\robust@def*\rvt@addbmark{%
+ \marginpar{%
+ \sffamily\rvt@addcolor
+ \ifrvt@shownotetype\def\rvt@note{Add}\else\def\rvt@note{}\fi
+ \begin{picture}(0,0)%
+ \put(0,0){\rotatebox{-90}{\small$\blacktriangleright$\rvt@note}}%
+ \end{picture}%
+ }%
+}
+\robust@def*\rvt@addemark{%
+ \marginpar{%
+ \sffamily\rvt@addcolor
+ \begin{picture}(0,0)%
+ \put(4,0){\rotatebox{90}{\small$\blacktriangleright$
+ \rvt@r@viewer}}%
+ \end{picture}%
+ }%
+}
+\newcounter{rvt@finalizedcnt}[section]
+\robust@def*\rvtfinalizedfrom{%
+ \cpt@ifstar\rvt@finalizedfrom\rvt@fin@lizedfrom
+}
+\newcommand\rvt@finalizedfrom[2][]{%
+ \let\next\relax
+ \ifrvt@printnotes
+ \ifrvt@final
+ \def\next{\rvt@err{Can't print finalizedfrom* if 'final'}\@ehc}%
+ \else
+ \def\next{\rvt@finalizedfrombody{#1}{#2}}%
+ \fi
+ \fi
+ \next
+ \rvt@notefile{Finalized From}{#2}{rvt@finalizedcnt}%
+}
+\newcommand\rvt@fin@lizedfrom[2][]{%
+ \ifrvt@printnotes
+ \rvt@finalizedfrombody{#1}{#2}%
+ \fi
+ \rvt@notefile{Finalized From}{#2}{rvt@finalizedcnt}%
+}
+\robust@def\rvt@finalizedfrombody#1#2{%
+ \begingroup
+ \rvt@refstepcounter{rvt@finalizedcnt}{finalized from}{finalized from}%
+ \rvt@notefootnote[\rvt@wipcolor]%
+ \rvt@finfrombmark\rvt@finfromemark
+ \sffamily\rvt@wipcolor\ignorespaces
+ \ignorespaces#2\xifblankTF{#1}{}{\footnote'{#1}}%
+ \endgroup
+}
+\newcommand*\rvt@finfrombmark{%
+ \marginpar{%
+ \sffamily\rvt@wipcolor
+ \begin{picture}(0,0)%
+ \put(5,0){\rotatebox{-90}{\small$\blacktriangleright$%
+ Finalized from here}}%
+ \end{picture}%
+ }%
+}
+\newcommand*\rvt@finfromemark{%
+ \marginpar{%
+ \sffamily\rvt@wipcolor
+ \begin{picture}(0,0)%
+ \put(0,0){\rotatebox{-90}{\small(\rvt@r@viewer)}}%
+ \end{picture}%
+ }%
+}
+\robust@def*\rvtfinalizedto{%
+ \cpt@ifstar\rvt@finalizedto\rvt@fin@lizedto
+}
+\newcommand\rvt@finalizedto[2][]{%
+ \let\next\relax
+ \ifrvt@printnotes
+ \ifrvt@final
+ \def\next{\rvt@err{Can't print finalizedto* if 'final'}\@ehc}%
+ \else
+ \def\next{\rvt@finalizedtobody{#1}{#2}}%
+ \fi
+ \fi
+ \next
+ \rvt@notefile{Finalized To}{#2}{rvt@finalizedcnt}%
+}
+\newcommand\rvt@fin@lizedto[2][]{%
+ \ifrvt@printnotes
+ \rvt@finalizedtobody{#1}{#2}%
+ \fi
+ \rvt@notefile{Finalized To}{#2}{rvt@finalizedcnt}%
+}
+\robust@def\rvt@finalizedtobody#1#2{%
+ \begingroup
+ \rvt@refstepcounter{rvt@finalizedcnt}{finalized to}{finalized to}%
+ \rvt@notefootnote[\rvt@wipcolor]%
+ \rvt@finalizedtobmark\rvt@finalizedtoemark
+ \sffamily\rvt@wipcolor\ignorespaces
+ \ignorespaces#2\xifblankTF{#1}{}{\footnote'{#1}}%
+ \endgroup
+}
+\newcommand*\rvt@finalizedtobmark{%
+ \marginpar{%
+ \sffamily\rvt@wipcolor
+ \begin{picture}(0,0)%
+ \put(0,0){\rotatebox{90}{\small$\blacktriangleright$%
+ Finalized to here}}%
+ \end{picture}%
+ }%
+}
+\robust@def*\rvt@finalizedtoemark{%
+ \marginpar{%
+ \sffamily\rvt@wipcolor
+ \begin{picture}(0,0)%
+ \put(4,0){\rotatebox{90}{\small\p@blacktrig(\rvt@r@viewer)}}%
+ \end{picture}%
+ }%
+}
+% wip = work in progress
+\newcounter{rvt@wipcnt}[section]
+\robust@def*\rvtwipfrom{\cpt@ifstar\rvt@wipfrom\rvt@wipfr@m}
+\newcommand\rvt@wipfrom[2][]{%
+ \let\next\relax
+ \ifrvt@printnotes
+ \ifrvt@final
+ \def\next{\rvt@err{Can't print wipfrom* if 'final'}\@ehc}%
+ \else
+ \def\next{\rvt@wipfrombody{#1}{#2}}%
+ \fi
+ \fi
+ \next
+ \rvt@notefile{WIP From}{#2}{rvt@wipcnt}%
+}
+\newcommand\rvt@wipfr@m[2][]{%
+ \ifrvt@printnotes
+ \rvt@wipfrombody{#1}{#2}%
+ \fi
+ \rvt@notefile{WIP From}{#2}{rvt@wipcnt}%
+}
+\robust@def*\rvt@wipfrombody#1#2{%
+ \begingroup
+ \rvt@refstepcounter{rvt@wipcnt}{wip from}{wip from}%
+ \rvt@notefootnote[\rvt@wipcolor]%
+ \rvt@wipfrombmark\rvt@wipfromemark%
+ \sffamily\rvt@wipcolor\ignorespaces
+ \ignorespaces#2\xifblankTF{#1}{}{\footnote'{#1}}%
+ \endgroup
+}
+\newcommand*\rvt@wipfrombmark{%
+ \marginpar{%
+ \sffamily\rvt@wipcolor
+ \begin{picture}(0,0)%
+ \put(5,0){\rotatebox{-90}{\small$\blacktriangleright$%
+ WIP start}}%
+ \end{picture}%
+ }%
+}
+\newcommand*\rvt@wipfromemark{%
+ \marginpar{%
+ \sffamily\rvt@wipcolor
+ \begin{picture}(0,0)%
+ \put(0,0){\rotatebox{-90}{\small(\rvt@r@viewer)}}%
+ \end{picture}%
+ }%
+}
+\robust@def*\rvtwipto{\cpt@ifstar\rvt@wipto@a\rvt@wipto@b}
+\newcommand*\rvt@wipto@a[2][]{%
+ \let\next\relax
+ \ifrvt@printnotes
+ \ifrvt@final
+ \def\next{\rvt@err{Can't print wipto* if 'final'}\@ehc}%
+ \else
+ \def\next{\rvt@wiptobody{#1}{#2}}%
+ \fi
+ \fi
+ \next
+ \rvt@notefile{WIP To}{#2}{rvt@wipcnt}%
+}
+\newcommand\rvt@wipto@b[2][]{%
+ \ifrvt@printnotes
+ \rvt@wiptobody{#1}{#2}%
+ \fi
+ \rvt@notefile{WIP To}{#2}{rvt@wipcnt}%
+}
+\robust@def*\rvt@wiptobody#1#2{%
+ \begingroup
+ \rvt@refstepcounter{rvt@wipcnt}{wip to}{wip to}%
+ \rvt@notefootnote[\rvt@wipcolor]%
+ \rvt@wiptobmark\rvt@wiptoemark
+ \sffamily\rvt@wipcolor\ignorespaces
+ \ignorespaces#2\xifblankTF{#1}{}{\footnote'{#1}}%
+ \endgroup
+}
+\robust@def*\rvt@wiptobmark{%
+ \marginpar{%
+ \sffamily\rvt@wipcolor
+ \begin{picture}(0,0)%
+ \put(0,0){\rotatebox{90}{\small$\blacktriangleright$WIP end}}%
+ \end{picture}%
+ }%
+}
+\robust@def*\rvt@wiptoemark{%
+ \marginpar{%
+ \sffamily\rvt@wipcolor
+ \begin{picture}(0,0)%
+ \put(5,0){\rotatebox{90}{\small\p@blacktrig(\rvt@r@viewer)}}%
+ \end{picture}%
+ }%
+}
+\robust@def*\rvt@edittext{%
+ \ifboolTF{cpt@st}\rvt@edittext@a\rvt@edittext@b
+}
+\robust@def*\rvt@edittext@a#1{%
+ \let\next\relax
+ \ifrvt@printnotes
+ \ifrvt@final
+ \def\next{\rvt@err{Can't print edit-mark* if 'final'}\@ehc}%
+ \else
+ \def\next{%
+ \begingroup
+ \small\fboxrule.4\p@\fboxsep1.5\p@
+ \textcolor{rvtgreen10}{\fbox{#1}}%
+ \endgroup
+ }%
+ \fi
+ \else
+ \ifhmode
+ \def\next{\unskip\unkern}%
+ \fi
+ \fi
+ \next
+}
+\robust@def*\rvt@edittext@b#1{%
+ \ifrvt@printnotes
+ \small\textcolor{rvtgreen10}{\fboxrule.4\p@\fboxsep1.5\p@\fbox{#1}}%
+ \else
+ \ifhmode\unskip\unkern\fi
+ \fi
+}
+\robust@def*\rvtpheromone{\cpt@testst{\rvt@edittext{$\clubsuit$}}}
+\robust@def*\rvtedit{\cpt@testst{\rvt@edittext{Edit}}}
+\robust@def*\rvtedited{\cpt@testst{\rvt@edittext{Edited}}}
+\robust@def*\rvtpauseedit{\cpt@testst{\rvt@edittext{Paused editing here}}}
+\robust@def*\rvtdiscuss{\cpt@testst{\rvt@edittext{Discuss}}}
+\robust@def*\rvttodiscuss{\cpt@testst{\rvt@edittext{To be discussed}}}
+\robust@def*\rvtaddtext{\cpt@testst{\rvt@edittext{Add text here}}}
+\robust@def*\rvtaddtextbyauthor#1{%
+ \cpt@testst{\rvt@edittext{Add text here:~\textcolor{blue}{#1}}}%
+}
+\robust@def*\rvtadddescription{%
+ \cpt@testst{\rvt@edittext{Add description here}}%
+}
+\robust@def*\rvtadddescriptionbyauthor#1{%
+ \cpt@testst{\rvt@edittext{Add description
+ here:~\textcolor{blue}{#1}}}%
+}
+\newletcs\rvtaddbyauthor\rvtadddescriptionbyauthor
+\robust@def*\rvttoaddtext{%
+ \cpt@testst{\rvt@edittext{Text to be added here}}%
+}
+\robust@def*\rvteditbyauthor#1{%
+ \cpt@testst{\rvt@edittext{Edit:~\textcolor{blue}{#1}}}%
+}
+\robust@def*\rvtflag#1{%
+ \ifrvt@printnotes
+ \endgraf
+ \makebox[\z@][l]{%
+ \kern-\marginparwidth\small\color{purple}%
+ \fboxrule.4pt\fboxsep1pt\relax
+ \fbox{$\clubsuit$}\enskip#1%
+ }%
+ \fi
+}
+
+\endinput