Changes Evolution
Jump to navigation
Jump to search
Some documents need to evolve. Laws change, a client changes their mind. While working on a project I like to see the changes but when the project is finished I only need the final document.
The following document creates both documents from a single source. It offers two change histories, one by version number and one by date. In a normal document you would probably only use one.
% !TEX encoding = UTF-8 Unicode % Copyright 2018 - 2019 Axel Kielhorn % Lizenz: CC-BY-SA 4.0 Unported http://creativecommons.org/licenses/by-sa/4.0/deed.de % Enable to print changes, disable for final document %\enablemode[change] \setuppapersize [A4][A4] \setuplayout [width=middle, backspace=1.5in, cutspace=1.5in, height=middle, topspace=0.75in, bottomspace=0.75in] \setupbodyfont[11pt] % Colo[u]rs \definecolor[ChrC][red] \definecolor[ChaC][darkgreen] \definecolor[ChcC][blue] % Register for version \defineregister [changev] \setupregister [changev] [ indicator=no %% no letter style=sansbold, %% headings textstyle=slanted, %% entries pagestyle=bolditalic, %% page refs n=1, %% columns ] % Register for date \defineregister [changed] \setupregister [changed] [ indicator=no %% no letter style=sansbold, %% headings textstyle=slanted, %% entries pagestyle=bolditalic, %% page refs n=1, %% columns ] % Change marker and short version for register % by version number \def\ChangeV#1#2{\changev{#1+#2}% \doifmode{change}{\inmargin{\tx #1}{\ChcC #2\par}}} % by date \def\ChangeD#1#2{\changed{#1+#2}% \doifmode{change}{\inmargin{\tx #1}{\ChcC #2\par}}} % Inline change \def\Changer#1{{\doifmode{change}{\ChrC #1}}} % removed \def\Changea#1{{\doifmode{change}{\ChaC}#1}} % added \def\Changec#1#2{{\doifmode{change}{\ChrC #1\ChaC}#2}} % changed % Paragraph added \definestartstop[ChangePA][ before={\doifmode{change}{\startsidebar[rulecolor=ChaC]}}, after={\doifmode{change}{\stopsidebar}}, ] % Paragraph removed \definestartstop[ChangePR][ before={\doifmode{change}{\startsidebar[rulecolor=ChrC]}}, after={\doifmode{change}{\stopsidebar}}, ] \starttext This is the initial document without version number. \ChangeV{V. 1.0}{First release} This is the first released version. \startChangePA \ChangeV{V. 2.0}{Source added} \input knuth \stopChangePA \ChangeD{2019-10-10}{ConTeXt Wiki release} \startChangePA This paragraph was added or the Wiki release. \stopChangePA \ChangeD{2019-10-11}{Translation improved} Beware of \Changec{tyops}{typos}. \startChangePA \ChangeV{V. 2.0}{Global colo[u]rs} There are now three colo[u]rs \type{ChrC} and \type{ChaC} to mark removed and added text and \type{ChcC} for the comments. \stopChangePA \startChangePR \ChangeV{V. 3.0}{Obsolete syntax} The commands \type{\ChangePA} (Paragraph added) and \type{\ChangePR}(Paragraph removed) mark changed paragraphs. \stopChangePR \startChangePA Added paragraphs are marked by \type{\startChangePA} and \type{\stopChangePA}, removed paragraphs by \type{\startChangePR} and \type{\stopChangePR} \stopChangePA Information about the change must be added with \type{ChangeV} or \type{ChangeD} commands. \startsection[title={History}] By version nummer: \placechangev \blank[big] By date: \placechanged \stopsection \stoptext