\newcommand{\tmaddonversiondate}{1995/07/26}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{tmaddon}[\tmaddonversiondate Misc TM addon macros]
%
%
% Changes: (by tla)
% 89-Feb-01 add tmnotice
% 89-Feb-27 change draftmark to add date/time option;
% contributed by Dennis DeBruler
% 89-Feb-28 added \hhmm and \hhmm*
% 89-Aug-04 added simpleheadandfoot pagestyle
% 89-Aug-24 added varhline (var width hlines)
% 89-Dec-13 moved \@cite redef here from tm.sty
% 90-May-30 fixed markdraft to add bottommark even if
% propietary level not set
% 90-Jul-05 added inlinelist environment
% 90-Aug-27 changed UNIX tm notice
% 91-Feb-25 corrected spelling of propr notice USL
% 91-May-02 added numenum to force arabic numbered lists
% 91-May-17 removed right indent from the added enumerations
% 91-May-28 added symbol for cents.
% 91-Jun-05 added typed caption to override float type
% this is for generated TeX where type may not
% be known when float begun.
% 91-Jul-02 changed the implementation of the enums to use
% the standard enum levels and simply override
% the label defs
%
% 95-Jul-26 (HWT) converted to LateX2e
%
% various extensions to LaTeX used by tm and related styles
%
% raise citations like footnotes
%
\newif\ifraisedcite%raises citations [1] above line
\newcommand{\raisedcitations}{\raisedcitetrue}
\newcommand{\noraisedcitations}{\raisedcitefalse}
\raisedcitations% default
\def\@cite#1#2{%
\ifraisedcite\raisebox{3pt}{\footnotesize [{#1\if@tempswa , #2\fi}]}
\else [{#1\if@tempswa , #2\fi}]\fi}
%
% Additional enumeration styles: Roman roman Alph alph num(arabic)
%
\newcount\nextenumdepth
%
\newenvironment{Romanenum}{%
\nextenumdepth\@enumdepth
\advance\nextenumdepth by1
\@namedef{labelenum\romannumeral\the\nextenumdepth}%
{\Roman{enum\romannumeral\the\nextenumdepth}.}%
\@namedef{theenum\romannumeral\the\nextenumdepth}%
{\Roman{enum\romannumeral\the\nextenumdepth}}%
\begin{enumerate}%
}{\end{enumerate}}
\newenvironment{romanenum}{%
\nextenumdepth\@enumdepth
\advance\nextenumdepth by1
\@namedef{labelenum\romannumeral\the\nextenumdepth}%
{\roman{enum\romannumeral\the\nextenumdepth}.}%
\@namedef{theenum\romannumeral\the\nextenumdepth}%
{\roman{enum\romannumeral\the\nextenumdepth}}%
\begin{enumerate}%
}{\end{enumerate}}
\newenvironment{Alphenum}{%
\nextenumdepth\@enumdepth
\advance\nextenumdepth by1
\@namedef{labelenum\romannumeral\the\nextenumdepth}%
{\Alph{enum\romannumeral\the\nextenumdepth}.}%
\@namedef{theenum\romannumeral\the\nextenumdepth}%
{\Alph{enum\romannumeral\the\nextenumdepth}}%
\begin{enumerate}%
}{\end{enumerate}}
\newenvironment{alphenum}{%
\nextenumdepth\@enumdepth
\advance\nextenumdepth by1
\@namedef{labelenum\romannumeral\the\nextenumdepth}%
{\alph{enum\romannumeral\the\nextenumdepth}.}%
\@namedef{theenum\romannumeral\the\nextenumdepth}%
{\alph{enum\romannumeral\the\nextenumdepth}}%
\begin{enumerate}%
}{\end{enumerate}}
\newenvironment{numenum}{%
\nextenumdepth\@enumdepth
\advance\nextenumdepth by1
\@namedef{labelenum\romannumeral\the\nextenumdepth}%
{\arabic{enum\romannumeral\the\nextenumdepth}.}%
\@namedef{theenum\romannumeral\the\nextenumdepth}%
{\arabic{enum\romannumeral\the\nextenumdepth}}%
\begin{enumerate}%
}{\end{enumerate}}
%
% new macros
%
\newcommand{\bottommark}{}
\newcommand{\markbottom}[1]{\def\bottommark{#1}}
% draft mark macros
\newsavebox{\draftmarkL}
\newsavebox{\draftmarkR}
\sbox{\draftmarkL}{\vtop{}}
\sbox{\draftmarkR}{\vtop{}}
\newcount\hh % TIME OF DAY by Nelson Beebe in texhax.86.002
\newcount\mm
\def\hhmm{\mm=\time%
\hh=\time%
\divide\hh by 60%
\divide\mm by 60%
\multiply\mm by 60%
\mm=-\mm%
\advance\mm by \time%
\@ifstar{\number\hh:\ifnum\mm<10{}0\fi\number\mm}%
{\ifnum\hh>12\relax\advance\hh by-12\fi\relax%
\number\hh:\ifnum\mm<10{}0\fi\number\mm
}}
\newcommand{\markdraft}{%
\@ifstar
{\sbox{\draftmarkL}%
{\vbox to 48pt
{\baselineskip 12pt%
\rlap{\textit{DRAFT}}
\rlap{\textit{\today}}
\rlap{\textit{\hhmm*}}
\vfil
}%
}%
\sbox{\draftmarkR}%
{\vbox to 48pt
{\baselineskip 12pt%
\llap{\textit{DRAFT}}
\llap{\textit{\today}}
\llap{\textit{\hhmm*}}
\vfil
}%
}%
\makeproprietarymark{}{}{}{}
}
{\sbox{\draftmarkL}%
{\vbox to 48pt
{\baselineskip 12pt%
\rlap{\textit{DRAFT}}
\vfil
}%
}%
\sbox{\draftmarkR}%
{\vbox to 48pt
{\baselineskip 12pt%
\llap{\textit{DRAFT}}
\vfil
}%
}%
\makeproprietarymark{}{}{}{}}}
%
% new list style called labeled -- similar to itemize but the label is
% set left justified in the label region and it takes the leftmargin
% as a parameter. For example:
%
% label The item. If it is continued onto a second line, the
% continuation is indented as the first to leftmargin.
%
\def\labeledlabel#1{#1\hfil}
\def\labeled#1{\list{}{\leftmargin#1
\labelwidth\leftmargin\advance\labelwidth-\labelsep
\let\makelabel\labeledlabel}}
\let\endlabeled=\endlist
%
% new page styles like myhead but with a centered foot \bottommark
%
\newcommand{\tm@privatemark}{%
\if V\proprietarylevel{\hbox{}\hfill\textbf{PRIVATE}\hfill}%
\else{}%
\fi}
\def\ps@simpleheadandfoot{%
\let\@mkboth\@gobbletwo
\def\@oddhead{\hbox{}%
\if V\proprietarylevel{\hfill\textbf{PRIVATE}\hfill}%
\else{}\hfil
\fi
\rmfamily - \thepage\ -\hfil}%
\def\@oddfoot{\hbox{}\hfill \bottommark\hfill}%
\def\@evenhead{\hbox{}\hfil \rmfamily - \thepage\ -%
\if V\proprietarylevel{\hfill\textbf{PRIVATE}\hfill}%
\else{}\hfil\hbox{}%
\fi}%
\def\@evenfoot{\hbox{}\hfill \bottommark\hfill}%
\let\sectionmark\@gobble
\let\subsectionmark\@gobble
}
%
\def\ps@headandfoot{%
\let\@mkboth\@gobbletwo
\def\@oddhead{\hbox{}%
\if V\proprietarylevel{\hfill\textbf{PRIVATE}\hfill}%
\else\textsl{\rightmark}\hfil
\fi
\textrm{\thepage}}%
\def\@oddfoot{\hbox{}\hfill \bottommark\hfill}%
\def\@evenhead{\textrm{\thepage}%
\if V\proprietarylevel{\hfill\textbf{PRIVATE}\hfill}%
\else\hfil\textsl{\leftmark}\hbox{}%
\fi}%
\def\@evenfoot{\hbox{}\hfill \bottommark\hfill}%
\let\sectionmark\@gobble
\let\subsectionmark\@gobble
}
%
% new page style without headers but with a centered foot \bottommark
%
\def\ps@onlyfoot{%
\let\@mkboth\@gobbletwo
\def\@oddhead{\tm@privatemark}%
\def\@oddfoot{\hbox{}\hfill \bottommark\hfill}%
\def\@evenhead{\tm@privatemark}%
\def\@evenfoot{\hbox{}\hfill \bottommark\hfill}%
\let\sectionmark\@gobble
\let\subsectionmark\@gobble
}
%
%
% Lucent Technologies proprietary markings
%
\newsavebox{\tm@propmark}
\newsavebox{\tm@bottommark}
\newcommand{\makeproprietarymark}[4]{%
\sbox{\tm@propmark}{\vbox{\baselineskip 12pt%
\hbox to 3.5in{\hfil #1\hfil}%
\hbox to 3.5in{\hfil #2\hfil}%
\hbox to 3.5in{\hfil #3\hfil}%
\hbox to 3.5in{\hfil #4\hfil}}}%
\sbox{\tm@bottommark}{%
\hbox to \textwidth{\usebox{\draftmarkL}\hfil\usebox{\tm@propmark}%
\hfil\usebox{\draftmarkR}}}%
\def\bottommark{\usebox{\tm@bottommark}}%
\footskip60pt}
\newcommand{\proprietarylevel}{N}
\newcommand{\markprivate}{%
\gdef\proprietarylevel{V}%
\makeproprietarymark{}%
{\textbf{PRIVATE}}{}{}}
\newcommand{\markproprietary}{%
\gdef\proprietarylevel{P}%
\makeproprietarymark
{\textit{Lucent Technologies -- PROPRIETARY}}%
{Use pursuant to Company Instructions}{}{}}%
\newcommand{\markrestricted}{%
\gdef\proprietarylevel{R}%
\makeproprietarymark
{\textit{Lucent Technologies -- PROPRIETARY (RESTRICTED)}}%
{Solely for authorized persons}%
{having a need to know pursuant}%
{to Company Instructions}
\itdsrestrict}
\newcommand{\markregistered}{%
\gdef\proprietarylevel{G}%
\makeproprietarymark%
{\textit{Lucent Technologies -- PROPRIETARY (REGISTERED)}}%
{Solely for authorized persons}%
{having a need to know and}%
{subject to cover sheet instructions}
\itdsrestrict}
\newcommand{\marknone}{%
\gdef\proprietarylevel{N}%
\makeproprietarymark{}{}{}{}}
%
\newcommand{\markedfootnote}[2]{{\def\thefootnote{#1}\footnote[1]{#2}}}
\newcommand{\tm@no}{no}
\newcommand{\unixfootnoteprinted}{no}
\newcommand{\UNIX}{%
UNIX%
\ifx\unixfootnoteprinted\tm@no%
\newbox\regbox
\setbox\regbox=\hbox{\@regmark}%
\markedfootnote{\copy\regbox}{UNIX is a registered trademark of
X/Open Company}%
\gdef\unixfootnoteprinted{yes}%
\fi}
\newcommand{\boxit}[1]{\vbox{\hrule\hbox{\vrule\kern3pt
\vbox{\kern3pt\hbox{#1}\kern3pt}\kern3pt\vrule}\hrule}}
\newcommand{\@regmark}{{\ooalign
{\hfil\raise.07ex\hbox{\tiny R}\hfil\crcr{\scriptsize\mathhexbox20D}}}}
\newcommand{\regmark}{\raise1ex\hbox{\@regmark}}
\newbox\regbox
\setbox\regbox=\hbox{\@regmark}
\newcommand{\regnotice}[1]{%
\markedfootnote{\copy\regbox}{#1}}
\newcommand{\tm}{\raise5pt\hbox{{\rm\tiny TM}}}
\newbox\tmbox
\setbox\tmbox=\hbox{\tm}
\newcommand{\tmnotice}[1]{%
\setbox\tmbox=\hbox{{\rm\tiny TM}}%
\markedfootnote{\copy\tmbox}{#1}}%
\newcommand{\cents}{\hbox{\rm\rlap/c}}
%
% for tabular environment -- allows variable hline width
% \hline will not tolerate a change to \arrayrulewidth just before it
\def\varhline#1{\noalign{\ifnum0=`}\fi\hrule \@height #1 \futurelet
\@tempa\@xhline}
%
% ``list'' environment that does NOT use a display but puts list in
% line in the paragraph. CANNOT BE NESTED
%
% Currently leaves space before `;' (bad) and after last item though
% one often wants to end sentence there and so add a `.' without a space
% How can I keep from adding space at end of item???
%
\newcount\@inlineitemnum\@inlineitemnum=0
\def\inlinelist{\gdef\@newinlinelist{Y}%
\begingroup\def\item{\if Y\@newinlinelist{\gdef\@newinlinelist{N}}%
\else{}\fi% inter item punctuation such as `;' could go here but it
% is difficult to supress the space before it; one must
% end each item with a %, and one may not want the same
% punctuation for each list so let's let the user add own
% punctuation at end of each item. Logic left in to show
% how punctuation can be added.
\advance\@inlineitemnum by1 (\the\@inlineitemnum )\ }}
\def\endinlinelist{\endgroup}
\newcommand{\typedcaption}[1]{\refstepcounter{#1} \@dblarg{\@caption{#1}}}
|