diff options
author | Karl Berry <karl@freefriends.org> | 2009-03-27 17:35:58 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-03-27 17:35:58 +0000 |
commit | d72adc4188250dc65f067469817b19bdf48db2b0 (patch) | |
tree | 1ccf0fe39b00af5be2dc54a66dac545a21452cfe /Master/texmf-dist/tex/latex/rcs-multi | |
parent | fcbfe57b79d94ecbaa2abcd79da6545496aa01cc (diff) |
new latex package rcs-multi (24mar09)
git-svn-id: svn://tug.org/texlive/trunk@12531 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/rcs-multi')
-rw-r--r-- | Master/texmf-dist/tex/latex/rcs-multi/rcs-multi.sty | 405 |
1 files changed, 405 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/rcs-multi/rcs-multi.sty b/Master/texmf-dist/tex/latex/rcs-multi/rcs-multi.sty new file mode 100644 index 00000000000..f6cc02c6c21 --- /dev/null +++ b/Master/texmf-dist/tex/latex/rcs-multi/rcs-multi.sty @@ -0,0 +1,405 @@ +%% +%% This is file `rcs-multi.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rcs-multi.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Copyright (C) 2009 by Martin Scharrer <martin@scharrer-online.de> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% 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.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Scharrer. +%% +%% This work consists of the file rcs-multi.dtx and the derived file rcs-multi.sty. +%% +\def\filedate$#1: #2 #3 #4-#5-#6 #7 ${% + \year#4\month#5\day#6\relax + \def\filedate{#4/#5/#6}% + \def\filerev{#3}% +} +\filedate$Id: rcs-multi.dtx 638 2009-03-23 19:21:36Z martin $ +\def\fileversion{v0.1} +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{rcs-multi} + [\filedate\space\fileversion\space RCS Keywords for multi-file LaTeX documents] + +\def\rcs@ifempty#1{% + \begingroup + \edef\rcs@temp{#1}% + \ifx\rcs@temp\empty + \endgroup + \expandafter + \@firstoftwo + \else + \endgroup + \expandafter + \@secondoftwo + \fi +} + +\def\rcs@ifequal#1#2{% + \begingroup + \edef\rcs@stringa{#1}% + \edef\rcs@stringb{#2}% + \ifx\rcs@stringa\rcs@stringb + \endgroup + \expandafter + \@firstoftwo + \else + \endgroup + \expandafter + \@secondoftwo + \fi +} + +\def\rcs@ifvalidrev#1{% + \begingroup + \@ifundefined{#1}% + {\def\rcs@temp{-1}}% + {\expandafter\edef + \expandafter\rcs@temp\expandafter{\csname #1\endcsname}}% + \ifnum\rcs@temp>-1\relax + \endgroup + \expandafter + \@firstoftwo + \else + \endgroup + \expandafter + \@secondoftwo + \fi +} + +\def\rcsrev{0.0} \def\@rcs@rev{0.0} +\def\rcsdate{} \def\@rcs@date{} +\def\rcsauthor{} \def\@rcs@author{} +\def\rcsyear{0000} \def\@rcs@year{0000} +\def\rcsmonth{00} \def\@rcs@month{00} +\def\rcsday{00} \def\@rcs@day{00} +\def\rcshour{00} \def\@rcs@hour{00} +\def\rcsminute{00} \def\@rcs@minute{00} +\def\rcssecond{00} \def\@rcs@second{00} +\def\rcsname{} \def\@rcs@name{} +\def\rcsurl{} \def\@rcs@url{} +\def\rcsmainfilename{} +\def\rcsmainurl{\rcsmainfilename} +\def\rcs@temp{} +\def\rcs@lastkw{} + +\def\rcsfilerev{0.0} +\def\rcsfiledate{} +\def\rcsfileauthor{} +\def\rcsfileyear{0000} +\def\rcsfilemonth{00} +\def\rcsfileday{00} +\def\rcsfilehour{00} +\def\rcsfileminute{00} +\def\rcsfilesecond{00} +\def\rcsfileurl{} +\def\rcsfilename{} + +\def\rcstime{\rcshour:\rcsminute:\rcssecond} +\def\rcsfiletime{\rcsfilehour:\rcsfileminute:\rcsfilesecond} + +\newcommand*{\rcstoday}{% + \begingroup + \year\rcsyear \month\rcsmonth \day\rcsday + \relax \today + \endgroup +} +\newcommand*{\rcsfiletoday}{% + \begingroup + \year\rcsfileyear \month\rcsfilemonth \day\rcsfileday + \relax \today + \endgroup +} + +\newcommand*{\rcsid}{% + \@rcsidswtrue + \rcskwsave +} +\newif\if@rcsidsw +\@rcsidswfalse + +\def\rcs@scanId#1,v #2 #3 #4 #5 #6\relax{% + \@rcs@scandate{#3 #4}% + \@rcs@updateid{#2}{#3 #4}{#5}{#1}% + \rcskwdef{Filename}{#1}% + \rcskwdef{Date}{#3 #4}% + \rcskwdef{Revision}{#2}% + \rcskwdef{Author}{#5}% +} + +\def\@rcs@updateid#1#2#3#4{% + \xdef\rcsfilerev{#1}% + \xdef\rcsfiledate{#2}% + \xdef\rcsfileauthor{#3}% + \xdef\rcsfileurl{#4}% + \rcs@getfilename\rcsfileurl + \ifx\rcsfiledate\empty\else + \begingroup + \edef\@tempa{\@rcs@year\@rcs@month\@rcs@day} + \edef\@tempb{\rcsfileyear\rcsfilemonth\rcsfileday} + \ifnum\@tempa<\@tempb + \rcs@update + \else\ifnum\@tempa=\@tempb + \edef\@tempa{\@rcs@hour\@rcs@minute\@rcs@second} + \edef\@tempb{\rcsfilehour\rcsfileminute\rcsfilesecond} + \ifnum\@tempa<\@tempb + \rcs@update + \fi + \fi\fi + \endgroup + \fi +} + +\def\rcs@update{% + \xdef\@rcs@rev{\rcsfilerev}% + \xdef\@rcs@date{\rcsfiledate}% + \xdef\@rcs@author{\rcsfileauthor}% + \xdef\@rcs@year{\rcsfileyear}% + \xdef\@rcs@month{\rcsfilemonth}% + \xdef\@rcs@day{\rcsfileday}% + \xdef\@rcs@hour{\rcsfilehour}% + \xdef\@rcs@minute{\rcsfileminute}% + \xdef\@rcs@second{\rcsfilesecond}% + \xdef\@rcs@name{\rcsfilename}% + \xdef\@rcs@url{\rcsfileurl}% +} + +\def\rcs@catcodes{% + \let\do\@makeother + \dospecials + \catcode`\^^M9 + \catcode`\ 10 + \catcode`\{1 + \catcode`\}2 +} + +\def\rcs@gdefverb#1{% + \begingroup + \def\rcs@temp{#1}% + \begingroup + \rcs@catcodes + \rcs@gdefverb@ +} + +\def\rcs@gdefverb@#1{% + \endgroup + \expandafter\gdef\rcs@temp{#1}% + \endgroup +} + +\def\rcskwsave{% + \begingroup + \rcs@catcodes + \rcskwsave@readargs +} + +\gdef\rcskwsave@readargs#1{% + \rcskwsave@read#1\relax + \endgroup + \if@rcsidsw + \rcs@ifequal{\rcs@lastkw}{Id}% + {\ifx\rcskwId\empty\else + \expandafter + \rcs@scanId\rcskwId\relax + \@rcsidswfalse + \fi}{% + \rcs@ifequal{\rcs@lastkw}{Header}% + {\ifx\rcskwHeader\empty\else + \expandafter + \rcs@scanId\rcskwHeader\relax + \@rcsidswfalse + \fi}{}% + }% + \fi + \ignorespaces +} + +\begingroup +\catcode`\$=12 +\gdef\rcskwsave@read $#1$\relax{% + \rcs@checkcolon#1:\relax +} +\endgroup + +\begingroup +\catcode`\$=11 +\gdef\rcskwsave@parse$#1:#2${% + \expandafter\xdef\csname rcskw#1\endcsname{#2}% +}% +\endgroup + +\newcommand{\rcskwdef}[2]{% + \gdef\rcs@lastkw{#1}% + \expandafter\xdef\csname rcskw#1\endcsname{#2}% +} + +\rcskwdef{Rev}{0.0} +\rcskwdef{Date}{} +\rcskwdef{Author}{} +\rcskwdef{Filename}{} +\rcskwdef{HeadURL}{} + +\newcommand{\rcskw}[1]{% + \@ifundefined{rcskw#1}% + {\PackageWarning{rcs-multi}{RCS keyword '#1' not defined (typo?)}}% + {\csname rcskw#1\endcsname}% +}% + +\def\rcs@checkcolon#1:#2\relax{% + \rcs@ifempty{#2}% + {\rcskwdef{#1}{}}% + {\rcs@stripcolon#2\relax\rcskwdef{#1}{\rcs@value}}% +} + +\def\rcs@stripcolon#1:\relax{% + \rcs@ifempty{#1}% + {\gdef\rcs@value{}}% + {\rcs@ifequal{#1}{ }% + {\gdef\rcs@value{}}% + {\rcs@stripspace#1\relax\relax}% + }% +} + +\def\rcs@stripspace#1#2\relax{% + \rcs@ifequal{#1}{ }% + {\gdef\rcs@value{#2}}% + {\rcs@striptrailingspace#1#2\relax}% +} + +\def\rcs@striptrailingspace#1 \relax{% + \gdef\rcs@value{#1}% +} + +\def\@rcs@scandate#1{\@rcs@scandate@#1\empty\relax} + +\def\@rcs@scandate@#1/#2/#3 #4:#5:#6#7#8\relax{% + \gdef\rcsfileyear{#1}% + \gdef\rcsfilemonth{#2}% + \gdef\rcsfileday{#3}% + \gdef\rcsfilehour{#4}% + \gdef\rcsfileminute{#5}% + \gdef\rcsfilesecond{#6#7}% +} + +\def\rcspdfdate{% + \rcsyear\rcsmonth\rcsday + \rcshour\rcsminute\rcssecond00'00'% +} + +\newcommand{\rcssetmainfile}{% + \xdef\rcsmainfilename{\rcsfilename}% + \xdef\rcsmainfileurl{\rcsfileurl}% +} +\AtBeginDocument{\rcssetmainfile} + +\newcommand{\rcsRegisterAuthor}[2]{% + \expandafter\def\csname rcs@author@#1\endcsname{#2}% +} + +\newcommand{\rcsFullAuthor}{% + \@ifnextchar{*}% + {\rcsFullAuthor@star}% + {\rcsFullAuthor@normal}% +}% +\def\rcsFullAuthor@star*#1{% + \edef\rcs@temp{#1}% + \rcsFullAuthor@{\rcs@temp}{~(\rcs@temp)}% +}% +\def\rcsFullAuthor@normal#1{% + \edef\rcs@temp{#1}% + \rcsFullAuthor@{\rcs@temp}{}% +}% +\def\rcsFullAuthor@#1#2{% + \@ifundefined{rcs@author@#1}% + {#1}% + {\csname rcs@author@#1\endcsname #2}% +} + +\newcommand{\rcsRegisterRevision}[2]{% + \expandafter\def\csname rcs@revision@#1\endcsname{#2}% +} + +\newcommand{\rcsFullRevision}{% + \@ifnextchar{*}% + {\rcsFullRevision@star}% + {\rcsFullRevision@normal}% +} +\def\rcsFullRevision@star*#1{% + \edef\rcs@temp{#1}% + \rcsFullRevision@{\rcs@temp}{~(r\rcs@temp)}% +} +\def\rcsFullRevision@normal#1{% + \edef\rcs@temp{#1}% + \rcsFullRevision@{\rcs@temp}{}% +} +\def\rcsFullRevision@#1#2{% + \@ifundefined{rcs@revision@#1}% + {Revision #1}% + {\csname rcs@revision@#1\endcsname #2}% +} + +\providecommand{\rcs}[1]{\@revs#1} +\def\@rcs$#1 ${#1} + +%% Adapted from the \url macro of the `hyperref` package. +\DeclareRobustCommand*{\rcsnolinkurl}{% + \@ifundefined{hyper@normalise}% + {\PackageWarning{rcs-multi}{Package hyperref is needed for \noexpand + \rcsnolinkurl.}}% + {\hyper@normalise\rcsnolinkurl@}% +}% +\def\rcsnolinkurl@#1{\Hurl{#1}}% + +\def\rcs@getfilename#1{% + \begingroup + \edef\rcs@temp{#1}% + \expandafter\@rcs@getfilename\rcs@temp/{}\relax +}% + +\def\@rcs@getfilename#1/#2\relax{% + \rcs@ifempty{#2}% + {\endgroup\gdef\rcsfilename{#1}}% + {\@rcs@getfilename#2\relax}% +}% + + +\def\rcs@writeaux{% + \immediate\write\@mainaux{^^J% + \noexpand\gdef\noexpand\rcsrev{\@rcs@rev}^^J% + \noexpand\gdef\noexpand\rcsdate{\@rcs@date}^^J% + \noexpand\gdef\noexpand\rcsauthor{\@rcs@author}^^J% + \noexpand\gdef\noexpand\rcsyear{\@rcs@year}^^J% + \noexpand\gdef\noexpand\rcsmonth{\@rcs@month}^^J% + \noexpand\gdef\noexpand\rcsday{\@rcs@day}^^J% + \noexpand\gdef\noexpand\rcshour{\@rcs@hour}^^J% + \noexpand\gdef\noexpand\rcsminute{\@rcs@minute}^^J% + \noexpand\gdef\noexpand\rcssecond{\@rcs@second}^^J% + \noexpand\rcs@gdefverb\noexpand\rcsname{\@rcs@name}^^J% + \noexpand\rcs@gdefverb\noexpand\rcsurl{\@rcs@url}^^J% + }% +} + +\AtEndDocument{% + \if@filesw + \ifx\@rcs@date\empty\else + \rcs@writeaux + \fi + \fi +} +\endinput +%% +%% End of file `rcs-multi.sty'. |