% ========================================================================= % ------------------------------------------------------------------------- % XX X % X % XX XXX XXX XXX XXX X XXXX % X X X X X X X X X X X % X XXXXX XXXXX XXXXX X X XXX % X X X X XX X X X X % XXX XXX XXX XXX XX XXX X XXXX % ------------------------------------------------------------------------- % ========================================================================= % ieee.cls --- For formatting IEEE conference & journal papers % --- Compiled by Gregory Plett, Sept 1997 % % This class was inspired by one first compiled by Gerry Murray and % Silvano Balemi for LaTeX209. It was later updated for use with % LaTeX2e, and some bugs were fixed, all by Istvan Kollar. Lastly, % I have tried to make the class easier to use by paper authors. % Significant new functionality has been added. Many routines are % "borrowed" from other people's packages and modified extensively. % When I rembered where I got the routines from, I gave the author % credit. % % After I made many changes on my own, I found a version by Peter % N"uchter, and tried to retain some amount of compatibility with his % version. To be completely compatible with him, you may need to % manually: % \usepackage{rawfonts}\usepackage{oldlfont} % \AtBeginDocument{\parindent1.0em} (?) % %=========================================================================== % % Usage: % \documentclass[main-mode,sub-mode,misc-options]{ieee} % \usepackage{your own packages} % \begin{document} % \bibliographystyle{IEEEbib} % \title[short]{regular} % \author[short]{full} % \maketitle % \begin{abstract}...\end{abstract} % \begin{keywords}...\end{keywords} % \section{...} % \PARstart ... or \PARstartCal ... % ... % \begin{biography}[picname.ps]{Author's name}...\end{biography} % \end{document} % % The document class options are: % % main-mode: One of the following is required. (draft is the default) % draft: Double-spaced, single column with date/time stamp. % submission: Double-spaced, suitable for submission for review. % compressed: Same as "submission", only single spaced. % final: Double-column, for assessing page-length and % format of final version. % % sub-mode: % techreport: This can modify "final" to produce a two-col % technical report. % internal: This can modify "submission", "compressed" or "final". % It changes the header to notify the reader that % this is a version of the manuscript to be used for % internal review processes only, and not to be % distributed. % submitted: This can modify "compressed" or "final". It changes % the header to notify the reader that this % is a preprint and not to be distributed. % inpress: This can modify "compressed" or "final". It changes the % header to notify the reader that this paper has % been accepted for publishing, but it is not yet to be % distributed. % reprint: This can modify "final". It changes the header % to notify the reader where the paper is reprinted from. % % misc-options: % narroweqnarray: Changes the spacing around the "=" sign in % equation arrays to make it the same as in displayed math. % inline: Compresses the horizontal spacing of inline math equations. % notitlepage: No separate title page. (default) % titlepage: Separate title page. % anonymous: Omit all author information from main part of paper. % Author info only prints on titlepage. % 9pt,10pt,11pt,12pt: Choose the appropriate type size. You should % not need to do this as the "correct" size is automatically % chosen. However, if you want, you may use these to change % the type size of the main text. "9pt" is a bit of a hack % to retain backward-compatibility. % invited: If the paper is an "invited" paper, then this option % prints "(Invited Paper)" under the authors' names. % % For regular IEEE submissions, define the journal name as: % \journal{IEEE Trans. Inst. Meas.} % % To specify the conference place and date: % \confplacedate{Ottawa, Canada, May 19--21, 1997} % % Before \maketitle, define: % \title{Title of paper} % \author{Author1\member{Fellow}\authorinfo{Department of % Electrical Engineering\\ Some University, Somewhere, CA 94305 % USA} \and Author2\member{Senior Member}\authorinfo{Deptartment of % Measurement and Instrument Eng., Another University, ...}} % % Note, the contents of \authorinfo tends to vary depending on if it is % a conference or journal paper. The amount of manual changes are % small, and must be done by a human anyway. The example given is for an % IMTC conference. % % See also IEEEbib.bst and ieeefig.sty % Also very useful for document preparation is the style file "endfloat", % available on all CTAN TeX archives. % %=========================================================================== % modified 14 October 2002: % - fixed bibliography listing of [#] when # < 10 and number of % references is greater than 9. Thanks for Janos Markus for finding % this bug and suggesting a solution. % modified 15 January 2000: % - "fixed" narroweqnarray. Never implemented! Now it is... % modified 12 January 2000: % - modified so only first \title and \author commands are recognized. % This allows LyX to have \title and \author with full syntax in % header, but dummy \title and \author show up in GUI. % - added "\date" so the \date command can change "submitted" and % "draft" date headers. % modified 11 January 2000: % - added PARstartLyX and PARstartCalLyX for LyX compatibility % - added biographyLyX % modified 1 Dec 1997: % - fixed first page in reprint mode to be same length as other pages % - added "invited" misc-option % modified 5 Sept 1997: % - added the inpress, reprint and internal sub-modes % - removed IMTC-conf and CDC-conf to separate files % modified 1 Sept 1997: % - included Babel package compatibility % - removed paper title from header on first page of draft % manuscript % - removed the fixed option "letterpaper" to allow a4paper (etc) % modified 1 Aug 1997: % - included the CDC-conf option %=========================================================================== % ************************************************************************** % ****** ****************************************** % ***** LaTeX2e INITIALIZATION ***************************************** % ****** ****************************************** % ************************************************************************** \typeout{Document Class `ieee' .} \NeedsTeXFormat{LaTeX2e}[1993/11/11] % Oldest acceptable version of LaTeX2e \ProvidesClass{ieee}[2000/01/11] % Name of package provided, date \def\i@@@cls{exists} % Initial Code & Declaration of Options % ------------------------------------- \newif\ifev@l \ev@lfalse % true if "final" mode. \newif\ifsubm@t \subm@tfalse % true if "submission" mode. \newif\ifdr@ft \dr@fttrue % true if "draft" mode. \newif\ifc@mpress \c@mpressfalse % true if "compressed" mode. \newif\if@technote \@technotefalse % true if "technote" sub-mode. \newif\ifintern@l \intern@lfalse % true if "internal" sub-mode. \newif\ifprepr@nt \prepr@ntfalse % true if "preprint" sub-mode. \newif\ifinpr@ss \inpr@ssfalse % true if "inpress" sub-mode. \newif\ifrepr@nt \repr@ntfalse % true if "reprint" sub-mode. \newif\iftitlep@ge \titlep@gefalse % true if has own titlepage \newif\if@non \@nonfalse % true if anonymous \newif\ifixpt \ixptfalse % true if trying to do 9 pt \newif\if@nvited \@nvitedfalse % true if an invited paper % Main options % ------------ \DeclareOption{draft}{\ev@lfalse\subm@tfalse\dr@fttrue% \typeout{ieee: `Draft' mode selected.}} \DeclareOption{submission}{\ev@lfalse\dr@ftfalse\subm@ttrue% \typeout{ieee: `Submission' mode selected.}} \DeclareOption{compressed}{\ev@lfalse\dr@ftfalse\subm@tfalse\c@mpresstrue% \typeout{ieee: `Compressed' mode selected.}} \DeclareOption{final}{\ev@ltrue\dr@ftfalse\subm@tfalse% \typeout{ieee: `Final' mode selected.}} \DeclareOption{evaluation}{\ev@ltrue\dr@ftfalse\subm@tfalse% \typeout{ieee: `Final' mode selected.}} % synonym for final % Sub options % ----------- \DeclareOption{technote}{\@technotetrue% \typeout{ieee: `Technote' sub-mode selected.}} \DeclareOption{internal}{\intern@ltrue\prepr@ntfalse\inpr@ssfalse\repr@ntfalse% \typeout{ieee: `Internal-Review' sub-mode selected.}} \DeclareOption{submitted}{\intern@lfalse\prepr@nttrue\inpr@ssfalse\repr@ntfalse% \typeout{ieee: `Submitted' sub-mode selected.}} \DeclareOption{preprint}{\intern@lfalse\prepr@nttrue\inpr@ssfalse\repr@ntfalse% \typeout{ieee: `Submitted' sub-mode selected.}} % synonym for submitted \DeclareOption{inpress}{\intern@lfalse\prepr@ntfalse\inpr@sstrue\repr@ntfalse% \typeout{ieee: `Inpress' sub-mode selected.}} \DeclareOption{reprint}{\intern@lfalse\prepr@ntfalse\inpr@ssfalse\repr@nttrue% \typeout{ieee: `Reprint' sub-mode selected.}} % Misc options % ------------ % regular or compressed "=" spacing in \def\eqnarr@ysep{\arraycolsep} % eqnarray (this is the default) % NOTE: we must use "def" and not "=" % as arraycolsep not yet defined. \DeclareOption{narroweqnarray}{\gdef\eqnarr@ysep{0.28em\relax}% \typeout{ieee: Narrow equation arrays selected.}} \DeclareOption{inline}{\everymath{\thinmuskip=2mu plus 1mu \medmuskip=3mu plus 1mu minus 2mu \thickmuskip=4mu plus 2mu\relax}% \typeout{ieee: Narrower inline equations selected.}} \DeclareOption{notitlepage}{\titlep@gefalse% \typeout{ieee: No separate title page.}} \DeclareOption{titlepage}{\titlep@getrue% \typeout{ieee: Use separate title page.}} \DeclareOption{anonymous}{\@nontrue\AtBeginDocument{\glpexclude{biography}} \typeout{ieee: Omit author information from paper.}} \DeclareOption{invited}{\@nvitedtrue% \typeout{ieee: (Invited Paper).}} \DeclareOption{9pt}{\ixpttrue% \typeout{ieee: Trying to emulate old `9pt' document class.}} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} % Execution of Options/Package Loading % ------------------------------------ \newlength\narrowcol \newlength\parindentsave % recover parindent in blsone text \ProcessOptions \ifev@l % if "final" mode... \if@technote\ixpttrue\typeout{ieee: Trying to emulate old `9pt' document class.}\fi% \LoadClass[twoside,final,twocolumn,10pt]{article} \else % if "draft"/"submission"/(compressed) mode... \ifixpt \LoadClass[oneside,final,onecolumn,10pt]{article} \else \LoadClass[oneside,final,onecolumn,12pt]{article} \fi \fi \RequirePackage[final]{graphicx} \RequirePackage{ifthen} % Re-Definitions of English words which must be done before % the Babel package (optional) is loaded. % --------------------------------------------------------- \def\keywordsname{Index Terms} \def\indexterms#1{\def\keywordsname{#1}} \def\appendicesname{Appendices} \def\figurename{Fig.} % ************************************************************************** % ***** Check Sub-Options for Compatibility w/ Main-Options ************ % ************************************************************************** \if@technote\ifev@l\else\ClassError{ieee}{`technote' sub-mode may be used only with the `final' ^^Jmain-mode. It may not be used with either the `draft,' `submission,' or ^^J`compressed' main-modes}{}\endinput\fi\fi \ifintern@l\ifdr@ft\ClassError{ieee}{`internal' sub-mode may be used only with the ^^J`submission,' `compressed,' or `final' main-modes. It may not be used ^^Jwith the `draft' main-mode}{}\endinput\fi\fi \ifprepr@nt\ifc@mpress\else\ifev@l\else\ClassError{ieee}{`submitted' sub-mode may be used only with the ^^J`compressed' or `final' main-modes. It may not be used with either the ^^J`draft' or `submission' main-modes}{}\endinput\fi\fi\fi \ifinpr@ss\ifc@mpress\else\ifev@l\else\ClassError{ieee}{`inpress' sub-mode may be used only with the `compressed' ^^Jor `final' main-modes. It may not be used with either the `draft' or ^^J`submission' main-modes}{}\endinput\fi\fi\fi \ifrepr@nt\ifev@l\else\ClassError{ieee}{`reprint' sub-mode may be used only with the `final' ^^Jmain-mode. It may not be used with either the `draft,' `submission,' or ^^J`compressed' main-modes}{}\endinput\fi\fi % ************************************************************************** % ***** Page Layout Definition ***************************************** % ************************************************************************** %% Layout definitions (mostly) common to all options. \hoffset 0in \voffset 0in \headheight 12pt \headsep 7mm \marginparsep 10pt \marginparwidth 20pt \marginparpush 25pt \columnsep 4mm \parindent 1.0em \lineskip 1pt \normallineskip 1pt \def\baselinestretch{1} \partopsep \z@ \topsep 1.3ex \parsep \z@ \itemsep \z@ \setlength{\parindentsave}{\parindent} \ifev@l % if "evaluation" mode % if camera-ready or A4paper ... \ifdim\paperwidth<211mm \oddsidemargin -11.4mm \evensidemargin -11.4mm % for regular US Letter, not camera-ready \else \oddsidemargin -8.45mm \evensidemargin -8.45mm \fi \ifrepr@nt \textheight 237.5mm % leave 6mm for cpyright on first page \else \textheight 243.5mm \fi \voffset -0.5in \textwidth 182.0mm \topmargin -12pt \setlength{\narrowcol}{89mm} \else % if "draft"/"submission" mode... \ifc@mpress % and "compressed" \oddsidemargin -0.25in \evensidemargin -0.25in \textheight 9in \textwidth 7in \topmargin -0.25in \setlength{\narrowcol}{7in} \else % and NOT "compressed" \renewcommand\baselinestretch{1.8}\renewcommand{\arraystretch}{0.8} \parindent=1.8\parindent \oddsidemargin 0pt \evensidemargin 0pt \headheight 12pt \headsep 0.375in \topmargin 0pt \textheight 8.5in \textwidth 6.5in \marginparsep 0in \marginparwidth 0pt \marginparpush 5pt \setlength{\narrowcol}{6.5in} \fi \fi \def\normalstyle{\rmfamily} % ************************************************************************** % ***** Font Definition ************************************************ % ************************************************************************** %% The 9-point option is being faked since it is not supported by the %% article base class. %% Check if we have selected 9 points \ifixpt \typeout{-- This is a 9 point document} \gdef\@ptsize{9} \def\@normalsize{\@setsize\normalsize{10.7pt}\ixpt\@ixpt \abovedisplayskip 1em plus2pt minus5pt\belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3pt\belowdisplayshortskip .6em plus3pt minus3pt \topsep \belowdisplayshortskip%!PN } \def\small{\@setsize\small{9.12pt}\viiipt\@viipt} \def\footnotesize{\@setsize\footnotesize{8.15pt}\viipt\@vipt} \def\scriptsize{\@setsize\scriptsize{8pt}\vipt\@vpt} \def\tiny{\@setsize\tiny{5pt}\vpt\@vpt} \def\large{\@setsize\large{12pt}\xpt\@xpt} \def\Large{\@setsize\Large{14pt}\xiipt\@xiipt} \def\LARGE{\@setsize\LARGE{18pt}\xivpt\@xivpt} \def\huge{\@setsize\huge{22pt}\xviipt\@xviipt} \def\Huge{\@setsize\Huge{25pt}\xxpt\@xxpt} \fi %% %% Check if we have selected 10 points \def\@tempa{0}\if\@ptsize\@tempa \typeout{-- This is a 10 point document} \def\@normalsize{\@setsize\normalsize{11.9pt}\xpt\@xpt \abovedisplayskip 1em plus2pt minus5pt\belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3pt\belowdisplayshortskip .6em plus3pt minus3pt \topsep \belowdisplayshortskip%!PN } \def\small{\@setsize\small{9.2pt}\viiipt\@viiipt} \def\footnotesize{\@setsize\footnotesize{8.8pt}\viiipt\@viiipt} \def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt} \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt} \def\normalsize{\@setsize\normalsize{11.9pt}\xpt\@xpt} \def\large{\@setsize\large{14pt}\xiipt\@xiipt} \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} \def\huge{\@setsize\huge{22pt}\xxpt\@xxpt} \def\Huge{\@setsize\Huge{28pt}\xxvpt\@xxvpt} \fi %% %% Check if we have selected 11 points \def\@tempa{1}\if\@ptsize\@tempa \typeout{-- This is an 11 point document} \def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt \abovedisplayskip 1em plus2pt minus5pt\belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3pt\belowdisplayshortskip .6em plus3pt minus3pt \topsep \belowdisplayshortskip%!PN } \def\small{\@setsize\small{12pt}\xpt\@xpt} \def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt} \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} \def\normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt} \def\large{\@setsize\large{14pt}\xiipt\@xiipt} \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} \fi %% %% Check if we have selected 12 points \def\@tempa{2}\if\@ptsize\@tempa \typeout{-- This is a 12 point document} \def\@normalsize{\@setsize\normalsize{14pt}\xiipt\@xiipt \abovedisplayskip 1em plus3pt minus6pt\belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3pt\belowdisplayshortskip .6em plus4pt minus4pt \topsep \belowdisplayshortskip%!PN } \def\small{\@setsize\small{11.4pt}\xpt\@xpt} \def\footnotesize{\@setsize\footnotesize{10pt}\ixpt\@ixpt} \def\scriptsize{\@setsize\scriptsize{9pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{8pt}\vipt\@vipt} \def\normalsize{\@setsize\normalsize{14pt}\xiipt\@xiipt} \def\large{\@setsize\large{18pt}\xivpt\@xivpt} \def\Large{\@setsize\Large{22pt}\xviipt\@xviipt} \def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt} \def\huge{\@setsize\huge{30pt}\xxvpt\@xxvpt} \let\Huge=\huge \fi \AtBeginDocument{\normalsize\normalstyle\ps@headings\pagenumbering{arabic}} % ************************************************************************** % ***** List Definition ************************************************ % ************************************************************************** %% Change aspect of lists with %% 1) \itemindent, label indentation wrt to left list margin %% 2) \leftmargini, the indentation of the whole list (on left, first level) \ifev@l \itemindent -1em \leftmargini 2em \leftmarginii 1em \leftmarginiii 1.5em \leftmarginiv 1.5em \leftmarginv 1.0em \leftmarginvi 1.0em \else \itemindent -1em \leftmargini 3em \leftmarginii 3em \leftmarginiii 3em \leftmarginiv 3em \leftmarginv 3em \leftmarginvi 3em \fi %\itemindent 2em % Alternative values: sometimes used.. %\leftmargini 0em \labelsep 5pt \leftmargin\leftmargini \labelwidth \z@ \def\@listI{\leftmargin\leftmargini} \@listI \def\@listi{\leftmargin\leftmargini \topsep \z@ plus 1pt minus 1pt} \def\@listii{\leftmargin\leftmarginii\labelwidth\leftmarginii \advance\labelwidth-\labelsep \topsep \z@} \def\@listiii{\leftmargin\leftmarginiii\labelwidth\leftmarginiii \advance\labelwidth-\labelsep \topsep \z@} \def\@listiv{\leftmargin\leftmarginiv\labelwidth\leftmarginiv \advance\labelwidth-\labelsep \topsep \z@} \def\@listv{\leftmargin\leftmarginv\labelwidth\leftmarginv \advance\labelwidth-\labelsep \topsep \z@} \def\@listvi{\leftmargin\leftmarginvi\labelwidth\leftmarginvi \advance\labelwidth-\labelsep \topsep \z@} \def\labelenumi{\theenumi.} \def\theenumi{\arabic{enumi}} \def\labelenumii{(\theenumii)} \def\theenumii{\alph{enumii}} \def\labelenumiii{\theenumiii.} \def\theenumiii{\roman{enumiii}} \def\labelenumiv{\theenumiv.} \def\theenumiv{\Alph{enumiv}} \def\p@enumii{\theenumi} \def\p@enumiii{\theenumi(\theenumii)} \def\p@enumiv{\p@enumiii\theenumiii} \def\labelitemi{$\scriptstyle\bullet$} \def\labelitemii{\bf --} \def\labelitemiii{$\ast$} \def\labelitemiv{$\cdot$} %% \itemindent is set to \z@ by list, so define new temporary variable \newdimen\tmpitemindent \def\verse{\let\\=\@centercr \list{}{\itemsep\z@ \itemindent -1.5em \listparindent \itemindent \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]} \let\endverse\endlist \def\quotation{\list{}{\listparindent 1.5em \itemindent\listparindent \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]} \let\endquotation=\endlist \def\quote{\list{}{\rightmargin\leftmargin}\item[]} \let\endquote=\endlist \def\@mklab#1{#1} \def\description{\tmpitemindent\itemindent\list{}{\itemindent\tmpitemindent \labelwidth\z@\def\makelabel##1{\hspace\labelsep\emph{##1}}}} \def\enddescription{\endlist\par} \def\enumerate{\tmpitemindent\itemindent\ifnum \@enumdepth >3 \@toodeep\else \advance\@enumdepth \@ne \edef\@enumctr{enum\romannumeral\the\@enumdepth}% \list{\csname label\@enumctr\endcsname}{\itemindent\tmpitemindent \usecounter{\@enumctr}\def\makelabel##1{\hspace\labelsep\hfil{##1}}}\fi} \def\endenumerate{\endlist\par} \def\itemize{\tmpitemindent\itemindent\ifnum \@itemdepth >3 \@toodeep\else \advance\@itemdepth\@ne \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% \list{\csname\@itemitem\endcsname}{\itemindent\tmpitemindent \def\makelabel##1{\hspace\labelsep\hfil\emph{##1}}}\fi} \def\enditemize{\endlist\par} \newif\if@restonecol \def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn \else \newpage \fi \thispagestyle{coverpagestyle}\c@page\z@} \def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi% \if@twoside\mbox{}\thispagestyle{coverpagestyle}\c@page\z@\cleardoublepage\fi} \arraycolsep 5pt \tabcolsep 6pt \arrayrulewidth .4pt \doublerulesep 2pt \tabbingsep\labelsep % ************************************************************************** % ***** Footnote Definition ******************************************** % ************************************************************************** \skip\footins 10pt plus 5pt minus 2pt \footnotesep 7pt \footskip 6mm \skip\@mpfootins = \skip\footins \fboxsep = 3pt \fboxrule = .4pt \long\def\@makefntext#1{\parindent .8em\indent$^{\@thefnmark}$#1} \def\footnoterule{} % Reset baselinestretch within footnotes. % Originally stolen from Stanford University thesis style. % -------------------------------------------------------- \long\def\@footnotetext#1{\insert\footins{\blsone% \footnotesize\interlinepenalty\interfootnotelinepenalty \splittopskip\footnotesep \splitmaxdepth \dp\strutbox \floatingpenalty \@MM \hsize\columnwidth \@parboxrestore \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext \let\par\\ {\rule{\z@}{\footnotesep}\ignorespaces #1\strut}}} % ************************************************************************** % ***** Keep track of Sections ***************************************** % ************************************************************************** \if@technote \setcounter{secnumdepth}{3} \else \setcounter{secnumdepth}{4} \fi \def\thesection{\@Roman\c@section} \def\thesubsection{\Alph{subsection}} \def\thesubsubsection{\thesubsection.\arabic{subsubsection}} \def\thesubsubsectiondis{\Alph{subsection}.\arabic{subsubsection}} \def\theparagraph{\thesubsubsection.\alph{paragraph}} \def\theparagraphdis{\thesubsubsectiondis.\alph{paragraph}} \def\theequation{\arabic{equation}} % ************************************************************************** % ***** Table of Contents, List of Figures/Tables Definitions ********** % ************************************************************************** \def\@pnumwidth{1.55em} \def\@tocrmarg {2.55em} \def\@dotsep{4.5} \setcounter{tocdepth}{3} \def\tableofcontents{\section*{\contentsname}\@starttoc{toc}} \def\l@section#1#2{\addpenalty{\@secpenalty} \addvspace{1.0em plus 1pt} \@tempdima 1.8em \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip-\@pnumwidth \bf\leavevmode #1\hfil\hbox to\@pnumwidth{\hss #2} \par \endgroup} \def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} \def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} \def\listoffigures{\section*{\listfigurename}\@starttoc{lof}} \def\l@figure{\@dottedtocline{1}{1em}{1.8em}} \def\listoftables{\section*{\listtablename}\@starttoc{lot}} \let\l@table\l@figure % ************************************************************************** % ***** Float Definitions ********************************************** % ************************************************************************** %% Normal Floats %% Double Column Floats \floatsep 12pt plus 2pt minus 2pt \dblfloatsep 12pt plus 2pt minus 2pt \textfloatsep 20pt plus 2pt minus 4pt \dbltextfloatsep 20pt plus 2pt minus 4pt %\@maxsep 20pt \@dblmaxsep 20pt %!PN \@fptop 0pt plus 1fil \@dblfptop 0pt plus 1fil \@fpsep 8pt plus 2fil \@dblfpsep 8pt plus 2fil \@fpbot 0pt plus 1fil \@dblfpbot 0pt plus 1fil \def\topfraction{1.0} \def\dbltopfraction{1.0} \def\floatpagefraction{0.8} \def\dblfloatpagefraction{0.8} \setcounter{topnumber}{2} \setcounter{dbltopnumber}{4} % \intextsep 12pt plus 2pt minus 2pt \setcounter{bottomnumber}{2} \def\bottomfraction{.4} \setcounter{totalnumber}{4} \def\textfraction{.2} % Reset baselinestretch within floats. % Originally stolen from Stanford University thesis style. % -------------------------------------------------------- \def\@xfloat#1[#2]{\ifhmode \@bsphack\@floatpenalty -\@Mii\else \@floatpenalty-\@Miii\fi\def\@captype{#1}\ifinner \@parmoderr\@floatpenalty\z@ \else\@next\@currbox\@freelist{\@tempcnta\csname ftype@#1\endcsname \multiply\@tempcnta\@xxxii\advance\@tempcnta\sixt@@n \@tfor \@tempa :=#2\do {\if\@tempa h\advance\@tempcnta \@ne\fi \if\@tempa t\advance\@tempcnta \tw@\fi \if\@tempa b\advance\@tempcnta 4\relax\fi \if\@tempa p\advance\@tempcnta 8\relax\fi }\global\count\@currbox\@tempcnta}\@fltovf\fi \global\setbox\@currbox\vbox\bgroup \def\baselinestretch{1}\small\normalsize \hsize\columnwidth \@parboxrestore} % ************************************************************************** % ***** Caption Definition ********************************************* % ************************************************************************** % some journals do not have centered captions for figures. \newif\ifc@ptionleft \c@ptionlefttrue \def\leftfigcaptions{\c@ptionlefttrue} \def\centerfigcaptions{\c@ptionleftfalse} \long\def\caption{\refstepcounter\@captype \@dblarg{\@caption\@captype}} \long\def\@caption#1[#2]#3{\par\addcontentsline{\csname ext@#1\endcsname}{#1}{% \protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}} \begingroup \@parboxrestore \normalsize \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}{#1}\par \endgroup} \def\tablestring{table} \def\figurestring{figure} % changed by GLP to allow table captions to be set to a specific maximum % width "\captionwidth", if defined. \newlength{\captionindent} \long\def\@makecaption#1#2#3{ \ifx\figurestring#3 \vskip 5pt \setbox\@tempboxa\hbox{\small #1.~ #2} \ifdim \wd\@tempboxa >\hsize \setbox\@tempboxa\hbox{\small #1.~ } %\setlength\captionindent{\wd\@tempboxa} \divide\captionindent by 2 %\parbox[t]{\hsize}{\small \hangindent \captionindent \hangafter=1% \parbox[t]{\hsize}{\small \unhbox\@tempboxa#2} \else \hbox to\hsize{\small\ifc@ptionleft\else\hfil\fi\box\@tempboxa\hfil} \fi \else \begin{center} \ifx\captionwidth\undefined {\small #1}\\{\small\scshape #2} \else \begin{minipage}{\captionwidth} \begin{center}{\small #1}\\{\small\scshape #2}\end{center} \end{minipage} \fi \end{center}\vskip 4pt \fi} \def\thefigure{\@arabic\c@figure} \def\fps@figure{tbp} \def\ftype@figure{1} \def\ext@figure{lof} \def\fnum@figure{\figurename\ \thefigure} %\def\figure{\@float{figure}} % GLP %\let\endfigure\end@float \@namedef{figure*}{\@dblfloat{figure}} \@namedef{endfigure*}{\end@dblfloat} \def\thetable{\@Roman\c@table} \def\fps@table{tbp} \def\ftype@table{2} \def\ext@table{lot} \def\fnum@table{TABLE~\thetable} \def\table{\@float{table}} \let\endtable\end@float \@namedef{table*}{\@dblfloat{table}} \@namedef{endtable*}{\end@dblfloat} % ************************************************************************** % ***** Header/Footer Definition *************************************** % ************************************************************************** % compute the time in hours and minutes; make new vars \timehh and \timemm \newcount\timehh\newcount\timemm\timehh=\time\divide\timehh by 60 \timemm=\time\count255=\timehh\multiply\count255 by-60 \advance\timemm by \count255 \ifnum\timehh=12\def\apm{pm}\else \ifnum\timehh>12\def\apm{pm}\advance\timehh by-12\else \def\apm{am}\fi\fi \def\t@me{\number\timehh\,:\,\ifnum\timemm<10 0\fi\number\timemm\,\apm} % default definitions % ------------------- \def\theevenhe@d{\footnotesize\thepage \hfil \leftmark\hbox{}} \def\theoddhe@d{\hbox{}\footnotesize\rightmark \hfil \thepage} \def\theevenf@@t{} \def\theoddf@@t{} \def\theeventphe@d{\footnotesize\thepage \hfil \hbox{}} \def\theoddtphe@d{\hbox{}\footnotesize \hfil \thepage} \def\theeventpf@@t{} \def\theoddtpf@@t{} \def\theevencphe@d{} \def\theoddcphe@d{} \def\theevencpf@@t{} \def\theoddcpf@@t{} \def\internalmsg{Preliminary version for evaluation: Please do not circulate without the permission of the author(s)} \def\submittedmsg{SUBMITTED FOR PUBLICATION TO:} \def\acceptedmsg{ACCEPTED FOR PUBLICATION:} \def\inpressmsg{(IN PRESS)} \def\reprintmsg{REPRINTED FROM:} % default cover page style (optional cover page) % ---------------------------------------------- \def\ps@coverpagestyle{ \def\@oddhead{\theoddcphe@d} \def\@evenhead{\theevencphe@d} \def\@oddfoot{\theoddcpf@@t} \def\@evenfoot{\theevencpf@@t} } % default title page style (first page of paper) % ---------------------------------------------- \def\ps@titlepagestyle{ \def\@oddhead{\theoddtphe@d} \def\@evenhead{\theeventphe@d} \def\@oddfoot{\theoddtpf@@t} \def\@evenfoot{\theeventpf@@t} } % default regular page style % -------------------------- \if@twoside \def\ps@headings{ \def\@oddhead{\theoddhe@d} \def\@evenhead{\theevenhe@d} \def\@oddfoot{\theoddf@@t} \def\@evenfoot{\theevenf@@t} } \else \def\ps@headings{ \def\@oddhead{\theoddhe@d} \def\@oddfoot{\theoddf@@t} \def\@evenhead{} \def\@evenfoot{} } \fi % For draft mode (no sub-modes allowed) % ------------------------------------- \ifdr@ft \def\leftmark{\sh@rttitle}\let\rightmark\leftmark \def\theoddf@@t{\footnotesize\today---\t@me\hfil DRAFT} \def\theevenf@@t{\footnotesize DRAFT\hfil\today---\t@me} \def\theoddtpf@@t{\footnotesize\today---\t@me\hfil DRAFT} \def\theeventpf@@t{\footnotesize DRAFT\hfil\today---\t@me} \fi % For submission mode (default plus internal sub-modes allowed) % ------------------------------------------------------------- \ifsubm@t \def\leftmark{\sh@rttitle}\def\rightmark{\titl@line} \ifintern@l \def\theeventphe@d{\footnotesize\thepage \hfil \rightmark\hbox{}} \def\theoddtphe@d{\hbox{}\footnotesize\rightmark \hfil \thepage} \def\rightmark{\vbox to 0pt{\vss\hbox{\internalmsg} \hbox{\sh@rttitle}}} \def\leftmark{\vbox to 0pt{\vss\hbox{\internalmsg} \hbox{\phantom{\internalmsg}\llap{\sh@rttitle}}}} \else % put date on first page. \edef\TODAY{\uppercase{\today}} \def\theeventphe@d{\footnotesize\thepage \hfil \submittedmsg\ \@journal\@titletext, \TODAY} \def\theoddtphe@d{\footnotesize\submittedmsg\ \@journal\@titletext, \TODAY\hfil \thepage} \def\theevencphe@d{\footnotesize\hbox{} \hfil \submittedmsg\ \@journal\@titletext, \TODAY} \def\theoddcphe@d{\footnotesize\submittedmsg\ \@journal\@titletext, \TODAY\hfil \hbox{}} \fi \fi % For compressed mode (default, internal, submitted and % inpress sub-modes allowed) % ----------------------------------------------------- \ifc@mpress \def\leftmark{\sh@rttitle}\def\rightmark{\titl@line} \ifintern@l \def\theeventphe@d{\footnotesize\thepage \hfil \rightmark\hbox{}} \def\theoddtphe@d{\hbox{}\footnotesize\rightmark \hfil \thepage} \def\rightmark{\vbox to 0pt{\vss\hbox{\internalmsg} \hbox{\sh@rttitle}}} \def\leftmark{\vbox to 0pt{\vss\hbox{\internalmsg} \hbox{\phantom{\internalmsg}\llap{\sh@rttitle}}}} \fi \ifprepr@nt \edef\TODAY{\uppercase{\today}} \def\theeventphe@d{\footnotesize\thepage \hfil \submittedmsg\ \@journal\@titletext, \TODAY} \def\theoddtphe@d{\footnotesize\submittedmsg\ \@journal\@titletext, \TODAY\hfil \thepage} \def\theevencphe@d{\footnotesize\hbox{} \hfil \submittedmsg\ \@journal\@titletext, \TODAY} \def\theoddcphe@d{\footnotesize\submittedmsg\ \@journal\@titletext, \TODAY\hfil \hbox{}} \fi \ifinpr@ss \def\leftmark{\acceptedmsg\ \@journal\@titletext, \inpressmsg} \def\theeventphe@d{\footnotesize\thepage \hfil \leftmark\hbox{}} \def\theoddtphe@d{\hbox{}\footnotesize\leftmark \hfil \thepage} \fi \fi % For final (evaluate) mode (default, techreport, internal, % submitted, inpress and reprint sub-modes allowed) % --------------------------------------------------------- \ifev@l \edef\TODAY{\uppercase{\today}} \def\leftmark{\@journal\@titletext}\def\rightmark{\titl@line} \def\theeventphe@d{\footnotesize\thepage \hfil \leftmark\hbox{}} \def\theoddtphe@d{\hbox{}\footnotesize\leftmark \hfil \thepage} \if@technote % make header a little bigger \def\theevenhe@d{\small\thepage \hfil \leftmark\hbox{}} \def\theoddhe@d{\hbox{}\small\rightmark \hfil \thepage} \def\theeventphe@d{\small\thepage \hfil \leftmark\hbox{}} \def\theoddtphe@d{\hbox{}\small\leftmark \hfil \thepage} \fi \ifintern@l \def\theeventphe@d{\footnotesize\thepage \hfil \rightmark\hbox{}} \def\theoddtphe@d{\hbox{}\footnotesize\rightmark \hfil \thepage} \def\rightmark{\vbox to 0pt{\vss\hbox{\internalmsg} \hbox{\sh@rttitle}}} \def\leftmark{\vbox to 0pt{\vss\hbox{\internalmsg} \hbox{\phantom{\internalmsg}\llap{\sh@rttitle}}}} \fi \ifprepr@nt \def\leftmark{\submittedmsg\ \@journal\@titletext, \TODAY} \fi \ifinpr@ss \def\leftmark{\acceptedmsg\ \@journal\@titletext, \inpressmsg} \fi \ifrepr@nt % reset page size on second and following pages b/c no copyright info \let\oldshipout\shipout \gdef\shipout{\global\textheight 243.5mm\oldshipout} \def\theeventpf@@t{\footnotesize\hfil\@ieeecopyright\hfil} \def\theoddtpf@@t{\footnotesize\hfil\@ieeecopyright\hfil} \def\leftmark{\reprintmsg\ \@journal\@titletext} \fi \fi %% Defines the command for putting the header. footernote{TEXT} is the same %% as markboth{TEXT}{TEXT}. Here for compatibility with other style files. \def\markboth#1#2{\def\leftmark{#1}\def\rightmark{#2}} \def\footernote#1{\markboth{#1}{#1}} % ************************************************************************** % ***** Citation/Bibliography Definitions ****************************** % ************************************************************************** %% separate citations with "], [" \def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi \def\@citea{}\@cite{\@for\@citeb:=#2\do {\@citea\def\@citea{], [}\@ifundefined {b@\@citeb}{{\bf ?}\@warning {Citation `\@citeb' on page \thepage \space undefined}}% {\csname b@\@citeb\endcsname}}}{#1}} \def\@cite#1#2{[{#1\if@tempswa, #2\fi}]} %% Allow short (name-less) citations, when used in conjunction with a %% bibliography style that creates labels like \citename{, } \let\@internalcite\cite \def\cite{\def\citename##1{##1}\@internalcite} \def\shortcite{\def\citename##1{}\@internalcite} \def\@biblabel#1{\def\citename##1{##1}[#1]\hfill} \def\thebibliography#1{\section*{\refname}\footnotesize\list {\hss[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth \advance\leftmargin\labelsep \itemsep 0pt plus .5pt \usecounter{enumi}} \def\newblock{\hskip .11em plus .33em minus .07em} \sloppy\clubpenalty4000\widowpenalty4000 \sfcode`\.=1000\relax \ifev@l\else\normalsize\fi %added by GLP } \let\endthebibliography=\endlist % ************************************************************************** % ***** Appendix/Appendices Definitions ******************************** % ************************************************************************** \newcounter{numappendices}\setcounter{numappendices}{0} \newif\ifappendix \appendixfalse %% appendix command for one single appendix \def\appendix{\par \appendixtrue \typeout{appendices: \arabic{numappendices}} \setcounter{section}{0}\setcounter{subsection}{0} \gdef\thesection{\Alph{section}} \ifnum \value{numappendices}>1 \section*{\appendicesname} \else \section*{\appendixname} \fi \setcounter{numappendices}{0} } %% appendices command for multiple appendicies \def\appendices{\par \appendixtrue \typeout{appendices: \arabic{numappendices}} \setcounter{section}{0}\setcounter{subsection}{0} \gdef\thesection{\Alph{section}} \section*{\appendicesname} \setcounter{numappendices}{0} } \AtEndDocument{\if@filesw\immediate\write\@auxout{\string\setcounter{numappendices}{\arabic{numappendices}}}\fi} % ************************************************************************** % ***** Title Definitions ********************************************** % ************************************************************************** \def\titl@line{\sh@rttitle} %for the header at the top of the page. \def\@title{\typeout{ieee: Warning! No \noexpand\title given!}} \def\title{\@ifnextchar [{\titlea}{\titleb}}%] \def\set@title#1{\gdef\@title{#1}\global\def\set@title##1{}} \def\setsh@rttitle#1{\gdef\sh@rttitle{#1}\global\def\setsh@rttitle##1{}} \def\titlea[#1]#2{\set@title{#2}\setsh@rttitle{\uppercase{#1}}} \def\titleb#1{\set@title{#1}\setsh@rttitle{\uppercase{#1}}} \def\authorinfo#1{\let\\\relax\thanks{#1}} \ifev@l \if@technote \def\member#1{} \else \def\member#1{, \emph{#1, IEEE}} \fi \else \def\member#1{} \fi \def\and{\unskip% % \begin{tabular} \end{tabular}% \hskip 0pt plus 0.1pt% \begin{tabular}[t]{@{}c@{}}\ }% \def\@author{\typeout{ieee: Warning! No \noexpand\author given!}} \def\author{\@ifnextchar [{\authora}{\authorb}}%] \def\set@author#1{\gdef\@author{#1}\global\def\set@author##1{}} \def\settitl@line#1{\gdef\titl@line{#1}\global\def\settitl@line##1{}} \def\authora[#1]#2{\set@author{#2}\if@non\else\settitl@line{#1: \sh@rttitle}\fi} \def\authorb#1{\set@author{#1}} \def\date#1{\def\today{#1}\edef\TODAY{\uppercase{\today}}} \long\def\maketitle{% \begingroup \let\@thanks\@empty \renewcommand\thefootnote{} % the \thanks{} mark type is empty \iftitlep@ge\begin{titlepage}\@maketitlepage\@thanks\end{titlepage}% \let\@thanks\@empty\fi \thispagestyle{titlepagestyle} \if@twocolumn \if@technote %\if@twoside\newpage\cleardoublepage\else\newpage\fi% \newpage\global\@topnum\z@ \ifrepr@nt \ifx\@loginfo\undefined\typeout{ieee: Warning! No \noexpand\loginfo given!}\else\let\\\relax\thanks{\@loginfo}\fi% \fi \@maketitle \else \ifnum \col@number=\@ne \ifrepr@nt \ifx\@loginfo\undefined\typeout{ieee: Warning! No \noexpand\loginfo given!}\else\let\\\relax\thanks{\@loginfo}\fi% \fi \@maketitle \else \twocolumn[% \ifrepr@nt% \ifx\@loginfo\undefined\typeout{ieee: Warning! No \noexpand\loginfo% given!}\else\let\\\relax\thanks{\@loginfo}\fi% \fi% \@maketitle]% \fi \fi \else \newpage \global\@topnum\z@ % Prevents figures from going at top of page. \ifrepr@nt \ifx\@loginfo\undefined\typeout{ieee: Warning! No \noexpand\loginfo given!}\else\let\\\relax\thanks{\@loginfo}\fi \fi \@maketitle \fi \thispagestyle{titlepagestyle}% \@thanks \endgroup \setcounter{footnote}{0}% \global\let\thanks\relax \global\let\maketitle\relax \global\let\@maketitle\relax \global\let\@thanks\@empty \global\let\@author\@empty \global\let\@date\@empty \global\let\@title\@empty \global\let\title\relax \global\let\author\relax \global\let\date\relax \global\let\and\relax } \long\def\@maketitle{\unskip\newpage% \begin{center}\blsone \let \footnote \thanks \if@technote {\bfseries\@title\par}\if@non\else\vskip 1.3em{\lineskip .5em \noindent\begin{tabular}[t]{@{}c@{}}\@author\end{tabular}}\fi\par \else\unskip \noindent{\Huge\@title\par}% \if@non\else\vskip1.0em% \noindent{\large\lineskip .5em% \begin{tabular}[t]{@{}c@{}}\@author\end{tabular}}% \fi\par% \if@nvited\vskip1.0em\noindent\emph{\large(Invited Paper)}\par\fi \fi \ifrepr@nt \ifx\@lognumber\undefined\typeout{ieee: Warning! No \noexpand\pubitemident or \noexpand\lognumber given!}\else\thanks{\@lognumber}\fi% \fi \end{center}\par\vskip 0.5em}% \long\def\@maketitlepage{\newpage% \mbox{}\vfil \begin{center}\blsone \let \footnote \thanks \if@technote {\bfseries\@title\par}\vskip 1.3em{\lineskip .5em \noindent\begin{tabular}[t]{@{}c@{}}\@author\end{tabular}\par} \else \vskip0.2em{\Huge\@title\par}\vskip1.0em% \iftitlep@ge\vfil\fi \noindent{\large\lineskip .5em% \begin{tabular}[t]{@{}c@{}}\@author\end{tabular}\par}% \fi \end{center}\par\vfil\mbox{}} \def\@journal{\typeout{ieee: Warning! No \noexpand\journal given!}} \def\journal#1{\def\@journal{\uppercase{#1}}} \def\@ieeecopyright{\typeout{ieee: Warning! No \noexpand\ieeecopyright given!}} \def\ieeecopyright#1{\def\@ieeecopyright{#1}} \def\lognumber#1{\def\@lognumber{IEEE Log Number #1.}} \def\pubitemident#1{\def\@lognumber{Publisher Item Identifier #1.}} \long\def\loginfo#1{\long\def\@loginfo{\hbox{\vrule height 3ex width \z@}#1}} \def\sh@rttitle{} \def\@titletext{} \def\titletext#1{\def\@titletext{#1}} \def\firstpage#1{\setcounter{page}{#1}} % ************************************************************************** % ***** Abstract Definition ******************************************** % ************************************************************************** \def\abstract{% \if@twocolumn \small\bfseries{\itshape\abstractname\/---}% \else \begin{center}\vspace{-0.8em}\small\bf\abstractname\end{center} \quotation\small \fi\ignorespaces} \def\endabstract{\vspace{0.6em}\par\if@twocolumn\else\endquotation\fi \normalsize\normalstyle} % ************************************************************************** % ***** Keywords Definition ******************************************** % ************************************************************************** \def\keywords{\vspace{-.3em} \if@twocolumn \small\bfseries{\itshape\keywordsname\/---}% \else \begin{center}\small\bf\keywordsname\end{center}\quotation\small \fi\ignorespaces} \def\endkeywords{\vspace{0.6em}\par\if@twocolumn\else\endquotation\fi \normalsize\normalstyle} % ************************************************************************** % ***** Fix Section Numbering ****************************************** % ************************************************************************** \gdef\@punct{.\ \ } % Punctuation after run-in section heading \def\@sect#1#2#3#4#5#6[#7]#8{% \ifnum #2>\c@secnumdepth \def\@svsec\@empty \else \refstepcounter{#1}% \protected@edef\@svsec{% %\ifnum #2=1\Roman{#1}.\fi\ifnum #2=2\Alph{#1}.\fi \ifnum #2=1\thesection.\fi \ifnum #2=2\thesubsection.\fi \ifnum #2>2{\csname the#1dis\endcsname}\if@technote.\fi\fi \hskip .5em} \ifnum #2=1\ifappendix\stepcounter{numappendices}\fi\fi \fi \@tempskipa #5\relax \ifdim \@tempskipa>\z@ \begingroup #6\relax \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par} \endgroup \csname #1mark\endcsname{#7} \addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth\else \protect\numberline{\csname the#1\endcsname}\fi#7} \else \def\@svsechd{#6\hskip #3\@svsec #8\@punct\csname #1mark\endcsname{#7} \addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth \else \protect\numberline{\csname the#1\endcsname}\fi#7}} \fi \@xsect{#5}} \def\@ssect#1#2#3#4#5{\@tempskipa #3\relax \ifdim \@tempskipa>\z@ \begingroup #4\@hangfrom{\hskip #1}{\interlinepenalty \@M #5\par}\endgroup \else \def\@svsechd{#4\hskip #1\relax #5\@punct}\fi \@xsect{#3}} % ************************************************************************** % ***** Section Definitions ******************************************** % ************************************************************************** \def\section{\@startsection{section}{1}{\z@}{2.0ex plus .5ex minus .2ex}{1.0ex plus .2ex}{\centering\scshape}} \def\subsection{\@startsection{subsection}{2}{\z@}{2.0ex plus .5ex minus .2ex}{1.0ex plus .2ex}{\itshape}} \if@technote \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{2.0ex plus .5ex minus .1ex}{0pt}{\itshape}} \else \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{2.0ex plus .5ex minus .2ex}{1.0ex plus .2ex}{\normalstyle}} \def\paragraph{\@startsection{paragraph}{4}{\z@}{1.0ex plus .5ex minus .2ex}{0ex}{\normalstyle}} \fi % ************************************************************************** % ***** Special Environment Definitions ******************************** % ************************************************************************** \def\QED{\mbox{\rule[0pt]{1.5ex}{1.5ex}}} \def\proof{\noindent\hspace{1em}{\it Proof: }} \def\endproof{\hspace*{\fill}~\QED\par\endtrivlist\unskip} \def\@begintheorem#1#2{\tmpitemindent\itemindent\topsep 0pt\normalstyle\trivlist \item[\hskip \labelsep{\indent\it #1\ #2:}]\itemindent\tmpitemindent} \def\@opargbegintheorem#1#2#3{\tmpitemindent\itemindent\topsep 0pt\normalstyle \trivlist \item[\hskip\labelsep{\indent\it #1\ #2\ \normalstyle(#3)}]\itemindent\tmpitemindent} \def\@endtheorem{\endtrivlist\unskip} % ************************************************************************** % ***** Special Environment Definitions ******************************** % ************************************************************************** \if@twoside\else\raggedbottom\fi %% Definition for Big letter at the beginning of a paragraph %% \def\PARstart#1#2 {\begingroup\def\par{\endgraf\endgroup\lineskiplimit=0pt} \setbox2=\hbox{\uppercase{#2} }\newdimen\tmpht \tmpht \ht2 \advance\tmpht by \baselineskip\font\hhuge=cmr10 at \tmpht \setbox1=\hbox{{\hhuge #1}} \count7=\tmpht \count8=\ht1\divide\count8 by 1000 \divide\count7 by\count8 \tmpht=.001\tmpht\multiply\tmpht by \count7\font\hhuge=cmr10 at \tmpht \setbox1=\hbox{{\hhuge #1}} \noindent \hangindent1.05\wd1 \hangafter=-2 {\hskip-\hangindent \lower1\ht1\hbox{\raise1.0\ht2\copy1}% \kern-0\wd1}\copy2\lineskiplimit=-1000pt} \def\PARstartCal#1#2 {\begingroup\def\par{\endgraf\endgroup\lineskiplimit=0pt} \setbox2=\hbox{\uppercase{#2} }\newdimen\tmpht \tmpht \ht2 \advance\tmpht by \baselineskip\font\hhuge=cmsy10 at \tmpht \setbox1=\hbox{{\hhuge #1\/}} \count7=\tmpht \count8=\ht1\divide\count8 by 1000 \divide\count7 by\count8 \tmpht=.001\tmpht\multiply\tmpht by \count7\font\hhuge=cmsy10 at \tmpht \setbox1=\hbox{{\hhuge #1\/}} \noindent \hangindent1.05\wd1 \hangafter=-2 {\hskip-\hangindent \lower1\ht1\hbox{\raise1.0\ht2\copy1}% \kern-0\wd1}\copy2\lineskiplimit=-1000pt} \def\PARstartLyX#1{\PARstart #1} \def\PARstartCalLyX#1{\PARstartCal #1} \if@technote\def\PARstart#1#2{#1#2}\fi % if technical note, disable it \if@technote\def\PARstartCal#1#2{#1#2}\fi % if technical note, disable it \if@technote\def\PARstartLyX#1{#1}\fi % if technical note, disable it \if@technote\def\PARstartCalLyx#1{#1}\fi % if technical note, disable it % ************************************************************************** % ***** Misc. Definitions ********************************************** % ************************************************************************** %Restore single spacing \newcommand{\blsone}{\renewcommand\baselinestretch{1}% \renewcommand\arraystretch{1.2}\setlength{\parindent}{\parindentsave}% \normalsize} \newcommand{\capitem}[1]{{\hspace{0.2ex}(#1)}~} \newcommand{\insdate}{} % ************************************************************************** % ***** MATH Definitions *********************************************** % ************************************************************************** \def\eqnarray{% \stepcounter{equation}% \def\@currentlabel{\p@equation\theequation}% \global\@eqnswtrue \m@th \global\@eqcnt\z@ \tabskip\@centering \let\\\@eqncr $$\everycr{}\halign to\displaywidth\bgroup \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel &\global\@eqcnt\@ne\hskip \eqnarr@ysep\hfil${##}$\hfil &\global\@eqcnt\tw@ \hskip \eqnarr@ysep $\displaystyle{##}$\hfil\tabskip\@centering &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup \tabskip\z@skip \cr } \def\endeqnarray{% \@@eqncr \egroup \global\advance\c@equation\m@ne $$\@ignoretrue } % ************************************************************************** % ***** Biography Definitions ****************************************** % ************************************************************************** % This is the main code for the biography environment of the IEEE % transactions class. The previous biography code had some known % problems which were difficult to fix. The crux of the issue was that % the photo frame was overlaid by text when \baselinestretch>1 or when % the biography consisted of multiple short paragraphs. % % The fix was done by extracting code from the excellent package: % 'picinpar.sty' version 1.2a as of july 13, 1993 % by Friedhelm Sowa % % (At least most of) The bugs you find in this code were introduced % unwittingly by myself. % %---------------- % Known problems: % % - Don't use multiple blank lines to separate paragraphs. A single % blank line works well, but multiple blank lines will confuse % the code. This has something to do with the \def\par{\\\indent} % line, but I can't think of an appropriate fix. Similarly, make % sure the environment doesn't end with an extra blank line. % - Don't use \samepage % - Use \footnotemark within and \footnotetext outside the % window-environment instead of \footnote % - When using the epic-package load picinpar before epic % like \documentstyle[...,picinpar,epic]{...} % % Counts \newcount\br \newcount\nb \newcount\tcdsav \newcount\tcl \newcount\tcd \newcount\tcn \newcount\cumtcl % Dimens \newdimen\rtside \newdimen\hpic \newdimen\vpic \newdimen\strutilg \newdimen\picwd \newdimen\topheight \newdimen\ilg \newdimen\lpic \newdimen\lwindowsep \newdimen\rwindowsep % VK 10 Feb 93 \lwindowsep0.5\baselineskip % " \rwindowsep0.5\baselineskip % " \newdimen\cumpar % Tokens \newtoks\twa \newtoks\la \newtoks\ra \newtoks\ha \newtoks\pictoc % Boxes \newbox\rawtext \newbox\holder \newbox\windowbox \newbox\wartext \newbox\finaltext \newbox\aslice \newbox\bslice \newbox\wbox \newbox\wstrutbox \newbox\picbox \newbox\waslice \newbox\wbslice \newbox\fslice % Another strut \def\wstrut{\relax\ifmmode\copy\wstrutbox\else\unhcopy\wstrutbox\fi} % \def\getpic#1{\sbox{\@tempboxa}{\includegraphics{#1}}% \newcount\tmpcta \tmpcta=\ht\@tempboxa% \newcount\tmpctb \tmpctb=\wd\@tempboxa% \divide\tmpctb by 100% \divide\tmpcta by\tmpctb% \ifnum\tmpcta>133% \typeout{ieee: Biography picture `#1' too tall.}% \frame{\hbox to 25mm{\hfil\resizebox{!}{32mm}{\usebox{\@tempboxa}}\hfil}}% \else \ifnum\tmpcta<123% \typeout{ieee: Biography picture `#1' too wide.}% \frame{\vbox to 32mm{\vss\hbox{\resizebox{25mm}{!}{\usebox{\@tempboxa}}}\vss}}% \else% \resizebox{25mm}{32mm}{\usebox{\@tempboxa}} \fi\fi} \long\def\biographyLyX#1{\if@non\else\begin{biography} #1\end{biography}\fi} \if@non \long\def\biography{} \else \long\def\biography{\@ifnextchar [{\@biographyb}{\@biographya[{\unitlength 1mm\hbox{\framebox(25,32){}}}]}} \fi \long\def\@biographyb[#1]{\@biographya[\getpic{#1}]} \long\def\@biographya[#1]#2{\bgroup \footnotesize\bigskip\bigskip\bigskip\parskip=0pt\par% \rule{0pt}{35mm}\vspace*{-35mm}\par% garantees correct page breaking \begin{main@bio}[{#1}]% \noindent{\bf #2}% } \def\endbiography{\if@non\else\end{main@bio}\egroup\fi} \long\def\main@bio[#1]{% #1 is the material for setting a graphic box \vskip\parskip\everypar{} \global\cumpar=0pt \global\cumtcl=0 \tcd=0 \rtside=0pt % \hpic=\linewidth \twa={} \la={} \ra={} \ha={} \setbox\wbox=\hbox{(} \computeilg \pictoc={#1} \setbox\windowbox=\vbox{\hbox{#1}} \picwd=\wd\windowbox \hpic=\picwd \vpic=\ht\windowbox\advance\vpic\dp\windowbox \rtside=\linewidth\advance\rtside-\picwd \setbox\picbox=\vbox{\hsize=\hpic\vbox to\vpic{\box\windowbox}}% \vfill}}% \vpic=\ht\picbox\advance\vpic\dp\picbox \ifdim\rtside>0pt\advance\rtside-\rwindowsep\fi % " \global\br=\rtside \ifnum\picwd=0 \ifdim\vpic>0pt\picwd=\hpic \else\vpic=\ht\picbox\advance\vpic\dp\picbox \fi \fi \global\tcl=0 \lpic=0pt \loop\global\advance\tcl by 1 \lpic=\tcl\baselineskip \ifdim\lpic<\vpic\repeat \vpic=\lpic \global\cumtcl=\tcl % % Here we know exactly the number of indented lines and % are able to generate the tokens for the \parshape list % \ifnum\br>0\ra={ 0pt \rtside}\fi \ifnum\tcd>0\ha={ 0pt \linewidth}\fi \ifnum\tcl<1\global\tcl=1\fi \createparshapespec \tcd=0 % restore the lintel \global\tcdsav=0 % % This is a very tricky part of the package. Some day there % will exist a detailed documentation. % \def\par{\\\indent} % % This is where we start to pick up the paragraph(s) % \setbox\rawtext=\vbox\bgroup\unvbox\rawtext\unskip \clubpenalty=0\widowpenalty=0 \ifnum\brokenpenalty<\maxdimen\else\brokenpenalty=9999\fi \tolerance=1000 \parshape=\tcn \the\twa } % \def\endmain@bio{% %\par \global\tcd=\tcdsav \egroup\vskip\parskip\parshape=0 % reset parshape; end \box\rawtext \vbadness=10000 \splittopskip=0pt % % Now we build the boxes beside the window % \global\topheight=\tcl\baselineskip \ifnum\br>0\setbox\holder=\vsplit\rawtext to\topheight\fi \tcn=\tcl \nb=0 \ifnum\br>0\nb=\tcn\fi % % text on the right side % \ifnum\nb>0 \loop\advance\nb -1 \setbox\bslice=\vsplit\holder to\baselineskip \prune\bslice\rtside \setbox\wbslice=\vbox{\unvbox\wbslice\hbox to\rtside{\box\bslice\hfil}} \ifdim\ht\holder>0pt\repeat \fi %GLP add fix to make sure bio starts at top of picture \setbox\wbslice=\vbox to\topheight{\unvbox\wbslice\vfill\vss} % % fixing the dimensions of the window part % \topheight=\ht\wbslice % % ship out the window material to the main vertical list % \setbox\windowbox=\vbox{\hbox to\linewidth{% \vbox to\topheight{\hrule width\picwd height0pt depth0pt\vskip0pt% \vfill\unvbox\picbox% \ifnum\picwd>0\vfill\fi% \vss}\ifnum\br>0\hfill\vbox{\box\wbslice}\fi}}% % \unvbox\windowbox% \loop% lines below picture.... \setbox\bslice=\vsplit\rawtext to\baselineskip \prune\bslice\linewidth \setbox\wbslice=\vbox{\hbox to\linewidth{\box\bslice\hfil}} \unvbox\wbslice \ifdim\ht\rawtext>0pt \repeat %GLP %\ifnum\nb>0\topheight=\nb\baselineskip %\advance\topheight by\ilg %\vspace*{\topheight} %\fi }% FINITO % % What else do we need? % \def\prune#1#2{ % take a \vbox containing a single \hbox, % \unvbox it, and cancel the \lastskip % put in a \hbox of width #2 \unvbox#1 \setbox#1=\lastbox % \box#1 now is an \hbox \ifdim\ht#1=\parskip \setbox#1=\hbox to#2{\vrule height\parskip depth0pt width0pt\hfill} \else\ifdim\ht#1=0pt\relax \else\setbox#1=\hbox to#2{\wstrut\unhbox#1\unskip}\fi\fi} % % Here the token \twa is generated. % It's not so difficult as it looks like. % \def\createparshapespec{% \global\tcn=0 \ifnum\br>0\global\tcn=\tcl\fi \nb=0 \ifnum\br>0\nb=\tcn\fi \global\advance\tcn by\tcd \global\advance\tcn by1 \ifnum\tcd>0 \loop\twa=\expandafter{\the\twa\the\ha}\advance\tcd -1 \ifnum\tcd>0\repeat \fi \ifnum\nb>0 \loop\twa=\expandafter{\the\twa\the\ra}\advance\nb -1 \ifnum\nb>0\repeat \fi \global\twa=\expandafter{\the\twa 0pt \the\linewidth}} % \def\computeilg{% compute the interline glue \tcl=0\ilg=0pt\strutilg=0pt \loop\setbox\wbox=\hbox{\char\tcl} \ifdim\ht\wbox>\ilg\ilg=\ht\wbox\fi \ifdim\dp\wbox>\strutilg\strutilg=\dp\wbox\fi \advance\tcl by 1 \ifnum\tcl<128\repeat \ht\wbox=\ilg \dp\wbox=\strutilg \strutilg=\ht\wbox %\advance\strutilg by\ilg \ifdim\strutilg>\baselineskip \typeout{character with height greater baselineskip found in font} \typeout{baselineskip changed to 1.5 of that height!} \baselineskip=1.5\strutilg \fi \global\ilg=\baselineskip \global\advance\ilg-\ht\wbox \global\advance\ilg-\dp\wbox \strutilg=\ht\wbox \advance\strutilg by\ilg \setbox\wstrutbox=\hbox{\vrule height\strutilg depth\dp\wbox width0pt}} % the following code from version.sty by Stephen Bellantoni 1990, loosely % based on "annotation.sty" by Tom Hofmann. Used to exclude "biography" from % anonymous mode. \begingroup \catcode`@=11\relax% \catcode`{=12\relax\catcode`}=12\relax% \catcode`(=1\relax \catcode`)=2\relax% \gdef\glpinclude#1(% \expandafter\gdef\csname #1\endcsname% ()% \expandafter\gdef\csname end#1\endcsname% ()% )% \gdef\glpexclude#1(% \expandafter\gdef\csname #1\endcsname% (\@bsphack\catcode`{=12\relax\catcode`}=12\relax\csname #1@NOTE\endcsname)% \long\expandafter\gdef\csname #1@NOTE\endcsname ##1\end{#1}% (\csname #1END@NOTE\endcsname)% \expandafter\gdef\csname #1END@NOTE\endcsname% (\@esphack\end(#1))% )% \endgroup %------- \def\@confplacedate{\typeout{ieee: Warning! No \noexpand\confplacedate set!} \bfseries `confplacedate' needs to be set. For example, to: Stanford, CA, USA, September 29--30, 1991} \def\confplacedate#1{\def\@confplacedate{#1}} %%%%%%%%%%%%%%%%%%%%%%%%% End of ieee.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%