diff options
author | Karl Berry <karl@freefriends.org> | 2011-12-21 23:43:42 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-12-21 23:43:42 +0000 |
commit | 96d75501059aaba75f35e407391703be9cf3b21f (patch) | |
tree | 5bc7357d078ee23aab948474cc9edfc1fd043589 /Master/texmf-dist/tex/latex/ltxtools/ltxtools-review.sty | |
parent | e9250f00ffb6069748594707c033a97104a3c7b9 (diff) |
ltxtools 0.0.1a (19dec11)
git-svn-id: svn://tug.org/texlive/trunk@24897 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/ltxtools/ltxtools-review.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/ltxtools/ltxtools-review.sty | 1043 |
1 files changed, 1043 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/ltxtools/ltxtools-review.sty b/Master/texmf-dist/tex/latex/ltxtools/ltxtools-review.sty new file mode 100644 index 00000000000..9f944ef33d5 --- /dev/null +++ b/Master/texmf-dist/tex/latex/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 |