Difference between revisions of "Changes Evolution"

From Wiki
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 - 2019 Axel Kielhorn
+
% 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
  
% Enable to print changes, disable for final document
+
\enablemode[change]
%\enablemode[change]
+
\setuphyphenation[method=expanded]
 +
 
 +
\language[de]
 +
\mainlanguage[de]
 +
\setbreakpoints[compound]
  
 
\setuppapersize [A4][A4]
 
\setuppapersize [A4][A4]
\setuplayout    [width=middle,  backspace=1.5in, cutspace=1.5in,
+
\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}}}
    \doifmode{change}{\inmargin{\tx #1}{\ChcC #2\par}}}
+
\def\ChangeD#1#2{\changed{#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
 
% Inline change
\def\Changer#1{{\doifmode{change}{\ChrC #1}}} % removed
+
\def\Changer#1{{\doifmode{change}{\Chrc{#1}}}}             % removed
\def\Changea#1{{\doifmode{change}{\ChaC}#1}} % added
+
\def\Changea#1{{\doifmodeelse{change}{\Chac{#1}}{#1}}}     % added
\def\Changec#1#2{{\doifmode{change}{\ChrC #1\ChaC}#2}} % changed
+
\def\Changec#1#2{{\doifmodeelse{change}{\Chrc{#1}\Chac{#2}}{#2}}} % changed
  
% Paragraph added
+
\defineblock [ChangePR]
\definestartstop[ChangePA][
+
\defineblock [ChangePA]
  before={\doifmode{change}{\startsidebar[rulecolor=ChaC]}},
+
 
   after={\doifmode{change}{\stopsidebar}},
+
\setupblock [ChangePR]
  ]
+
[before={\startsidebar[rulecolor=ChrC]},
% Paragraph removed
+
   after={\blank[overlay]\stopsidebar}]
\definestartstop[ChangePR][
+
 
  before={\doifmode{change}{\startsidebar[rulecolor=ChrC]}},
+
\setupblock [ChangePA]
   after={\doifmode{change}{\stopsidebar}},
+
[before={\startsidebar[rulecolor=ChaC]},
  ]
+
   after={\blank[overlay]\stopsidebar}]
 +
 
 +
\doifelsemode {change} {
 +
  \keepblocks[ChangePR,ChangePA]
 +
} {
 +
  \keepblocks[ChangePA]
 +
  \setupblock
 +
    [ChangePA]
 +
    [before={},
 +
      after={}]
 +
}
 
    
 
    
 
\starttext
 
\starttext
  
This is the initial document without version number.
+
\beginChangePR
 +
\ChangeV{V. 1.0}{Fertig!}
 +
\ChangeV{V. 2.0}{Langer Text von DEK entfernt.}
 +
\input knuth
 +
\endChangePR
  
\ChangeV{V. 1.0}{First release}
+
\ChangeD{2018-12-22}{Fertig!}
This is the first released version.
 
  
\startChangePA
+
\beginChangePA
\ChangeV{V. 2.0}{Source added}
+
\ChangeD{2018-12-23}{Letzter Fehler beseitigt.}
 +
\ChangeV{V. 2.0}{Langer Text von DEK als Seitenfüller}
 
\input knuth
 
\input knuth
\stopChangePA
+
\endChangePA
  
\ChangeD{2019-10-10}{ConTeXt Wiki release}
+
\ChangeD{2018-12-23}{Allerletzter Fehler beseitigt.}
\startChangePA
 
This paragraph was added or the Wiki release.
 
\stopChangePA
 
  
\ChangeD{2019-10-11}{Translation improved}
+
In diesem Satz war ein \Changec{Fähler}{Fehler}.
  
Beware of \Changec{tyops}{typos}.
+
\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
  
\startChangePA
+
\beginChangePR
\ChangeV{V. 2.0}{Global colo[u]rs}
+
\ChangeV{V. 3.0}{Syntax veraltet}
There are now three colo[u]rs \type{ChrC} and \type{ChaC} to
+
\ChangeV{V. 2.0}{Neue Befehle \type{ChangeA}, \type{ChangeR}, \type{Changea}, \type{Changer} und \type{Changec}}
mark removed and added text and \type{ChcC} for the comments.
+
Mit den Befehlen \type{\ChangeA} und \type{\ChangeR} werden hinzugefügte bzw. gelöschte Absätze gekennzeichnet.
\stopChangePA
+
\endChangePR
  
\startChangePR
+
\beginChangePA
\ChangeV{V. 3.0}{Obsolete syntax}
+
\ChangeV{V. 3.0}{Syntax veraltet}
The commands \type{\ChangePA} (Paragraph added) and
+
Die neuen Befehle \type{\beginChangePA}/ \type{\endChangePA} (Paragraph added) und \type{\beginChangePR}/ \type{\endChangePR} (Paragraph removed) werden zum hervorheben von absatzweisen Änderungen benutzt.
\type{\ChangePR}(Paragraph removed) mark changed paragraphs.
+
Die Information über die Änderung (Version und Kurzbeschreibung) wird über einen \type{\ChangeV} oder \type{\ChangeD} hinzugefügt.
\stopChangePR
+
\endChangePA
  
\startChangePA
+
\beginChangePA
Added paragraphs are marked by \type{\startChangePA} and \type{\stopChangePA}, removed paragraphs by \type{\startChangePR} and \type{\stopChangePR}
+
\ChangeV{V. 2.0}{Befehle für Änderungen im Text}
\stopChangePA
+
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.
Information about the change must be added with \type{ChangeV} or \type{ChangeD} commands.
+
\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 version nummer:
+
By Version Number:
  
 
\placechangev
 
\placechangev
  
 
\blank[big]
 
\blank[big]
By date:
+
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

< Sample documents

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