summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/xreview/xreview.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/xreview/xreview.sty')
-rw-r--r--macros/latex/contrib/xreview/xreview.sty135
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