From b129936adac7b9712df9a011becb010d111ec61f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 15 Aug 2007 18:46:08 +0000 Subject: new package upmethodology (12aug07) git-svn-id: svn://tug.org/texlive/trunk@4732 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/upmethodology/upmethodology-code.sty | 143 +++++ .../latex/upmethodology/upmethodology-document.cls | 116 ++++ .../latex/upmethodology/upmethodology-document.sty | 435 ++++++++++++++ .../tex/latex/upmethodology/upmethodology-fmt.sty | 634 +++++++++++++++++++++ .../upmethodology/upmethodology-frontpage.sty | 210 +++++++ .../tex/latex/upmethodology/upmethodology-spec.sty | 482 ++++++++++++++++ .../tex/latex/upmethodology/upmethodology-task.sty | 265 +++++++++ .../latex/upmethodology/upmethodology-version.sty | 208 +++++++ 8 files changed, 2493 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/upmethodology/upmethodology-code.sty create mode 100644 Master/texmf-dist/tex/latex/upmethodology/upmethodology-document.cls create mode 100644 Master/texmf-dist/tex/latex/upmethodology/upmethodology-document.sty create mode 100644 Master/texmf-dist/tex/latex/upmethodology/upmethodology-fmt.sty create mode 100644 Master/texmf-dist/tex/latex/upmethodology/upmethodology-frontpage.sty create mode 100644 Master/texmf-dist/tex/latex/upmethodology/upmethodology-spec.sty create mode 100644 Master/texmf-dist/tex/latex/upmethodology/upmethodology-task.sty create mode 100644 Master/texmf-dist/tex/latex/upmethodology/upmethodology-version.sty (limited to 'Master/texmf-dist/tex/latex') diff --git a/Master/texmf-dist/tex/latex/upmethodology/upmethodology-code.sty b/Master/texmf-dist/tex/latex/upmethodology/upmethodology-code.sty new file mode 100644 index 00000000000..548d402c973 --- /dev/null +++ b/Master/texmf-dist/tex/latex/upmethodology/upmethodology-code.sty @@ -0,0 +1,143 @@ +% Source Code Description for Unified Process Methodology +% +% Copyright (c) 2006-2007 Stephane GALLAND +% +% 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-27 +% Modifications: +% + +\global\edef\upm@package@code@ver{2006/04/27} + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{upmethodology-code}[\upm@package@code@ver] + +\RequirePackage{ifthen} +\RequirePackage{xspace} + +\def\upm@code@eat@spaces#1{#1} +\def\upm@code@makemul#1{\upm@code@eat@spaces{#1}\bgroup\textbf{s}\egroup\xspace} + +%----- +%Language +%0: UML +%1: java +%2: C++ +\newcount\upm@code@current@lang + +\DeclareOption{uml}{\upm@code@current@lang=0} +\DeclareOption{java}{\upm@code@current@lang=1} +\DeclareOption{cpp}{\upm@code@current@lang=2} + +\ExecuteOptions{uml} +\ProcessOptions + +%----- +%Language changes +\newcommand{\upmcodelang}[1]{% + \ifthenelse{\equal{#1}{java}}{% + \upm@code@current@lang=1% + }{% + \ifthenelse{\equal{#1}{cpp}}{% + \upm@code@current@lang=2% + }{% + \upm@code@current@lang=0% + }% + }% + \upm@code@declarations% +} + +\def\upm@code@declarations { +%----- +%PROTOTYPES +\gdef\jclass##1{\mbox{\textsc{##1}}\xspace} +\gdef\jinterface##1{\mbox{\textit{##1}}\xspace} +\gdef\jpackage##1{\mbox{\textsc{##1}}\xspace} +\gdef\jfunc##1{\texttt{##1}\xspace} + +%----- +%TYPES +\if\the\upm@code@current@lang 1 + %Java + \gdef\jclazz{\textbf{Class}\xspace} + \gdef\jvoid{\textbf{void}\xspace} + \gdef\jint{\textbf{int}\xspace} + \gdef\jlong{\textbf{long}\xspace} + \gdef\jfloat{\textbf{float}\xspace} + \gdef\jboolean{\textbf{boolean}\xspace} + \gdef\jdouble{\textbf{double}\xspace} + \gdef\jchar{\textbf{char}\xspace} + \gdef\jstring{\jclass{String}\xspace} + \gdef\jarray##1{{{##1}\bgroup\textbf{\string[\string]}\egroup}\xspace} + \gdef\jcollection##1{{\jclass{Collection}\textless{##1}\bgroup\textgreater\egroup}\xspace} + \gdef\jset##1{{\jclass{Set}\textless{##1}\bgroup\textgreater\egroup}\xspace} +\else\if\the\upm@code@current@lang 2 + %C++ + \gdef\jclazz{\textbf{class}\xspace} + \gdef\jvoid{\textbf{void}\xspace} + \gdef\jint{\textbf{int}\xspace} + \gdef\jlong{\textbf{long}\xspace} + \gdef\jfloat{\textbf{float}\xspace} + \gdef\jboolean{\textbf{bool}\xspace} + \gdef\jdouble{\textbf{double}\xspace} + \gdef\jchar{\textbf{char}\xspace} + \gdef\jstring{\jclass{std\string:\string:string}\xspace} + \gdef\jarray##1{{{##1}\bgroup\textbf{\string[\string]}\egroup}\xspace} + \gdef\jcollection##1{{\jclass{std\string:\string:vector}\textless{##1}\bgroup\textgreater\egroup}\xspace} + \gdef\jset##1{{\jclass{std\string:\string:set}\textless{##1}\bgroup\textgreater\egroup}\xspace} +\else + %UML + \gdef\jclazz{\textbf{class}\xspace} + \gdef\jvoid{\textbf{void}\xspace} + \gdef\jint{\textbf{integer}\xspace} + \gdef\jlong{\textbf{long integer}\xspace} + \gdef\jfloat{\textbf{float}\xspace} + \gdef\jboolean{\textbf{boolean}\xspace} + \gdef\jdouble{\textbf{double}\xspace} + \gdef\jchar{\textbf{character}\xspace} + \gdef\jstring{\textbf{string}\xspace} + \gdef\jcollection##1{{\textbf{collection of} \upm@code@makemul{##1}\bgroup\egroup}\xspace} + \gdef\jarray##1{{\textbf{array of} \upm@code@makemul{##1}\bgroup\egroup}\xspace} + \gdef\jset##1{{\textbf{set of} \upm@code@makemul{##1}\bgroup\egroup}\xspace} +\fi\fi + +%----- +%CONSTANTS +\if\the\upm@code@current@lang 1 + %Java + \gdef\jtrue{\textsc{true}\xspace} + \gdef\jfalse{\textsc{false}\xspace} +\else\if\upm@code@current@lang 2 + %C++ + \gdef\jtrue{\textsc{true}\xspace} + \gdef\jfalse{\textsc{false}\xspace} +\else + \gdef\jtrue{\textsc{true}\xspace} + \gdef\jfalse{\textsc{false}\xspace} +\fi\fi + +%----- +%OPERATIONS +\gdef\jop##1{\bgroup\jcode{##1}\egroup} +\gdef\jcall##1##2{\mbox{\jfunc{##1}\bgroup\texttt{\string({##2}\string)}\egroup}\xspace} +\gdef\jcode##1{\texttt{##1}\xspace} + +} + +\upm@code@declarations + +\endinput diff --git a/Master/texmf-dist/tex/latex/upmethodology/upmethodology-document.cls b/Master/texmf-dist/tex/latex/upmethodology/upmethodology-document.cls new file mode 100644 index 00000000000..3860f56c895 --- /dev/null +++ b/Master/texmf-dist/tex/latex/upmethodology/upmethodology-document.cls @@ -0,0 +1,116 @@ +% Document class for Unified Process Methodology +% +% Copyright (c) 2006-2007 Stephane GALLAND +% +% 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-06 +% Modifications: +% 2007-07-03 Force the height of the small logo in headers. +% Remove the copyright date building function. +% 2007-03-19 Add localization. +% 2006-04-19 Add version number. +% 2006-04-20 Add task package. +% 2006-04-21 Add specification package. +% 2006-04-22 Remove task and specification packages. +% + +\global\edef\upm@package@docclazz@ver{2007/07/03} + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{upmethodology-document}[\upm@package@docclazz@ver] + +\DeclareOption{twoside}{% + \PassOptionsToClass{twoside,openright}{book} +} +\DeclareOption{oneside}{% + \PassOptionsToClass{oneside}{book} +} + +\DeclareOption{french}{% + \PassOptionsToClass{french}{book} + \PassOptionsToPackage{french}{upmethodology-document} +} +\DeclareOption{francais}{% + \PassOptionsToClass{french}{book} + \PassOptionsToPackage{french}{upmethodology-document} +} +\DeclareOption{english}{% + \PassOptionsToClass{english}{book} + \PassOptionsToPackage{english}{upmethodology-document} +} + +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}} +\ExecuteOptions{oneside} +\ProcessOptions + +\PassOptionsToClass{a4paper,11pt}{book} +\LoadClass{book} + +\RequirePackage{a4wide} +\RequirePackage{fancyhdr} + +\RequirePackage{upmethodology-document} +\RequirePackage{upmethodology-frontpage} + +\pdfpageheight=29.7cm +\pdfpagewidth=21.0cm + +%---------------------------------------- +% HEADERS AND FOOTERS +%---------------------------------------- + +\def\upm@header@fmt#1{\textsc{\scriptsize #1}} +\def\upm@copyright@fmt#1{\textsc{\tiny #1}} + +\pagestyle{fancyplain} + +\newdimen{\upm@smalllogo@height} +\upm@smalllogo@height=1cm + +\if@twoside + + + +\lhead[\includegraphics[height=\upm@smalllogo@height]{\theupmsmalldoclogo}]{\fancyplain{}{\upm@header@fmt{\theupmfulldocname}}} +\chead{} +\rhead[\fancyplain{}{\upm@header@fmt{\theupmfulldocname}}]{\includegraphics[height=\upm@smalllogo@height]{\theupmsmalldoclogo}} +\lfoot[\upm@header@fmt{\thepage}]{\upm@copyright@fmt{\theupmdocref~\copyright~\upmcopyrightdate~\theupmpublisher}} +\cfoot{} +\rfoot[\upm@copyright@fmt{\tiny\theupmdocref~\copyright~\upmcopyrightdate~\theupmpublisher}]{\upm@header@fmt{\thepage}} + +\else + +\lhead{\fancyplain{}{\upm@header@fmt{\theupmfulldocname}}} +\chead{} +\rhead{\includegraphics[height=\upm@smalllogo@height]{\theupmsmalldoclogo}} +\lfoot{\upm@copyright@fmt{\tiny\theupmdocref~\copyright~\upmcopyrightdate~\theupmpublisher}} +\cfoot{} +\rfoot{\upm@header@fmt{\thepage}} + +\fi + +%---------------------------------------- +% AUTO-GENERATED DOCUMENT +%---------------------------------------- + +\AtBeginDocument{ + \maketitle + \thispagestyle{plain}\upmdocumentsummary\upmdocumentauthors\upmdocumentvalidators\upmdocumentinformedpeople\vfill\upmhistory\cleardoublepage + \sloppy +} + +\endinput 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 +% +% 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 diff --git a/Master/texmf-dist/tex/latex/upmethodology/upmethodology-fmt.sty b/Master/texmf-dist/tex/latex/upmethodology/upmethodology-fmt.sty new file mode 100644 index 00000000000..94915fa0ac5 --- /dev/null +++ b/Master/texmf-dist/tex/latex/upmethodology/upmethodology-fmt.sty @@ -0,0 +1,634 @@ +% Layout and Pagraph Format for Unified Process Methodology +% +% Copyright (c) 2006-2007 Stephane GALLAND +% +% 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-06 +% Modifications: +% 2007-07-07 Override the bibliography functions. +% 2007-07-06 Bug fix: use varioref for the footnote references. +% 2007-07-05 Add people name formatting function. +% 2007-07-02 Add exponent/indice commands and st/nd/rd/th symbols. +% 2007-06-27 Add inline enumeration. +% 2007-03-19 Add date fonctions. +% Add localization. +% 2006-04-19 Add version number. +% Add mtabular and mtable. +% 2006-04-20 Bug fix: invalid position of the tables. +% Bug fix: centering table's headers. +% + +\global\edef\upm@package@fmt@ver{2007/07/06} + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{upmethodology-fmt}[\upm@package@fmt@ver] + +\gdef\upm@fmt@force@single@spacing#1{{\begin{singlespace}#1\end{singlespace}}} +\gdef\upm@date@head#1/#2\@nil{#1} +\gdef\upm@date@tail#1/#2\@nil{#2} +\gdef\upm@date@first#1{{\expandafter\upm@date@head#1\expandafter\@nil}} +\gdef\upm@date@second#1{{\expandafter\expandafter\expandafter\upm@date@head\expandafter\upm@date@tail#1\expandafter\@nil\expandafter\expandafter\expandafter\@nil}} +\gdef\upm@date@third#1{{\expandafter\expandafter\expandafter\upm@date@tail\expandafter\upm@date@tail#1\expandafter\@nil\expandafter\expandafter\expandafter\@nil}} + +%---------------------------------------- +% LOCALES +%---------------------------------------- +\def\upm@format@lang@english{% + \gdef\upm@lang@@{\message{**** upmethodology-fmt is using English language ****}}% + \global\renewcommand{\upm@format@lang@makedate}[3]{##3\string/\two@digits{##2}\string/\two@digits{##1}}% + \global\let\upm@format@lang@extractyear\upm@date@first% + \global\let\upm@format@lang@extractmonth\upm@date@second% +} + \global\let\upm@format@lang@extractyear\upm@date@first% +\def\upm@format@lang@french{% + \gdef\upm@lang@@{\message{**** upmethodology-fmt is using French language ****}}% + \global\renewcommand{\upm@format@lang@makedate}[3]{\two@digits{##1}\string/\two@digits{##2}\string/##3}% + \global\let\upm@format@lang@extractyear\upm@date@third% + \global\let\upm@format@lang@extractmonth\upm@date@second% + \global\let\upm@format@lang@extractday\upm@date@first% +} +\global\providecommand{\upm@format@lang@makedate}[3]{}% + +%---------------------------------------- +% OPTIONS +%---------------------------------------- +\DeclareOption{french}{% + \upm@format@lang@french + \PassOptionsToPackage{french}{varioref} +} +\DeclareOption{francais}{% + \upm@format@lang@french + \PassOptionsToPackage{french}{varioref} +} +\DeclareOption{english}{% + \upm@format@lang@english + \PassOptionsToPackage{english}{varioref} +} +\ExecuteOptions{english} +\ProcessOptions +\upm@lang@@ + + +\RequirePackage{xspace} +\RequirePackage{ifthen} +\RequirePackage{graphicx} +\RequirePackage{subfigure} +\RequirePackage{tabularx} +\RequirePackage{multicol} +\RequirePackage{colortbl} +\RequirePackage{picinpar} +\RequirePackage{amsmath} +\RequirePackage{setspace} +\RequirePackage{varioref} + +%---------------------------------------- +% Exponent and indice +%---------------------------------------- +% Exponent +\newcommand{\textsup}[1]{\ensuremath{^{\text{#1}}}\xspace} +% Indice +\newcommand{\textsub}[1]{\ensuremath{_{\text{#1}}}\xspace} + +%---------------------------------------- +% SYMBOLS +%---------------------------------------- +\let\upm@format@copyright\copyright +\renewcommand{\copyright}{\upm@format@copyright\xspace} +\newcommand{\trademark}{\Pisymbol{psy}{228}\xspace} +\newcommand{\regmark}{\Pisymbol{psy}{226}\xspace} +\newcommand{\smalltrade}{{\tiny\trademark}\xspace} +\newcommand{\smallreg}{{\tiny\regmark}\xspace} +\newcommand{\smallcopy}{{\tiny\copyright}\xspace} +\gdef\st{\textsup{st}} +\gdef\nd{\textsup{nd}} +\gdef\rd{\textsup{rd}} +\gdef\th{\textsup{th}} + + +%---------------------------------------- +% FIGURES +%---------------------------------------- + +\newcommand{\upm@mfigure}[5][ht]{ + \begin{figure}[#1]% + \begin{center}% + \includegraphics[#2]{#3}% + \caption{#4}% + \label{fig:#5}% + \end{center}% + \end{figure}% +} +\newcommand{\upm@mfigurestar}[5][ht]{ + \begin{figure*}[#1]% + \begin{center}% + \includegraphics[#2]{#3}% + \caption{#4}% + \label{fig:#5}% + \end{center}% + \end{figure*}% +} +%----- +%\mfigure[position]{options}{filename}{caption}{label} +\def\mfigure{\@ifstar\upm@mfigurestar\upm@mfigure} +%----- +%\figref{label} +\newcommand{\figref}[1]{\ref{fig:#1}} +%----- +%\figpageref{label} +\newcommand{\figpageref}[1]{\pageref{fig:#1}} + +%----- +% Multi-figures + +\newcounter{upm@subfigure@count} + +\newcommand{\upm@beginsubfigure}[4]{ + \let\upm@mfiguresaved\mfigure + %options,filename,caption,label + \renewcommand{\mfigure}[5][]{ + \xdef\upm@tmp@subfigure@label{\alph{upm@subfigure@count}}% + \subfigure[##4]{% + \includegraphics[##2]{##3}% + \label{fig:##5}% + \label{fig:#4:\upm@tmp@subfigure@label}% + }% + \addtocounter{upm@subfigure@count}{1}% + } + %options,filename,caption + \newcommand{\msubfigure}[3]{ + \xdef\upm@tmp@subfigure@label{\alph{upm@subfigure@count}}% + \subfigure[##3]{% + \includegraphics[##1]{##2}% + \label{fig:#4:\upm@tmp@subfigure@label}% + }% + \addtocounter{upm@subfigure@count}{1}% + } + \setcounter{upm@subfigure@count}{1} + \gdef\upm@mfigurescaption{#3}% + \gdef\upm@mfigureslabel{fig:#4}% + \begin{#1}[#2]\centering % +} + +\newcommand{\upm@endsubfigure}[1]{ + \caption{\upm@mfigurescaption}% + \label{\upm@mfigureslabel}% + \end{#1}% + \let\mfigure\upm@mfiguresaved +} + +%----- +%\mfigures[position]{caption}{label} +\newenvironment{mfigures}[3][ht]{ + \upm@beginsubfigure{figure}{#1}{#2}{#3}% +}{% + \upm@endsubfigure{figure}% +} +%----- +%\mfigures*[position]{caption}{label} +\newenvironment{mfigures*}[3][ht]{ + \upm@beginsubfigure{figure*}{#1}{#2}{#3}% +}{% + \upm@endsubfigure{figure*}% +} + +%---------------------------------------- +% IMAGES INCLUDING TeX EXPRESSIONS +%---------------------------------------- + +\gdef\upm@figtex@remove@width@param#1{#1} +\gdef\upm@figtex@dyncaption@remove{} +\gdef\upm@figtex@figremove#1{% + \global\expandafter\let\csname FIG#1\endcsname\relax% +} +\gdef\upm@figtex@restore{% + \upm@figtex@dyncaption@remove% + \gdef\upm@figtex@dyncaption@remove{} +} +%----- +%\figmath{id}{content} +\def\figmath#1#2{% + \expandafter\gdef\csname FIG#1\endcsname{\ensuremath{#2}}% + \global\protected@edef\upm@figtex@dyncaption@remove{\upm@figtex@dyncaption@remove\protect\upm@figtex@figremove{#1}}% +} +%----- +%\figtext{id}{content} +\def\figtext#1#2{% + \expandafter\gdef\csname FIG#1\endcsname{#2}% + \global\protected@edef\upm@figtex@dyncaption@remove{\upm@figtex@dyncaption@remove\protect\upm@figtex@figremove{#1}}% +} + +\newcommand{\upm@mfigurewtex}[5][ht]{ + \begin{figure}[#1]% + \begin{center}% + \resizebox{\upm@figtex@remove@width@param{#2}}{!}{\input{#3.pstex_t}}% + \caption{#4}% + \label{fig:#5}% + \end{center}% + \end{figure}% + \upm@figtex@restore% +} +\newcommand{\upm@mfigurewtexstar}[5][ht]{ + \begin{figure*}[#1]% + \begin{center}% + \resizebox{\upm@figtex@remove@width@param{#2}}{!}{\input{#3.pstex_t}}% + \caption{#4}% + \label{fig:#5}% + \end{center}% + \end{figure*}% + \upm@figtex@restore% +} +%----- +%\mfigurewtex[position]{width}{filename}{caption}{label} +\def\mfigurewtex{\@ifstar\upm@mfigurewtexstar\upm@mfigurewtex} + +%---------------------------------------- +% TABLES +%---------------------------------------- + +%title of a table +\def\upm@fmt@table@title#1{\color{fronttableheader}{\bfseries #1}} +%title of columns +\def\upm@fmt@table@column@title#1{\mbox{}\hfil{\itshape \mbox{\color{fronttableheader}{#1}}}\hfil\mbox{}} +%table's colors +\definecolor{backtableheader}{rgb}{0.92,0.94,1} +\definecolor{fronttableheader}{rgb}{0.23,0.33,0.48} + +%List of functions able to build an header +\newif\ifupm@havetitle +\def\upm@hline{\\\hline} +\expandafter\def\csname upm@tableheader@b@1\endcsname#1{\protect\upm@fmt@table@column@title{#1} \protect\\} +\expandafter\protected@edef\csname upm@tableheader@b@2\endcsname#1#2{% + \protect\upm@fmt@table@column@title{#1} & \csname upm@tableheader@b@1\endcsname{#2}} +\expandafter\protected@edef\csname upm@tableheader@b@3\endcsname#1#2#3{% + \protect\upm@fmt@table@column@title{#1} & \csname upm@tableheader@b@2\endcsname{#2}{#3}} +\expandafter\protected@edef\csname upm@tableheader@b@4\endcsname#1#2#3#4{% + \protect\upm@fmt@table@column@title{#1} & \csname upm@tableheader@b@3\endcsname{#2}{#3}{#4}} +\expandafter\protected@edef\csname upm@tableheader@b@5\endcsname#1#2#3#4#5{% + \protect\upm@fmt@table@column@title{#1} & \csname upm@tableheader@b@4\endcsname{#2}{#3}{#4}{#5}} +\expandafter\protected@edef\csname upm@tableheader@b@6\endcsname#1#2#3#4#5#6{% + \protect\upm@fmt@table@column@title{#1} & \csname upm@tableheader@b@5\endcsname{#2}{#3}{#4}{#5}{#6}} +\expandafter\protected@edef\csname upm@tableheader@b@7\endcsname#1#2#3#4#5#6#7{% + \protect\upm@fmt@table@column@title{#1} & \csname upm@tableheader@b@6\endcsname{#2}{#3}{#4}{#5}{#6}{#7}} +\expandafter\protected@edef\csname upm@tableheader@b@8\endcsname#1#2#3#4#5#6#7#8{% + \protect\upm@fmt@table@column@title{#1} & \csname upm@tableheader@b@7\endcsname{#2}{#3}{#4}{#5}{#6}{#7}{#8}} +\expandafter\protected@edef\csname upm@tableheader@b@9\endcsname#1#2#3#4#5#6#7#8#9{% + \protect\upm@fmt@table@column@title{#1} & \csname upm@tableheader@b@8\endcsname{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}} + +\expandafter\def\csname upm@tableheader@c@1\endcsname#1{\ifupm@havetitle\else\hline\fi\rowcolor{backtableheader}\csname upm@tableheader@b@1\endcsname{#1}} +\expandafter\def\csname upm@tableheader@c@2\endcsname#1#2{\ifupm@havetitle\else\hline\fi\rowcolor{backtableheader}\csname upm@tableheader@b@2\endcsname{#1}{#2}} +\expandafter\def\csname upm@tableheader@c@3\endcsname#1#2#3{\ifupm@havetitle\else\hline\fi\rowcolor{backtableheader}\csname upm@tableheader@b@3\endcsname{#1}{#2}{#3}} +\expandafter\def\csname upm@tableheader@c@4\endcsname#1#2#3#4{\ifupm@havetitle\else\hline\fi\rowcolor{backtableheader}\csname upm@tableheader@b@4\endcsname{#1}{#2}{#3}{#4}} +\expandafter\def\csname upm@tableheader@c@5\endcsname#1#2#3#4#5{\ifupm@havetitle\else\hline\fi\rowcolor{backtableheader}\csname upm@tableheader@b@5\endcsname{#1}{#2}{#3}{#4}{#5}} +\expandafter\def\csname upm@tableheader@c@6\endcsname#1#2#3#4#5#6{\ifupm@havetitle\else\hline\fi\rowcolor{backtableheader}\csname upm@tableheader@b@6\endcsname{#1}{#2}{#3}{#4}{#5}{#6}} +\expandafter\def\csname upm@tableheader@c@7\endcsname#1#2#3#4#5#6#7{\ifupm@havetitle\else\hline\fi\csname upm@tableheader@b@7\endcsname{#1}{#2}{#3}{#4}{#5}{#6}{#7}} +\expandafter\def\csname upm@tableheader@c@8\endcsname#1#2#3#4#5#6#7#8{\ifupm@havetitle\else\hline\fi\csname upm@tableheader@b@8\endcsname{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}} +\expandafter\def\csname upm@tableheader@c@9\endcsname#1#2#3#4#5#6#7#8#9{\ifupm@havetitle\else\hline\fi\rowcolor{backtableheader}\csname upm@tableheader@b@9\endcsname{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}} + +%----- +%\mtabular[width]{ncolumns}{columns} +\newenvironment{mtabular}[3][\linewidth]{% + \upm@havetitlefalse + \newcommand{\tabulartitle}[1]{\hline\multicolumn{#2}{>{\columncolor{backtableheader}}c}{\upm@fmt@table@title{##1}}\upm@havetitletrue \upm@hline}% + \expandafter\let\expandafter\tabularheader\csname upm@tableheader@c@#2\endcsname% + \tabularx{#1}{#3}% +}{% + \endtabularx% +} + +%----- +%\mtable[position]{width}{ncolumns}{columns}{caption}{label} +\newenvironment{mtable}[6][ht]{% + \table[#1]\center% + \global\protected@edef\upm@table@caption{#5}% + \global\protected@edef\upm@table@label{tab:#6}% + \newcommand{\captionastitle}{\tabulartitle{\upm@table@caption}}% + \mtabular[#2]{#3}{#4}% +}{% + \endmtabular% + \caption{\upm@table@caption}% + \label{\upm@table@label}% + \endcenter\endtable% + \let\upm@table@caption\relax% + \let\upm@table@label\relax% +} + +%----- +%\tabref{label} +\newcommand{\tabref}[1]{\ref{tab:#1}} +%----- +%\tabpageref{label} +\newcommand{\tabpageref}[1]{\pageref{tab:#1}} + +%---------------------------------------- +% PARAGRAPHS +%---------------------------------------- +\setlength{\parindent}{0pt} + +%---------------------------------------- +% COLORIZED SECTION'S TITLES +%---------------------------------------- +\definecolor{titlecolor}{rgb}{0.93,0.41,0} +\definecolor{maintitlecolor}{rgb}{0.24,0.33,0.48} + +\gdef\upm@format@chapternum#1{\textcolor{maintitlecolor}{\huge \scshape #1}} +\gdef\upm@format@chaptertitle#1{\textcolor{maintitlecolor}{ + \Huge\scshape {#1}}} +\gdef\upm@format@sectionnum#1{\textcolor{titlecolor}{#1}} +\gdef\upm@format@sectiontitle#1{\textcolor{titlecolor}{#1}} + +\gdef\@makechapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \upm@format@chapternum{\@chapapp\space \thechapter} + \par\nobreak + \vskip 20\p@ + \fi + \fi + \interlinepenalty\@M + \doublespacing + \upm@format@chaptertitle{#1}\par\nobreak + \vskip 40\p@ + } +} +\gdef\@makeschapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedright + \normalfont + \interlinepenalty\@M + \doublespacing + \upm@format@chaptertitle{#1}\par\nobreak + \vskip 40\p@ + } +} +\renewcommand{\section}{\@startsection{section}{1}{\z@}{-3.5ex \@plus -1ex \@minus -.2ex}{2.3ex \@plus.2ex}{\normalfont\Large\scshape}} +\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}{-3.25ex\@plus -1ex \@minus -.2ex}{1.5ex \@plus .2ex}{\normalfont\large\scshape}} +\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}{-3.25ex\@plus -1ex \@minus -.2ex}{1.5ex \@plus .2ex}{\normalfont\normalsize\scshape}} +\let\upm@format@sect@old\@sect +\gdef\@sect#1#2#3#4#5#6[#7]#8{\upm@format@sect@old{#1}{#2}{#3}{#4}{#5}{#6}[#7]{\upm@format@sectiontitle{#8}}} +\let\upm@format@ssect@old\@ssect +\gdef\@ssect#1#2#3#4#5{\upm@format@ssect@old{#1}{#2}{#3}{#4}{\upm@format@sectiontitle{#5}}} +\gdef\@seccntformat#1{\upm@format@sectionnum{\csname the#1\endcsname/}\quad} + +%---------------------------------------- +% PAGE LAYOUT +%---------------------------------------- +% Update the formatof the saved pages and sections +\AtBeginDocument{ + \renewcommand{\chaptermark}[1]{\markboth{\textsc{#1}}{}} + \renewcommand{\sectionmark}[1]{\markright{\thesection\ \textsc{#1}}} + \renewcommand{\@mkboth}[2]{% + \let\upm@doc@MakeUppercase\MakeUppercase% + \gdef\MakeUppercase##1{##1}% + \chaptermark{#1}% + \let\MakeUppercase\upm@doc@MakeUppercase% + \let\upm@doc@MakeUppercase\relax% + } +} +% Make sure that the page before a part or +% a chapter title was empty +\AtBeginDocument{% + \renewcommand{\cleardoublepage}{% + \clearpage% + \if@twoside\ifodd\c@page% + \else% + \thispagestyle{facingtochapter}% + \hbox{}\newpage% + \if@twocolumn\hbox{}\newpage% + \fi\fi\fi% + } + \newcommand{\ps@facingtochapter}{\ps@empty} + } + +%---------------------------------------- +% BIBLIOGRAPHY +%---------------------------------------- + +%----- +%\bibsize{size} +\newcommand{\bibsize}[1]{\gdef\upm@bibsize{#1}} + +\gdef\upm@bibsize{\small} + +\gdef\@biblabel#1{{\upm@bibsize{[#1]}}} + +\gdef\@lbibitem[#1]#2{\item[\@biblabel{#1}\hfill]\upm@bibsize\if@filesw{% + \let\protect\noexpand\immediate\write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} + +\gdef\@bibitem#1{\item\upm@bibsize\if@filesw% + \immediate\write\@auxout{\string\bibcite{#1}{\the\value{\@listctr}}}\fi\ignorespaces} + +%----- +\let\upm@bibliographystyle\bibliographystyle +\let\upm@bibliography\bibliography +\gdef\upm@bibstyle{abbr} +\renewcommand{\bibliographystyle}[1]{\gdef\upm@bibstyle{#1}} +\renewcommand{\bibliography}[1]{% + \upm@bibliographystyle{\upm@bibstyle}% + \upm@bibliography{#1}% +} + +%---------------------------------------- +% TABLE OF CONTENT +%---------------------------------------- +\setcounter{secnumdepth}{3} +\setcounter{tocdepth}{3} + +%---------------------------------------- +% ENUMERATIONS +%---------------------------------------- +\newcounter{upm@fmt@savedcounter} + +\newcommand{\savecounter}[1]{% + \setcounter{upm@fmt@savedcounter}{\value{#1}}% +} +\newcommand{\restorecounter}[1]{% + \setcounter{#1}{\theupm@fmt@savedcounter}% +} +\newcommand{\saveenumcounter}{\savecounter{\@enumctr}} +\newcommand{\restoreenumcounter}{\restorecounter{\@enumctr}} +\newcommand{\setenumcounter}[1]{\setcounter{\@enumctr}{#1}\addtocounter{\@enumctr}{-1}} +\newcommand{\getenumcounter}{\value{\@enumctr}} + +%---------------------------------------- +% FOOTNOTE +%---------------------------------------- + +\newcommand{\upm@footnoteref}[1]{\mbox{\ensuremath{^{\text{\ref{footnote:#1}}}}}} +\newcommand{\upm@footnotepageref}[1]{\mbox{\ensuremath{^{\text{\ref{footnote:#1}}}_{\text{\tiny \vpageref[]{footnote:#1}}}}}} +\newcommand{\@namelet}[1]{\expandafter\let\csname #1\endcsname} + +\newcommand{\upm@savefootnote}[2]{% + \footnote{#1\label{footnote:#2}}% + \global\@namelet{footnote:#2:cmd}\relax% +} +\newcommand{\upm@savefootnotestar}[2]{% + \global\@namedef{footnote:#2:cmd}{% + \upm@savefootnote{#1}{#2}% + }% +} + +\gdef\savefootnote{\@ifstar\upm@savefootnotestar\upm@savefootnote} + +\newcommand{\upm@reffootnote}[1]{% + \expandafter\ifx\csname footnote:#1:cmd\endcsname\relax% + \upm@footnoteref{#1}% + \else% + \@nameuse{footnote:#1:cmd}% + \fi\xspace% +} +\newcommand{\upm@reffootnotestar}[1]{% + \expandafter\ifx\csname footnote:#1:cmd\endcsname\relax% + \upm@footnotepageref{#1}% + \else% + \@nameuse{footnote:#1:cmd}% + \fi\xspace% +} + +\gdef\reffootnote{\@ifstar\upm@reffootnotestar\upm@reffootnote} + +%---------------------------------------- +% IMAGES IN PARAGRAPHS +%---------------------------------------- + +\newenvironment{umlinpar}[2][width=.45\linewidth]{% +\begin{window}[0,r,{\mbox{\hspace{.5cm}\includegraphics[#1]{#2}\vspace{.5cm}}},{}] +}{% +\end{window}} + +%---------------------------------------- +% DATE +%---------------------------------------- + +%Build a date this a supported format +%\makedate{day}{month}{year} +\let\makedate\upm@format@lang@makedate + +%----- +%Replies the year corresponding to the given supported date +%\extractyear{date} +\let\extractyear\upm@format@lang@extractyear + +%----- +%Replies the month corresponding to the given supported date +%\extractmonth{date} +\let\extractmonth\upm@format@lang@extractmonth + +%----- +%Replies the day corresponding to the given supported date +%\extractday{date} +\let\extractday\upm@format@lang@extractday + +% Redefine the today function +\AtBeginDocument{\global\edef\today{\makedate{\the\day}{\the\month}{\the\year}}} + +%---------------------------------------- +% PEOPLE NAME +%---------------------------------------- + +%\upmmakename[von]{firstname}{lastname}{separator} +\newcommand{\upmmakename}[4][\relax]{% + \ifx#1\relax% + {\mbox{\small #2}#4\textsc{#3}}% + \else% + {\mbox{\small #2}#4\mbox{\small #1}#4\textsc{#3}}% + \fi% + \xspace% +} + +%\makename[von]{firstname}{lastname} +\newcommand{\makename}[3][\relax]{% + \upmmakename[#1]{#2}{#3}{\ } +} + +%---------------------------------------- +% INLINE ENUMERATION +%---------------------------------------- + +\newcounter{@@upm@fmt@inlineenumeration} +\newenvironment{inlineenumeration}{% + \renewcommand{\item}{{(\roman{@@upm@fmt@inlineenumeration}){\addtocounter{@@upm@fmt@inlineenumeration}{1}}}~}% + \setcounter{@@upm@fmt@inlineenumeration}{1}% +}{% +} + +%---------------------------------------- +% SIZE MANAGEMENT +%---------------------------------------- +\newenvironment{upmfontsize}[1]{% + \begingroup% + \let\upm@Huge\Huge% + \let\upm@huge\huge% + \let\upm@normalsize\normalsize% + \let\upm@small\small% + \let\upm@scriptsize\scriptsize% + \let\upm@footnotesize\footnotesize% + \let\upm@tiny\tiny% + % + \ifx#1\Huge% + \let\Huge\upm@Huge% + \let\huge\upm@Huge% + \let\small\upm@huge% + \let\scriptsize\upm@normalsize% + \let\footnotesize\upm@small% + \let\tiny\upm@scriptsize% + \else\ifx#1\huge% + \let\Huge\upm@Huge% + \let\huge\upm@Huge% + \let\small\upm@normalsize% + \let\scriptsize\upm@small% + \let\footnotesize\upm@scriptsize% + \let\tiny\upm@footnotesize% + \else\ifx#1\small% + \let\Huge\upm@huge% + \let\huge\upm@normalsize% + \let\small\upm@scriptsize% + \let\scriptsize\upm@footnotesize% + \let\footnotesize\upm@tiny% + \let\tiny\upm@tiny% + \else\ifx#1\scriptsize% + \let\Huge\upm@normalsize% + \let\huge\upm@small% + \let\small\upm@footnotesize% + \let\scriptsize\upm@tiny% + \let\footnotesize\upm@tiny% + \let\tiny\upm@tiny% + \else\ifx#1\footnotesize% + \let\Huge\upm@small% + \let\huge\upm@scriptsize% + \let\small\upm@tiny% + \let\scriptsize\upm@tiny% + \let\footnotesize\upm@tiny% + \let\tiny\upm@tiny% + \else\ifx#1\tiny% + \let\Huge\upm@scriptsize% + \let\huge\upm@footnotesize% + \let\small\upm@tiny% + \let\scriptsize\upm@tiny% + \let\footnotesize\upm@tiny% + \let\tiny\upm@tiny% + \fi% + \fi% + \fi% + \fi% + \fi% + \fi% + #1% +}{\endgroup} + +\endinput diff --git a/Master/texmf-dist/tex/latex/upmethodology/upmethodology-frontpage.sty b/Master/texmf-dist/tex/latex/upmethodology/upmethodology-frontpage.sty new file mode 100644 index 00000000000..0f35ac7e19d --- /dev/null +++ b/Master/texmf-dist/tex/latex/upmethodology/upmethodology-frontpage.sty @@ -0,0 +1,210 @@ +% Front page for Unified Process Methodology +% +% Copyright (c) 2006-2007 Stephane GALLAND +% +% 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-11 +% Modifications: +% 2007-07-05 Add people name formatting function. +% 2007-07-03 Force single spacing inside the title. +% 2007-03-19 Add localization. +% 2006-04-19 Add version number. +% + +\global\edef\upm@package@fp@ver{2007/07/04} + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{upmethodology-frontpage}[\upm@package@fp@ver] + +%----- +% Locales +\def\upm@front@lang@english{ + \gdef\upm@lang@@{\message{**** upmethodology-frontpage is using English language ****}}% + \gdef\upm@lang@front@authors{\upm@lang@document@authors} +} +\def\upm@front@lang@french{ + \gdef\upm@lang@@{\message{**** upmethodology-frontpage is using French language ****}}% + \gdef\upm@lang@front@authors{\upm@lang@document@authors} +} +%---------------------------------------- +% OPTIONS +%---------------------------------------- +\DeclareOption{french}{% + \upm@front@lang@french +} +\DeclareOption{francais}{% + \upm@front@lang@french +} +\DeclareOption{english}{% + \upm@front@lang@english +} +\ExecuteOptions{english} +\ProcessOptions +\upm@lang@@ + +\RequirePackage{xspace} +\RequirePackage{tabularx} +\RequirePackage{graphicx} +\RequirePackage{setspace} + +\RequirePackage{upmethodology-document} + +% Declare the temporary dimensions +\newdimen\upm@front@tmpa +\newdimen\upm@front@tmpb + +%----- +% String format +\def\upm@front@force@single@spacing#1{{\begin{singlespace}#1\end{singlespace}}} +\def\upm@front@maintitle@fmt#1{\Huge \scshape #1} +\def\upm@front@project@fmt#1{\textbf{\Large #1}} +\def\upm@front@subproject@fmt#1{\textbf{\large #1}} +\def\upm@front@document@fmt#1{\textbf{\normalsize #1}} +\def\upm@front@info@fmt#1{{\normalsize #1}} +\def\upm@front@author@fmt#1{% + \begin{upmfontsize}{\small}#1\end{upmfontsize}% + } + +%----- +% Define the command to put the title with a classic layout +\newcommand{\upm@front@layout@classic}{% + \begin{titlepage}% + \begin{center} + + % Illustration picture + \ifx\upm@front@illustration\relax + \noindent\vfill\includegraphics[width=.4\linewidth]{\theupmdoclogo} + \else + \noindent\expandafter\includegraphics[width=\upm@front@illustration@size\expandafter\linewidth]{\upm@front@illustration} + \fi + + % Project name + \vspace{1cm} + \upm@front@force@single@spacing{\upm@front@maintitle@fmt{\theupmproject}} + \vspace{1cm} + + % Document title + \noindent\rule{\linewidth}{1mm} \\ + \noindent\raggedleft\upm@front@project@fmt{\theupmproject} \\ + \upm@ifnotempty{\theupmsubproject}{\noindent\raggedleft\upm@front@subproject@fmt{\theupmsubproject}\\} + \vspace{.5cm} + \noindent\raggedleft\upm@front@document@fmt{\theupmdocname} \\ + \noindent\rule{\linewidth}{1mm} \\ + + \vspace{1cm} + + % Document information + \noindent\raggedleft\begin{tabular}{rr} + \upm@front@info@fmt{\upm@lang@docref:} & \upm@front@info@fmt{\theupmdocref} \\ + \upm@front@info@fmt{\upm@lang@version:} & \upm@front@info@fmt{\theupmversion} \\ + \upm@front@info@fmt{\upm@lang@lastupdate@short:} & \upm@front@info@fmt{\theupmdate} \\ + \upm@front@info@fmt{\upm@lang@status:} & \upm@front@info@fmt{\theupmstatus} \\ + \end{tabular} + + \vfill + \ifx\upm@front@illustration\relax + \noindent\raggedleft\upm@front@author@fmt{\upm@lang@front@authors:~\theauthorlist} \\ + \else + \noindent\begin{tabularx}{\linewidth}{l>{\raggedleft}X} + \includegraphics[width=.3\linewidth]{\theupmdoclogo} & + \upm@front@author@fmt{\upm@lang@front@authors:~\theauthorlist} \\ + \end{tabularx} + \fi + + \end{center} + \end{titlepage} +} + + +%----- +% Define the command to put the title with a classic layout +\newcommand{\upm@front@layout@modern}{% + \begin{titlepage}% + % Project name + \upm@front@maintitle@fmt{\theupmproject} \\ + \noindent\rule{\linewidth}{.5mm} \\ + + % Document title + \upm@ifnotempty{\theupmsubproject}{\noindent\raggedright\upm@front@subproject@fmt{\theupmsubproject}\\} + \vspace{.5cm} + \noindent\raggedright\upm@front@force@single@spacing{\upm@front@document@fmt{\theupmdocname}} + + \vfill + + \vbox{ + \begin{picture}(0,0) + \ifx\upm@front@illustration\relax + \else + \put(-110,-100){ + \includegraphics[width=\upm@front@illustration@size\expandafter\linewidth]{\upm@front@illustration} + } + \fi + \upm@front@tmpa=\linewidth + \advance\upm@front@tmpa-.4\linewidth + \put(\strip@pt\upm@front@tmpa,75){ + \begin{tabular*}{.4\linewidth}{lr} + \upm@front@info@fmt{\upm@lang@docref:} & \upm@front@info@fmt{\theupmdocref} \\ + \upm@front@info@fmt{\upm@lang@version:} & \upm@front@info@fmt{\theupmversion} \\ + \upm@front@info@fmt{\upm@lang@lastupdate@short:} & \upm@front@info@fmt{\theupmdate} \\ + \upm@front@info@fmt{\upm@lang@status:} & \upm@front@info@fmt{\theupmstatus} \\ + \end{tabular*} + } + \upm@front@tmpa=\linewidth + \advance\upm@front@tmpa-.3\linewidth + \put(\strip@pt\upm@front@tmpa,-50){ + \includegraphics[width=.3\linewidth]{\theupmdoclogo}% + } + \end{picture} + + } + \end{titlepage} +} + +%---- +% Set the front page layout as the classic layout theme +%\setfrontlayout{layout_name} +\newcommand{\setfrontlayout}[1]{% + \ifthenelse{\equal{#1}{classic}}{% + \gdef\upm@front@illustration@size{.6} + \global\let\upm@front@layout\upm@front@layout@classic% + }{% + \ifthenelse{\equal{#1}{modern}}{% + \gdef\upm@front@illustration@size{1} + \global\let\upm@front@layout\upm@front@layout@modern% + }{% + \errmessage{invalid front layout theme: #1}% + }% + }% +} + +\setfrontlayout{classic} + +\AtBeginDocument{% + \renewcommand{\maketitle}{\upm@front@layout}% +} + +\let\upm@front@illustration\relax + +%---- +% Set the illustration figure on the front page +%\setfrontillustration[size_factor]{filename} +\newcommand{\setfrontillustration}[2][1]{% + \gdef\upm@front@illustration{#2}% + \gdef\upm@front@illustration@size{#1}% +} + +\endinput diff --git a/Master/texmf-dist/tex/latex/upmethodology/upmethodology-spec.sty b/Master/texmf-dist/tex/latex/upmethodology/upmethodology-spec.sty new file mode 100644 index 00000000000..4249e7b44a7 --- /dev/null +++ b/Master/texmf-dist/tex/latex/upmethodology/upmethodology-spec.sty @@ -0,0 +1,482 @@ +% Specification Description for Unified Process Methodology +% +% Copyright (c) 2006-2007 Stephane GALLAND +% +% 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-27 +% Modifications: +% 2007-03-19 Add localization. +% + +\global\edef\upm@package@spec@ver{2007/03/19} + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{upmethodology-spec}[\upm@package@spec@ver] + +\RequirePackage[normalem]{ulem} +\RequirePackage{tabularx} + +\RequirePackage{upmethodology-fmt} +\RequirePackage{upmethodology-code} + +%------------------------------------ +% LOCALIZATION +%------------------------------------ +\def\upm@spec@lang@english { + \gdef\upm@lang@@{\message{**** upmethodology-spec is using English language ****}}% + \gdef\upm@spec@lang@description{Description} + \gdef\upm@spec@lang@returned@values{returned value(s)} + \gdef\upm@spec@lang@except@for{Except for} + \gdef\upm@spec@lang@modifier@public{{\tiny+}} + \gdef\upm@spec@lang@modifier@protected{{\tiny\#}} + \gdef\upm@spec@lang@modifier@private{{\tiny--}} + \gdef\upm@spec@lang@modifier@static##1{{\uline{##1}}} + \gdef\upm@spec@lang@modifier@const{query} + \gdef\upm@spec@lang@modifier@final{isLeaf} + \gdef\upm@spec@lang@modifier@abstract{abstract} + \gdef\upm@spec@lang@modifier@root{isRoot} + \gdef\upm@spec@lang@modifier@inout{\ensuremath{\leftrightarrow}} + \gdef\upm@spec@lang@modifier@in{\ensuremath{\rightarrow}} + \gdef\upm@spec@lang@modifier@out{\ensuremath{\leftarrow}} +} +\def\upm@spec@lang@french { + \gdef\upm@lang@@{\message{**** upmethodology-spec is using French language ****}}% + \gdef\upm@spec@lang@description{Description} + \gdef\upm@spec@lang@returned@values{valeur(s) retourn\'ee(s)} + \gdef\upm@spec@lang@except@for{Except\'e pour} + \gdef\upm@spec@lang@modifier@public{{\tiny+}} + \gdef\upm@spec@lang@modifier@protected{{\tiny\#}} + \gdef\upm@spec@lang@modifier@private{{\tiny--}} + \gdef\upm@spec@lang@modifier@static##1{{\uline{##1}}} + \gdef\upm@spec@lang@modifier@const{requ\^ete} + \gdef\upm@spec@lang@modifier@final{estFeuille} + \gdef\upm@spec@lang@modifier@abstract{abstra\^{\i}t} + \gdef\upm@spec@lang@modifier@root{estRacine} + \gdef\upm@spec@lang@modifier@inout{\ensuremath{\leftrightarrow}} + \gdef\upm@spec@lang@modifier@in{\ensuremath{\rightarrow}} + \gdef\upm@spec@lang@modifier@out{\ensuremath{\leftarrow}} +} + +%---------------------------------------- +% OPTIONS +%---------------------------------------- +\DeclareOption{french}{% + \upm@spec@lang@french +} +\DeclareOption{francais}{% + \upm@spec@lang@french +} +\DeclareOption{english}{% + \upm@spec@lang@english +} +\ExecuteOptions{english} +\ProcessOptions +\upm@lang@@ + +%------------------------------------ +% DETAILLED SPECIFICATION +%------------------------------------ + +\newlength{\upm@spec@detailspec@description@width} +\setlength{\upm@spec@detailspec@description@width}{3cm} + +\newsavebox{\upm@spec@detailspec@savebox} +\newlength{\upm@spec@detailspec@itrn@width} + +\newcounter{upm@detailspec@return@counter} +\newcounter{upm@detailspec@function@counter} + +\newif\ifupm@spec@showdescription +\newif\ifupm@spec@showparams +\newif\ifupm@spec@showreturns +\newif\ifupm@spec@firstparam +\newif\ifupm@spec@modifier@has@static +\newif\ifupm@spec@modifier@has@const +\newif\ifupm@spec@modifier@has@final +\newif\ifupm@spec@modifier@has@abstract +\newif\ifupm@spec@modifier@has@root +\newif\ifupm@spec@modifier@has@public +\newif\ifupm@spec@modifier@has@protected +\newif\ifupm@spec@modifier@has@private +\newif\ifupm@spec@tmp@a + +\newcommand{\upm@spec@head}[2]{#1} +\newcommand{\upm@spec@tail}[2]{#2} + +%----- +%\upm@spec@func@modifiers{modifiers} +\newcommand{\upm@spec@func@modifiers}[1]{% + \global\upm@spec@modifier@has@staticfalse% + \global\upm@spec@modifier@has@constfalse% + \global\upm@spec@modifier@has@finalfalse% + \global\upm@spec@modifier@has@abstractfalse% + \global\upm@spec@modifier@has@rootfalse% + \global\upm@spec@modifier@has@publicfalse% + \global\upm@spec@modifier@has@protectedfalse% + \global\upm@spec@modifier@has@privatefalse% + \upm@spec@func@modifiers@scan{#1}% +} +\newcommand{\upm@spec@func@modifiers@scan}[1]{% + \upm@ifnotempty{#1}{% + \edef\upm@reserved@a{\upm@spec@head #1\@empty\@empty}% + \edef\upm@reserved@b{\upm@spec@tail #1\@empty\@empty}% + \ifthenelse{\equal{\upm@reserved@a}{+}}{% + %public + \global\upm@spec@modifier@has@publictrue% + \global\upm@spec@modifier@has@protectedfalse% + \global\upm@spec@modifier@has@privatefalse% + }{% + \ifthenelse{\equal{\upm@reserved@a}{=}}{% + %protected + \global\upm@spec@modifier@has@publicfalse% + \global\upm@spec@modifier@has@protectedtrue% + \global\upm@spec@modifier@has@privatefalse% + }{% + \ifthenelse{\equal{\upm@reserved@a}{\#}}{% + %protected + \global\upm@spec@modifier@has@publicfalse% + \global\upm@spec@modifier@has@protectedtrue% + \global\upm@spec@modifier@has@privatefalse% + }{% + \ifthenelse{\equal{\upm@reserved@a}{-}}{% + %protected + \global\upm@spec@modifier@has@publicfalse% + \global\upm@spec@modifier@has@protectedfalse% + \global\upm@spec@modifier@has@privatetrue% + }{% + \ifthenelse{\equal{\upm@reserved@a}{s}}{% + %static + \global\upm@spec@modifier@has@statictrue% + }{% + \ifthenelse{\equal{\upm@reserved@a}{c}}{% + %query / const + \global\upm@spec@modifier@has@consttrue% + }{% + \ifthenelse{\equal{\upm@reserved@a}{l}}{% + %isLeaf + \global\upm@spec@modifier@has@finaltrue% + }{% + \ifthenelse{\equal{\upm@reserved@a}{a}}{% + %abstract + \global\upm@spec@modifier@has@abstracttrue% + }{% + \ifthenelse{\equal{\upm@reserved@a}{r}}{% + %isRoot + \global\upm@spec@modifier@has@roottrue% + }{}}}}}}}}}% + \expandafter\upm@spec@func@modifiers@scan{\upm@reserved@b}% + }% +} + +%----- +%\upm@spec@param@modifiers{modifiers} +\newcommand{\upm@spec@param@modifiers}[1]{% + \upm@ifnotempty{#1}{% + \ifthenelse{\equal{#1}{out}}{% + %out + \upm@spec@lang@modifier@out% + }{ + \ifthenelse{\equal{#1}{inout}}{% + %inout + \upm@spec@lang@modifier@inout% + }{ + %in + \upm@spec@lang@modifier@in% + }} + }% +} + +%----- +\def\upm@spec@trim#1{#1} +\newcommand{\upm@spec@splitparams}[1]{% + \upm@ifnotempty{#1}{% + \upm@spec@firstparamtrue + \@for\reserved@a:=#1\do{% + \ifupm@spec@firstparam\upm@spec@firstparamfalse\else, \fi% + \mbox{\upm@spec@trim{\reserved@a}}% + }% + \upm@spec@trim + }% +} + +%----- +%\begin{upm@spec@detailspec}[width]{title}...\end{detailspec} +\newenvironment{upm@spec@detailspec}[2][\linewidth]{% + + \setcounter{upm@detailspec@return@counter}{0} + \setcounter{upm@detailspec@function@counter}{0} + + \gdef\upm@spec@detailspec@width{#1} + \gdef\upm@spec@detailspec@title{#2} + \gdef\upm@spec@functions{} + \gdef\upm@spec@parameters{} + \gdef\upm@spec@global@return{} + \gdef\upm@spec@local@return{} + + %----- + %\speccons[modifiers]{name}{prototype} + \newcommand{\speccons}[3][]{\specfunc[##1]{}{##2}{##3}} + + %----- + %\specget[modifiers]{return_type}{name} + \newcommand{\specget}[3][]{\specfunc[c##1]{##2}{##3}{}} + + %----- + %\specset[modifiers]{name}{prototype} + \newcommand{\specset}[3][]{\specfunc[##1]{\jvoid}{##2}{##3}{}} + + %----- + %\specfunc[modifiers]{return_type}{name}{prototype} + \newcommand{\specfunc}[4][+]{% + \addtocounter{upm@detailspec@function@counter}{1}% + \protected@xdef\upm@spec@reserved@a{\protect\csname upm@detailspec@return@ptr@\theupm@detailspec@function@counter\endcsname}% + \gdef\upm@spec@reserved@b{} + \upm@ifnotempty{##2}{\gdef\upm@spec@reserved@b{\string:\ }} + + \gdef\upm@spec@reserved@c{}% + \upm@spec@func@modifiers{##1}% + \ifupm@spec@modifier@has@private\gdef\upm@spec@reserved@c{\upm@spec@lang@modifier@private}% + \else\ifupm@spec@modifier@has@protected\gdef\upm@spec@reserved@c{\upm@spec@lang@modifier@protected}% + \else\gdef\upm@spec@reserved@c{\upm@spec@lang@modifier@public}\fi\fi% + + \gdef\upm@spec@reserved@d{##3}% + \ifupm@spec@modifier@has@static% + \protected@xdef\upm@spec@reserved@d{\protect\upm@spec@lang@modifier@static{\upm@spec@reserved@d}}% + \fi% + + \gdef\upm@spec@reserved@e{}% + \upm@spec@tmp@afalse% + \ifupm@spec@modifier@has@const\upm@spec@tmp@atrue\fi% + \ifupm@spec@modifier@has@final\upm@spec@tmp@atrue\fi% + \ifupm@spec@modifier@has@abstract\upm@spec@tmp@atrue\fi% + \ifupm@spec@modifier@has@root\upm@spec@tmp@atrue\fi% + \ifupm@spec@tmp@a% + \ifupm@spec@modifier@has@const% + \gdef\upm@spec@reserved@e{\upm@spec@lang@modifier@const}% + \fi + \ifupm@spec@modifier@has@final% + \upm@ifnotempty{\upm@spec@reserved@e}{% + \xdef\upm@spec@reserved@e{\upm@spec@reserved@e,}}% + \protected@xdef\upm@spec@reserved@e{\upm@spec@reserved@e\protect\upm@spec@lang@modifier@final}% + \fi + \ifupm@spec@modifier@has@abstract% + \upm@ifnotempty{\upm@spec@reserved@e}{% + \xdef\upm@spec@reserved@e{\upm@spec@reserved@e,}}% + \protected@xdef\upm@spec@reserved@e{\upm@spec@reserved@e\protect\upm@spec@lang@modifier@abstract}% + \fi + \ifupm@spec@modifier@has@root% + \upm@ifnotempty{\upm@spec@reserved@e}{% + \xdef\upm@spec@reserved@e{\upm@spec@reserved@e,}}% + \protected@xdef\upm@spec@reserved@e{\upm@spec@reserved@e\protect\upm@spec@lang@modifier@root}% + \fi + \protected@xdef\upm@spec@reserved@e{ \protect\{\upm@spec@reserved@e\protect\}} + \fi% + + \protected@xdef\upm@spec@functions{\upm@spec@functions {\upm@spec@reserved@c}\protect&% + {\upm@spec@reserved@d}\protect&% + \string(\protect&\protect\upm@spec@splitparams{##4}\string) {\upm@spec@reserved@b##2{\upm@spec@reserved@a}{\upm@spec@reserved@e}}\protect\\}% + + \global\let\upm@spec@reserved@a\relax + \global\let\upm@spec@reserved@b\relax + \global\let\upm@spec@reserved@c\relax + \global\let\upm@spec@reserved@d\relax + \global\let\upm@spec@reserved@e\relax + \expandafter\gdef\csname upm@detailspec@return@ptr@\theupm@detailspec@function@counter\endcsname{} + } + + %----- + %\specreturn{description} + \newcommand{\specreturn}[1]{% + \addtocounter{upm@detailspec@return@counter}{1}% + \expandafter\protected@xdef\csname upm@detailspec@return@ptr@\theupm@detailspec@function@counter\endcsname{% + {\protect\tiny\protect\ensuremath{_{\protect\string[\theupm@detailspec@return@counter\protect\string]}}}% + }% + \protected@xdef\upm@spec@local@return{\upm@spec@local@return {\protect\tiny\protect\string[\theupm@detailspec@return@counter\protect\string]} \protect& ##1 \protect\\}% + } + + %----- + %\specglobalreturn{description} + \newcommand{\specglobalreturn}[1]{\gdef\upm@spec@global@return{##1}} + + %----- + %\specparam[in|inout|out]{name}{description} + \newcommand{\specparam}[3][in]{% + \protected@xdef\upm@spec@parameters{\upm@spec@parameters \protect\upm@spec@param@modifiers{##1} \protect& {##2:} \protect& {##3} \protect\\} + } + + %----- + %\specendhline + \newcommand{\specendhline}{\gdef\upm@detailspec@end@hline{\hline}} + + %----- + %\specstarthline + \newcommand{\specstarthline}{\gdef\upm@detailspec@start@hline{\hline}} + + \setlength{\upm@spec@detailspec@itrn@width}{#1} + \addtolength{\upm@spec@detailspec@itrn@width}{-\the\upm@spec@detailspec@description@width} + \addtolength{\upm@spec@detailspec@itrn@width}{-2\tabcolsep} + + \begin{lrbox}{\upm@spec@detailspec@savebox} + \begin{minipage}[t]{\upm@spec@detailspec@itrn@width}% +}{% + \end{minipage} + \end{lrbox}% + + \gdef\upm@detailspec@separator{} + \upm@spec@showreturnsfalse% + + \ifthenelse{\equal{\upm@spec@global@return}{\@empty}}{% + \gdef\upm@detailspec@return@section{} + \upm@ifnotempty{\upm@spec@local@return}{ + \gdef\upm@detailspec@separator{ & & & \\} + \protected@xdef\upm@detailspec@return@section{\upm@spec@local@return}% + \upm@spec@showreturnstrue% + }% + }{% + \upm@ifnotempty{\upm@spec@local@return}{% + \gdef\upm@detailspec@separator{ & & & \\} + \gdef\upm@spec@reserved@a{ \upm@spec@lang@except@for:\protect\upm@spec@local@return}}% + \protected@xdef\upm@detailspec@return@section{% + \upm@spec@global@return\upm@spec@reserved@a% + }% + \upm@spec@showreturnstrue% + } + + \ifthenelse{\equal{\upm@spec@detailspec@title}{\@empty}}{ + \gdef\upm@spec@reserved@c{} + }{ + \gdef\upm@spec@reserved@c{\hline% + \multicolumn{4}{>{\columncolor{backtableheader}}l}{\color{fronttableheader}{\large\textsc{\upm@spec@detailspec@title}}} \\% + } + \gdef\upm@detailspec@start@hline{\hline}% + \upm@spec@showdescriptiontrue% + } + + \upm@spec@showparamsfalse% + + \upm@ifnotempty{\upm@spec@parameters}{% + \ifupm@spec@showdescription% + \gdef\upm@detailspec@separator{ & & & \\}% + \fi% + \upm@ifnotempty{\upm@spec@functions}{% + \gdef\upm@detailspec@separator{ & & & \\}% + }% + \upm@spec@showparamstrue% + }% + +% \global\let\upm@arraycr\@arraycr +% \gdef\@arraycr{(\the\pagetotal)\upm@arraycr} +% \newdimen\upm@spec@total\upm@spec@total\pagetotal +% \newdimen\upm@spec@left +% \upm@spec@left=\@colroom +% \gdef\@arraycr{ +% \upm@arraycr +% } +% \newdimen\upm@spec@pagesize +% \upm@spec@pagesize=\@colroom + +% \def\upm@spec@arraycr{{\ifnum0=`}\fi\@ifstar{\upm@spec@xarraycr}{\upm@spec@xarraycr}} +% \def\upm@spec@xarraycr{\@ifnextchar[{\upm@spec@argarraycr}{\ifnum0=`{\fi}\cr\upm@spec@cr}} +% \def\upm@spec@argarraycr[#1]{% +% \ifnum0=`{\fi}% +% \ifdim #1>\z@ +% \unskip\ST@xargarraycr{#1} +% \else +% \ST@yargarraycr{#1}% +% \fi} +% \def\ST@xargarraycr#1{% +% \@tempdima #1\advance\@tempdima \dp \@arstrutbox +% \vrule \@height\z@ \@depth\@tempdima \@width\z@ \cr +% \noalign{\global\ST@toadd=#1}\ST@cr} +% \def\ST@yargarraycr#1{% +% \cr\noalign{\vskip #1\global\ST@toadd=#1}\ST@cr} + + \vspace{.5cm}\noindent\begin{tabularx}{\the\upm@spec@detailspec@width}{|clr@{}>{\raggedright\arraybackslash}X|} + \upm@spec@reserved@c% + \upm@detailspec@start@hline% + \ifupm@spec@showdescription + \multicolumn{4}{|X|}{% + \begin{tabularx}{\linewidth}{@{}lX@{}}% + \upm@spec@lang@description: & \usebox{\upm@spec@detailspec@savebox} \\% + \end{tabularx}% + } \\% + \hline% + \fi + \upm@spec@functions% + \upm@detailspec@separator% + \ifupm@spec@showparams% + \multicolumn{4}{|X|}{% + \begin{tabularx}{\linewidth}{@{}l@{}lX@{}}% + \upm@spec@parameters% + \end{tabularx}% + } \\% + \fi% + \ifupm@spec@showreturns% + \multicolumn{4}{|X|}{% + \textit{\upm@spec@lang@returned@values}: \newline% + \begin{tabularx}{\linewidth}{@{}lX@{}}% + \upm@detailspec@return@section% + \end{tabularx}% + } \\% + \fi% + \upm@detailspec@end@hline% + \end{tabularx}\vspace{.5cm}% + + \global\let\@arraycr\upm@arraycr + + \global\let\upm@spec@detailspec@width\relax% + \global\let\upm@spec@detailspec@title\relax% + \global\let\upm@spec@functions\relax% + \global\let\upm@spec@parameters\relax% + \global\let\upm@spec@global@return\relax% + \global\let\upm@spec@local@return\relax% + \global\let\upm@detailspec@return@section\relax% + \global\let\upm@spec@reserved@a\relax% + \global\let\upm@spec@reserved@b\relax% + \global\let\upm@spec@reserved@c\relax% + \global\let\upm@detailspec@separator\relax% + \global\let\upm@detailspec@start@hline\relax% + \global\let\upm@detailspec@end@hline\relax% +} + +%----- +%\begin{detailspec}}[width]{title}...\end{detailspec}.... +\newenvironment{detailspec}[2][\linewidth] +{% + \upm@spec@showdescriptiontrue% + \gdef\upm@detailspec@start@hline{\hline}% + \gdef\upm@detailspec@end@hline{\hline}% + \begin{upm@spec@detailspec}[#1]{#2}% +} +{% + \end{upm@spec@detailspec}% +} + +%----- +%\begin{detailspec}}[width]{title}...\end{detailspec}.... +\newenvironment{detailspec*}[2][\linewidth] +{% + \upm@spec@showdescriptionfalse% + \gdef\upm@detailspec@start@hline{}% + \gdef\upm@detailspec@end@hline{}% + \begin{upm@spec@detailspec}[#1]{#2}% +} +{% + \end{upm@spec@detailspec}% +} + +\endinput diff --git a/Master/texmf-dist/tex/latex/upmethodology/upmethodology-task.sty b/Master/texmf-dist/tex/latex/upmethodology/upmethodology-task.sty new file mode 100644 index 00000000000..90468a7b81a --- /dev/null +++ b/Master/texmf-dist/tex/latex/upmethodology/upmethodology-task.sty @@ -0,0 +1,265 @@ +% Task management for Unified Process Methodology +% +% Copyright (c) 2006-2007 Stephane GALLAND +% +% 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-03-19 Add localization. +% + +\global\edef\upm@package@task@ver{2007/03/19} + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{upmethodology-task}[\upm@package@task@ver] + +%----- LOCALIZATION +\def\upm@task@lang@english{ + \gdef\upm@lang@@{\message{**** upmethodology-task is using English language ****}}% + \gdef\upm@task@lang@task{Task} + \gdef\upm@task@lang@description{Description} + \gdef\upm@task@lang@startat{Start at} + \gdef\upm@task@lang@endat{End at} + \gdef\upm@task@lang@archieved{Archieved} + \gdef\upm@task@lang@managers{Managers} + \gdef\upm@task@lang@members{Members} + \gdef\upm@task@lang@milestones{Milestones} + \gdef\upm@task@lang@subtask{Sub-task of} +} +\def\upm@task@lang@french{ + \gdef\upm@lang@@{\message{**** upmethodology-task is using French language ****}}% + \gdef\upm@task@lang@task{T\^ache} + \gdef\upm@task@lang@description{Description} + \gdef\upm@task@lang@startat{D\'ebut le} + \gdef\upm@task@lang@endat{Fin le} + \gdef\upm@task@lang@archieved{Termin\'ee} + \gdef\upm@task@lang@managers{R\'ef\'erent} + \gdef\upm@task@lang@members{Membres} + \gdef\upm@task@lang@milestones{\'Etapes} + \gdef\upm@task@lang@subtask{Sous-t\^ache de} +} + +%----- OPTIONS +\DeclareOption{french}{% + \upm@task@lang@french +} +\DeclareOption{francais}{% + \upm@task@lang@french +} +\DeclareOption{english}{% + \upm@task@lang@english +} +\ExecuteOptions{english} +\ProcessOptions +\upm@lang@@ + +\RequirePackage{upmethodology-version} + +%----- +\newif\if@upm@task@displaydescription +\newif\if@upm@task@rebuild +\@upm@task@rebuildfalse + +\def\upm@task@define#1#2#3{% + \protected@write\@auxout{}{\string\global\string\@namedef{upm@task@#1@#2}{#3}}% + \ifthenelse{\equal{\csname upm@task@#1@#2\endcsname}{#3}}{}{\@upm@task@rebuildtrue}% + \global\@namedef{upm@task@#1@#2}{#3}% +} + +\def\upm@task@define@list#1#2#3{% + \ifthenelse{\equal{\csname upm@task@#1@#2\endcsname}{\@empty}}{% + \expandafter\xdef\csname upm@task@#1@#2\endcsname{#3}% + }{% + \expandafter\xdef\csname upm@task@#1@#2\endcsname{% + \csname upm@task@#1@#2\endcsname, #3% + }% + }% + \AtEndDocument{\protected@write\@auxout{}{\string\global\string\@namedef{upm@task@#1@#2}{\csname upm@task@#1@#2\endcsname}}} +} + +\newenvironment{upm@taskdescription}[1]{% + \global\@namedef{upm@task@#1@managers}{}% + \global\@namedef{upm@task@#1@members}{}% + \global\@namedef{upm@task@#1@milestones}{}% + + \newcommand{\taskname}[1]{\upm@task@define{#1}{name}{##1}} + \newcommand{\tasksuper}[1]{\upm@task@define{#1}{super}{##1}} + \newcommand{\taskcomment}[1]{\upm@task@define{#1}{comment}{##1}}% + \newcommand{\taskprogress}[1]{\upm@task@define{#1}{progress}{##1}}% + \newcommand{\taskstart}[1]{\upm@task@define{#1}{startat}{##1}}% + \newcommand{\taskend}[1]{\upm@task@define{#1}{endat}{##1}}% + \newcommand{\taskmanager}[1]{\upm@task@define@list{#1}{managers}{##1}} + \newcommand{\taskmember}[1]{% + \upm@task@define@list{#1}{members}{##1}% + } + \newcommand{\taskmilestone}[2]{% + \upm@task@define@list{#1}{milestones}{##1}% + \upm@task@define{#1}{ml@##1}{##2}% + %\global\@namedef{upm@task@#1@description@milestones}{\upm@task@lang@milestones: & \multicolumn{2}{X|}{\parbox[t]{1.9\linewidth}{\thetaskmembers{#1}}} \\} + } + + + \def\upm@task@currenttask{#1} +}{% + \if@upm@task@displaydescription\thetaskdescription{\upm@task@currenttask}\fi% + \let\upm@task@currenttask\relax% +} + +%----- +%\begin{taskdescription}{id}...\end{taskdescription} +\newenvironment{taskdescription}[1]{% + \@upm@task@displaydescriptiontrue% + \upm@taskdescription{#1}% +}{% + \endupm@taskdescription% +} + +%----- +%\begin{taskdescription*}{id}...\end{taskdescription*} +\newenvironment{taskdescription*}[1]{% + \@upm@task@displaydescriptionfalse% + \upm@taskdescription{#1}% +}{% + \endupm@taskdescription% +} + +%----- +%\thetasksuper{id} +\newcommand{\thetasksuper}[1]{% + \expandafter\providecommand\csname upm@task@#1@super\endcsname{??\@latex@warning{The task identified by '#1' was not found.}\@upm@task@rebuildtrue}% + \expandafter\csname upm@task@#1@super\endcsname% +} + +%----- +%\thetaskname{id} +\newcommand{\thetaskname}[1]{% + \expandafter\providecommand\csname upm@task@#1@name\endcsname{??\@latex@warning{The task identified by '#1' was not found.}\@upm@task@rebuildtrue}% + \expandafter\csname upm@task@#1@name\endcsname% +} + +%----- +%\thetaskcomment{id} +\newcommand{\thetaskcomment}[1]{% + \expandafter\providecommand\csname upm@task@#1@comment\endcsname{??\@latex@warning{The task identified by '#1' was not found.}\@upm@task@rebuildtrue}% + \expandafter\csname upm@task@#1@comment\endcsname% +} + +%----- +%\thetaskprogress{id} +\newcommand{\thetaskprogress}[1]{% + \expandafter\providecommand\csname upm@task@#1@progress\endcsname{??\@latex@warning{The task identified by '#1' was not found.}\@upm@task@rebuildtrue}% + \expandafter\csname upm@task@#1@progress\endcsname% +} + +%----- +%\thetaskstart{id} +\newcommand{\thetaskstart}[1]{% + \expandafter\providecommand\csname upm@task@#1@startat\endcsname{??\@latex@warning{The task identified by '#1' was not found.}\@upm@task@rebuildtrue}% + \expandafter\csname upm@task@#1@startat\endcsname% +} + +%----- +%\thetaskend{id} +\newcommand{\thetaskend}[1]{% + \expandafter\providecommand\csname upm@task@#1@endat\endcsname{??\@latex@warning{The task identified by '#1' was not found.}\@upm@task@rebuildtrue}% + \expandafter\csname upm@task@#1@endat\endcsname% +} + +%----- +%\thetaskmanagers{id} +\newcommand{\thetaskmanagers}[1]{% + \expandafter\providecommand\csname upm@task@#1@managers\endcsname{??\@latex@warning{The task identified by '#1' was not found.}\@upm@task@rebuildtrue}% + \expandafter\csname upm@task@#1@managers\endcsname% +} + +%----- +%\thetaskmembers{id} +\newcommand{\thetaskmembers}[1]{% + \expandafter\providecommand\csname upm@task@#1@members\endcsname{??\@latex@warning{The task identified by '#1' was not found.}\@upm@task@rebuildtrue}% + \expandafter\csname upm@task@#1@members\endcsname% +} + +%----- +%\thetaskmilestones{id} +\newcommand{\thetaskmilestones}[1]{% + \expandafter\providecommand\csname upm@task@#1@milestones\endcsname{??\@latex@warning{The task identified by '#1' was not found.}\@upm@task@rebuildtrue}% + \expandafter\csname upm@task@#1@milestones\endcsname% +} + +%----- +%\thetaskmilestonecomment{id}{date} +\newcommand{\thetaskmilestonecomment}[2]{% + \expandafter\providecommand\csname upm@task@#1@ml@#2\endcsname{??\@latex@warning{The task milestone identified by '#1' and '#2' was not found.}\@upm@task@rebuildtrue}% + \expandafter\csname upm@task@#1@ml@#2\endcsname% +} + +\def\@upm@trim#1{#1} + +%----- +%\thetaskdescription{id} +\newcommand{\thetaskdescription}[2][\linewidth]{% + \ifthenelse{\equal{\csname upm@task@#2@members\endcsname}{\@empty}}{ + \gdef\upm@task@tmp@a{}% + }{% + \gdef\upm@task@tmp@a{\upm@task@lang@members: & \multicolumn{2}{X|}{\parbox[t]{1.9\linewidth}{\thetaskmembers{#2}}} \\}% + }% + \ifthenelse{\equal{\csname upm@task@#2@milestones\endcsname}{\@empty}}{ + \gdef\upm@task@tmp@b{}% + }{% + \gdef\upm@task@tmp@b{\hline \upm@task@lang@milestones: &% + \multicolumn{2}{X|}{\parbox[t]{1.95\linewidth}{% + \edef\upm@task@tmp@c{\csname upm@task@#2@milestones\endcsname}% + \def\upm@task@tmp@e{}% + \@for\reserved@a:=\upm@task@tmp@c\do{% + \edef\upm@task@tmp@d{\expandafter\@upm@trim\reserved@a}% + \protected@edef\upm@task@tmp@e{\upm@task@tmp@e \protect\item[\upm@task@tmp@d~:] \protect\thetaskmilestonecomment{#2}{\upm@task@tmp@d}}% + }% + \begin{description}\upm@task@tmp@e\end{description}% + }} \\}% + }% + \vspace{.25cm}\noindent\begin{mtabular}[#1]{3}{|X|X|X|} + \tabulartitle{{\upm@task@lang@task}~\textit{#2}: \thetaskname{#2}} + \hline + %description + \upm@task@lang@description: & \multicolumn{2}{X|}{\parbox[t]{1.9\linewidth}{\thetaskcomment{#2}}} \\ + %sub-task + \expandafter\ifx\csname upm@task@#2@super\endcsname\relax\else% + \upm@task@lang@subtask: & \multicolumn{2}{X|}{\parbox[t]{1.9\linewidth}{{\upm@task@lang@task}~\textit{\csname upm@task@#2@super\endcsname}}} \\ + \fi + \hline + %dates + \upm@task@lang@startat: & \upm@task@lang@endat: & \upm@task@lang@archieved: \\ + \thetaskstart{#2} & \thetaskend{#2} & \thetaskprogress{#2}\% \\ + \hline + %manager + \upm@task@lang@managers: & \multicolumn{2}{X|}{\parbox[t]{1.9\linewidth}{\thetaskmanagers{#2}}} \\ + %members + \upm@task@tmp@a + %milestones + \upm@task@tmp@b + %\@nameuse{upm@task@#1@description@milestones} + \hline + \end{mtabular}\par\vspace{.5cm}% +} + +\AtEndDocument{% + \if@upm@task@rebuild% + \@latex@warning@no@line{Project Task(s) may have changed.\MessageBreak% + Rerun to get cross-references right}\fi% + +} +\endinput diff --git a/Master/texmf-dist/tex/latex/upmethodology/upmethodology-version.sty b/Master/texmf-dist/tex/latex/upmethodology/upmethodology-version.sty new file mode 100644 index 00000000000..0b5eed82617 --- /dev/null +++ b/Master/texmf-dist/tex/latex/upmethodology/upmethodology-version.sty @@ -0,0 +1,208 @@ +% Version management for Unified Process Methodology +% +% Copyright (c) 2006-2007 Stephane GALLAND +% +% 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-06 +% Modifications: +% 2007-07-03 Add the copyright date building function. +% 2007-03-19 Add localization. +% Move date functions into fmt package. +% 2006-04-19 Add version number +% + +\global\edef\upm@package@version@ver{2007/07/03} + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{upmethodology-version}[\upm@package@version@ver] + +%locales +\def\upm@version@lang@english{ + \gdef\upm@lang@@{\message{**** upmethodology-version is using English language ****}}% + \gdef\upm@lang@date{Date} + \gdef\upm@lang@updates{Updates} + \gdef\upm@lang@version{Version} + \gdef\upm@lang@version@history{Version History} + \gdef\upm@lang@restricted{Restricted} + \gdef\upm@lang@validable{Validable} + \gdef\upm@lang@validated{Validated} + \gdef\upm@lang@public{Public} +} +\def\upm@version@lang@french{ + \gdef\upm@lang@@{\message{**** upmethodology-version is using French language ****}}% + \gdef\upm@lang@date{Date} + \gdef\upm@lang@updates{Modifications} + \gdef\upm@lang@version{Version} + \gdef\upm@lang@version@history{Historique} + \gdef\upm@lang@restricted{Confidentiel} + \gdef\upm@lang@validable{Validable} + \gdef\upm@lang@validated{Valid\'e} + \gdef\upm@lang@public{Publique} +} + +%---------------------------------------- +% OPTIONS +%---------------------------------------- +\DeclareOption{french}{% + \upm@version@lang@french +} +\DeclareOption{francais}{% + \upm@version@lang@french +} +\DeclareOption{english}{% + \upm@version@lang@english +} +\ExecuteOptions{english} +\ProcessOptions* + +\upm@lang@@ + +\RequirePackage{upmethodology-fmt} + +%tmp counter +\newcount{\upm@tmp@a} + +% Internal information: first and last registered dates +\let\upm@thefirstdate\@undefined +\let\upm@thelastdate\@undefined + +%increment major part of version number +\def\upm@incmajorversion#1.#2{% + \upm@tmp@a=#1\advance\upm@tmp@a + 1% + \global\edef\theupmversion{\the\upm@tmp@a.#2}% +} + +%increment minor part of version number +\def\upm@incminorversion#1.#2{% + \upm@tmp@a=#2\advance\upm@tmp@a + 1% + \global\edef\theupmversion{#1.\the\upm@tmp@a}% +} + +%list of updates +\def\upm@update@list{} + +%add an update to the list +\newcommand{\upm@addupdatetolist}[4]{% + \global\protected@edef\upm@update@list{% + \upm@update@list% + #1 & #2 & #3 \protect\\% + } +} + +%----- +% Available status' constants +\def\upmrestricted{\upm@lang@restricted} +\def\upmvalidable{\upm@lang@validable} +\def\upmvalidated{\upm@lang@validated} +\def\upmpublic{\upm@lang@public} + +%----- +% Replies the modification date of the given version +\newcommand{\upmdate}[1]{\@nameuse{upm@version@#1@updatedate}} + +%----- +% Replies the modification description of the given version +\newcommand{\upmdescription}[1]{\@nameuse{upm@version@#1@description}} + +%----- +% Replies the status of the given version +\newcommand{\upmstatus}[1]{\@nameuse{upm@version@#1@level}} + +%----- +\newcommand{\upm@updateversion}[4]{% + \gdef\theupmdate{#2}% + \gdef\theupmlastmodif{#3}% + \gdef\theupmstatus{#4}% + \ifx\upm@thefirstdate\@undefined + \global\edef\upm@thefirstdate{#2} + \fi + \global\edef\upm@thelastdate{#2} + \@namedef{upm@version@#1@updatedate}{#2}% + \@namedef{upm@version@#1@description}{#3}% + \@namedef{upm@version@#1@level}{#4}% + \upm@addupdatetolist{#1}{#2}{#3}{#4}% +} + +%----- +%\updateversion{new_version}{update_date}{description}{status} +\newcommand{\updateversion}[4]{% + \gdef\theupmversion{#1}% + \upm@updateversion{#1}{#2}{#3}{#4}% +} + +%----- +%\initialversion[version]{date}{description}{status} +\newcommand{\initialversion}[4][0.1]{% + \updateversion{#1}{#2}{#3}{#4}% +} + +%----- +%\incversion{update_date}{description}{status} +\newcommand{\incversion}[3]{% + \expandafter\upm@incmajorversion\theupmversion% + \upm@updateversion{\theupmversion}{#1}{#2}{#3}% +} + +%----- +%\incsubversion{update_date}{description}{status} +\newcommand{\incsubversion}[3]{% + \expandafter\upm@incminorversion\theupmversion% + \upm@updateversion{\theupmversion}{#1}{#2}{#3}% +} + +%----- +% Version variables +\def\theupmversion{0.1} +\edef\theupmdate{\today} +\def\theupmlastmodif{} +\def\theupmstatus{\upmrestricted} + +%----- +% Display the version history +%\upmhistory[width] +\newcommand{\upmhistory}[1][\linewidth]{% + \noindent\expandafter\begin{mtabular}[#1]{3}{|c|c|X|} + \tabulartitle{\upm@lang@version@history}% + \tabularheader{\upm@lang@version}{\upm@lang@date}{\upm@lang@updates}% + \hline + \upm@update@list + \hline + \expandafter\end{mtabular}\par\vspace{.5cm}% +} + +%----- +% Copyright date +%\upmcopyrightdate +\newcommand{\upmcopyrightdate}{% + \ifx\upm@thefirstdate\@undefined% + \edef\upm@tmp@copyright@a{\the\year}% + \else% + \edef\upm@tmp@copyright@a{\extractyear{\upm@thefirstdate}}% + \fi% + \ifx\upm@thelastdate\@undefined% + \def\upm@tmp@copyright@b{\the\year}% + \else% + \edef\upm@tmp@copyright@b{\extractyear{\upm@thelastdate}}% + \fi% + \ifthenelse{\equal{\upm@tmp@copyright@a}{\upm@tmp@copyright@b}}{% + \upm@tmp@copyright@a% + }{% + \upm@tmp@copyright@a-\upm@tmp@copyright@b% + }% +} + +\endinput -- cgit v1.2.3