summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/svn-multi/svnkw.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/svn-multi/svnkw.dtx')
-rw-r--r--Master/texmf-dist/source/latex/svn-multi/svnkw.dtx556
1 files changed, 0 insertions, 556 deletions
diff --git a/Master/texmf-dist/source/latex/svn-multi/svnkw.dtx b/Master/texmf-dist/source/latex/svn-multi/svnkw.dtx
deleted file mode 100644
index bd416456437..00000000000
--- a/Master/texmf-dist/source/latex/svn-multi/svnkw.dtx
+++ /dev/null
@@ -1,556 +0,0 @@
-% \iffalse meta-comment
-%
-% Copyright (C) 2006 by Martin Scharrer <martin@scharrer-online.de>
-% -----------------------------------------------------------------
-%
-% This file may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.2
-% of this license or (at your option) any later version.
-% The latest version of this license is in:
-%
-% http://www.latex-project.org/lppl.txt
-%
-% and version 1.2 or later is part of all distributions of LaTeX
-% version 1999/12/01 or later.
-%
-% \fi
-%
-% \iffalse
-%<*driver>
-\ProvidesFile{svnkw.dtx}
-%</driver>
-%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<package>\ProvidesPackage{svnkw}
-%<*package>
- [2006/05/27 v1.0 SVN Keywords]
-%</package>
-%
-%<*driver>
-\documentclass{ltxdoc}
-\usepackage{svnkw}[2004/11/05]
-\EnableCrossrefs
-\CodelineIndex
-\RecordChanges
-\begin{document}
- \DocInput{svnkw.dtx}
- \PrintChanges
- \PrintIndex
-\end{document}
-%</driver>
-% \fi
-%
-% \CheckSum{0}
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-%
-% \changes{v1.0}{2006/05/27}{Initial version}
-%
-% \GetFileInfo{svnkw.dtx}
-%
-% \DoNotIndex{\newcommand,\newenvironment}
-%
-%
-% \title{The \textsf{svnkw} package\thanks{This document
-% corresponds to \textsf{svnkw}~\fileversion, dated \filedate.}}
-% \author{Martin Scharrer \\ \texttt{martin@scharrer-online.de}}
-%
-% \maketitle
-%
-% \section{Introduction}
-% This package lets you typeset keywords of the version control system Subversion\footnote
-% {Subversion homepage: http://subversion.tigris.org/} (svn), which is the successor of the popular CVS,
-% inside your \LaTeX\ files anywhere you like.
-% Unlike the very similar package
-% |svn|\footnote{CTAN:
-% http://www.ctan.org/tex-archive/macros/latex/contrib/svn/} the usage of
-% multiple files for one \LaTeX\ document is well supported. The package
-% acquires the keywords of the last changed file and provides them to the user
-% through macros. The package has to read all keywords of all files first and
-% writes the most recent values in an axiliary file with an '.svn'
-% extention. This file is read back at the next \LaTeX\ run which introduces a
-% delay like by the table of contents.
-%
-% The special date features of the |svn| package are not (yet?) supported. If
-% you need them you can try to use both packages together which should work
-% but is not tested by the author.
-%
-% \section{Usage}
-%
-% \subsection{Including of the Subversion keywords}
-% To include your Subversion Id keywords use |\svnid| or |\svnidlong|.
-% This macros should be written very
-% early in each file, i.e.\ in the preamble of the main document soon after
-% |\documentclass| and |\usepackage{svnkw}| and as first in every |\include|d
-% subfile before the |\chapter| macro. They do not create any output.
-%
-% \DescribeMacro{\svnid}
-% Macro for the svn Id keyword.
-% Write the macro as |\svnid{$||Id$}| into your files and set the subversion
-% property |svn:keywords| of them
-% to at least '|Id|'. Subversion will expand it. A trailing colon
-% with spaces after the |Id| is also valid but \textbf{everything else} will
-% cause a \TeX\ parse error.
-%
-% The keyword content will be interpreted and
-% saved in the variables (ah, macros) |\svnfilerev|, |\svnfiledate| and
-% |\svnfileauthor|. The most recent values (i.e.\ with the highest revision)
-% are written as |\svnrev|, |\svndate| and |\svnauthor| in a .svn-file which
-% is read back at the next \LaTeX\ run. The idea is that the first variables
-% holding the local values for the current file and the otheris the values for
-% the complete document.
-% Nevertheless all keywords can also be typeset with |\svnkw|\marg{keyword}
-% which returns the latest saved value. This macro is used internally.
-%
-% \DescribeMacro{\svnidlong}
-% Macro for a "long Id".
-% Saves similar values like in '|Id|' but from the keywords
-% |HeadURL|, |LastChangedDate|, |LastChangedRevision| and |LastChangedBy|.
-% The usage of |\svnid| or |\svnidlong| is a matter of taste. The second is
-% more readable inside the code and results in a nicer date and a full URL,
-% not only the filename. Both can be used together.
-%
-% Write this as (order of arguments not meaningfull)\\
-% |\svnidlong|\\
-% |{$||HeadURL$}|\\
-% |{$||LastChangedDate$}|\\
-% |{$||LastChangedRevision$}|\\
-% |{$||LastChangedBy$}|\\
-% in your files and set the subversion
-% property |svn:keywords| of them
-% to\\'|HeadURL LastChangedDate LastChangedRevision LastChangedBy|'.
-%
-% \DescribeMacro{\svn}
-% This macro lets you set svn keywords directly. The only argument is
-% the svn keyword in the usual dollars. The dollars will be stripped
-% by the macro and the rest is typeset as normal text.
-% This macro alone was the very first version of |svnkw| and is still included
-% for fast and simple keyword typesetting.
-%
-% \DescribeMacro{\svnkwsave}
-% This macro lets you include and save any keyword you like. The only argument
-% is the keyword wrapped in dollars. The keyword can be already expanded or
-% not (no value and only "|:|" or nothing after the key name). This macro is
-% also used internally and does not create any output.
-%
-% \subsection{Access to the keyword values}
-%
-% \DescribeMacro{\svnkw}
-% Keyword values can be typeset by this macro.
-% It takes one argument which must be a subversion keyword name. It
-% then returns the current value of this keyword or nothing (|\relax|) when
-% the keyword was not set yet.\\
-% Examples:\\|\textsl{Revision: \svnkw{Revision}}|\\
-% |URL: \url{\svnkw{HeadURL}}|\\
-% In the second example |\url| (|hyperref| package) is used to add a
-% hyperlink and to avoid problems with underscores (|_|) inside the URL.
-%
-% \DescribeMacro{\svnkwdef}
-% This macro is used to define the keyword values. This is normally only
-% called internally but could be used by the user to override single keywords.
-% The values can then be typeset by |\svnkw|.
-% Note that |\svnid| and |\svnidlong| both sets some keywords to new values
-% using this macro.
-%
-% Note that for |\svnkw| and |\svnkwdef| all different names for one keyword
-% are valid and result in the access of the same variable. So e.g.\ subversion
-% treats |Rev|, |Revision| and |LastChangedRev| the same way and so does this
-% macros. You can e.g.\ say |\svnkwdef{Rev}| and then typeset it with
-% |\svnkw{Revision}| or |\svnkw{LastChangedRev}| if you like.
-%
-% \subsection{Using full author names}
-% If you like to have the full author\footnote{This means subversion authors,
-% e.g.\ the persons who commit changes into the svn reprository.}
-% names, not only the usernames, in your
-% document you can use the following macros. First you have to register all
-% authors of the document with |\svnRegisterAuthor| and then you can write
-% e.g.\ |\svnFullAuthor{\svnauthor}| or |\svnFullAuthor{\svnfileauthor}|.
-%
-% \DescribeMacro{\svnRegisterAuthor}
-% The usage is |\svnRegisterAuthor|\marg{username}\marg{full name} which
-% registers \meta{full name} as full name for \meta{username}.
-%
-% \DescribeMacro{\svnFullAuthor}
-% Takes the username as argument and returns the full name if it was
-% registered first with |\svnRegisterAuthor| or nothing (|\relax|) else. There is
-% also a star version |\svnFullAuthor*| which also returns the username in
-% parentheses after the full name.
-
-% \StopEventually{}
-%
-% \section{Implementation}
-%
-% \begin{macro}{\svn}
-% Just calls TeX macro |\@svn| to strip the dollars.
-% \begin{macrocode}
-\newcommand{\svn}[1]{\@svn#1}
-\def\@svn$#1${#1}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\svnkwdef}
-% First we check if there is a 'setter'-macro for the keyword called
-% |\svnkwdef@|\meta{keyword}.
-% \begin{macrocode}
-\newcommand{\svnkwdef}[2]{%
-\@ifundefined{svnkwdef@#1}
-% \end{macrocode}
-% If not we call the general macro |\svnkwdef@|.
-% \begin{macrocode}
-{\svnkwdef@{#1}{#2}}
-% \end{macrocode}
-% If yes we just call it with the value as argument.
-% \begin{macrocode}
-{\csname svnkwdef@#1\endcsname{#2}}
-}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\svnkwdef@}
-% This macro defines the second argument under |\svnkw|\meta{2nd argument}.
-% The |\xdef| is used to expand the content first (needed for internal use)
-% and make the definition globally.
-% \begin{macrocode}
-\newcommand{\svnkwdef@}[2]
-{\expandafter\xdef\csname svnkw#1\endcsname{#2}}
-% \end{macrocode}
-% Example: |\svnkwdef{Revision}{23}| will define |\svnkwRevision| as 23.
-% \end{macro}
-
-% \begin{macro}{\svnkwdef@...}
-% 'Setter'-macros for single keywords, used by |\svnkwdef|.\\The keywords |Rev|, |Author| and |Date|
-% are just calling |\svnkwdef@| with a fixed first argument.
-% \begin{macrocode}
-\def\svnkwdef@Rev#1{\svnkwdef@{Rev}{#1}}
-\def\svnkwdef@Author#1{\svnkwdef@{Author}{#1}}
-\def\svnkwdef@Date#1{\svnkwdef@{Date}{#1}}
-% \end{macrocode}
-% The long keywords are defined then as aliases of the short,\\
-% first for writting
-% \begin{macrocode}
-\let\svnkwdef@Revision=\svnkwdef@Rev
-\let\svnkwdef@LastChangedRevision=\svnkwdef@Rev
-\let\svnkwdef@LastChangedBy=\svnkwdef@Author
-\let\svnkwdef@LastChangedAt=\svnkwdef@Date
-% \end{macrocode}
-% and then for reading.
-% \begin{macrocode}
-\def\svnkwRevision{\svnkwRev}
-\def\svnkwLastChangedRevision{\svnkwRev}
-\def\svnkwLastChangedBy{\svnkwAuthor}
-\def\svnkwLastChangedAt{\svnkwDate}
-% \end{macrocode}
-% So e.g. |\svnkw{LastChangedRevision}| is always be the
-% same as |\svnkw{Rev}|.
-% \end{macro}
-%
-% We define default values for normal keywords. Keyword |Filename| is the name
-% given by |Id| and not a real keyword.
-% \begin{macrocode}
-\svnkwdef{Rev}{0} % must always be numerical
-\svnkwdef{Date}{}
-\svnkwdef{Author}{}
-\svnkwdef{Filename}{}
-\svnkwdef{HeadURL}{}
-% \end{macrocode}
-
-% \begin{macro}{\svnkw}
-% Macro to get keyword value. Just calls |\svnkwARGUMENT| where |ARGUMENT| is
-% the argument interpreted as text. So e.g. |\svnkw{Date}| is the same as
-% |\svnkwDate| but this could be changed later so always use this interface
-% to get the keyword values.
-% \begin{macrocode}
-\newcommand{\svnkw}[1]{\csname svnkw#1\endcsname}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\svn@scanId}
-% Scans svn Id (after it got parsed by |\svn@readkw|).
-% Awaits only Id value without leading '|Id:|' and a trailing dollar as end
-% marker. It calls
-% |\@svn@updateid| to update global Id values and also sets the approbriate
-% keywords.
-% \begin{macrocode}
-\def\svn@scanId#1 #2 #3 #4 #5${%
-% #1 is filename, #2 is revision, #3 is date (JJJJ-MM-DD),
-% #4 is time (HH:MM:SST), #5 is author (username)
-\@svn@updateid{#2}{#3 #4}{#5}%
-\svnkwdef{Filename}{#1}%
-\svnkwdef{Date}{#3 #4}%
-\svnkwdef{Revision}{#2}%
-\svnkwdef{Author}{#5}%
-}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\svn@readkw}
-% General macro to read keywords.
-% Saves key in |\svn@key| and the value in |\svn@value|.
-% We have to analyse the argument but need it in full later. So we use the submacro
-% |\svn@readkw@sub| to do the scan job. Sets |\svn@case| to one of three
-% cases, where the first two cases result in identical code.
-% \begin{macrocode}
-\def\svn@readkw$#1${%
-\svn@readkw@sub$#1: $ % call submacro to get case
-\ifnum\svn@case<3
-% \end{macrocode}
-% If there is no value set |\svn@value| to empty and define |\svn@key| to the
-% full argument.
-% \begin{macrocode}
-\def\svn@key{#1}
-\let\svn@value=\svn@empty
-\svn@checkkeyforcolon$#1:$ % needed for case '$kw:$'
-\relax
-\else
-% \end{macrocode}
-% If there is a value split the argument again by calling |\svn@readkw@def|.
-% \begin{macrocode}
-\svn@readkw@def$#1$ % needed to remove leading space
-\fi
-}
-
-\newcount\svn@case
-\let\svn@empty=\empty
-% \end{macrocode}
-%
-% The submacro |\svn@readkw@sub| checks if the argument ends with '|: |'. In
-% order to mach always we add a '|: |' at the macro call and then test here if
-% |#2| is empty. This is the case if there was no '|: |' before. We return 1
-% if there was no colon which means the keyword is not yet expanded by
-% Subversion.
-% \begin{macrocode}
-\def\svn@readkw@sub$#1: #2${%
-\def\svn@temp{#2}
-\ifx\svn@temp\empty
-\svn@case=1
-\else
-% \end{macrocode}
-% If there was an tailing '|: |' we check if |#2| is now just '|: |'
-% which would be the '|: |' we added at the macro call.
-% \begin{macrocode}
-\svn@checkcolon$#2$
-\ifx\svn@temp\empty
-% \end{macrocode}
-% If we have nothing (empty value) in |#2| return 2.
-% \begin{macrocode}
-\svn@case=2
-\else
-% \end{macrocode}
-% If we have something in |#2| return 3.
-% \begin{macrocode}
-\svn@case=3
-\fi\fi
-}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\svn@readkw@def}
-% Submacro for |\svn@readkw| to split argument and to save the parts.
-% \begin{macrocode}
-\def\svn@readkw@def$#1: #2 ${%
-\def\svn@key{#1}
-\def\svn@value{#2}
-}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\svn@checkcolon}
-% Checks whether value is just '|: |',
-% if yes |\svn@temp| is empty.
-% \begin{macrocode}
-\def\svn@checkcolon$#1: ${%
-\def\svn@temp{#1}
-}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\svn@checkkeyforcolon}
-% Checks whether key includes a trailing '|:|'
-% and removes it. Must be called with an trailing '|:|' to always mach! So its
-% check actually for tow trailing '|:|'.
-% \begin{macrocode}
-\def\svn@checkkeyforcolon$#1:#2${%
-\def\svn@temp{#2}
-\ifx\svn@temp\empty
-\else
-\def\svn@key{#1}
-\fi
-}
-% \end{macrocode}
-% \end{macro}
-
-% Definition of init values.
-% \begin{macrocode}
-% Init values
-\def\svnrev{0} % \
-\def\svndate{} % > Values for whole project
-\def\svnauthor{} % /
-\def\svnfilerev{0} % \
-\def\svnfiledate{} % > Values for current file
-\def\svnfileauthor{} % /
-\def\@svn@rev{0} % \
-\def\@svn@date{} % > Values for packet internal use
-\def\@svn@author{} % /
-% \end{macrocode}
-
-% \begin{macro}{\svnid}
-% We read the argument with |\svn@readkw| and provide the value to
-% |\svn@scanId|.
-% \begin{macrocode}
-\newcommand{\svnid}[1]{%
-\svn@readkw#1 % Read keyword
-\ifx\svn@value\empty % Check if value is empty
-\else
-\expandafter\svn@scanId\svn@value$ % Scan Id
-\fi
-}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\svnidlong}
-% We clear the keyword value first to reduce the risk though bad user input.
-% \begin{macrocode}
-\newcommand{\svnidlong}[4]{
-\svnkwdef{HeadURL}{}%
-\svnkwdef{LastChangedDate}{}%
-\svnkwdef{LastChangedRevision}{0}%
-\svnkwdef{LastChangedBy}{}%
-% \end{macrocode}
-% Then we save the four keywords/arguments using |\svnkwsave|.
-% \begin{macrocode}
-\svnkwsave{#1}\svnkwsave{#2}
-\svnkwsave{#3}\svnkwsave{#4}
-% \end{macrocode}
-% And update the latest values.
-% \begin{macrocode}
-\@svn@updateid{\svnkw{LastChangedRevision}}{\svnkw{LastChangedDate}}%
-{\svnkw{LastChangedBy}}
-}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\svnkwsave}
-% Save macro. Takes a dollar wrapped keyword string, reads it though
-% |\svn@readkw| and saves it using |\svnkwdef|.
-% \begin{macrocode}
-\newcommand{\svnkwsave}[1]{%
-\def\svn@temp{#1}
-\ifx\svn@temp\empty
-%% skip at empty argument
-\else
-\svn@readkw#1% read keyword
-\svnkwdef{\svn@key}{\svn@value}
-\fi
-}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\@svn@updateid}
-% We first define the expanded arguments to variables for the user.
-% The expansion is needed because the arguments content is mostly generic like
-% |\svn@key| and |\svn@value| which can change very soon after this macro.
-% \begin{macrocode}
-\def\@svn@updateid#1#2#3{% #1 = rev, #2 date, #3 author (username)
-\edef\svnfilerev{#1}
-\edef\svnfiledate{#2}
-\edef\svnfileauthor{#3}
-% \end{macrocode}
-% Then we check if the revision is non-empty (not yet expanded by
-% subversion?) and larger then the current maximum value |\@svn@rev|.
-% If yes we save all value to save them in the .svn-file later.
-% \begin{macrocode}
-\ifx\svnfilerev\empty\else % skip rest if rev is empty
-\ifnum\@svn@rev<\svnfilerev%
-\edef\@svn@rev{#1}
-\edef\@svn@date{#2}
-\edef\@svn@author{#3}
-\else\fi
-\fi
-}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\svnRegisterAuthor}
-% Saves the author's name by defining
-% |\svn@author@|\meta{username} to it.
-% \begin{macrocode}
-\newcommand{\svnRegisterAuthor}[2]{%
-\expandafter\def\csname svn@author@#1\endcsname{#2}
-}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\svnFullAuthor}
-% We test if the starred or the normal version is used and call the
-% appropriate submacro |\svnFullAuthor@star| or |\svnFullAuthor@normal|.
-% \begin{macrocode}
-\newcommand{\svnFullAuthor}{%
-\@ifnextchar{*}
-{\svnFullAuthor@star}
-{\svnFullAuthor@normal}
-}
-% \end{macrocode}
-% Both submacros are calling |\svnFullAuthor@| but with different arguments.
-% The star macro also removes the star of course.
-% \begin{macrocode}
-\def\svnFullAuthor@star*#1{\svnFullAuthor@{#1}{\ (#1)}}
-\def\svnFullAuthor@normal#1{\svnFullAuthor@{#1}{}}
-% \end{macrocode}
-% |\svnFullAuthor@| now sets the author's full name. Note that |#2| is empty
-% when the normal version is called.
-% \begin{macrocode}
-\def\svnFullAuthor@#1#2{%
-\csname svn@author@#1\endcsname #2
-}
-% \end{macrocode}
-% \end{macro}
-
-%
-% At the end of document we write the values to an auxiliary file.
-% \begin{macrocode}
-\AtEndDocument{
-% \end{macrocode}
-% We first check if we have somthing to save. Revision, date and author must be
-% non-empty. This suppresses the auxiliary file if the user doesn't use the
-% appropriate macros but other provided by this package.
-% \begin{macrocode}
- \ifx\@svn@rev\empty\else
- \ifnum\@svn@rev=0\else
- \ifx\@svn@date\empty\else
- \ifx\@svn@author\empty\else
-% \end{macrocode}
-% Open outfile to write project keywords.
-% \begin{macrocode}
- \newwrite\svnwrite
- \immediate\openout\svnwrite=\jobname.svn
- \immediate\write\svnwrite{\@percentchar\space SVN cache}
- \immediate\write\svnwrite{\noexpand\def\noexpand\svnrev{\@svn@rev}}
- \immediate\write\svnwrite{\noexpand\def\noexpand\svndate{\@svn@date}}
- \immediate\write\svnwrite{\noexpand\def\noexpand\svnauthor{\@svn@author}}
- \immediate\closeout\svnwrite
- \fi\fi\fi\fi
-}
-
-% \end{macrocode}
-% Reread output from last compile run if it exists.
-% \begin{macrocode}
-\InputIfFileExists{\jobname.svn}{}{}
-% \end{macrocode}
-%
-% \Finale
-\endinput
-