diff options
Diffstat (limited to 'macros/latex/contrib/xreview/xreview.sty')
-rw-r--r-- | macros/latex/contrib/xreview/xreview.sty | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/macros/latex/contrib/xreview/xreview.sty b/macros/latex/contrib/xreview/xreview.sty new file mode 100644 index 0000000000..a6d2501eed --- /dev/null +++ b/macros/latex/contrib/xreview/xreview.sty @@ -0,0 +1,135 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{xreview}[2024/08/29 Reviewing LaTeX documents made easy] + +\RequirePackage{xcolor} +\RequirePackage[normalem]{ulem} +\RequirePackage{etoolbox} +\RequirePackage{environ} +\RequirePackage{letltxmacro} +\RequirePackage{todonotes} +\RequirePackage{soul} +\RequirePackage{pifont} +\RequirePackage{xparse} +\RequirePackage{amsmath} + +%%%% Equation numbering +\newcounter{removedeqcounter} +\setcounter{removedeqcounter}{0} + +%%%% Comment numbering +\newcounter{commentcounter} +\setcounter{commentcounter}{0} + +%%%% Define colours and prefixes +\newcommand{\addedcolor}{blue} +\newcommand{\removedcolor}{red} +\newcommand{\removedeqprefix}{R} +\newcommand{\commentcolor}{yellow} +\newcommand{\resolvedcommentcolor}{green} +\newcommand{\commentprefix}{C} + +%%%% Necessary for comments to work in twocolumn-type documents +\setlength{\marginparwidth}{2cm} + +%%%% Reviewing commands +\newtoggle{annotated} +\toggletrue{annotated} % Show changes by default + +\newcommand{\showchanges}{\toggletrue{annotated}} +\newcommand{\showclean}{\togglefalse{annotated}} + +\newtoggle{commented} +\toggletrue{commented} % Show comments by default + +\newcommand{\showcomments}{\toggletrue{commented}} +\newcommand{\hidecomments}{\togglefalse{commented}} + +%%%% Text coloring and hiding +\newcommand{\colortext}[2]{{\leavevmode\color{#1}{#2}}} +\newcommand{\safesout}[1]{\ifmmode\text{\sout{\ensuremath{#1}}}\else\sout{#1}\fi} +\newcommand{\hidefromclean}[1]{\iftoggle{annotated}{#1}{}} + +\newcommand{\added}[1]{\iftoggle{annotated}{\colortext{\addedcolor}{#1}}{{#1}}} + +\newcommand{\removed}[1]{\hidefromclean{% +\begingroup% +\let\oldcite\cite% +\renewcommand{\cite}[1]{\mbox{\oldcite{##1}}}% +\colortext{\removedcolor}{\safesout{#1}}% +\endgroup}} + +\newcommand{\changed}[2]{\removed{#1}\iftoggle{annotated}{ }{}\added{#2}} + +%%%% Equation coloring and hiding +\NewEnviron{remequation}{\hidefromclean{% +\addtocounter{equation}{-1}% +\refstepcounter{removedeqcounter}% +\renewcommand{\theequation}{\textcolor{\removedcolor}{\removedeqprefix\arabic{removedeqcounter}}}% +\let\oldnonumber\nonumber% +\renewcommand{\nonumber}{\addtocounter{equation}{1}\addtocounter{removedeqcounter}{-1}\oldnonumber}% +\renewcommand{\notag}{\nonumber}% +\begin{equation}% +\color{\removedcolor}% +\safesout{\BODY}% +\end{equation}}} + +\NewEnviron{remequation*}{\hidefromclean{% +\begin{equation*}% +\color{\removedcolor}% +\safesout{\BODY}% +\end{equation*}}} + +\NewEnviron{addequation}{% +\begin{equation}% +\added{\BODY}% +\end{equation}} + +\NewEnviron{addequation*}{% +\begin{equation*}% +\added{\BODY}% +\end{equation*}} + +\newcommand{\removedeqline}[1]{\hidefromclean{% +\let\oldnonumber\nonumber% +\renewcommand{\nonumber}{\global\tag@false\addtocounter{removedeqcounter}{-1}}% +\renewcommand{\notag}{\nonumber}% +\makeatletter% +\newcommand{\remlabel}{% +\refstepcounter{removedeqcounter}% +\global\tag@true% +\oldnonumber% +\gdef\df@tag{\maketag@@@{\textcolor{\removedcolor}{(\removedeqprefix\arabic{removedeqcounter})}}\def\@currentlabel{\textcolor{\removedcolor}{\removedeqprefix\arabic{removedeqcounter}}}}} +\makeatother +\remlabel% +\color{\removedcolor}% +\makeatletter\let\default@color\current@color\makeatother% +\safesout{#1}% +}} + +\newcommand{\addedeqline}[1]{% +\iftoggle{annotated}{\color{\addedcolor}{#1}}% +{{#1}}% +} + +\newcommand{\remaligntab}{\hidefromclean{&}} +\newcommand{\remnewline}{\hidefromclean{\\}} + +%%%% Commenting +\DeclareRobustCommand{\resolvedhl}[1]{{\sethlcolor{green}\hl{#1}}} + +\newcommand{\comment}[3][]{% +\stepcounter{commentcounter}% +\ifboolexpr{togl{annotated} and togl{commented}}{% +\hl{#2}\todo[prepend, color=\commentcolor ,caption=\textbf{\commentprefix\arabic{commentcounter}}, linecolor=black, #1]{#3}}% +{#2}} + +\newcommand{\resolvedcomment}[3][]{% +\stepcounter{commentcounter}% +\ifboolexpr{togl{annotated} and togl{commented}}{% +\resolvedhl{#2}\todo[prepend, color=\resolvedcommentcolor ,caption=\textbf{\ding{52} \commentprefix\arabic{commentcounter}}, linecolor=black, #1]{#3}}% +{#2}} + +\NewDocumentCommand{\authoredcomments}{O{} O{} m}{% + \expandafter\newcommand\csname #3comment\endcsname{\comment[author=#3, #1]}% + \expandafter\newcommand\csname resolved#3comment\endcsname{\resolvedcomment[author=#3, #2]}% +}
\ No newline at end of file |