summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/svn-multi/svn-multi.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/svn-multi/svn-multi.dtx')
-rw-r--r--Master/texmf-dist/source/latex/svn-multi/svn-multi.dtx130
1 files changed, 108 insertions, 22 deletions
diff --git a/Master/texmf-dist/source/latex/svn-multi/svn-multi.dtx b/Master/texmf-dist/source/latex/svn-multi/svn-multi.dtx
index 54f85f7700e..1fdab21e102 100644
--- a/Master/texmf-dist/source/latex/svn-multi/svn-multi.dtx
+++ b/Master/texmf-dist/source/latex/svn-multi/svn-multi.dtx
@@ -27,12 +27,12 @@
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{svn-multi}
%<*package|driver>
- [2008/12/03 v1.3b SVN Keywords for multi-file LaTeX documents]
+ [2009/02/27 v1.4 SVN Keywords for multi-file LaTeX documents]
%</package|driver>
%<wrapper>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<wrapper>\ProvidesPackage{svnkw}
-%<wrapper> [2007/07/10 v1.3a Backward compatibility wrapper for svn-multi]
-%<wrapper>\RequirePackage{svn-multi}[2007/07/10]
+%<wrapper> [2009/02/27 v1.4 Backward compatibility wrapper for svn-multi]
+%<wrapper>\RequirePackage{svn-multi}[2009/02/27]
%
%<*driver>
\documentclass{ltxdoc}
@@ -95,7 +95,7 @@
%<*package>
% \fi
%
-% \CheckSum{564}
+% \CheckSum{617}
%
% {\makeatother
% \CharacterTable
@@ -130,6 +130,8 @@
% \changes{v1.3b}{2008/12/03}{Changed the way catcodes are modified to be compatible
% with the french option of the babel package or other packages which modify the
% list of special characters.}
+% \changes{v1.4}{2009/02/27}{Added support for timezones with non-zero minute
+% part, \eg +0530.}
%
% \GetFileInfo{svn-multi.sty}
%
@@ -166,7 +168,7 @@
% maintainer suggested a more descriptive name and put the package in the
% |svn-multi|\footnote{CTAN:
% \url{http://www.ctan.org/tex-archive/macros/latex/contrib/svn-multi/}}
-% directory. In this version the style file is renamed to |svn-multi|, but a
+% directory. Therefore the style file got renamed to |svn-multi|, but a
% |svnkw| dummy style file is still provided for backward compatibility.
%
% \section{Introduction}
@@ -340,8 +342,8 @@
% \DescribeMacro{\svnfilemonth}
% \DescribeMacro{\svnfileday}
% \DescribeMacro{\svnfilehour}
-% Whenever the date information is read, \ie by \cs{svnidlong}, \cs{svnid},
-% |\svnkwsave{Date}| or |\svnkwsave{LastChangedDate}|, the following macros are
+% Whenever the date information is read, \ie by |\svnkwsave{LastChangedDate}|
+% |\svnkwsave{Date}|, \cs{svnidlong} or \cs{svnid}, the following macros are
% set to the appropriate date parts for the current file (the |\svnfile...|
% versions) and for the whole document.
%
@@ -349,6 +351,8 @@
% \DescribeMacro{\svnfileminute}
% \DescribeMacro{\svnfilesecond}
% \DescribeMacro{\svnfiletimezone}
+% \DescribeMacro{\svnfiletimezonehour}
+% \DescribeMacro{\svnfiletimezoneminute}
% Please note that the hour and timezone are dependend on the keyword which
% defines the date informations. The hour will be in UTC aka Zulu-time, \ie
% timezone +0000, when the date comes from the |Id| keyword.
@@ -366,17 +370,37 @@
% \DescribeMacro{\svnminute}
% \DescribeMacro{\svnsecond}
% \DescribeMacro{\svntimezone}
-% Please also note that the timezone macros only hold the sign and the first
-% two digits of the timezone. This is needed to define \cs{svnpdfdate}. The last
-% two digits are always `00' anyway. If you need full ISO timezone write
-% |\svnfiletimezone00| or |\svntimezone00|.
+% \DescribeMacro{\svntimezonehour}
+% \DescribeMacro{\svntimezoneminute}
+% Starting with v1.4 of |svn-multi| the timezone macros return the full
+% timezone, \ie sign, hour and minute part, \eg |+0100|, not only the sign and
+% hour. The new macros % |\svntimezonehour|/|\svnfiletimezonehour| and
+% |\svntimezoneminute|/\linebreak[3]|\svnfiletimezoneminute| can be used to access only the
+% hour including sign or the minute part, respectively.
%
-% \vspace{7ex}
+% Older versions of this manual assumed the minute part as always |00| and
+% suggested to add it manually if needed: |\svnfiletimezone00| or |\svntimezone00|.
+% In order not to ``break'' documents which followed this suggestion this two
+% macros now remove a trailing |00| if present.
+% However, this can be a problem when they are used inside an argument of
+% another macro. One solution for this is to redefine them without the |00|
+% removal part:\\
+% \begingroup\small
+% |\renewcommand{\svntimezone}{\svntimezonehour\svntimezoneminute}|\\
+% |\renewcommand{\svnfiletimezone}{\svnfiletimezonehour\svnfiletimezoneminute}|
+% \endgroup\par
+% To revert to the old (pre-v1.4) definition use:\\
+% \begingroup\small
+% |\renewcommand{\svntimezone}{\svntimezonehour}|\\
+% |\renewcommand{\svnfiletimezone}{\svnfiletimezonehour}|
+% \endgroup
+% \vspace{1ex}
%
% \DescribeMacro{\svnpdfdate}
% Returns the last changed date of the whole document in a format needed for
-% |\pdfinfo|. Can be used like this:
-% |\pdfinfo{ /CreationDate (D:\svnpdfdate) }|, to set the PDF creation date to
+% |\pdfinfo|. Can be used like this:\\
+% \hbox{}\hfill|\pdfinfo{ /CreationDate (D:\svnpdfdate) }|\hfill\hbox{}\\
+% to set the PDF creation date to
% the last changed date if you use |pdflatex| to compile your \LaTeX{} document.
%
% \subsection{Using full author names}
@@ -434,7 +458,21 @@
% Please note that you can't use |hyperref|s |\nolinkurl| because it won't
% expand \cs{svnkw}.
%
-%
+% \section{Further Reading}
+% The \textsf{svn-multi} package and its usage got discussed in the following
+% articles:
+%
+% \begin{itemize}
+% \item[{[1]}] Martin Scharrer, ``Version Control of LaTeX Documents with
+% svn-multi'', The Prac\TeX\ Journal, (3), 2007.
+% URL: \url{http://www.tug.org/pracjourn/2007-3/scharrer/}
+% \item[{[2]}] Mark Eli Kalderon, ``LaTeX and Subversion'',
+% The Prac\TeX\ Journal, (3), 2007.
+% URL: \url{http://www.tug.org/pracjourn/2007-3/kalderon-svnmulti/}
+% \item[{[3]}] Uwe Ziegenhagen , ``LaTeX Document Management with Subversion'',
+% The Prac\TeX\ Journal, (3), 2007.
+% URL: \url{http://www.tug.org/pracjourn/2007-3/ziegenhagen/}
+% \end{itemize}
%
% \StopEventually{}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -471,10 +509,45 @@
\def\svnhour{0} \def\svnfilehour{0} \def\@svn@hour{0}
\def\svnminute{0} \def\svnfileminute{0} \def\@svn@minute{0}
\def\svnsecond{0} \def\svnfilesecond{0} \def\@svn@second{0}
-\def\svntimezone{0} \def\svnfiletimezone{0} \def\@svn@timezone{0}
+\def\svntimezonehour{+00} \def\svnfiletimezonehour{+00} \def\@svn@timezonehour{+00}
+\def\svntimezoneminute{00} \def\svnfiletimezoneminute{00} \def\@svn@timezoneminute{00}
\def\svnmainurl{NOT SET}\def\svnmainfilename{NOT SET}
% \end{macrocode}
%
+% \subsection{Timezone macros}
+% \begin{macro}{\svnfiletimezone}
+% \begin{macro}{\svntimezone}
+% This macros return the global and local time zones. Since v1.4 the minute part
+% is returned as well and the macro removes manually added |00| after it to
+% support older documents.
+% \changes{v1.4}{2009/02/27}{Return now full timezone (hour + minute part).
+% Manually added 00 minutes are removed.}
+% \begin{macrocode}
+\def\svntimezone{\svntimezonehour\svntimezoneminute\svn@gobblezeros}
+\def\svnfiletimezone{\svnfiletimezonehour\svnfiletimezoneminute\svn@gobblezeros}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+
+% \begin{macro}{\svn@gobblezeros}
+% \begin{macro}{\svn@gobblezeros@}
+% This two cascaded macros remove a trailing |00| and are used by
+% |\svnfiletimezone| and |\svntimezone|.
+% \begin{macrocode}
+\def\svn@gobblezeros{%
+\futurelet\svn@nextchar\svn@gobblezeros@
+}
+\def\svn@gobblezeros@{%
+\let\@tempa=\relax
+\def\@tempb{0}%
+\ifx0\svn@nextchar
+\let\@tempa=\@gobbletwo
+\fi
+\@tempa
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
% \subsection{Id macros}
% \subsubsection{Normal Id}
@@ -539,7 +612,8 @@
\xdef\@svn@hour{\svnfilehour}%
\xdef\@svn@minute{\svnfileminute}%
\xdef\@svn@second{\svnfilesecond}%
-\xdef\@svn@timezone{\svnfiletimezone}%
+\xdef\@svn@timezonehour{\svnfiletimezonehour}%
+\xdef\@svn@timezoneminute{\svnfiletimezoneminute}%
\else\fi
\fi
}
@@ -863,7 +937,8 @@
\gdef\svnfilehour{#4}%
\gdef\svnfileminute{#5}%
\gdef\svnfilesecond{#6#7}%
-\gdef\svnfiletimezone{+00}% #8 always 'Z' for Zulu-time (UTC)
+\gdef\svnfiletimezonehour{+00}%
+\gdef\svnfiletimezoneminute{00}% #8 always 'Z' for Zulu-time (UTC)
}
% \end{macrocode}
% \end{macro}
@@ -873,14 +948,24 @@
% \begin{macrocode}
\def\@svn@scanlongdate#1{\expandafter\@svn@scanlongdate@#1\relax}
%
-\def\@svn@scanlongdate@#1-#2-#3 #4:#5:#6 #700 #8\relax{%
+\def\@svn@scanlongdate@#1-#2-#3 #4:#5:#6 #7 #8\relax{%
\gdef\svnfileyear{#1}%
\gdef\svnfilemonth{#2}%
\gdef\svnfileday{#3}%
\gdef\svnfilehour{#4}%
\gdef\svnfileminute{#5}%
\gdef\svnfilesecond{#6}%
-\gdef\svnfiletimezone{#7}%
+\@svn@parsetimezone#7\relax%
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\@svn@parsetimezone}
+% Scans timezone and splits hour and minute part.
+% \begin{macrocode}
+\def\@svn@parsetimezone#1#2#3#4#5\relax{%
+\gdef\svnfiletimezonehour{#1#2#3}%
+\gdef\svnfiletimezoneminute{#4#5}%
}
% \end{macrocode}
% \end{macro}
@@ -889,7 +974,7 @@
% Returns date in a format needed for |\pdfinfo|.
% \begin{macrocode}
\def\svnpdfdate{\svnyear\svnmonth\svnday
-\svnhour\svnminute\svnsecond\svntimezone'00'}
+\svnhour\svnminute\svnsecond\svntimezonehour'\svntimezoneminute'}
% \end{macrocode}
% \end{macro}
@@ -1034,7 +1119,8 @@
\noexpand\def\noexpand\svnhour{\@svn@hour}^^J%
\noexpand\def\noexpand\svnminute{\@svn@minute}^^J%
\noexpand\def\noexpand\svnsecond{\@svn@second}^^J%
- \noexpand\def\noexpand\svntimezone{\@svn@timezone}^^J%
+ \noexpand\def\noexpand\svntimezonehour{\@svn@timezonehour}^^J%
+ \noexpand\def\noexpand\svntimezoneminute{\@svn@timezoneminute}^^J%
}
\immediate\closeout\svn@write%
\fi\fi\fi\fi\fi%