From f3e4da8de0bec75f027ec22af12443c9cfa2a0f6 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 23 Mar 2009 23:55:25 +0000 Subject: svn-multi 2.0 (23mar09) git-svn-id: svn://tug.org/texlive/trunk@12503 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/svn-multi/README | 50 ++- Master/texmf-dist/doc/latex/svn-multi/example.pdf | Bin 41537 -> 43038 bytes .../doc/latex/svn-multi/example_chap1.tex | 2 +- .../doc/latex/svn-multi/example_main.tex | 34 +- .../doc/latex/svn-multi/group_example.tex | 371 +++++++++++++++++++++ .../texmf-dist/doc/latex/svn-multi/svn-multi.pdf | Bin 312321 -> 1136846 bytes 6 files changed, 440 insertions(+), 17 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/svn-multi/group_example.tex (limited to 'Master/texmf-dist/doc/latex/svn-multi') diff --git a/Master/texmf-dist/doc/latex/svn-multi/README b/Master/texmf-dist/doc/latex/svn-multi/README index b2ccffbaab5..7b5ef2e18a5 100644 --- a/Master/texmf-dist/doc/latex/svn-multi/README +++ b/Master/texmf-dist/doc/latex/svn-multi/README @@ -1,6 +1,6 @@ -------------------------------------------------------------- svn-multi (was svnkw) - version 1.5, Feb 28th, 2009 + version 2.0, Mar 23rd, 2009 -------------------------------------------------------------- This package lets you typeset keywords of the version @@ -13,30 +13,41 @@ E-mail: martin@scharrer-online.de WWW: http://www.scharrer-online.de/latex/svn-multi/ This work may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +conditions of the LaTeX Project Public License, either version 1.3c 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. +and version 1.3c or later is part of all distributions of LaTeX +version 2008/05/04 or later. This work has the LPPL maintenance status `maintained'. The Current Maintainer of this work is Martin Scharrer. -This work consists of the files svn-multi.dtx and svn-multi.ins -and the derived files svn-multi.sty and svnkw.sty. +This work consists of the files svn-multi.dtx, svn-multi-pl.dtx, svn-multi.ins +and the derived files svn-multi.sty, svnkw.sty and svn-multi.pl. Tiny example: ~~~~~~~~~~~~~ -Put the following Subversion keyword in all your LaTeX files of +Put the following Subversion keyword at the start of all your LaTeX files of your document: +\svnidlong +{$HeadURL$} +{$LastChangedDate$} +{$LastChangedRevision$} +{$LastChangedBy$} + +or + \svnid{$Id$} -Subversion will expand it (set property svn:keyword to 'Id') and -then you can typeset the SVN information using +or both. +Attach the subversion property svn:keyword with a value of +'URL Date Revision Author', 'Id' or both, respectively, to all LaTeX files. +Subversion will expand this keywords the next time the files are committed and +then the SVN information can be typeset using \svnauthor, \svnrev, \svndate, \svnhour, ... which will hold the information of the latest comitted file anywhere in your multi-file LaTeX document. @@ -52,13 +63,26 @@ From the .dtx file (if you don't get the .sty files directly): ================== Unpack the zip file and run 'make'. You also can do it manually: - [pdf]latex svn-multi.ins # for the style file - [pdf]latex svn-multi.dtx # for the documentation - [pdf]latex example-main.tex # for the example + [pdf]latex svn-multi.ins # for the style file and perl script + [pdf]latex svn-multi.dtx # for the documentation +2x[pdf]latex example-main # for the example + +For the large keyword group example document: + [pdf]latex group-example + perl svn-multi.pl group-example +2x[pdf]latex group-example Place the two .sty files svn-multi.sty # Package - svnkw.sty # Wrapper for backward compatibility + svnkw.sty # Wrapper for backward compatibility into your TEXMF tree, e.g. in $TEXMF/tex/latex/svn-multi +Make the perl script svn-multi.pl executable: + chmod +x svn-multi.pl +and place it in an directory in your $PATH, e.g. under Unix/Linux in + /usr/bin/svn-multi.pl or + /usr/local/bin/svn-multi.pl or + $HOME/bin/svn-multi.pl +Consider to rename or link it to 'svn-multi'. + diff --git a/Master/texmf-dist/doc/latex/svn-multi/example.pdf b/Master/texmf-dist/doc/latex/svn-multi/example.pdf index f8f1208d671..5a5f1435065 100644 Binary files a/Master/texmf-dist/doc/latex/svn-multi/example.pdf and b/Master/texmf-dist/doc/latex/svn-multi/example.pdf differ diff --git a/Master/texmf-dist/doc/latex/svn-multi/example_chap1.tex b/Master/texmf-dist/doc/latex/svn-multi/example_chap1.tex index ca8a36100d1..dd63289e864 100644 --- a/Master/texmf-dist/doc/latex/svn-multi/example_chap1.tex +++ b/Master/texmf-dist/doc/latex/svn-multi/example_chap1.tex @@ -1,7 +1,7 @@ % Version control information: \svnid{$Id: example_chap1.tex 211 2009-02-27 13:58:39Z martin $} \svnidlong -{$HeadURL: svn+ssh://scharrer-online.de/home/martin/svn/src/trunk/latex/svn-multi/example_chap1.tex $} +{$HeadURL: svn+ssh://scharrer-online.de/home/martin/svn/src/trunk/latex/svn-multi-2/example_chap1.tex $} {$LastChangedDate: 2009-02-27 13:58:39 +0000 (Fri, 27 Feb 2009) $} {$LastChangedRevision: 211 $} {$LastChangedBy: martin $} diff --git a/Master/texmf-dist/doc/latex/svn-multi/example_main.tex b/Master/texmf-dist/doc/latex/svn-multi/example_main.tex index 6f2a337d6da..cb23a97e527 100644 --- a/Master/texmf-dist/doc/latex/svn-multi/example_main.tex +++ b/Master/texmf-dist/doc/latex/svn-multi/example_main.tex @@ -1,9 +1,9 @@ \documentclass[12pt]{report} -\usepackage{svn-multi} +\usepackage[all,external,groups]{svn-multi}[2009/03/03] % Version control information: \svnidlong -{$HeadURL: svn+ssh://scharrer-online.de/home/martin/svn/src/trunk/latex/svn-multi/example_main.tex $} -{$LastChangedDate: 2008-12-03 13:29:19 +1234 (Wed, 03 Dec 2008) $} +{$HeadURL: svn+ssh://scharrer-online.de/home/martin/svn/src/trunk/latex/svn-multi-2/example_main.tex $} +{$LastChangedDate: 2008-12-03 13:29:19 +0000 (Wed, 03 Dec 2008) $} {$LastChangedRevision: 146 $} {$LastChangedBy: martin $} \svnid{$Id: example_main.tex 146 2008-12-03 13:29:19Z martin $} @@ -11,6 +11,18 @@ % 'HeadURL LastChangedDate LastChangedRevision LastChangedBy' or % 'Id' or both depending if you use \svnidlong and/or \svnid + +% Include keywords from the following external files and put them in the +% 'external' group. +% Note: this only works when the 'svn-multi.pl' is run on this file after it has +% been compiled once AND the files below are part of a Subversion working +% directory. The latter is not the case if this file is from the CTAN server. +\svngroup{external} +\svnexternalpath{{images/}} +\svnexternal{{Makefile}{svn-multi.dtx}{svn-multi.ins}} +\svngroup{} +% + \usepackage{hyperref} \usepackage{url} @@ -29,10 +41,19 @@ \svnRegisterAuthor{johnd}{John Doe} \svnRegisterAuthor{maryd}{Mary Doe} +\svnRegisterAuthor{martin}{Martin S.} \svnRegisterRevision{15}{Version~1} +\usepackage{graphics} +\graphicspath{{images/}} +\usepackage{pgf} +\begingroup +\pgfdeclareimage[width=4cm]{test}{images/logo} + \listfiles \begin{document} + + \begin{titlepage} \vspace{8ex} {\huge Title\par} @@ -58,4 +79,11 @@ %\include{example_chap2} %\include{example_chap3} + +%\input{test} +%\pgfuseimage{test} +\makeatletter + +\makeatother + \end{document} diff --git a/Master/texmf-dist/doc/latex/svn-multi/group_example.tex b/Master/texmf-dist/doc/latex/svn-multi/group_example.tex new file mode 100644 index 00000000000..692687d4f97 --- /dev/null +++ b/Master/texmf-dist/doc/latex/svn-multi/group_example.tex @@ -0,0 +1,371 @@ +\documentclass[a4paper,oneside]{scrbook} +\usepackage[all]{svn-multi}[2009/03/06] +\svnidlong +{$HeadURL: svn://server/group_example.tex $} +{$LastChangedDate: 2000-01-01 01:44:01 +0000 (Main file) $} +{$LastChangedRevision: 98 $} +{$LastChangedBy: author3 $} + +% Pre-declaration of groups to define order in table +\svngroup{abc} +\svngroup{def} +\svngroup{ghi} +\svngroup{jkl} +%\svngroup{Images} +\svngroup{} + +% Ignore logo in subfiles and set it explicitly into the main file: +%\svnexternal{{logo.jpg}}% +%\svnignoregraphic{logo.jpg} + +% Special groups for images and other external files: +%\svngraphicsgroup{Images} +%\svnexternalgroup{external} + +\let\ifvtex=\relax +\usepackage{hyperref} +\usepackage{ifthen} +\usepackage{listings} +\lstset{basicstyle=\ttfamily} +\makeatletter +% Workaround for listinputlisting +\newcommand*{\svnlstinputlisting}[2][]{% + {\let\input\@input\lstinputlisting[#1]{#2}}% +} +\makeatother +\usepackage{booktabs} +\usepackage{tabularx} +\usepackage{longtable} + +% This is an example document to show the group feature of svn-multi 2.0. +% Please the notes below. + +\makeatletter +% Version control information table for each chapter +\newcommand{\chaptervctable}{% +\par\noindent +\textbf{Version Control Information for this chapter}\\[\bigskipamount]% +\begin{tabular}{lp{0.7\textwidth}} +Chapter URL & \svnnolinkurl{\svnfileurl}\\ +Chapter File name & \svnnolinkurl{\svnfilefname}\\ +Last Changed Revision & \svnfilerev\\ +Last Changed Author & \svnfileauthor\\ +Last Changed Date & \svnfiledate\\ +\end{tabular} +\bigskip +\par\noindent +This files contains the following SVN keywords:\\*[-\baselineskip] +{\let\input\@input +\svnlstinputlisting[firstline=5,lastline=9]{\finkpath} +} +} +\makeatother + +% This file generates some example sub files from this file to avoid a lot of small +% example files in the CTAN directory. In real life there would be separate +% files from the beginning. + +\begin{filecontents}{group_example_part1a.tex} +\svnidlong +{$HeadURL: svn://server/group_example_part1a.tex $} +{$LastChangedDate: 2000-01-01 01:00:01 +0000 (Chapter 1a) $} +{$LastChangedRevision: 101 $} +{$LastChangedBy: author1 $} + +\chapter{Subfile 1a} +\chaptervctable +\end{filecontents} + +\begin{filecontents}{group_example_part1b.tex} +\svnidlong +{$HeadURL: svn://server/group_example_part1b.tex $} +{$LastChangedDate: 2001-01-01 00:00:01 +0000 (Subfile 1b) $} +{$LastChangedRevision: 102 $} +{$LastChangedBy: author2 $} + +\chapter{Subfile 1b} +\chaptervctable +\end{filecontents} + +\begin{filecontents}{group_example_part1c.tex} +\svnidlong +{$HeadURL: svn://server/group_example_part1c.tex $} +{$LastChangedDate: 2000-01-01 00:00:01 +0000 (Subfile 1c) $} +{$LastChangedRevision: 104 $} +{$LastChangedBy: author3 $} + +\chapter{Subfile 1c} +\chaptervctable +\end{filecontents} + +\begin{filecontents}{group_example_part2a.tex} +\svnidlong +{$HeadURL: svn://server/group_example_part2a.tex $} +{$LastChangedDate: 2000-01-01 00:00:01 +0000 (Subfile 2a) $} +{$LastChangedRevision: 100 $} +{$LastChangedBy: author1 $} + +\chapter{Subfile 2a} +\chaptervctable +\end{filecontents} + +\begin{filecontents}{group_example_part2b.tex} +\svnidlong +{$HeadURL: svn://server/group_example_part2b.tex $} +{$LastChangedDate: 2000-01-01 00:00:01 +0000 (Subfile 2b) $} +{$LastChangedRevision: 101 $} +{$LastChangedBy: author1 $} + +\chapter{Subfile 2b} +\chaptervctable +\end{filecontents} + +\begin{filecontents}{group_example_part3a.tex} +\svnidlong +{$HeadURL: svn://server/group_example_part3a.tex $} +{$LastChangedDate: 2000-01-01 00:00:01 +0000 (Subfile 3a) $} +{$LastChangedRevision: 104 $} +{$LastChangedBy: author3 $} + +\chapter{Subfile 3a} +\chaptervctable +\end{filecontents} + +\begin{filecontents}{group_example_part3b.tex} +\svnidlong +{$HeadURL: svn://server/group_example_part3b.tex $} +{$LastChangedDate: 2000-01-01 00:00:01 +0000 (Subfile 3b) $} +{$LastChangedRevision: 103 $} +{$LastChangedBy: author2 $} + +\chapter{Subfile 3b} +\chaptervctable +\end{filecontents} + +\begin{filecontents}{group_example_part4a.tex} +\svnidlong +{$HeadURL: svn://server/group_example_part4a.tex $} +{$LastChangedDate: 2000-01-01 00:00:01 +0000 (Subfile 4a) $} +{$LastChangedRevision: 99 $} +{$LastChangedBy: author3 $} + +\chapter{Subfile 4a} +\chaptervctable +\input{group_example_part4a_sub1.tex} +\end{filecontents} + +\begin{filecontents}{group_example_part4a_sub1.tex} +\svnidlong +{$HeadURL: svn://server/group_example_part4a_sub1.tex $} +{$LastChangedDate: 2000-01-01 00:00:00 +0000 (SubSubfile 4a-1) $} +{$LastChangedRevision: 96 $} +{$LastChangedBy: author2 $} + +\section{SubSubfile 4a-1} +This is a sub file in a sub file. +\svnexternal{{Makefile}} +\end{filecontents} + +\begin{filecontents}{group_example_part4b.tex} +\svnidlong +{$HeadURL: svn://server/group_example_part4b.tex $} +{$LastChangedDate: 2000-01-01 00:00:01 +0000 (Subfile 4b) $} +{$LastChangedRevision: 105 $} +{$LastChangedBy: author2 $} + +\chapter{Subfile 4b} +\chaptervctable +\end{filecontents} + +\begin{filecontents}{group_example_end.tex} +\svnidlong +{$HeadURL: svn://server/group_example_end.tex $} +{$LastChangedDate: 2000-01-01 00:00:01 +0000 (End) $} +{$LastChangedRevision: 100 $} +{$LastChangedBy: author1 $} + +\chapter{End credits} +\chaptervctable +\end{filecontents} + +\begin{filecontents}{group_example_unexpanded.tex} +\svnidlong +{$HeadURL$} +{$LastChangedDate$} +{$LastChangedRevision$} +{$LastChangedBy$} + +\chapter{File with unexpanded keywords} +\chaptervctable +\end{filecontents} + +\svnRegisterAuthor{author1}{Andy Author, I.} +\svnRegisterAuthor{author2}{A. Author, II.} +\svnRegisterAuthor{author3}{Anthony Author, III.} + +% Have VC info on every part page +\let\origpart=\part +\def\part{% +\setpartpreamble{% +\vspace*{5cm} +\par\noindent +\textbf{Version Control Information for this part:}\\[\bigskipamount]% +\begin{tabular}{lp{0.7\textwidth}} +URL of latest File & \svnnolinkurl{\svncgurl}\\ +Name of latest File & \svnnolinkurl{\svncgfname}\\ +Last Changed Revision & \svncgrev\\ +Last Changed Author & \svncgauthor\\ +Last Changed Date & \svncgdate\\ +\end{tabular} +}\origpart +} + +\listfiles +\begin{document} + +% Custom titlepage: +\hbox{}% +\vfill +\pdfbookmark{Title Page}{titlepage}% +{\centering +\Huge\texttt{svn-multi} v2.0 Keyword Groups Example Document\\ +\Large Martin Scharrer\\ +\large 2009/03/01\\ +}% +\vfill +\par\noindent +This is an example and test document for the group feature of svn-multi 2.0. +Please note that the revision keywords were generated manually for testing +purposes. The dates are not consistent with the revisions and contain a debug +name instead of the date text like `(Sat, January 1 2009)'. This doesn't +influence the correct functionality of the svn-multi package.\\ +\bigskip +{\hbox{}\hfill Happy \TeX ing!}\\ +\vfill% +\par\noindent +{\large Version Control Information for this document:\\[\bigskipamount]}% +\begin{tabular}{lp{0.7\textwidth}} +Main URL & \svnnolinkurl{\svnmainurl}\\ +Main File name & \svnnolinkurl{\svnmainfilename}\\ +URL of latest file & \svnnolinkurl{\svnurl}\\ +Name of latest file & \svnnolinkurl{\svnfname}\\ +Last Changed Revision & \svnrev\\ +Last Changed Author & \svnauthor\\ +Last Changed Date & \svndate\\ +\end{tabular} +\bigskip\par\noindent +The main file of this document contains the following SVN +keywords:\\*[-\baselineskip] +\svnlstinputlisting[firstline=3,lastline=7]{\finkpath} +\thispagestyle{empty} +\clearpage + +% Default in Engish +\renewcommand{\svnbeforetable}{% +This is an automatic generated table using the \textbf{\sffamily table} option. +\bigskip\par\noindent +} +\clearpage +\pdfbookmark{Table of Revisions (1)}{tora}% +\tableofrevisions +\clearpage + +% Redefined to German +% Uses booktabs for nicer table +\renewcommand{\svnbeforetable}{% +Can be redefined to another format and language: Verstehen Sie Deutsch? +\bigskip\par\noindent +} +\renewenvironment{svntable}{% +\begin{longtable}{p{6.2cm}rll} +\toprule +} +{% +\bottomrule +\end{longtable} +} +\renewcommand*\svntablehead{% + Name & Rev & Autor & Datum \\ +\midrule[\heavyrulewidth] +} +\renewcommand{\svnrevisionsname}{Revisionen} +\renewcommand{\svntabgroup}[1]{Gruppe `#1'} + +% Some highlight examples: +% Print highest revision bold: +\renewcommand{\svntabrev}[1]{\ifthenelse{#1=\svnrev}{\textbf{#1}}{#1}} +% Highlight all dates after the 14th March 2008 12:00:00: +\renewcommand{\svntabdate}[8]{% + \ifthenelse{#1#2#3#4>2008031412}{\color{red}\bfseries}{}% + \small #3.#2.#1\ #4:#5:#6% +} +% Mark all files last changed by the last author: +\renewcommand{\svntabauthor}[1]{% + \ifthenelse{\equal{#1}{\svnauthor}}{\color{green}}{}% + \svnFullAuthor{#1}% +} + +% Using \scriptsize and \svnnolinkurl for files and subgroups: +\renewcommand{\svntabfile}[2]{% + \addtolength{\leftskip}{#1\medskipamount}% + Datei `{\scriptsize\svnnolinkurl{#2}}' +} +\renewcommand{\svntabsubgroup}[2]{% + \addtolength{\leftskip}{#1\medskipamount}% + Untergruppe `{\scriptsize\svnnolinkurl{#2}}'% +} +\renewcommand{\svntabglobal}[1]{Gesamtes Dokument} + +% Add rule before group rows: +\renewcommand{\svngrouprow}{\midrule} +% Add rule and description after global row: +\renewcommand{\endsvnglobalrow}{\midrule Ohne Gruppe:\\} + +\pdfbookmark{Table of Revisions (2)}{torb}% +\tableofrevisions +\clearpage + + +\svngroup{abc} +\part{Abc} +\include{group_example_part1a} +\include{group_example_part1b} +\include{group_example_part1c} + +\svngroup{def} +\part{Def} +\include{group_example_part2a} +\include{group_example_part2b} + +\svngroup{ghi} +\part{Ghi} +\include{group_example_part3a} +\include{group_example_part3b} + +\svngroup{jkl} +\part{jkl} +\include{group_example_part4a} +\include{group_example_part4b} + +% The rest doesn't belong to a file group: +\svngroup{} +\include{group_example_end} +\include{group_example_unexpanded} + +\chapter*{Reference Examples} +%To reference e.g.\ keyword from group `abc' use: +\section*{Group `abc'} +\svnsetcg{abc} Revision \svncgrev\ from \svncgtoday\ \svncgtime\ done by +\svnFullAuthor{\svncgauthor}. Latest file is \svnnolinkurl{\svncgfname} (URL: \url{\svncgurl}). + +\section*{Subgroup `group\_example\_part3b'} +\svnsetcg{group_example_part3b} Revision \svncgrev\ from \svncgtoday\ \svncgtime\ done by +\svnFullAuthor{\svncgauthor}. Latest file is \svnnolinkurl{\svncgfname} (URL: \url{\svncgurl}). + +\section*{File `group\_example\_part3b.tex'} +\svnsetcg{group_example_part3b.tex} Revision \svncgrev\ from \svncgtoday\ \svncgtime\ done by +\svnFullAuthor{\svncgauthor}. File name and url: \svnnolinkurl{\svncgfname} (URL: \url{\svncgurl}). + + +\end{document} + diff --git a/Master/texmf-dist/doc/latex/svn-multi/svn-multi.pdf b/Master/texmf-dist/doc/latex/svn-multi/svn-multi.pdf index 8fb3a6fe997..32bf5183d6f 100644 Binary files a/Master/texmf-dist/doc/latex/svn-multi/svn-multi.pdf and b/Master/texmf-dist/doc/latex/svn-multi/svn-multi.pdf differ -- cgit v1.2.3