Difference between revisions of "Changes"

From Wiki
Jump to navigation Jump to search
m (Added link to downloadable .tex file, changed link to .pdf file slightly.)
 
(6 intermediate revisions by 5 users not shown)
Line 1: Line 1:
At my work, we have to add some sort of revision history to certain documents.
+
< [[Sample documents]]
 +
 
 +
At my work, we have to add some sort of revision history to certain documents. This is also an example for the use of \getparameters (see [[Commands with KeyVal arguments]]).
  
 
A downloadable version of the macro is available [[media:Changes.tex|here]], and a PDF example of the output [[media:Changes.pdf|here]].
 
A downloadable version of the macro is available [[media:Changes.tex|here]], and a PDF example of the output [[media:Changes.pdf|here]].
  
<small><pre>
+
Note that background=screen is depricated and should be replaced by something like background=color,backgroundcolor=gray.
 +
 
 +
<texcode>
 
\useregime[il1]
 
\useregime[il1]
 
\enableregime[il1]
 
\enableregime[il1]
Line 20: Line 24:
 
\def\BigTitle{\centerline{\framed[width=\BigWidth,offset=2mm,
 
\def\BigTitle{\centerline{\framed[width=\BigWidth,offset=2mm,
 
       background=screen]{\bfb\setupinterlinespace\cbox{Title}}}}
 
       background=screen]{\bfb\setupinterlinespace\cbox{Title}}}}
 +
\def\Auteur{Peter}
  
 
\def\startChanges{\hbox to \hsize\bgroup\hss\SetTableToWidth{\BigWidth}%
 
\def\startChanges{\hbox to \hsize\bgroup\hss\SetTableToWidth{\BigWidth}%
 
   \starttable[s1 | c | c | p(95mm) | p(17mm) | p(37mm) |]
 
   \starttable[s1 | c | c | p(95mm) | p(17mm) | p(37mm) |]
   \HL\BL[5]\AR\VL Rév.\VL Date\VL Origine de la mise à jour\VL§ modifié\VL
+
   \HL\BL[5]\AR\VL Rv.\VL Date\VL Origine de la mise à jour\VL modifié\VL
 
   Auteur\VL\AR\HL}
 
   Auteur\VL\AR\HL}
 
\def\stopChanges{\stoptable\hss\egroup}\newcount\RevC
 
\def\stopChanges{\stoptable\hss\egroup}\newcount\RevC
\def\Changes#1#2#3#4{\ifnum\RevC=0\BigTitle\vskip0.5ex\Vfil\startChanges\fi
+
\def\Changes[#1]{%
   \global\advance\RevC by 1\VL\the\RevC\VL#1\VL#2\VL\In[#3,\relax]\VL
+
  \getgparameters[Changes][Date=,Labels=,#1]% Auteur, Modif, Labels, Date
   #4\VL\AR\HL}
+
  \doifundefined{ChangesAuteur}{\gdef\ChangesAuteur{\Auteur}}%
 +
  \doifundefined{ChangesModif}{\gdef\ChangesModif{First version}}%
 +
  \ifnum\RevC=0 \BigTitle \vskip0.5ex \Vfil \startChanges \fi
 +
   \global\advance\RevC by 1 \VL \the\RevC \VL \ChangesDate \VL
 +
  \ChangesModif \VL \expandafter\In\expandafter[\ChangesLabels,\relax]\VL
 +
   \ChangesAuteur \VL\AR\HL}
 
\def\Destinataires#1{\stopChanges\Vfil
 
\def\Destinataires#1{\stopChanges\Vfil
 
   \def\temp{#1}\ifx\temp\empty\else\noindenting Destinataires:\crlf#1\blank\fi
 
   \def\temp{#1}\ifx\temp\empty\else\noindenting Destinataires:\crlf#1\blank\fi
Line 38: Line 48:
  
 
\starttext
 
\starttext
\Changes{1/2/2004}{First version}{}{Peter}
+
\Changes[Date=1/2/2004]
\Changes{3/4/2004}{Some modifications}{sec:S1,sec:S2}{Peter Münster}
+
\Changes[Date=3/4/2004,Modif=Some modifications,Labels={sec:S1,sec:S2},
\Changes{5/6/2004}{Some other modifications}{sec:S2}{Peter}
+
  Auteur=Jérôme]
 +
\Changes[Date=5/6/2004,Modif=Some other modifications,Labels=sec:S2]
 
%
 
%
 
\Destinataires{Peter, Olivier}
 
\Destinataires{Peter, Olivier}
Line 52: Line 63:
 
some text
 
some text
 
\stoptext
 
\stoptext
</pre></small>
+
</texcode>
 +
 
 +
[[Category:Sample documents]]

Latest revision as of 09:38, 25 May 2015

< Sample documents

At my work, we have to add some sort of revision history to certain documents. This is also an example for the use of \getparameters (see Commands with KeyVal arguments).

A downloadable version of the macro is available here, and a PDF example of the output here.

Note that background=screen is depricated and should be replaced by something like background=color,backgroundcolor=gray.

\useregime[il1]
\enableregime[il1]
\useencoding[ffr]
\definehspace[fr][:][.16667em]
\definehspace[fr][;][.16667em]
\definehspace[fr][!][.16667em]
\definehspace[fr][?][.16667em]
\mainlanguage[fr]
\newdimen\BigWidth \BigWidth=18cm
\setupscreens[screen=0.85]
\setupcolors[state=start]
\setupheadertexts[Rév.: \the\RevC]
\def\Vfil{\vskip0pt plus3fil\relax}
\def\In[#1,#2]{\ifx#1\empty\else\in[#1]\fi\if\relax#2\else, \In[#2]\fi}
\def\BigTitle{\centerline{\framed[width=\BigWidth,offset=2mm,
      background=screen]{\bfb\setupinterlinespace\cbox{Title}}}}
\def\Auteur{Peter}

\def\startChanges{\hbox to \hsize\bgroup\hss\SetTableToWidth{\BigWidth}%
  \starttable[s1 | c | c | p(95mm) | p(17mm) | p(37mm) |]
  \HL\BL[5]\AR\VL Rv.\VL Date\VL Origine de la mise à jour\VL modifié\VL
  Auteur\VL\AR\HL}
\def\stopChanges{\stoptable\hss\egroup}\newcount\RevC
\def\Changes[#1]{%
  \getgparameters[Changes][Date=,Labels=,#1]% Auteur, Modif, Labels, Date
  \doifundefined{ChangesAuteur}{\gdef\ChangesAuteur{\Auteur}}%
  \doifundefined{ChangesModif}{\gdef\ChangesModif{First version}}%
  \ifnum\RevC=0 \BigTitle \vskip0.5ex \Vfil \startChanges \fi
  \global\advance\RevC by 1 \VL \the\RevC \VL \ChangesDate \VL
  \ChangesModif \VL \expandafter\In\expandafter[\ChangesLabels,\relax]\VL
  \ChangesAuteur \VL\AR\HL}
\def\Destinataires#1{\stopChanges\Vfil
  \def\temp{#1}\ifx\temp\empty\else\noindenting Destinataires:\crlf#1\blank\fi
\centerline{\SetTableToWidth{\BigWidth}%
\bf\starttable[| c | c | c |]
\HL\BL[3]\AR\VL Approbateur\VL Date\VL Visa\VL\AR\HL
\VL\vbox to 2cm{}\VL\VL\VL\AR\HL
\stoptable}\par\page\completecontent}

\starttext
\Changes[Date=1/2/2004]
\Changes[Date=3/4/2004,Modif=Some modifications,Labels={sec:S1,sec:S2},
  Auteur=Jérôme]
\Changes[Date=5/6/2004,Modif=Some other modifications,Labels=sec:S2]
%
\Destinataires{Peter, Olivier}

\section[sec:S1]{A section}
some text
\subsection{Bla}
\subsection{Bla}

\section[sec:S2]{Another section}
some text
\stoptext