Plan 9 from Bell Labs’s /usr/web/sources/contrib/steve/root/sys/lib/texmf/tex/latex/local/tmaddon.sty

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


\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}}}

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].