Difference between revisions of "Changes Evolution"
Jump to navigation
Jump to search
(Some documents need to evolve, here is a simple way to track the changes.) |
(Fixed the removed paragraph, it wasn't removed when printing the final version.) |
||
Line 9: | Line 9: | ||
<texcode> | <texcode> | ||
+ | % !TEX TS-program = ConTeXt (LuaTeX 1.0.9) | ||
% !TEX encoding = UTF-8 Unicode | % !TEX encoding = UTF-8 Unicode | ||
− | % Copyright 2018 - | + | % Copyright 2018 - 2021 Axel Kielhorn |
% Lizenz: CC-BY-SA 4.0 Unported http://creativecommons.org/licenses/by-sa/4.0/deed.de | % Lizenz: CC-BY-SA 4.0 Unported http://creativecommons.org/licenses/by-sa/4.0/deed.de | ||
− | + | \enablemode[change] | |
− | + | \setuphyphenation[method=expanded] | |
+ | |||
+ | \language[de] | ||
+ | \mainlanguage[de] | ||
+ | \setbreakpoints[compound] | ||
\setuppapersize [A4][A4] | \setuppapersize [A4][A4] | ||
− | \setuplayout [width=middle, backspace= | + | \setuplayout [width=middle, backspace=1in, cutspace=1in, |
height=middle, topspace=0.75in, bottomspace=0.75in] | height=middle, topspace=0.75in, bottomspace=0.75in] | ||
Line 24: | Line 29: | ||
% Colo[u]rs | % Colo[u]rs | ||
+ | |||
\definecolor[ChrC][red] | \definecolor[ChrC][red] | ||
\definecolor[ChaC][darkgreen] | \definecolor[ChaC][darkgreen] | ||
\definecolor[ChcC][blue] | \definecolor[ChcC][blue] | ||
+ | |||
+ | % Befehle im Text | ||
+ | |||
+ | \def\Chrc{\ChrC} | ||
+ | \def\Chac{\ChaC} | ||
+ | |||
+ | % Alternative Hervorhebungen | ||
+ | |||
+ | \definetextbackground | ||
+ | [Highlight] | ||
+ | [frame=off, | ||
+ | background=color, | ||
+ | backgroundcolor=yellow] | ||
+ | |||
+ | \setupbar[overstrike][% | ||
+ | color=ChrC, % Farbe | ||
+ | rulethickness=0.2, % Liniendicke in pt | ||
+ | offset=.7] % Höhenverschiebung in ex | ||
+ | |||
+ | % \def\Chrc{\overstrike} | ||
+ | % \def\Chac{\Highlight} | ||
+ | |||
% Register for version | % Register for version | ||
Line 37: | Line 65: | ||
n=1, %% columns | n=1, %% columns | ||
] | ] | ||
+ | |||
% Register for date | % Register for date | ||
Line 50: | Line 79: | ||
% Change marker and short version for register | % Change marker and short version for register | ||
% by version number | % by version number | ||
− | \def\ChangeV#1#2{\changev{#1+#2} | + | \def\ChangeV#1#2{\changev{#1+#2}\doifmode{change}{\inmargin{\tx #1}{\ChcC #2\par}}} |
− | + | \def\ChangeD#1#2{\changed{#1+#2}\doifmode{change}{\inmargin{\tx #1}{\ChcC #2\par}}} | |
− | |||
− | \def\ChangeD#1#2{\changed{#1+#2} | ||
− | |||
% Inline change | % Inline change | ||
− | \def\Changer#1{{\doifmode{change}{\ | + | \def\Changer#1{{\doifmode{change}{\Chrc{#1}}}} % removed |
− | \def\Changea#1{{\ | + | \def\Changea#1{{\doifmodeelse{change}{\Chac{#1}}{#1}}} % added |
− | \def\Changec#1#2{{\ | + | \def\Changec#1#2{{\doifmodeelse{change}{\Chrc{#1}\Chac{#2}}{#2}}} % changed |
− | + | \defineblock [ChangePR] | |
− | \ | + | \defineblock [ChangePA] |
− | + | ||
− | after={\ | + | \setupblock [ChangePR] |
− | + | [before={\startsidebar[rulecolor=ChrC]}, | |
− | + | after={\blank[overlay]\stopsidebar}] | |
− | \ | + | |
− | + | \setupblock [ChangePA] | |
− | after={\ | + | [before={\startsidebar[rulecolor=ChaC]}, |
− | + | after={\blank[overlay]\stopsidebar}] | |
+ | |||
+ | \doifelsemode {change} { | ||
+ | \keepblocks[ChangePR,ChangePA] | ||
+ | } { | ||
+ | \keepblocks[ChangePA] | ||
+ | \setupblock | ||
+ | [ChangePA] | ||
+ | [before={}, | ||
+ | after={}] | ||
+ | } | ||
\starttext | \starttext | ||
− | + | \beginChangePR | |
+ | \ChangeV{V. 1.0}{Fertig!} | ||
+ | \ChangeV{V. 2.0}{Langer Text von DEK entfernt.} | ||
+ | \input knuth | ||
+ | \endChangePR | ||
− | \ | + | \ChangeD{2018-12-22}{Fertig!} |
− | |||
− | \ | + | \beginChangePA |
− | \ChangeV{V. 2.0}{ | + | \ChangeD{2018-12-23}{Letzter Fehler beseitigt.} |
+ | \ChangeV{V. 2.0}{Langer Text von DEK als Seitenfüller} | ||
\input knuth | \input knuth | ||
− | \ | + | \endChangePA |
− | \ChangeD{ | + | \ChangeD{2018-12-23}{Allerletzter Fehler beseitigt.} |
− | |||
− | |||
− | |||
− | \ | + | In diesem Satz war ein \Changec{Fähler}{Fehler}. |
− | + | \beginChangePA | |
+ | \ChangeV{V. 2.0}{Farben geändert} | ||
+ | Die Änderungskommentare werden jetzt in {\ChcC blau} ausgegeben, da {\ChrC rot} für gelöschte Texte und {\ChaC grün} für hinzugefügte Texte verwendet wird. | ||
+ | \endChangePA | ||
− | \ | + | \beginChangePR |
− | \ChangeV{V. 2.0}{ | + | \ChangeV{V. 3.0}{Syntax veraltet} |
− | + | \ChangeV{V. 2.0}{Neue Befehle \type{ChangeA}, \type{ChangeR}, \type{Changea}, \type{Changer} und \type{Changec}} | |
− | + | Mit den Befehlen \type{\ChangeA} und \type{\ChangeR} werden hinzugefügte bzw. gelöschte Absätze gekennzeichnet. | |
− | \ | + | \endChangePR |
− | \ | + | \beginChangePA |
− | \ChangeV{V. 3.0}{ | + | \ChangeV{V. 3.0}{Syntax veraltet} |
− | + | Die neuen Befehle \type{\beginChangePA}/ \type{\endChangePA} (Paragraph added) und \type{\beginChangePR}/ \type{\endChangePR} (Paragraph removed) werden zum hervorheben von absatzweisen Änderungen benutzt. | |
− | \type{\ | + | Die Information über die Änderung (Version und Kurzbeschreibung) wird über einen \type{\ChangeV} oder \type{\ChangeD} hinzugefügt. |
− | \ | + | \endChangePA |
− | \ | + | \beginChangePA |
− | + | \ChangeV{V. 2.0}{Befehle für Änderungen im Text} | |
− | \ | + | Mit den Befehlen \type{\Changea}, \type{\Changer} und \type{\Changec} werden hinzugefügte, gelöschte oder geänderte Satzteile gekennzeichnet. Der Befehl \type{\Changec} hat zwei Argumente: alter Text und neuer Text. |
− | + | \endChangePA | |
+ | |||
+ | \beginChangePA | ||
+ | \ChangeV{V. 3.0}{Absatz hinzugefügt mit Start/Stopp} | ||
+ | Absatz hinzugefügt | ||
+ | \endChangePA | ||
+ | |||
+ | \beginChangePR | ||
+ | \ChangeV{V. 3.0}{Absatz gelöscht mit Start/Stopp} | ||
+ | Abstaz entfernt | ||
+ | \endChangePR | ||
+ | |||
+ | Ende | ||
\startsection[title={History}] | \startsection[title={History}] | ||
− | By | + | By Version Number: |
\placechangev | \placechangev | ||
\blank[big] | \blank[big] | ||
− | By | + | By Date: |
\placechanged | \placechanged | ||
\stopsection | \stopsection | ||
+ | |||
\stoptext | \stoptext | ||
</texcode> | </texcode> | ||
[[Category:Sample documents]] | [[Category:Sample documents]] |
Latest revision as of 09:16, 6 February 2021
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 TS-program = ConTeXt (LuaTeX 1.0.9) % !TEX encoding = UTF-8 Unicode % Copyright 2018 - 2021 Axel Kielhorn % Lizenz: CC-BY-SA 4.0 Unported http://creativecommons.org/licenses/by-sa/4.0/deed.de \enablemode[change] \setuphyphenation[method=expanded] \language[de] \mainlanguage[de] \setbreakpoints[compound] \setuppapersize [A4][A4] \setuplayout [width=middle, backspace=1in, cutspace=1in, height=middle, topspace=0.75in, bottomspace=0.75in] \setupbodyfont[11pt] % Colo[u]rs \definecolor[ChrC][red] \definecolor[ChaC][darkgreen] \definecolor[ChcC][blue] % Befehle im Text \def\Chrc{\ChrC} \def\Chac{\ChaC} % Alternative Hervorhebungen \definetextbackground [Highlight] [frame=off, background=color, backgroundcolor=yellow] \setupbar[overstrike][% color=ChrC, % Farbe rulethickness=0.2, % Liniendicke in pt offset=.7] % Höhenverschiebung in ex % \def\Chrc{\overstrike} % \def\Chac{\Highlight} % 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}}} \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{{\doifmodeelse{change}{\Chac{#1}}{#1}}} % added \def\Changec#1#2{{\doifmodeelse{change}{\Chrc{#1}\Chac{#2}}{#2}}} % changed \defineblock [ChangePR] \defineblock [ChangePA] \setupblock [ChangePR] [before={\startsidebar[rulecolor=ChrC]}, after={\blank[overlay]\stopsidebar}] \setupblock [ChangePA] [before={\startsidebar[rulecolor=ChaC]}, after={\blank[overlay]\stopsidebar}] \doifelsemode {change} { \keepblocks[ChangePR,ChangePA] } { \keepblocks[ChangePA] \setupblock [ChangePA] [before={}, after={}] } \starttext \beginChangePR \ChangeV{V. 1.0}{Fertig!} \ChangeV{V. 2.0}{Langer Text von DEK entfernt.} \input knuth \endChangePR \ChangeD{2018-12-22}{Fertig!} \beginChangePA \ChangeD{2018-12-23}{Letzter Fehler beseitigt.} \ChangeV{V. 2.0}{Langer Text von DEK als Seitenfüller} \input knuth \endChangePA \ChangeD{2018-12-23}{Allerletzter Fehler beseitigt.} In diesem Satz war ein \Changec{Fähler}{Fehler}. \beginChangePA \ChangeV{V. 2.0}{Farben geändert} Die Änderungskommentare werden jetzt in {\ChcC blau} ausgegeben, da {\ChrC rot} für gelöschte Texte und {\ChaC grün} für hinzugefügte Texte verwendet wird. \endChangePA \beginChangePR \ChangeV{V. 3.0}{Syntax veraltet} \ChangeV{V. 2.0}{Neue Befehle \type{ChangeA}, \type{ChangeR}, \type{Changea}, \type{Changer} und \type{Changec}} Mit den Befehlen \type{\ChangeA} und \type{\ChangeR} werden hinzugefügte bzw. gelöschte Absätze gekennzeichnet. \endChangePR \beginChangePA \ChangeV{V. 3.0}{Syntax veraltet} Die neuen Befehle \type{\beginChangePA}/ \type{\endChangePA} (Paragraph added) und \type{\beginChangePR}/ \type{\endChangePR} (Paragraph removed) werden zum hervorheben von absatzweisen Änderungen benutzt. Die Information über die Änderung (Version und Kurzbeschreibung) wird über einen \type{\ChangeV} oder \type{\ChangeD} hinzugefügt. \endChangePA \beginChangePA \ChangeV{V. 2.0}{Befehle für Änderungen im Text} Mit den Befehlen \type{\Changea}, \type{\Changer} und \type{\Changec} werden hinzugefügte, gelöschte oder geänderte Satzteile gekennzeichnet. Der Befehl \type{\Changec} hat zwei Argumente: alter Text und neuer Text. \endChangePA \beginChangePA \ChangeV{V. 3.0}{Absatz hinzugefügt mit Start/Stopp} Absatz hinzugefügt \endChangePA \beginChangePR \ChangeV{V. 3.0}{Absatz gelöscht mit Start/Stopp} Abstaz entfernt \endChangePR Ende \startsection[title={History}] By Version Number: \placechangev \blank[big] By Date: \placechanged \stopsection \stoptext