Difference between revisions of "Changes"

From Wiki
Jump to navigation Jump to search
m (Added linkback)
(now with \getparameters)
Line 1: Line 1:
 
< [[Sample documents]]
 
< [[Sample documents]]
  
At my work, we have to add some sort of revision history to certain 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 also [[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]].
Line 17: Line 17:
 
\setupscreens[screen=0.85]
 
\setupscreens[screen=0.85]
 
\setupcolors[state=start]
 
\setupcolors[state=start]
\setupheadertexts[Rév.: \the\RevC]
+
\setupheadertexts[Rv.: \the\RevC]
 
\def\Vfil{\vskip0pt plus3fil\relax}
 
\def\Vfil{\vskip0pt plus3fil\relax}
 
\def\In[#1,#2]{\ifx#1\empty\else\in[#1]\fi\if\relax#2\else, \In[#2]\fi}
 
\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,
 
\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 40: Line 46:
  
 
\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=Jrme]
 +
\Changes[Date=5/6/2004,Modif=Some other modifications,Labels=sec:S2]
 
%
 
%
 
\Destinataires{Peter, Olivier}
 
\Destinataires{Peter, Olivier}

Revision as of 13:55, 10 August 2004

< 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 also Commands with KeyVal arguments).

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

\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[Rv.: \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=Jrme]
\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