summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/upmethodology/upmethodology-document.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-08-15 18:46:08 +0000
committerKarl Berry <karl@freefriends.org>2007-08-15 18:46:08 +0000
commitb129936adac7b9712df9a011becb010d111ec61f (patch)
treef3eb76c81457520915a2fa06dcf0f36c2e0c08ba /Master/texmf-dist/tex/latex/upmethodology/upmethodology-document.sty
parenta3e65cf58603aec6b27742b833f880c0f3372020 (diff)
new package upmethodology (12aug07)
git-svn-id: svn://tug.org/texlive/trunk@4732 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/upmethodology/upmethodology-document.sty')
-rw-r--r--Master/texmf-dist/tex/latex/upmethodology/upmethodology-document.sty435
1 files changed, 435 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/upmethodology/upmethodology-document.sty b/Master/texmf-dist/tex/latex/upmethodology/upmethodology-document.sty
new file mode 100644
index 00000000000..ed3e10d6d51
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/upmethodology/upmethodology-document.sty
@@ -0,0 +1,435 @@
+% Package for Unified Process Methodology's documents
+%
+% Copyright (c) 2006-2007 Stephane GALLAND <galland@arakhne.org>
+%
+% This program is free library; you can redistribute it and/or modify
+% it under the terms of the GNU Lesser General Public License as
+% published by the Free Software Foundation; either version 3 of the
+% License, or any later version.
+%
+% This library is distributed in the hope that it will be useful, but
+% WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+% Lesser General Public License for more details.
+%
+% You should have received a copy of the GNU Lesser General Public
+% License along with this library; see the file COPYING. If not,
+% write to the Free Software Foundation, Inc., 59 Temple Place - Suite
+% 330, Boston, MA 02111-1307, USA.
+%
+% Creation date: 2006-04-20
+% Modifications:
+% 2007-07-05 Add people name formatting function.
+% 2007-07-03 Add extension feature.
+% 2007-03-19 Add localization.
+% 2006-04-19 Add version number.
+% Add mtabular and mtable.
+% 2006-04-20 Reformat validator list.
+% Add sectioning commands.
+%
+
+\global\edef\upm@package@doc@ver{2007/07/03}
+
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesPackage{upmethodology-document}[\upm@package@doc@ver]
+
+%----------------------------------------
+% LOCALES
+%----------------------------------------
+\def\upm@document@lang@english{%
+ \gdef\upm@lang@@{\message{**** upmethodology-document is using English language ****}}%
+ \gdef\upm@lang@@lang@{english}%
+ \gdef\upm@lang@project{Project}%
+ \gdef\upm@lang@document{Document}%
+ \gdef\upm@lang@docref{Reference}%
+ \gdef\upm@lang@lastupdate{Last Update}%
+ \gdef\upm@lang@lastupdate@short{Updated}%
+ \gdef\upm@lang@document@summary{Document Summary}%
+ \gdef\upm@lang@status{Status}%
+ \gdef\upm@lang@document@authors{Authors}%
+ \gdef\upm@lang@document@informed{Informed People}%
+ \gdef\upm@lang@document@validators{Validators}%
+ \gdef\upm@lang@document@names{Names}%
+ \gdef\upm@lang@document@emails{Emails}%
+ \gdef\upm@lang@document@initials{Initials}%
+}
+\def\upm@document@lang@french{%
+ \gdef\upm@lang@@{\message{**** upmethodology-document is using French language ****}}%
+ \gdef\upm@lang@@lang@{french}%
+ \gdef\upm@lang@project{Projet}%
+ \gdef\upm@lang@document{Document}%
+ \gdef\upm@lang@docref{R\'ef\'erence}%
+ \gdef\upm@lang@lastupdate{Derni\`ere modification}%
+ \gdef\upm@lang@lastupdate@short{Modifi\'e}%
+ \gdef\upm@lang@document@summary{Synoptique}%
+ \gdef\upm@lang@status{Statut}%
+ \gdef\upm@lang@document@authors{Auteurs}%
+ \gdef\upm@lang@document@informed{Pour information}%
+ \gdef\upm@lang@document@validators{Validateurs}%
+ \gdef\upm@lang@document@names{Noms}%
+ \gdef\upm@lang@document@emails{Emails}%
+ \gdef\upm@lang@document@initials{Initiales}%
+}
+
+%----------------------------------------
+% OPTIONS
+%----------------------------------------
+\newif\ifupm@document@langset\upm@document@langsetfalse
+\DeclareOption{french}{%
+ \upm@document@lang@french
+ \upm@document@langsettrue
+}
+\DeclareOption{francais}{%
+ \upm@document@lang@french
+ \upm@document@langsettrue
+}
+\DeclareOption{english}{%
+ \upm@document@lang@english
+}
+\ExecuteOptions{english}
+\ProcessOptions
+
+\upm@lang@@
+
+\ifupm@document@langset\else\PassOptionsToPackage{english}{babel}\fi
+\RequirePackage{babel}
+\RequirePackage{ifthen}
+\RequirePackage{xspace}
+\RequirePackage{graphicx}
+\RequirePackage{vmargin}
+\RequirePackage{url}
+\RequirePackage[pdftex]{thumbpdf} % PDF thumbail
+\RequirePackage[pdftex=true,
+ pdfpagelayout = useoutlines,
+ bookmarks,
+ bookmarksopen = true,
+ bookmarksnumbered = true,
+ breaklinks = true,
+ linktocpage,
+ %backref, % Ecrit le lieu citation (lien) ds la biblio
+ linkcolor = blue,
+ urlcolor = blue,
+ citecolor = blue,
+ anchorcolor = blue,
+ hyperindex = true,
+ hyperfigures
+ ]{hyperref}
+\urlstyle{sf}
+
+\RequirePackage{upmethodology-fmt}
+\RequirePackage{upmethodology-version}
+
+\def\upm@ifnotempty#1{\ifthenelse{\equal{#1}{\@empty}}{}}
+
+%----------------------------------------
+% DOCUMENT MANAGEMENT
+%----------------------------------------
+
+%-----
+% Declare a project's document
+%\declaredocument{project}{name}{ref}
+\newcommand{\declaredocument}[3]{%
+ \gdef\theupmproject{#1}%
+ \gdef\theupmsubproject{}%
+ \gdef\theupmdocname{#2}%
+ \gdef\theupmdocref{#3}%
+}
+
+%-----
+% Declare a project's document
+%\declaredocumentex{project}{subproject}{name}{ref}
+\newcommand{\declaredocumentex}[4]{%
+ \gdef\theupmproject{#1}%
+ \gdef\theupmsubproject{#2}%
+ \gdef\theupmdocname{#3}%
+ \gdef\theupmdocref{#4}%
+}
+
+%-----
+% Display the summary of the document
+%\upmdocumentsummary[width]
+\newcommand{\upmdocumentsummary}[1][\linewidth]{%
+ \noindent\begin{mtabular}[#1]{5}{|X|X|c|c|c|}%
+ \tabulartitle{\upm@lang@document@summary}%
+ \tabularheader{\upm@lang@project}{\upm@lang@document}{\upm@lang@docref}{\upm@lang@version}{\upm@lang@lastupdate}%
+ \hline
+ \theupmproject\upm@ifnotempty{\theupmsubproject}{ -- \theupmsubproject} & \theupmdocname & \theupmdocref & \theupmversion & \theupmdate \\
+ \hline
+ \end{mtabular}\par\vspace{.5cm}%
+}
+
+%-----
+%Name of the project for which this document was written
+\def\theupmproject{Arakhn\^e Project}
+
+%-----
+%Name of the sub-project for which this document was written
+\def\theupmsubproject{}
+
+%-----
+%Name of the document
+\def\theupmdocname{Arakhn\^e Document}
+
+%-----
+%Reference of the document
+\def\theupmdocref{XXX}
+
+
+%-----
+%Name of the logo
+\def\theupmsmalldoclogo{smalllogo}
+\def\theupmdoclogo{logo}
+
+%-----
+% Define the name of the logo picture to use
+\newcommand{\defupmsmalllogo}[1]{\global\edef\theupmsmalldoclogo{#1}}
+\newcommand{\defupmlogo}[1]{\global\edef\theupmdoclogo{#1}}
+
+%-----
+%Full name of the document
+\def\theupmfulldocname{%
+ \theupmproject%
+ \upm@ifnotempty{\theupmsubproject}{/\theupmsubproject}%
+ \upm@ifnotempty{\theupmdocname}{ -- \theupmdocname}%
+}
+
+%----------------------------------------
+% AUTHOR MANAGEMENT
+%----------------------------------------
+
+\def\upm@document@author@tab{}
+
+%-----
+\def\theauthorlist{}
+
+%-----
+%Add an author
+%\addauthor[email]{firstname}{name}
+\newcommand{\addauthor}[3][]{%
+ \global\protected@edef\theauthorlist{\theauthorlist\protect\upm@ifnotempty{\theauthorlist}{,} \protect\upmmakename{#2}{#3}{~}}
+ \global\protected@edef\upm@document@author@tab{\upm@document@author@tab \protect\upmmakename{#2}{#3}{~} &
+ \protect\upm@ifnotempty{#1}{\protect\href{mailto:#1}{#1}} \protect\\}
+}
+
+%-----
+% Display the summary of the authors
+%\upmdocumentauthors[width]
+\newcommand{\upmdocumentauthors}[1][\linewidth]{%
+ \upm@ifnotempty{\upm@document@author@tab}{%
+ \noindent\expandafter\begin{mtabular}[#1]{2}{|X|c|}%
+ \tabulartitle{\upm@lang@document@authors}%
+ \tabularheader{\upm@lang@document@names}{\upm@lang@document@emails}%
+ \upm@document@author@tab
+ \hline%
+ \expandafter\end{mtabular}\par\vspace{.5cm}}%
+}
+
+%----------------------------------------
+% VALIDATOR MANAGEMENT
+%----------------------------------------
+
+\def\upm@document@validator@tab{}
+
+%-----
+\def\thevalidatorlist{}
+
+%-----
+%Add a validator
+%\addvalidator[email]{firstname}{name}
+\newcommand{\addvalidator}[3][]{%
+ \global\protected@edef\thevalidatorlist{\thevalidatorlist\protect\upm@ifnotempty{\thevalidatorlist}{,} \protect\upmmakename{#2}{#3}{~}}
+ \global\protected@edef\upm@document@validator@tab{\upm@document@validator@tab \protect\upmmakename{#2}{#3}{~} &
+ \protect\upm@ifnotempty{#1}{\protect\href{mailto:#1}{#1}} & \protect\\}
+}
+
+%-----
+% Display the summary of the validators
+%\upmdocumentvalidators[width]
+\newcommand{\upmdocumentvalidators}[1][\linewidth]{%
+ \upm@ifnotempty{\upm@document@validator@tab}{%
+ \noindent\expandafter\begin{mtabular}[#1]{3}{|X|c|p{3cm}|}%
+ \tabulartitle{\upm@lang@document@validators}%
+ \tabularheader{\upm@lang@document@names}{\upm@lang@document@emails}{\upm@lang@document@initials}%
+ \upm@document@validator@tab
+ \hline%
+ \expandafter\end{mtabular}\par\vspace{.5cm}}%
+}
+
+
+%-----
+%Add an author/validator
+%\addvalidator[email]{firstname}{name}
+\newcommand{\addauthorvalidator}[3][]{%
+ \addauthor[#1]{#2}{#3}\addvalidator[#1]{#2}{#3}%
+}
+
+%----------------------------------------
+% INFORMED MANAGEMENT
+%----------------------------------------
+
+\def\upm@document@informed@tab{}
+
+%-----
+\def\theinformedlist{}
+
+%-----
+%Add an informed
+%\addinformed[email]{firstname}{name}
+\newcommand{\addinformed}[3][]{%
+ \global\protected@edef\theinformedlist{\theinformedlist\protect\upm@ifnotempty{\theinformedlist}{,} \protect\upmmakename{#2}{#3}{~}}
+ \global\protected@edef\upm@document@informed@tab{\upm@document@informed@tab \protect\upmmakename{#2}{#3}{~} &
+ \protect\upm@ifnotempty{#1}{\protect\href{mailto:#1}{#1}} \protect\\}
+}
+
+%-----
+% Display the summary of the informed people
+%\upmdocumentinformedpeople[width]
+\newcommand{\upmdocumentinformedpeople}[1][\linewidth]{%
+ \upm@ifnotempty{\upm@document@informed@tab}{%
+ \noindent\expandafter\begin{mtabular}[#1]{2}{|X|c|}%
+ \tabulartitle{\upm@lang@document@informed}%
+ \tabularheader{\upm@lang@document@names}{\upm@lang@document@emails}%
+ \upm@document@informed@tab
+ \hline%
+ \expandafter\end{mtabular}\par\vspace{.5cm}}%
+}
+
+%----------------------------------------
+% PUBLISHER
+%----------------------------------------
+
+\gdef\theupmpublisher{Arakhn\^e.org Group}
+\gdef\theupmpublishingdate{}
+
+%-----
+%Set the publisher identity
+%\setpublisher{name}
+\newcommand{\setpublisher}[1]{%
+ \gdef\theupmpublisher{#1}%
+}
+
+%----------------------------------------
+% DOCUMENT SECTIONS
+%----------------------------------------
+
+\gdef\upm@document@section@alignment{}
+
+%-----
+% Part without number but inside the TOC
+%\parttoc [toctitle]{title} % left-alignment inside TOC
+%\parttoc*[toctitle]{title} % right-alignment inside TOC
+\def\parttoc{\@ifstar%
+ {\gdef\upm@document@section@alignment{\protect\numberline{}}\expandafter\upm@document@section@part}%
+ {\gdef\upm@document@section@alignment{}\expandafter\upm@document@section@part}}
+\def\upm@document@section@part{\@ifnextchar [%
+ {\expandafter\upm@document@section@part@opt}%
+ {\expandafter\upm@document@section@part@nopt}}
+\def\upm@document@section@part@opt[#1]#2{%
+ \part*{#2\addcontentsline{toc}{part}{\upm@document@section@alignment{#1}}}%
+ \chaptermark{}%
+}
+\def\upm@document@section@part@nopt#1{%
+ \part*{#1\addcontentsline{toc}{part}{\upm@document@section@alignment{#1}}}%
+ \chaptermark{}%
+}
+
+%-----
+% Chapter without number but inside the TOC
+%\chaptertoc [toctitle]{title} % left-alignment inside TOC
+%\chaptertoc*[toctitle]{title} % right-alignment inside TOC
+\def\chaptertoc{\@ifstar%
+ {\gdef\upm@document@section@alignment{\protect\numberline{}}\expandafter\upm@document@section@chapter}%
+ {\gdef\upm@document@section@alignment{}\expandafter\upm@document@section@chapter}}
+\def\upm@document@section@chapter{\@ifnextchar [%
+ {\expandafter\upm@document@section@chapter@opt}%
+ {\expandafter\upm@document@section@chapter@nopt}}
+\def\upm@document@section@chapter@opt[#1]#2{%
+ \@schapter{#2\addcontentsline{toc}{chapter}{\upm@document@section@alignment{#1}}}%
+ \chaptermark{#1}%
+}
+\def\upm@document@section@chapter@nopt#1{%
+ \@schapter{#1\addcontentsline{toc}{chapter}{\upm@document@section@alignment{#1}}}%
+ \chaptermark{#1}%
+}
+
+%-----
+% Section without number but inside the TOC
+%\sectiontoc [toctitle]{title} % left-alignment inside TOC
+%\sectiontoc*[toctitle]{title} % right-alignment inside TOC
+\def\sectiontoc{\@ifstar%
+ {\gdef\upm@document@section@alignment{\protect\numberline{}}\expandafter\upm@document@section@section}%
+ {\gdef\upm@document@section@alignment{}\expandafter\upm@document@section@section}}
+\def\upm@document@section@section{\@ifnextchar [%
+ {\expandafter\upm@document@section@section@opt}%
+ {\expandafter\upm@document@section@section@nopt}}
+\def\upm@document@section@section@opt[#1]#2{%
+ \section*{#2\addcontentsline{toc}{section}{\upm@document@section@alignment{#1}}}%
+}
+\def\upm@document@section@section@nopt#1{%
+ \section*{#1\addcontentsline{toc}{section}{\upm@document@section@alignment{#1}}}%
+}
+
+%-----
+% Subsection without number but inside the TOC
+%\subsectiontoc [toctitle]{title} % left-alignment inside TOC
+%\subsectiontoc*[toctitle]{title} % right-alignment inside TOC
+\def\subsectiontoc{\@ifstar%
+ {\gdef\upm@document@section@alignment{\protect\numberline{}}\expandafter\upm@document@section@subsection}%
+ {\gdef\upm@document@section@alignment{}\expandafter\upm@document@section@subsection}}
+\def\upm@document@section@subsection{\@ifnextchar [%
+ {\expandafter\upm@document@section@subsection@opt}%
+ {\expandafter\upm@document@section@subsection@nopt}}
+\def\upm@document@section@subsection@opt[#1]#2{%
+ \subsection*{#2\addcontentsline{toc}{subsection}{\upm@document@section@alignment{#1}}}%
+}
+\def\upm@document@section@subsection@nopt#1{%
+ \subsection*{#1\addcontentsline{toc}{subsection}{\upm@document@section@alignment{#1}}}%
+}
+
+%-----
+% Subsubsection without number but inside the TOC
+%\subsubsectiontoc [toctitle]{title} % left-alignment inside TOC
+%\subsubsectiontoc*[toctitle]{title} % right-alignment inside TOC
+\def\subsubsectiontoc{\@ifstar%
+ {\gdef\upm@document@section@alignment{\protect\numberline{}}\expandafter\upm@document@section@subsubsection}%
+ {\gdef\upm@document@section@alignment{}\expandafter\upm@document@section@subsubsection}}
+\def\upm@document@section@subsubsection{\@ifnextchar [%
+ {\expandafter\upm@document@section@subsubsection@opt}%
+ {\expandafter\upm@document@section@subsubsection@nopt}}
+\def\upm@document@section@subsubsection@opt[#1]#2{%
+ \subsubsection*{#2\addcontentsline{toc}{subsubsection}{\upm@document@section@alignment{#1}}}%
+}
+\def\upm@document@section@subsubsection@nopt#1{%
+ \subsubsection*{#1\addcontentsline{toc}{subsubsection}{\upm@document@section@alignment{#1}}}%
+}
+
+%----------------------------------------
+% EXTENSION MANAGEMENT
+%----------------------------------------
+
+%-----
+% Use the specified extension
+%\upmuse{extension_name}
+\newcommand{\upmuse}[1]{%
+ \message{**** including upm extension #1 (upmext-#1.cfg) ****}%
+ {\begingroup%
+ \newcommand{\set}[3][\upm@lang@@lang@]{%
+ % NORMAL LOGO
+ \ifthenelse{\equal{##2}{logo}}{\defupmlogo{##3}}{%
+ % SMALL LOGO
+ \ifthenelse{\equal{##2}{smalllogo}}{\defupmsmalllogo{##3}}{%
+ % PUBLISHER
+ \ifthenelse{\equal{##2}{publisher}}{%
+ \ifthenelse{\equal{\upm@lang@@lang@}{##1}}{%
+ \setpublisher{##3}%
+ }{}%
+ % ERROR ON ATTRIBUTE
+ }{%
+ \errmessage{extension's value '##2' is not supported.}%
+ }}}%
+ }%
+ \input{upmext-#1.cfg}%
+ \endgroup}%
+}
+
+\endinput