% Package for Unified Process Methodology's extensions % % Copyright (c) 2006-2022 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. % \global\edef\upm@package@ext@ver{2022/02/10} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{upmethodology-extension}[\upm@package@ext@ver] \RequirePackage{upmethodology-p-common} %---------------------------------------- % TEST MACROS %---------------------------------------- \long\def\Ifdefined#1#2{\@ifundefined{upmext@extension@value@#1}{}{#2}} \long\def\Ifelsedefined#1#2#3{\@ifundefined{upmext@extension@value@#1}{#3}{#2}} \long\def\Ifundefined#1#2{\@ifundefined{upmext@extension@value@#1}{#2}{}} \long\def\Ifelseundefined#1#2#3{\@ifundefined{upmext@extension@value@#1}{#2}{#3}} %---------------------------------------- % EXTENSION MANAGEMENT %---------------------------------------- \newif\ifupm@extension@savealllang\upm@extension@savealllangfalse \newcommand{\Get}[1]{\@nameuse{upmext@extension@value@#1}} \newcommand{\GetLang}[2]{\@nameuse{upmext@extension@value@#1@#2}} \newcommand{\upm@extension@Set}[3][\upmcurrentlang]{% % PREDEFINED FRONT PAGE \ifthenelse{\equal{#2}{frontpage}}{% \gdef\upmext@extension@value@frontpage{#3}% \global\let\upmext@extension@value@frontpage@custom\relax% }{% % CUSTOM BACK PAGE \ifthenelse{\equal{#2}{backpage}}{% \ifthenelse{\equal{\upmcurrentlang}{#1}}{% \gdef\upmext@extension@value@backpage{#3}% }{}% }{% % CUSTOM FRONT PAGE \ifthenelse{\equal{#2}{cfrontpage}}{% \ifthenelse{\equal{\upmcurrentlang}{#1}}{% \gdef\upmext@extension@value@frontpage{custom}% \gdef\upmext@extension@value@frontpage@custom{#3}% }{}% }{% \ifthenelse{\equal{\upmcurrentlang}{#1}}{% \message{*** define the extension value #2 ****}% \global\@namedef{upmext@extension@value@#2}{#3}% }{}% \ifupm@extension@savealllang% \global\@namedef{upmext@extension@value@#2@#1}{#3}% \fi }}}% } \let\Set\upm@extension@Set \newcommand{\Append}[3][\upmcurrentlang]{% \ifthenelse{\equal{\upmcurrentlang}{#1}}{% \message{*** append to extension value #2 ****}% \expandafter\expandafter\expandafter\global\expandafter\protected@edef\csname upmext@extension@value@#2\endcsname{\@nameuse{upmext@extension@value@#2}\xspace#3}% }{}% %\ifupm@extension@savealllang% % \global\expandafter\g@addto@macro\csname upmext@extension@value@#2#1\endcsname{#3}% %\fi } \newcommand{\Unset}[2][\upmcurrentlang]{% \ifthenelse{\equal{\upmcurrentlang}{#1}}{% \message{*** undefine the extension value #2 ****}% \global\expandafter\let\csname upmext@extension@value@#2\endcsname\@undefined% \ifupm@extension@savealllang% \global\expandafter\let\csname upmext@extension@value@#2@#1\endcsname\@undefined% \fi% }{}% } \newcommand{\DeclareCopyright}[5][\upmcurrentlang]{% \ifthenelse{\equal{\upmcurrentlang}{#1}}{% \Set{copyright}{Copyright {(c)} #3 #4.}% \message{*** style extension #2, \Get{copyright} ****}% \Set{trademarks}{#5}% }{}% } \newlength{\upmext@tmp@putx} \def\Put(#1,#2){% \setlength{\upmext@tmp@putx}{#1\unitlength}% \if@twoside\ifodd\c@page\else\addtolength{\upmext@tmp@putx}{28\unitlength}\fi\fi% \put(\strip@pt\upmext@tmp@putx,#2)} %----- % Use the specified extension %\UseExtension{extension_name} \newcommand{\UseExtension}[1]{% \message{**** including upm extension #1 (upmext-#1.cfg) ****}% \input{upmext-#1.cfg}% } %------------ % Default declarations \Set{frontillustrationsize}{1} \Set{watermarksize}{1} \Unset{publisher} \Unset{copyrighter} \Unset{printedin} \endinput