|
|
1.1 ! root 1: % attart.sty 11 Aug 89, based on article.sty 5-Feb-88 ! 2: \typeout{Document Style 'attart'. Released 11 August 1989} ! 3: ! 4: \def\@ptsize{0} \@namedef{ds@11pt}{\def\@ptsize{1}} ! 5: \@namedef{ds@12pt}{\def\@ptsize{2}} ! 6: \def\ds@twoside{\@twosidetrue \@mparswitchtrue} \def\ds@draft{\overfullrule ! 7: 5pt} ! 8: \def\ds@tm{\def\@artstyle{0}} ! 9: \def\ds@rp{\def\@artstyle{1}} ! 10: \@namedef{ds@vol2}{\def\@artstyle{2}} ! 11: \def\@artstyle{0} ! 12: \@options ! 13: \input att1\@ptsize.sty\relax ! 14: ! 15: ! 16: \def\labelenumi{\arabic{enumi}.} ! 17: \def\theenumi{\arabic{enumi}} ! 18: \def\labelenumii{(\alph{enumii})} ! 19: \def\theenumii{\alph{enumii}} ! 20: \def\p@enumii{\theenumi} ! 21: \def\labelenumiii{\roman{enumiii}.} ! 22: \def\theenumiii{\roman{enumiii}} ! 23: \def\p@enumiii{\theenumi(\theenumii)} ! 24: \def\labelenumiv{\Alph{enumiv}.} ! 25: \def\theenumiv{\Alph{enumiv}} ! 26: \def\p@enumiv{\p@enumiii\theenumiii} ! 27: ! 28: \def\labelitemi{$\bullet$} ! 29: \def\labelitemii{\bf --} ! 30: \def\labelitemiii{$\ast$} ! 31: \def\labelitemiv{$\cdot$} ! 32: ! 33: \def\verse{\let\\=\@centercr ! 34: \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent ! 35: \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]} ! 36: \let\endverse\endlist ! 37: \def\quotation{\list{}{\listparindent 1.5em ! 38: \itemindent\listparindent ! 39: \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]} ! 40: \let\endquotation=\endlist ! 41: \def\quote{\list{}{\rightmargin\leftmargin}\item[]} ! 42: \let\endquote=\endlist ! 43: ! 44: \def\descriptionlabel#1{\hspace\labelsep \bf #1} ! 45: \def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin ! 46: \let\makelabel\descriptionlabel}} ! 47: \let\enddescription\endlist ! 48: ! 49: ! 50: \def\theequation{\arabic{equation}} ! 51: ! 52: ! 53: \def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn ! 54: \else \newpage \fi \thispagestyle{empty}\c@page\z@} ! 55: \def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi} ! 56: ! 57: \arraycolsep 5pt \tabcolsep 6pt \arrayrulewidth .4pt \doublerulesep 2pt ! 58: \tabbingsep \labelsep ! 59: ! 60: \skip\@mpfootins = \skip\footins ! 61: \fboxsep = 3pt \fboxrule = .4pt ! 62: ! 63: \newcounter{part} ! 64: \newcounter {section} ! 65: \newcounter {subsection}[section] ! 66: \newcounter {subsubsection}[subsection] ! 67: \newcounter {paragraph}[subsubsection] ! 68: \newcounter {subparagraph}[paragraph] ! 69: ! 70: \def\thepart{\Roman{part}} \def\thesection {\arabic{section}} ! 71: \def\thesubsection {\thesection.\arabic{subsection}} ! 72: \def\thesubsubsection {\thesubsection .\arabic{subsubsection}} ! 73: \def\theparagraph {\thesubsubsection.\arabic{paragraph}} ! 74: \def\thesubparagraph {\theparagraph.\arabic{subparagraph}} ! 75: ! 76: \def\@pnumwidth{1.55em} ! 77: \def\@tocrmarg {2.55em} ! 78: \def\@dotsep{4.5} ! 79: \setcounter{tocdepth}{3} ! 80: ! 81: \def\tableofcontents{\section*{Contents\@mkboth{CONTENTS}{CONTENTS}} ! 82: \@starttoc{toc}} ! 83: \def\l@part#1#2{\addpenalty{\@secpenalty} ! 84: \addvspace{2.25em plus 1pt} \begingroup ! 85: \@tempdima 3em \parindent \z@ \rightskip \@pnumwidth \parfillskip ! 86: -\@pnumwidth ! 87: {\large \bf \leavevmode #1\hfil \hbox to\@pnumwidth{\hss #2}}\par ! 88: \nobreak \endgroup} ! 89: \def\l@section#1#2{\addpenalty{\@secpenalty} \addvspace{1.0em plus 1pt} ! 90: \@tempdima 1.5em \begingroup ! 91: \parindent \z@ \rightskip \@pnumwidth ! 92: \parfillskip -\@pnumwidth ! 93: \bf \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\hfil ! 94: \nobreak\hbox to\@pnumwidth{\hss #2}\par ! 95: \endgroup} ! 96: \def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} ! 97: \def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} ! 98: \def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}} ! 99: \def\l@subparagraph{\@dottedtocline{5}{10em}{5em}} ! 100: \def\listoffigures{\section*{List of Figures\@mkboth ! 101: {LIST OF FIGURES}{LIST OF FIGURES}}\@starttoc{lof}} ! 102: \def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} ! 103: \def\listoftables{\section*{List of Tables\@mkboth ! 104: {LIST OF TABLES}{LIST OF TABLES}}\@starttoc{lot}} ! 105: \let\l@table\l@figure ! 106: ! 107: ! 108: \def\thebibliography#1{\section*{References\@mkboth ! 109: {REFERENCES}{REFERENCES}}\list ! 110: {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth ! 111: \advance\leftmargin\labelsep ! 112: \usecounter{enumi}} ! 113: \def\newblock{\hskip .11em plus .33em minus .07em} ! 114: \sloppy\clubpenalty4000\widowpenalty4000 ! 115: \sfcode`\.=1000\relax} ! 116: \let\endthebibliography=\endlist ! 117: ! 118: \def\@biblabel#1{\hfill#1.\ } ! 119: ! 120: \newif\if@restonecol ! 121: \def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi ! 122: \columnseprule \z@ ! 123: \columnsep 35pt\twocolumn[\section*{Index}] ! 124: \@mkboth{INDEX}{INDEX}\thispagestyle{plain}\parindent\z@ ! 125: \parskip\z@ plus .3pt\relax\let\item\@idxitem} ! 126: \def\@idxitem{\par\hangindent 40pt} ! 127: \def\subitem{\par\hangindent 40pt \hspace*{20pt}} ! 128: \def\subsubitem{\par\hangindent 40pt \hspace*{30pt}} ! 129: \def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi} ! 130: \def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax} ! 131: ! 132: \def\footnoterule{\kern-3\p@ ! 133: \hrule height 0pt width .4\columnwidth ! 134: \kern 3\p@} ! 135: ! 136: \long\def\@makefntext#1{\parindent 1em\noindent ! 137: \hbox{\hss$^{\@thefnmark}$}#1} ! 138: ! 139: \setcounter{topnumber}{2} ! 140: \def\topfraction{.7} ! 141: \setcounter{bottomnumber}{1} ! 142: \def\bottomfraction{.3} ! 143: \setcounter{totalnumber}{3} ! 144: \def\textfraction{.2} ! 145: \def\floatpagefraction{.5} ! 146: \setcounter{dbltopnumber}{2} ! 147: \def\dbltopfraction{.7} ! 148: \def\dblfloatpagefraction{.5} ! 149: ! 150: \long\def\@makecaption#1#2{% ! 151: \addvspace{10pt}% ! 152: \setbox\@tempboxa\hbox{#1: #2}% ! 153: \ifdim \wd\@tempboxa >\hsize #1: #2\par ! 154: \else \hbox to\hsize{\hfil\box\@tempboxa\hfil}% ! 155: \fi} ! 156: ! 157: ! 158: \newcounter{figure} ! 159: \def\thefigure{\@arabic\c@figure} ! 160: \def\fps@figure{tbp} ! 161: \def\ftype@figure{1} ! 162: \def\ext@figure{lof} ! 163: \def\fnum@figure{Figure \thefigure} ! 164: \def\figure{\@float{figure}} ! 165: \let\endfigure\end@float ! 166: \@namedef{figure*}{\@dblfloat{figure}} ! 167: \@namedef{endfigure*}{\end@dblfloat} ! 168: \newcounter{table} ! 169: \def\thetable{\@arabic\c@table} ! 170: \def\fps@table{tbp} ! 171: \def\ftype@table{2} ! 172: \def\ext@table{lot} ! 173: \def\fnum@table{Table \thetable} ! 174: \def\table{\@float{table}} ! 175: \let\endtable\end@float ! 176: \@namedef{table*}{\@dblfloat{table}} ! 177: \@namedef{endtable*}{\end@dblfloat} ! 178: ! 179: ! 180: \def\maketitle{\par ! 181: \begingroup ! 182: \def\thefootnote{\fnsymbol{footnote}} ! 183: \def\@makefnmark{\hbox ! 184: to 0pt{$^{\@thefnmark}$\hss}} ! 185: \if@twocolumn ! 186: \twocolumn[\@maketitle] ! 187: \else \newpage\thispagestyle{empty} ! 188: \global\@topnum\z@ \@maketitle \fi ! 189: \ifcase\@artstyle\thispagestyle{firstpage} \or\thispagestyle{empty}\or ! 190: \thispagestyle{firstpage}\fi ! 191: \@thanks ! 192: \endgroup ! 193: \setcounter{footnote}{0} ! 194: \let\maketitle\relax ! 195: \let\@maketitle\relax ! 196: \gdef\@thanks{}\let\thanks\relax} ! 197: % String setting-up commands; use `\and' to separate things when there are ! 198: % more than one. E.g., \wpnumber{27000\and 27001}. ! 199: \def\tmnumber#1{\gdef\@tmnum{#1}} ! 200: \def\wpnumber#1{\gdef\@wpnum{#1}} % Work project number(s) ! 201: \gdef\@wpnumber{} ! 202: \def\filenumber#1{\gdef\@filenum{#1}} % File number(s) ! 203: \gdef\@filenumber{} ! 204: \long\def\abstracttext#1{\long\gdef\@abstract{#1}} ! 205: \gdef\@abstract{} ! 206: \def\murrayhill{AT\&T Bell Laboratories\\Murray Hill, New Jersey 07974} ! 207: \ifcase\@artstyle % technical memo ! 208: \font\hugeS=S at 36pt ! 209: \font\sxtnHB=HB at 16pt ! 210: \font\frtnHB=HB at 14pt ! 211: \font\tenH=H at 10pt ! 212: \font\egtH=H at 8pt ! 213: \def\@maketitle{\null ! 214: \if!\@abstract!\else % if abstract defined: put it on a separate page ! 215: \vskip 2em \begin{center} ! 216: {\large \bf \@title \par} \vskip 1.5em {\lineskip .5em ! 217: \begin{tabular}[t]{c}\@author ! 218: \end{tabular}\par} ! 219: \end{center} ! 220: \par ! 221: \vskip 1.5em ! 222: \begin{center} ! 223: {\sl Abstract\vspace{-.5em}\vspace{0pt}} ! 224: \end{center} ! 225: \quotation\ignorespaces\@abstract\endquotation ! 226: \newpage\null \thispagestyle{firstpage}\setcounter{page}{1} ! 227: \fi ! 228: \vskip 3em ! 229: \noindent\hbox to \textwidth{\kern-25pt ! 230: \begin{tabular}[t]{@{}l} ! 231: {\egtH Subject:} {\bf \begin{tabular}[t]{@{}l}\ignorespaces\@title\end{tabular}}\\ ! 232: \egtH Work Program- \begin{tabular}[t]{@{}l@{}}\let\and=\\\ignorespaces ! 233: \@wpnum\end{tabular} -{}- % ! 234: File- \begin{tabular}[t]{@{}l}\let\and=\\\ignorespaces ! 235: \@filenum\end{tabular} ! 236: \end{tabular} ! 237: \hfil ! 238: \begin{tabular}[t]{ll@{}} ! 239: \egtH date:&\bf\@date\\[12pt] ! 240: \egtH from:&\bf\begin{tabular}[t]{@{}l}\let\and=\\\ignorespaces ! 241: \@author\\[12pt]\end{tabular}\\ ! 242: \egtH TM:&\bf\begin{tabular}[t]{@{}l}\let\and=\\\ignorespaces\@tmnum\end{tabular} ! 243: \end{tabular}% ! 244: \kern-35pt} ! 245: \vspace{\baselineskip} ! 246: \begin{center} ! 247: \sl TECHNICAL MEMORANDUM\\ ! 248: \end{center}} ! 249: \or % released paper ! 250: \def\@maketitle{% ! 251: \null ! 252: \vskip 2em \begin{center} ! 253: {\large \bf \@title \par} \vskip 1.5em {\lineskip .5em ! 254: \begin{tabular}[t]{c}\let\and=\\\ignorespaces\@author ! 255: \end{tabular}\par} ! 256: \end{center} ! 257: \par ! 258: \vskip 1.5em ! 259: \if!\@abstract!\else % if abstract defined: put it here, and do title over ! 260: \begin{center} ! 261: {\sl Abstract\vspace{-.5em}\vspace{0pt}} ! 262: \end{center} ! 263: \quotation\ignorespaces\@abstract\endquotation ! 264: \newpage \thispagestyle{empty}\setcounter{page}{1} ! 265: \null ! 266: \vskip 2em \begin{center} ! 267: {\large \bf \@title \par} \vskip 1.5em {\lineskip .5em ! 268: \begin{tabular}[t]{c}\let\and=\\\ignorespaces \@author ! 269: \end{tabular}\par} ! 270: \end{center} ! 271: \par ! 272: \vskip 1.5em ! 273: \fi} ! 274: \or % volume 2 format ! 275: \def\@maketitle{% ! 276: \null ! 277: \vskip 5em \begin{center}% ! 278: {\large \bf \@title \par}% ! 279: \expandafter\@doauth\@author\and\and\relax ! 280: \end{center} ! 281: \if!\@abstract!\else \vskip 1.6em ! 282: \begin{center} ABSTRACT \end{center} ! 283: \vskip 1em {\leftskip .5in \rightskip .5in \parindent 25pt\par\@abstract\par}% ! 284: \vskip 2.3em ! 285: \fi ! 286: } ! 287: % hack for now: all authors have murray hill address ! 288: \def\@doauth#1\and{\if!#1!\let\@nextdoa=\relax\else ! 289: \vskip 1.1em\begin{tabular}[t]{c}#1\\[.8em] ! 290: {\em AT\&T Bell Laboratories}\\{\em Murray Hill, New Jersey 07974}\end{tabular} ! 291: \let\@nextdoa=\@doauth\fi ! 292: \@nextdoa} ! 293: \fi ! 294: \ifcase\@artstyle ! 295: % signature block: #1= "typed by" part (e.g. MH-11273-HWT), #2=#refs, #3=#figs ! 296: \def\sigblock#1#2#3{\par\nopagebreak[3]\vspace{3em minus1.5em}% ! 297: \noindent\hbox to 3in{#1\hfil}% ! 298: \hbox{\lineskip=3em\begin{tabular}{l}\let\and=\\\ignorespaces ! 299: \@author\end{tabular}} ! 300: \par\nopagebreak\vspace{3em minus1.5em}% ! 301: \hbox{Atts.}\nopagebreak ! 302: \ifnum #2>0 \hbox{References (1--#2)}\nopagebreak\fi ! 303: \ifnum #3>0 \hbox{Figures (1--#3)}\fi ! 304: \newpage ! 305: } ! 306: \or ! 307: \def\sigblock#1#2#3{}% does nothing for released paper ! 308: \or ! 309: \def\sigblock#1#2#3{}% or vol2 style ! 310: \fi ! 311: ! 312: \mark{{}{}} ! 313: ! 314: \if\@artstyle2 % vol2 style: headings are title, page number ! 315: \font\ncsi=Ncs-i at 10pt ! 316: \def\ps@headings{\let\@mkboth\@gobbletwo ! 317: \def\@oddfoot{\rm\smash{Research Tenth Edition}\hfil\smash{\thepage}}% ! 318: \def\@evenfoot{\rm\smash{\thepage}\hfil \smash{UNIX Papers}}% ! 319: \def\@evenhead{\rm\@title\hfil{\ncsi\@shorttitle}}% ! 320: \def\@oddhead{{\ncsi\@shorttitle}\hfil\rm\@title}}% ! 321: \def\ps@firstpage{\let\@mkboth\@gobbletwo ! 322: \def\@oddfoot{\rm\smash{Research Tenth Edition}\hfil\smash{\thepage}}% ! 323: \def\@evenfoot{\rm\smash{\thepage}\hfil\smash{UNIX Papers}}% ! 324: \def\@evenhead{}% ! 325: \def\@oddhead{}}% ! 326: \else ! 327: \if@twoside \def\ps@headings{\let\@mkboth\markboth ! 328: \def\@oddfoot{}\def\@evenfoot{}\def\@evenhead{\rm \thepage\hfil \sl ! 329: \leftmark}\def\@oddhead{\hbox{}\sl \rightmark \hfil ! 330: \rm\thepage}\def\sectionmark##1{\markboth {\uppercase{\ifnum \c@secnumdepth ! 331: >\z@ ! 332: \thesection\hskip 1em\relax \fi ##1}}{}}\def\subsectionmark##1{\markright ! 333: {\ifnum \c@secnumdepth >\@ne ! 334: \thesubsection\hskip 1em\relax \fi ##1}}} ! 335: \else \def\ps@headings{\let\@mkboth\markboth ! 336: \def\@oddfoot{}\def\@evenfoot{}\def\@oddhead{\hbox {}\sl \rightmark \hfil ! 337: \rm\thepage}\def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth ! 338: >\z@ ! 339: \thesection\hskip 1em\relax \fi ##1}}}} ! 340: \fi ! 341: \fi ! 342: \def\ps@myheadings{\let\@mkboth\@gobbletwo ! 343: \def\@oddhead{\hbox{}\sl\rightmark \hfil ! 344: \rm\thepage}\def\@oddfoot{}\def\@evenhead{\rm \thepage\hfil\sl\leftmark\hbox ! 345: {}}\def\@evenfoot{}\def\sectionmark##1{}\def\subsectionmark##1{}} ! 346: \ifcase\@artstyle % tm: firstpage style puts AT&T logo in header ! 347: \def\ps@firstpage{\def\@oddhead{\hbox to \textwidth{\hfil ! 348: \vbox to \headheight{\kern5pt\halign{\hfil ####\kern 3pt&####\hfil\cr ! 349: \vbox to 0pt{\vss\hbox{\hugeS\char'152}\vss}& ! 350: {\sxtnHB A\kern-.1em T\kern-.1em{\frtnHB\&}\kern-.1emT}\cr ! 351: \noalign{\vskip 2pt} ! 352: &{\tenH Bell Laboratories}\cr}\vss}}}% ! 353: \def\@oddfoot{}% ! 354: \def\@evenhead{}\def\@evenfoot{}}% ! 355: \fi ! 356: % Plain page style: numbers on top ! 357: \def\ps@plain{\let\@mkboth\@gobbletwo\def\@oddhead{\rm\hfil-\ \thepage\ -\hfil} ! 358: \let\@evenhead\@oddhead ! 359: \def\@oddfoot{} ! 360: \def\@evenfoot{}} ! 361: ! 362: % \UNIX, \regmark, and \tm ! 363: \def\markedfootnote#1#2{{\def\thefootnote{#1}\footnote[1]{#2}}} ! 364: \def\@@@no{no} ! 365: \def\unixfootnoteprinted{no} ! 366: \def\UNIX{UNIX% ! 367: \ifx\unixfootnoteprinted\@@@no% ! 368: \newbox\regbox\setbox\regbox=\hbox{\@regmark}% ! 369: \markedfootnote{\copy\regbox}{UNIX is a registered trademark of AT\&T.}% ! 370: \def\unixfootnoteprinted{yes}% ! 371: \fi}% ! 372: \def\@regmark{{\ooalign ! 373: {\hfil\raise.07ex\hbox{\tiny R}\hfil\crcr{$\scriptstyle\bigcirc$}}}} ! 374: \def\regmark{\raise1ex\hbox{\@regmark}} ! 375: \def\tm{\raise5pt\hbox{{\rm\tiny TM}}} ! 376: ! 377: \if\@artstyle2 % bibitems in style "1." ! 378: \def\@biblabel#1{#1.\hfill} ! 379: \fi ! 380: ! 381: \def\today{\ifcase\month\or ! 382: January\or February\or March\or April\or May\or June\or ! 383: July\or August\or September\or October\or November\or December\fi ! 384: \space\number\day, \number\year} ! 385: ! 386: % An example environment ! 387: ! 388: \begingroup \catcode `|=0 \catcode `[= 1 ! 389: \catcode`]=2 \catcode `\{=12 \catcode `\}=12 ! 390: \catcode`\\=12 |gdef|@xeg#1\end{eg}[#1|end[eg]] ! 391: |endgroup ! 392: ! 393: \def\eg{\list{}{\small\leftmargin 3em}% ! 394: \item[]\if@minipage\else\vskip\parskip\fi ! 395: \leftskip\@totalleftmargin\rightskip\z@ ! 396: \parindent\z@\parfillskip\@flushglue\parskip\z@ ! 397: \@tempswafalse \def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par} ! 398: \obeylines \tt \catcode``=13 \@noligs \let\do\@makeother \dospecials\frenchspacing \@vobeyspaces \@xeg} ! 399: \let\endeg\endlist ! 400: ! 401: % redefine @sect so that @svsec has a period after the number ! 402: \def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth ! 403: \def\@svsec{}\else ! 404: \refstepcounter{#1}\edef\@svsec{\csname the#1\endcsname.\hskip 1em }\fi ! 405: \@tempskipa #5\relax ! 406: \ifdim \@tempskipa>\z@ ! 407: \begingroup #6\relax ! 408: \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par} ! 409: \endgroup ! 410: \csname #1mark\endcsname{#7}\addcontentsline ! 411: {toc}{#1}{\ifnum #2>\c@secnumdepth \else ! 412: \protect\numberline{\csname the#1\endcsname}\fi ! 413: #7}\else ! 414: \def\@svsechd{#6\hskip #3\@svsec #8\csname #1mark\endcsname ! 415: {#7}\addcontentsline ! 416: {toc}{#1}{\ifnum #2>\c@secnumdepth \else ! 417: \protect\numberline{\csname the#1\endcsname}\fi ! 418: #7}}\fi ! 419: \@xsect{#5}} ! 420: ! 421: \ps@plain \pagenumbering{arabic} ! 422: \if\@artstyle2 \textwidth 6.5in\footskip .545in\voffset -.485in ! 423: \twocolumn\sloppy\flushbottom ! 424: \oddsidemargin \z@ \evensidemargin \z@ ! 425: \def\XX#1#2#3{\setcounter{page}{#1}\def\@title{#2}\def\@shorttitle{#3}}% ! 426: \def\@shorttitle{} ! 427: \else\onecolumn \if@twoside\else\raggedbottom\fi ! 428: \fi
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.